May 25

  • english

Move (1 rész) – AS3

Posted by dody Design | Comments: no responses

Elké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)

Posted in Flash, Tutorial

Comments

So far, there are No Comments yet | Post your own comment
Avatar:

Itt regisztrálhatsz a Gracatar -ra. Ha ide regisztrálsz az e-mail címed segítségével, azonnal beillesztésre kerül az avatarod minden ezt használó oldalra. (Egyszeri regisztráció, SEMMI SPAM, Hírlevél!)


Post your opinion

About in Brief

Hy,
Dody vagyok, designere és HTML fejlesztője ennek a site-nak, amit most nézel. Most 27 vagyok és Budapesten (Magyarország) élek. Designer és Interaktív alkalmazásfejlesztő (Flash-Java Developer) vagyok. Jelenleg a szabadúszóként dolgozom. Szabadidőmben nyelveket tanulok és biciklizem...
[More...]