.. som man som nybörjare kan råka ut för.
När man läser om Flash och animeringar (med AS3) så blir man ju alldeles till sig och kan inte vänta till man
kan släppa loss sina fingrar på tangetbordet för att börja koda i AS3.
Något som jag själv, några gånger gjorde fel på, och även många andra gör och kommer att göra, när man ska animera ett objekt från punkt
A till punkt B.
Man öppnar upp Flash och Actionsript panelen och börjar skriva:
Man tror att denna kod ska animera vår cirkel objektet och trycker glatt på CTRL+ENTER och upptäcker
att cirkeln är helt stilla.
Det som egentligen händer är att när man kör en flash fil så läses all kod in på marginaler av millisekunder.
Först så placerar vi cirkeln på denna position x=50 och y=50, men när man kör filmen så är cirkeln
inte ens i närheten av denna position.
Direkt efter addChild(cirkel) har vi kod för den nya positionen.
Flash skapar cirkeln först på x=50 och y=50 och när vi lägger till cirkeln på scenen så kommer en ny position dit cirkeln flyttas INNAN vi
ser själva cirkeln.
Man kan säga att Flash följer denna struktur:
- Rendera bildruta (frame)
- Applicera regler/egenskaper
- Klar ? (Om inte, börja om från 1 annars fortsätt till 4)
- Visa bildrutan och dess innehåll
Så vår kod ovan med denna struktur:
Punk1-3 sker väldigt fort och det visas inte, utan det först på punkt 4 Flash visar objektet med dess inställda egenskaper.
Så för att vår cirkel ska animeras till den nya positionen x=300 och y=50 så måste vi köra om denna bildruta om och om igen.
För det skriver vi en sådan kod:
Som du ser så finns en ny kod på rad nr. 5 och en funktion som heter animera. Vad rad 5 gör är att vi sätter
en händelseLyssnare (EventListener) på vår scen, varje gång flash spelar en bildruta eller går in i en ny bildruta (ENTER_FRAME)
så ska vi köra en funktion (rad 8-13).
Varje gång vi kör denna funktion så ska vi lägga på värde 2 i cirkelns x, dvs vi flyttar den 2 pixlar till höger.
Om cirkelns x position är lika-med eller större än 300 så tar vi bort denna lyssnare från scenen, för att vi ska stoppa cirkelns rörelse till höger.
Denna kod med strukturen:
Detsamma som jag visar i kod, sker även i Flash när du animerar direkt på tidslinjen och du inte har skrivit nån kod alls. Denna struktur
följs alltid.
Rendera bildruta
Applicera egenskaper: x, y, alpha, width, height osv...
Klar ?
|- om Nej, börja om
|- om Ja, visa bildruta med objekten
När det gäller animering, så finns det enklare sätt att animera. Exempel med hjälp av Caurina (som är väldigt populär och enkel använd).
Så med andra ord, du behöver inte uppfinna hjulet på nytt, återanvänd det som är uppfunnet :)















