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


 
 
SEGÉDLETEK ActionScript

Dinamikus mozgások ActionScripttel - 3. rész
  feltöltve: 2004.02.18 | szerző: papp | olvasva: 15111 alkalommal

       
 

Objektumok mozgatása Drag&Drop technikával

Azt szeretnénk elérni, hogy a labda moziklip Drag&Drop technikával áthelyezhető legyen és a kívánt helyen elengedjük. A startDrag és a stopDrag utasítással ezt könnyedén megoldhatjuk.
Csak az egyik labda moziklipet hagyjuk a színpadon és bővítsük ki a rajta lévő kódunkat ezzel a néhány sorral:

on (press) {
startDrag ("", true);
}

on (release) {
stopDrag ();
}


Amikor bekövetkezik az on(press) esemény, azaz a labda felett lenyomva tartjuk a jobb egérgombot, el tudjuk mozdítani. Mindaddig mozgathatjuk, amíg nem adunk ki egy stopDrag utasítást az egérgomb felengedésekor, ami nem más mint az on(release) esemény. Indítsuk el próbaképpen az animációt (Ctrl+Enter). Láthatjuk, hogy labdát már meg tudjuk fogni, de elmozdításkor össze-vissza ugrál:

Az onClipEvent eseménykezelőben elhelyezett kód próbál végrahajtódni, egyszerűen kapcsoljuk ki amikor a labdát megfogtuk, hiszen akkor nincs rá szükségünk. A pirossal jelölt sorokkal bővítsük ki a kódot:

onClipEvent(load) {
     gravitacio = 3;
     sebesseg = 0;
     fold = 350;
     drag = false;
}

onClipEvent(enterFrame) {
     if (drag == false) {
          sebesseg += gravitacio;
          pozicio = _y + sebesseg;
          if (pozicio > fold) {
               _y = fold;
               sebesseg = -sebesseg*0.8;
          } else {
               _y += sebesseg;
         }
     }
}

on (press) {
     startDrag("", true);
     drag = true;
}

on (release) {
     stopDrag();
     drag = false;
}

A drag változó true értéket kap amikor mozgatjuk a labdát és azalatt nem hajtódik végre a labda szabadesését vezérlő kódrész. Amint eleresztjük a labdát és a drag változó false értéket vesz fel, működésbe lép a kód, a labda elvégzi a szabadasést (labda18.fla). Próbáljuk különböző magasságokból elejteni a labdát, ami pattogás közben is nyakon csíphető.

Drag terület korlátozása

Láthattunk egy példát a startDrag, stopDrag utasítások használatára és talán még annyit érdemes megemlíteni, hogy határokat is megszabhatunk a drag-elt objektum mozgásának. A startDrag utasításban kell megadnunk a paramétereket, vagyis a határkoordinátákat. Módosítsuk a kódot, hogy a labdát ne tudjuk a színpadon kívül drag-elni (labda19.fla):

on (press) {
     startDrag("", true,40,40,560,360);
     drag = true;
}

Következzenek a rugós és a rezgő mozgások! A következő lapot kérem...

 
       
 
 

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