Zelfs wanneer u aan het animeren bent op de tijdlijn, kan een vleugje ActionScript verbeteren wat u aan het doen bent. In deze Quick Tip gebruiken we een enkele lijn van AS3 om geanimeerd realisme toe te voegen in een oogwenk!
Pak de bronbestanden en open "basis.fla". Op het podium vind je de "hoofd" filmclip, bestaande uit twee lagen met de filmclips "gezicht" en "ogen".
Als u natuurlijk helemaal opnieuw wilt beginnen en uw eigen afbeeldingen wilt gebruiken, kunt u dat uiteraard doen?
We gaan de ogen periodiek laten knipperen, dus begin met dubbelklikken op de filmclip "eyes" om de tijdlijn in te voeren.
Verleng de tijdlijn door een keyframe toe te voegen in frame 80 op de laag "eyes". Dit is waar we de ogen in hun "knipperende" staat zullen plaatsen.
Verwijder de open ogen van het podium en richt je aandacht op de bibliotheek. Daarin vind je "eyesClosed" die je op het podium kunt plaatsen waar de "eyesOpen" filmclip eerder was.
Met je ogen afgesloten geselecteerd, druk op F5 om nog een paar frames toe te voegen. Voeg zoveel toe als je wilt; dit doet de tijd die de ogen van je personage nodig hebben tijdens een knippering langer worden. 3 frames is in ons geval prima.
Test uw film (Command / Ctrl + Enter) om een idee te krijgen van het knipperende effect dat u hebt gemaakt.
De afspeelkop beweegt langs de tijdlijn en veroorzaakt periodiek knipperen. Perfect! Rechts? Nou niet precies. Het uniforme knipperen suggereert dat ons karakter een robot is of dat hij zijn frontale kwab mist.
Laten we het effect verbeteren door het knipperen willekeurig te maken.
Voeg een tweede laag toe aan de filmclip "eyes", label het "acties" en vergrendel het. Selecteer het eerste frame en voer het volgende fragment in het deelvenster Acties in (Venster> Acties):
gotoAndPlay (uint (Math.random () * totalFrames) 1);
Wat doet dit fragment eigenlijk? Nou ja, de gotoAndPlay ();
actie stuurt de playhead langs de huidige tijdlijn, naar welk framenummer we ook definiëren binnen de accolades. De inhoud binnen onze beugels geeft ons ons framenummer.
De Math.random ()
methode retourneert een getal tussen 0 en (hoewel niet inbegrepen) 1. Dit wordt vermenigvuldigd met totalFrames
, een eigenschap van onze filmclip - het aantal frames daarin (in ons geval 83). uint ()
verzorgt de uitkomst van onze willekeurig getal * totalFrames
, door af te ronden en ons een geheel getal te geven.
Het laagste gehele getal we kunnen verwachten is 0, omdat uint (0 * 83) 0 is.
Het hoogste gehele getal we kunnen hopen op 82, omdat uint (0,99999999999 * 83) 82 is.
daarom, wij +1
om dingen af te maken, ons een bestemmingskader te geven ergens tussen 1 en 83.
Zodra de afspeelkop het einde van onze tijdlijn bereikt, keert deze terug naar frame 1 en wordt opnieuw naar een willekeurig frame verzonden.
Controleer de film opnieuw!
Ons karakter knippert nog steeds, maar nu met onregelmatige tussenpozen, die er veel minder lobotomisch uitziet.
Het effect wordt nog duidelijker met twee exemplaren van ons personage op het podium. In het onderstaande voorbeeld hebben we twee verschillende personages, maar beide maken gebruik van precies dezelfde 'eyes'-filmclip:
Ik zeg niet dat deze twee eruit zien alsof ze het helemaal bij elkaar hebben, maar je begrijpt het wel?
Dit is een heel eenvoudig eindresultaat, waarom niet kijken of je het kunt verbeteren?
Je bent klaar! Dit is een eenvoudige en veel gebruikte techniek, maar het verplaatsen van de afspeelkop naar willekeurige frames kan in duizenden situaties worden toegepast. Ik hoop dat je er gebruik van vindt :)