javascript tekenfilms (4, deel 3),,,,,,,,,, 65, 23 - eenheid,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, in onze eerste artikel in deze serie, we voeren, spriting, en hoe het kan worden gebruikt om de eenvoudige en doeltreffende web browser animatie.Na, we krijgen een paar eenvoudige animatie en die, hoewel zij een aantal fouten en code zeker niet klaar om te leven. En vandaag moeten we de oplossing van deze fouten en het schoonmaken van onze code, zodat we het kunnen worden afgegeven op een pagina van de ineenstorting van de code geen angst van een gebruik van de methode noemen, verpakking, variabele, met het oog op de echt uitleggen wat de verkeerde code in onze laatste stap, waarom is het belangrijk, we moeten in de eerste plaats de reikwijdte van de verklarende variabelen.Heb je je functie, bijdragen tot de variabele do_this (), wil je in een andere functie, met dezelfde variabelen (), maar do_that, ontmoet je een klein probleem, de functie do_this () {VAR very_helpful_variable = 20;...///////dat "20", zoals je wenst eraan te herinneren dat de (very_helpful_variable);} do_that (functie) (signalering (very_helpful_variable); ///////- maar dat "niet".De variabelen in de functie van}, je deed goed werk in deze functie, maar de externe, het lijkt nooit bestaan.Dat is omdat, do_that (), niet in de reikwijdte van de variabelen, very_helpful_variable,,., variabelen worden in hun verklaring van code, dit is hun bereik.Als dat blok van de code is gedaan.% quot% voor de variabelen zijn, erased., neem a ben op deze te evalueren, de VAR - W = 1; de functie A () {VAR X = 2; de functie B () {VAR y = 3; signalering (W); //////////////: signalering (x); signalering (y): werkt; //////////////signalering (Z); onduidelijke} signalering (W); //////////////signalering (x);:: signalering (y) genaamd; //////////////signalering (Z); c) een onduidelijke} {VAR z = 4; signalering (W); //////////////signalering (X) werkt niet. Signalering (y) genaamd; //////////////signalering (Z); b) niet werkt; ///////; ///////} signalering (W): signalering (x); //////////////genaamd signalering (y); onduidelijke signalering (Z); ///////, we hebben vastgesteld, de variabele, W, ", die is aangegeven. Een functies.Het heet, de variabelen, het kan overal werken, omdat het toepassingsgebied van het document is, en in de tweede plaats is X, omdat het de functie van binnen, dat a), zal het alleen de functie interne werkzaamheden.Dit omvat ook in functie, (b), b), heeft, naar binnen, A (),., maar, de definitie van een variabele binnen, (b), (zoals, Y) niet op het werk, want dit is het buiten bereik, misschien is het je opgevallen dat we mislukt b) De functie van de functie van binnen, C (); de naam, functie en andere variabelen dezelfde regels voor het gebruik van een andere eigenaardigheden javascript, als we het begin van het gebruik van de naam geen verklaring functie binnen het wachtwoord, var, dan zou dit variabele browser moeten wereldwijd.Dus, als je het niet zeker dat je altijd met een variabele, variabelen, de sleutelwoorden voor de variabelen verklaring van je, zou je de variabelen en weet het niet!Dus om samen te vatten: als we de verklaring van een variabele, kunnen we in het blok in de code gebruiken, of binnen het blok in het nest.Als we proberen het buiten het bereik, de waarde van de,,, en dat is de reden waarom we in een artikel in, en we hebben de timer, met het buiten, de functie van variabelen, omdat we nog steeds nodig om de variabele in functie na de var /de timer is een functie van de variabelen; run_right (links op het podium) {...De timer = settimeout (functie) (run_right (2, links);}, 200);...Stop_running () {}) document. GetElementById (J "). Style.backgroundposition =" 0pxof; ///////0px "als" man "is niet opgericht voor de mondiale, we kunnen het niet stoppen om de timer (!);}, met het oog op de timer, wat we nodig hebben, stop_running (), in het kader van de variabele, de timer.Dus, we hebben de timer, een van de variabelen, kan overal gebruikt, kan het verkeerd zijn?In een bepaalde, in het kader van de variabelen, dit probleem, kan er geen sprake zijn van twee zijn hetzelfde.Als je het wilt proberen met dezelfde naam heeft twee verschillende variabelen, schrijf een browser.Dus, als we een variabele, de timer, en er is een afzonderlijke variabelen worden genoemd, de timer, bekend als in hetzelfde kader, waarin een zal schrappen en er een ander, hebben we de vernietiging van onze code.Als we een van de variabelen, bel, timers, dan zou het de interferentie van andere variabelen genoemd, bevat de timer, overal op de bladzijde met inbegrip van alle aanvullende javascript en de externe bestanden, dit is een grote bron van hoofdpijn, wat je ziet, is het netjes javascript plug - in plaats van je, en Het downloaden van de website van je, en je bent ineens alle andere « plugin ».Een plug - in is en de variabelen is slordig, en andere dingen gebeuren in het delen van dezelfde naam, je browser struikelde zelf, de hele pagina is een lappen niet. Dit is veel erger, je nooit bewust van dit probleem, toen je voor de eerste keer de code testen.Als we de code van de animatie, de laatste post, het werkt geweldig.Maar, meer werk je nog meer kunnen zijn, een nomenclatuur van de kans op conflicten, zou je een dozijn verschillende javascript dossiers, om uit te zoeken wat het twee niet met elkaar opschieten, nu kan je je afvragen, "de variabelen is heel handig.Als ik de code heb ik zorgvuldig observeren, om ervoor te zorgen dat ik geen conflict, wat ga ik doen?Dit kan in een perfecte wereld, maar in werkelijkheid, heb je meestal een paar mensen in verschillende delen van het werk, of moest terug, de bijwerking van de verschillende delen van de code in, zelfs een code van een derde partij op je webpagina 's, zal je de controle (reclame), als gevolg van de Op de korte termijn, wil je niet iets meer dan je wilt onthullen van de variabelen in de muren van je huis of blootstelling aan mechanische in je auto, het is slechts een kwestie van tijd voordat het gebeurt, het tandvlees werkt.Gelukkig is er een betere manier is, om te voorkomen dat deze val, verpakking, kunnen we alle voordelen van de variabelen geen problemen door het gebruik van een techniek genaamd, de verpakking, de.Denk je dat de bouw van een muur rond je code slechts een paar speciale deur, niet kan of niet, tenzij je een soort speciale kan de code, javascript variabelen zijn de voorwerpen,.Doel is de informatie bevatten en de functie van de gebruikers van de verzameling van gegevens (hierna omschreven, eigendom, en methoden, respectievelijk).Zullen we de ontwikkeling van een functie die de oprichting van een speciaal doel, het heeft alle functies, we moeten naar het "gebakken", kan het zelfs laten we nog meer robots, zonder te herhalen we de code!In de eerste plaats, de definitie van een nieuwe functie, de naam van de variabele.We moeten door middel van een aantal opmerkingen van de variabelen, ik wil door middel waarvan wij animatie: //europa.eu.int /comm /elementen, in combinatie met een unieke waarde van snelheid en hoogte springen, we kunnen naar de robot van de robot, var robotmaker = functie (robots, run_speed, jump_height) {///////zullen we alle variabelen en functie in dit de regio 's.Dit is onze /ondoordringbare muur binnen, dus in het /de regio geen andere code van conflicten.Terug naar de {/hier, we brengen alle "deuren".Deze is iets kan worden in deze code ///////of op enige manier.///////, want het is nog steeds in hetzelfde gebied ///////robotmaker genoemd, kunnen we een variabele.}, want we zullen alle functies zijn in onze nieuwe "muur", en nu is een goede tijd om opnieuw met de originele code hebben.(hier kan je zien, je kan zien dat, als wij op de knop (of rennen en springen knop), en niet klikken, stop, druk op de knop, tussen deze twee acties zal blijven doen.De tweede vraag is, wat is het probleem als we in die richting, klik, springen, of niet, druk op de knop, elke keer als hij zijn geconfronteerd.Tot slot, als je op de knop is, vanaf de eerste keer springen, hij zal blijven door de pagina 's in een eindeloze cyclus, en deze dingen op te lossen, we moeten meer in het bijzonder zal gebeuren wat we elk onze functie: als we op te lopen, als je springt, recht op: niet doen, als je stopt, stoppen en ophoudt met rennen, toen we hem naar rechts draaien, en het loopt naar links, het passende kader om, als aan het eind van de periode, om te stoppen met vluchten en stond.Met links, en als we stoppen met rennen, klikken op:,, als het is springen, niets doen en blijven springen we wil niet stoppen in de lucht.Als die rechten of links, niet lopen, als de rechten worden geconfronteerd, sta recht.Als tegen het verlaten, waarmee de weg als we springen, klik op:,, als het is springen, niets doen, gaan we niet meer wil springen.Als dit is van die rechten of de linker, stop met rennen, springen.Als het waar is, is de rechten van springen.Als in de linker, springen met links, land geconfronteerd worden met dezelfde richting als we springen, in de eerste plaats moet nog een aantal variabelen, nu.Als gevolg van de werking van de timer en springen, moeten de verschillende handelingen, we hebben twee onafhankelijke timer.We willen ook de invoering van booleaanse (ja /nee) variabele te volgen als we moeten naar links of rechts, we doen gewoon een fase, variabelen, om ons te redden van de volledige naam van de elementen van het type in de robotmaker. /functie...De var - fase = documenten. GetElementById ('stage "); var run_timer, jump_timer; var face_right = waar; en dan gaan we nog in onze functie goed loopt, links rennen, springen.Dat zou hetzelfde zijn, zijn er een aantal verschillen.In de eerste plaats alle genoemde elementen, we kunnen de animatie met variabele (ter vervanging van robots, die zal fungeren als een in robotmaker, parameters, de functie).Ten tweede, we doen in functie is een beetje veranderen, zodat wij kunnen veranderen van verschillende waarden.Ten derde, we gebruiken. Face_right, variabele volgen welke richting is met (en in functie van het gebruik van face_right springen, springen, en de besluiten die elfen weergegeven).Tot slot, gebruiken we de onafhankelijkheid van de timer rennen en springen in robotmaker /functie...De functie van run_r (fase, links) {face_right = waar; als ((L + (15 * run_speed) < (stage.offsetwidth robot. Offsetwidth)) {links = links + (15 * run_speed); robot.style.left = links + "Postkantoor"; - (fase 1) - Zaak robot.style.backgroundposition = "- 30px 0px"; run_timer = settimeout (functie) (run_r (2, links);}, 200); breuk; zaak 2:robot.style.backgroundposition = ", 0px"; run_timer = settimeout (functie) (run_r (3, links);}, 200); breuk; zaak 3:robot.style.backgroundposition = "120px run_timer 0px"; = settimeout (functie) (run_r (4, links);}, 200); breuk; zaak 4:robot.style.backgroundposition = ".80px 0px "; run_timer = settimeout (functie) (run_r (1, links);}, 200);}} {rusten; andere robot.style.backgroundposition =" 0px 0px ";}} functie run_l (fase, links) {face_right = vals; als (0 < robot.offsetleft - (15 * run_speed)) {links = links (15 * run_speed); robot.style.left = links +" Postkantoor "; - (fase) (zaak C - 1:robot.style.backgroundposition =" 30px - 50px "; run_timer = settimeout (functie) (run_l (2, links);}, 200); breuk; Zaak 2: robot.style.backgroundposition =", - - 50px "; run_timer = settimeout (functie) (run_l (3, links);}, 200); breuk; zaak 3:robot.style.backgroundposition =".120px - 50px "; run_timer = settimeout (functie) (run_l (4, links);}, 200); breuk; zaak 4:robot.style.backgroundposition =" - "; run_timer = settimeout (functie) (run_l (1, links);}, 200);}} {de hij rusten; robot.style.backgroundposition =" 0px - 50px ";}} functie gevolgd (,) (als (face_right) {robot.style.backgroundposition =" 160px} {0px "; anders robot.style.backgroundposition =" 160px - 50px ";} als (& & (robot.offsettop > (* * * * * * * (1 /20 van jump_height)))) (= top (* * * * * * *. 1); robot.style.top = +" Postkantoor "; jump_timer = settimeout (functie) (jpm (top);}, 60). () {} anders als op jump_timer = vals;= settimeout (functie) (jpm (top);}, anders als (60);}.Een & & (robot.offsettop < 115) (= + (* * * * * * *. 1); robot.style.top = + "Postkantoor"; jump_timer = settimeout (functie) (jpm (top);}, 60);} {robot.style.top = "of 120px"; als robot.style.backgroundposition (face_right) {= "0px 0px" of "robot.style.backgroundposition =;} {} 0px - 50px"; jump_timer = valse;}}, al deze variabelen en functies zijn in onze "muur", dus we moeten nu een "toegang kunnen krijgen tot de deur die we nodig hebben.Deze vier "deur" is voor ons doel, en heeft dezelfde vier functies, en zal op basis van de bovengenoemde beschermde.Tegelijkertijd zullen wij onze Bug, controleer elke functie als, jump_timer, ga, dan moet duidelijk zijn, run_timer,.Weet je nog, die twee jongens zijn in het kader van een deel van de robotmaker (), functionele, zodat we hier kunnen gebruiken.Echter, omdat ze niet van de variabelen, die we niet in de problemen hun plaats in de functie van robotmaker /.,...Terug naar de: {run_right functie) (als (.Jump_timer
Javascript tekenfilms (4, deel 3)
Previous:Javascript tekenfilms (4)
Next Page:Het gebruik van CreateJS