. .. : 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

     
 

8. LÉPÉS: Töröljük le az alsó labdát, a felső labdát helyezzük el a színpadon kívül, a kódot pedig írjuk át a következőre (labda05.fla):

labda_mc._x = 100;
labda_mc._y = 100;
celx = 500;

labda_mc.onEnterFrame = function() {
     if (labda_mc._x < celx) {
          labda_mc._x += 4;
     }
};

Itt már a labda kezdő koordinátáit is ActionScripttel határoztuk meg. Ezután növeljük a moziklip _x értékét, de csak akkor ha még nem értük a celx változóban megadott értéket. Ezt egy sima if feltétellel ellenőrizzük.

9. LÉPÉS: Most nézzünk egy olyan példát, ahol a labda nem tűnik el a színpadról, hanem visszapattan a színpad szélétől (labda06.fla). Az alábbi, ezúttal picit hosszabb kódra lesz szükségünk (az előzőt törölhetjük):

sebesseg = 10;

labda_mc.onEnterFrame = function() {
     if (labda_mc._x <= 0 + labda_mc._width/2 || labda_mc._x >= 600 - labda_mc._width/2){
          sebesseg = -sebesseg;
     }
     labda_mc._x = labda_mc._x + sebesseg;
}

Mi is történik itt? A mozgás sebességét ezúttal a sebesseg változóban határoztuk meg, és ezzel az értékkel növeljük folyamatosan a labda moziklip _x koordinátáját:

labda_mc._x = labda_mc._x + sebesseg;

Az if kijelentéssel ellenőrzünk, hogy a moziklip elérte-e a 600 pixel szélességű színpad széleit.
Ha igen, akkor a sebesseg változó értékét ellentétes előjellel látjuk el, így megváltozik a labda mozgásának iránya.

sebesseg = -sebesseg;

A labda_mc._width/2 szerepe első látásra nem biztos, hogy egyértelmű. Mindössze azért van rá szükségünk, mert a labda regisztrációs pontja középen van. A labda moziklip szélességét megfelezzük, és a kapott értéket a színpad bal oldalán hozzáadjuk a 0-hoz, a jobb oldalán pedig levonjuk 600-ból, hogy a moziklip szélei pontosan érintkezzenek a színpad széleivel. Ellenőrizd, hogy mi történik, ha kihagyod ezt a kódrészt és mindjárt világos lesz, hogy miről van szó.

10. LÉPÉS: Fontos megemlíteni, hogy a moziklipet irányító kódot magán a moziklipen is elhelyezhetjük. Programozási stílustól és a feladattól is függhet, hogy melyik a célszerűbb. Töröljük a kódot az első frame-ről és a labdát jobb egérgombbal kijelölve válasszuk az Actions menüpontot ahova példának csak ezt a rövidke, ismerős kódot gépeljük be:

onClipEvent (enterFrame){
     this._x = this._x + 4;
}

Ez még tovább rövidíthető, így:

onClipEvent (enterFrame){
     _x += 4;
}

Nézzünk is egy kicsit komolyabb példát a moziklipen elhelyezett kóddal.

Vizsgáld meg a fenti példa (labda07.fla) fájl kódját. A magyarázatot a segédlet 2. részében olvashatod.

A segédlet megjelent a DIGITART magazin 0. számában.

 
     
 
 

© 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 >>> : .. .