javascript animation, der fungerer (del 4, 4)

, javascript animation, der fungerer (del 4, 4),,,,, 54,,,,,,,,, 10,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss., i første del af denne serie, vi indførte den ide at bruge, spriting, som en nem måde at krydse browser interaktive informationskampagne for nettet.i anden del, har vi en informationskampagne, og i det tredje, vi ryddede op i vores kode og gjort det klar til nettet.,,, indledning, nu, i vores sidste del i dag, vil vi gå gennem etablering af kontakter, omstændigheder, så i stedet for at imødegå klikkede knapper, vores robotter vil følge mus på skærmen.i den forbindelse skal vi også tale om, at kodeksen cross - venlige og røre ved skærmen mulighed for, hvis du tager et kig på vores kode fra sidste gang, vil de se, at mens koden løber godt (og med flere robotter), der ikke er en let måde at fortælle den kode til at løbe. i de tilfælde, der håndterer tilfælde,,, kræver, at fortælle visse kode til at køre, når visse begivenheder er udløst.f.eks. kunne de have, my_function(), løb, når en bruger klik på din, div. med id,'my_div ".eller du kunne have, my_other_function(), løb, når brugeren flytter deres mus,'my_other_div,., i teorien, er dette en meget enkel og simpel idé.desværre, når du begynder at få forskellige browsere involveret, det kan blive en smule forvirrende.i en ideel verden, hver webbrowser vil fortolke den samme kode og html på samme måde, og udviklere ville skrive kode én gang, og det ville være det samme for alle brugere.i den virkelige verden, forskellige browsere kan have helt forskellige kommandoer til at gøre det samme (* host * * host * internet explorer,), og nogle gange forsøgt at få et enkelt stykke kode til at køre den samme for alle browsere kan føles som hyrde katte.situationen er blevet meget bedre, krom, firefox, safari og opera alt reagere meget på samme måde som kode, internet explorer 9 og 10 er blevet meget mere i overensstemmelse med standarder end tidligere versioner, og næsten ingen bruger internet explorer 6, 7 eller mere.så for vores kodeks, vil vi få tilfælde kontanthåndterende virksomheder at arbejde for både moderne browsere og internet explorer 8. som en sidebemærkning, det er et tilfælde, hvor det virkelig kan betale sig at bruge en robust javascript bibliotek, som f.eks. jquery.jquery gør alt arbejdet for dig i cross - testning, så du skal kun bruge til at rejse ind i en kommando - og jquery bibliotek vil oversætte det for hver browser bag kulisserne.desuden har mange af de kommandoer i jquery er langt mere intuitiv og enklere end den centrale javascript samt., men da jeg er stædig, og da det er en muligheder for at lære, vi vil fortsætte på den hårde måde og gøre alt dette udelukkende med javascript og tilhørende områder.side interaktion, så vores første skridt vil være at beslutte, hvordan vi vil interagere med side.når jeg flytte min mus over scenen område, jeg vil have alle robotterne til at køre mod mus.når de når frem til mus, eller hvis musen er direkte over dem, jeg vil have dem til at holde op med at løbe.hvis mus krydser over dem, jeg vil have dem til at springe.og endelig, når musen overlader scenen område, jeg vil have dem til at holde op med at løbe.vi vil begynde med påsætning af disse begivenheder i, robotmaker, funktion:, fase. addeventlistener ('mousemove, stage_mousemove_listener, falske); robot. addeventlistener ('mouseover, robot_mouseover_listener, falske) fase. addeventlistener ('mouseout, stage_mouseout_listener, falske), i ovennævnte retning, vi har sagt, at når brugeren flytter mus i fase element, vi vil udløse en funktion, stage_mousemove_listener() (bemærker, at det ikke omfatter en parentes i kommando).på samme måde, når brugeren flytter mus i robot element, der udløser, robot_mouseover_listener(), og når brugeren flytter mus udenfor scenen, den udløser, stage_mouseout_listener(),., som vi desværre nævnte før, internet explorer 8 og under en (tilsvarende, men) forskellige ordre til at gøre det samme. så vi bliver nødt til at prøve at få at vide, hvilke kommando brugerens browser vil forstå, og gøre denne metode, hvis (fase. addeventlistener) (//vil vi prøve at se, om denne kommando er til rådighed. addeventlistener ('mousemove, stage_mousemove_listener, falske); robot. addeventlistener ('mouseover, robot_mouseover_listener, falske); stadie. addeventlistener ('mouseout, stage_mouseout_listener, falske)} andre (//-f, er vi nødt til at bruge den kommandoer fase. attachevent ('onmousemove, stage_mousemove_listener); robot. attachevent ('onmouseover, robot_mouseover_listener) fase. attachevent ('onmouseout, stage_mouseout_listener)}, du kan mærke, at formatet af kommandoer er meget ens, men der er store forskelle - siger man, at'addeventlistener ", mens andre siger,'attachevent".man siger,'mousemove, mens andre siger,'onmousemove ".det kræver en tredje parameter, mens andre kun har to.blanding af nogen af disse vil medføre kommando til ikke at løbe.det er den slags ting, som vil give dig lyst til at slå hovedet mod muren.desværre, det er ikke afslutningen på den ekstra koder, vi bliver nødt til at gøre for at krydse browser kapacitet. lytter funktioner, næste, vi skal skrive den lytter funktioner.- vi starter med den funktion, der udløses, når de bruger dem på scenen.da dette er en mousemove, efter denne funktion vil udløse, hver gang de mus er flyttet ind i den fase område (dvs. den vil få flere gange en anden, mens den mus er i bevægelse).denne funktion vil være nødt til at sammenligne, hvor den robot med placeringen af mus, og gøre den robot opfører sig i overensstemmelse hermed.hver gang den funktion er udløst, vil den undersøge, om den robot skal fortsætte i samme retning og ændre adfærd.så, det skal være sådan her: //i af robotmaker //bliver vi nødt til at indføre et par variabler spor var mousex; //sporing af horisontale mus holdning var running_dir = "; //sporing, hvis (og hvor) robot, er på nuværende tidspunkt var stageoffset; ////////for at finde den holdning, den scene funktion stage_mousemove_listener (e) (//finde den vandrette position for mus i scenen...//den holdning vil blive reddet i mousex "//så vi sammenligner" mousex til robot, og beslutte, om vi skal løbe anderledes, hvis (((robot.offsetleft + (15 * run_speed) < (mousex - robot. offsetwidth) & & running_dir!= = 'r & & (!jump_timer



Previous:
Next Page: