. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .




 
 
SEGÉDLETEK ActionScript

Dinamikus mozgások ActionScripttel - 1. rész
  feltöltve: 2003.10.16 | szerző: papp | olvasva: 15850 alkalommal

     
 

Mozgás. Valójában erről szól a Flash, és nem meglepő, hogy a legtöbben pont ezért kedveltük meg. A Flash-ben alapvetően kétféleképpen mozgathatjuk az objektumainkat: az idősíkon (Timeline) - nevezzük idősík alapú mozgásnak, és ActionScript kóddal.

Az idősík (Timeline) segítségével egészen látványos animációk valósíthatók meg, anélkül, hogy gondolkodnunk kéne a mozgások mögötti matematikán. A teendőnk mindössze annyi, hogy a színpadon elhelyezzük az elemeket, az idősíkon meghatározzuk a kulcsképkockákat (Keyframe) a mozgás kiindulópontjának és végpontjának, majd kétféle átmenet közül választhatunk: Motion tween (mozgásátmenet) és Shape tween (alakzatátmenet). A többit a Flash elvégzi, azaz a kiindulópont és végpont közötti képkockákat szépen kiszámolja. Szóval az idősík alapú mozgások nagy hátránya, hogy ezeket beégetjük a moziba, így futásidőben nem változtathatók. Nem is beszélve arról, hogy összetettebb animációknál a rengeteg átmenet sokszor átláthatatlan és kezelhetetlen. Az idősík alapú mozgás szinte nem is fejlődött semmit a Flash 4 óta, ellenben a ActionScript nyelv folyamatos fejlődése új lehetőségeket rejteget számunkra az elemek dinamikus, futásidőben történő mozgatására, ráadásul a Timeline nélkül.

Mielőtt rátérnénk a konkrét példákra, egy kis elméleti rész. Fontos megértenünk, hogy ActionScripttel, hogyan manipulálhatók a moziklipek. A moziklipeknek vannak tulajdonságaik (Properties) és metódusaik (Methods). Ezek határozzák meg, hogy mit tehet az objektum, illetve mit lehet vele tenni. Tulajdonságok például:

_x (a moziklip x koordinátája), _y (a moziklip y koordinátája)
_xscale (a moziklip szélessége százalékban), _yscale (a moziklip magassága százalékban)
_alpha (a moziklip átlátszósága százalékban).

Próbáljuk meg lekérdezni ezeket az értékeket a mozikliptől. Kövessük az utasításokat, vagy nézzük meg a mellékelt forrást: labda.fla.

1. LÉPÉS: Nyissunk egy új mozit (600x400), rajzoljunk 50x50 pixel méretű kört, és gyártsunk belőle moziklipet. Jelöljük ki a kört, majd a Properties palettán példánynévnek (Instance name) írjuk be, hogy "labda_mc", x és y koordinátája legyen egyaránt 100, alpha értékét pedig állítsuk 50%-ra:

2. LÉPÉS: Az 1-es frame-be gépeld be a következő ActionScript kódot:

trace (labda_mc._x);
trace (labda_mc._y);
trace (labda_mc._xscale);
trace (labda_mc._yscale);
trace (labda_mc._alpha);

 

3. LÉPÉS: Teszteljük a mozit (Ctrl+Enter). Látni fogjuk, hogy megjelenik az Output ablak a jobb oldalt látható értékekkel:

Megfigyelhetjük, hogy az _x és _y értékek nem azonosak a Properties palettán beállított értékekkel. Ez azért van, mert a moziklip (0,0) koordinátáját a regisztrációs pont határozza meg, ami esetünkben a kör középpontjában van.

A Flash koordináta rendszere (B.) úgy épül fel, hogy az y tengelyen az értékek fentről lefelé, az x tengelyen pedig balról jobbra nőnek. Ezt fontos megjegyezni, mert nem azonos az iskolában tanult x-y koordináta rendszerrel
(A.)
, hiszen ott az y tengelyen alulról felfelé nő az érték:


Tehát az _x és _y tulajdonságok meghatározzák a moziklip pillanatnyi helyét a Flash koordináta-rendszerében. Nyilvánvaló, hogy a mozgás szempontjából ezek az értékek játsszák a főszerepet. Ahhoz, hogy megváltoztassuk a mozikip helyét, növelnünk vagy csökkentenünk kell őket. Például, ha balra akarjuk elmozdítani a moziklipet, akkor az _x értéket növeljük, ha jobbra, akkor pedig az _x értéket csökkentjük. Ilyen egyszerű az egész, de elég az elméletből nézzük meg a gyakorlatban is...

 
     
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .