May 25
Move (1 rész) - AS3
Posted by dody Design | Comments: no responsesElkészítünk egy alap mozgató osztályt majd a következő részekben újabb és újabb dolgokkal egészítjük ki.
Kezdésnek nézzük meg hogy hozunk létre osztályokat és miért jó nekünk ha osztályt hozunk létre nem pedig közvetlenül framere írjuk a kódunkat.
Amire szükséged lesz az egy Flash CS3 és egy kis programozási tudásra (minimális kell hozzá).
Osztály létrehozása AS3-ban.
1. Létre kell hoznunk egy ActionScript (.as) file-t és egy Flash File (.fla) -t. Az elsőnek a neve az osztályunk neve legyen, például mover.as , a Flash File neve lényegtelen, de egy könyvtárba tedd őket. (lehet máshova is, de azt később)
2. A mover.as file-ba a következő sorokat kell beírnod:
package {
public class mover{
public function mover(){
trace(”mover osztály létrehozva”);
}
}
}
A mover az osztályunk neve amint azt láthatod a “public class” sorban. Az első funkciónk a construktor (azaz amit létrehozáskor lefuttat). Ez szintúgy az osztályunk nevét kapja (különben 1180 -as error üzenetet kapsz).
3. Az .fla -ba a következő sor beírásakor a mover osztály constructora fog lefutni így megkapod üzenetként (F2), hogy “mover osztály létrehozva”.
var myMover:mover = new mover();
vagy meghívhatod így is:
var myMover:mover
myMover = new mover()
4. A mover osztályt folytatva a következőkkel kell kiegészíteni:
Szükségünk lesz arra, hogy meg tudjuk adni milyen MovieClipet szeretnénk mozgatni és hogy mekkora értékkel szeretnénk odébbtolni. Valamint betehetjük azt is, hogy milyen kezdőpozicióról induljon.
5. A mover.as file-t kiegészítjük a következőkkel:
package {
import flash.display.MovieClip
public class mover{
public var targetMC:MovieClip
public function mover(targetMC:MovieClip,xStart:Number, yStart:Number){
this.targetMC=targetMC
this.targetMC.x=xStart
this.targetMC.y=yStart
}
public function startMove():void{
trace(this.targetMC.name)
}
}
}
A Constructor kapott 3 paramétert. Első a mozi amit mozgatni fogunk, második - harmadik a kezdőpozició. Ezeket eltároljuk a példány saját értékeként. Létrehozunk egy publikus funkciót ahol majd elindítjuk a mozgást.
Az FLA -ba hozzunk létre egy új symbolt (MovieClipet) és adjuk neki a probaMC instant nevet. A frame scriptet pedig erre módosítsuk:
var myMover:mover = new mover(probaMC, 20, 20);
myMover.stargMove()
vagy meghívhatod így is:
var myMover:mover
myMover = new mover(probaMC, 20, 20);
myMover.startMove()
Az MC instant nevét kapjuk vissza. Tehát megvan az első és az utolsó feltétel.
6. Végül fejezzük be az osztályunkat. A mover.as filet egészítsük tovább a következőkkel:
package {
import flash.display.MovieClip
import flash.events.Event
public class proba{
public var targetMC:MovieClip
public var xMod:Number
public var yMod:Number
public function proba(targetMC:MovieClip,xStart:Number, yStart:Number){
this.targetMC=targetMC
this.targetMC.x=xStart
this.targetMC.y=yStart
}
protected function updatePoz(event:Event):void{
this.targetMC.x+=this.xMod
this.targetMC.y+=this.yMod
}
public function startMove(xMod:Number,yMod:Number):void{
this.xMod=xMod
this.yMod=yMod
this.targetMC.addEventListener(Event.ENTER_FRAME, updatePoz)
}
}
}
A startMove -ban megadjuk a példány “gyorsaságát” azaz a pozició változását. Majd hozzáadunk egy eseményfigyelőt ami minden frame -re meghívja az updatePoz fügvényt ami növeli a cél MovieClip x és y értékét a megadott “gyorsasággal”.
Az FLA -t ki kell egészíteni annyival hogy a startMove megkapja a plusz értékeket.
var myMover:mover
myMover = new mover(probaMC, 20, 20);
myMover.startMove(1,1)




Post your opinion