Flash CS3 ActionScript 3-deeltjessysteem
De andere foutmeldingen zijn opgetreden omdat we de sneeuwvalfunctie uit de sneeuwvlokfunctie hebben verwijderd. Hierdoor weet de sneeuwvalfunctie niet hoe de sneeuwvlokken te herkennen. We moeten de functiecode van de sneeuwval wijzigen om de huidige sneeuwvlok te herkennen die zojuist is gemaakt. We zullen "_Snowflake" veranderen in "event.target" op de vier plaatsen waar het voorkomt.

We hebben nog een correctie voordat we onze film opnieuw kunnen testen. Laten we teruggaan naar de functiecode van de sneeuwvlok. De gebeurtenisluisteraar in deze code roept de sneeuwvalfunctie aan. Maar het luistert nog steeds naar het podium. We moeten dit wijzigen, zodat de Event-luisteraar wordt gekoppeld aan elke nieuwe sneeuwvlok terwijl deze wordt gemaakt, en niet aan elk nieuw frame van de animatie. Wijzig aan het begin van de Event Listener-code "stage" in "_Snowflake".

Nog een keer testen. Geen fouten en we hebben alle 70 sneeuwvlokken op de bodem van het podium vallen. Maar dan stopt de animatie omdat we na de eerste 70 sneeuwvlokken geen nieuwe sneeuwvlokken maken. We moeten wat code toevoegen die deze 70 sneeuwvlokken terug naar de bovenkant van het podium zal recyclen. Als we deze sneeuwvlokken naar boven verplaatsen, laten we dezelfde Math.random () -code gebruiken die we in de sneeuwvlokfunctie hebben gebruikt om onze gerecyclede sneeuwvlokken willekeurig te plaatsen. Maar deze keer moeten we de "event.target" gebruiken in plaats van "_Snowflake".

Ten slotte moeten we de code removeEventListener verwijderen uit de sneeuwvalfunctie. We willen niet meer voorkomen dat onze sneeuwvlokken vallen. We willen dat ze naar de top gaan en weer naar beneden vallen. Hier is de nieuwe code voor de voorwaardelijke verklaring.

Test opnieuw en je ziet 70 sneeuwvlokken van boven naar het podium vallen, gevolgd door de gerecyclede sneeuwvlokken. Maar er zijn een paar seconden voordat de gerecyclede sneeuwvlokken beginnen te vallen. Het zou een veel vloeiendere animatie zijn als we de code zouden kunnen wijzigen zodat de eerste 70 sneeuwvlokken over het hele podium worden geplaatst in plaats van alleen aan de bovenkant. Laten we teruggaan naar de sneeuwvlokfunctie en de "40" wijzigen in "400" voor de eigenschap_Snowflake.y. Dit plaatst de 70 aanvankelijke sneeuwvlokken op willekeurige posities van 0 tot 400 langs de Y-as die het hele podium bedekt.

Test opnieuw en we hebben succes. Sla uw sneeuwscène op als SnowScene10.fla.

Nu we onze animatie hebben geoptimaliseerd en perfect animeren, kunnen we hier stoppen. Maar met slechts een paar wijzigingen kunnen we deze code een meer modulair deeltjessysteem maken. Dan kunnen we de code gebruiken om alles van regen tot varkens uit de lucht te laten vallen. We zullen dat daarna doen.

← terug

Copyright 2018 Adobe Systems Incorporated. Alle rechten voorbehouden. Schermafbeeldingen van Adobe-producten herdrukt met toestemming van Adobe Systems Incorporated. Adobe, Photoshop, Photoshop Album, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Contribute, Captivate, Flash Catalyst en Flash Paper is / zijn ofwel [a] gedeponeerd handelsmerk [s] of een handelsmerk [s] van Adobe Systems Incorporated in de Verenigde Staten en / of andere landen.