PDA

Volledige versie bekijken : variable toevoegen aan sprite


Lanceee
%Europe/Berlin %431 %2008, 11:21
Met AS2.0 kon je het volgende:

var mc:MovieClip = _root.createEmptyMovieClip(....);
mc.var1 = "hallo";

NU:
---

Hoe doen we dat in as3.0 met sprite ??

var s:sprite = new sprite();
s.var1 = "hallo"; // Geeft logisch een error
addChild(s);

Bedankt!

Jan
%Europe/Berlin %515 %2008, 13:22
Gebruik de MovieClip class. (Die is (nog) niet sealed in AS3)
Of maak een dynamic class die Sprite extend.

Groeten,
http://users.telenet.be/jansurf/cwo.pngJan

theFlashWizard
%Europe/Berlin %530 %2008, 13:43
adnez,
Dat is nou net niet de manier.

Je zou een subclass moeten maken van Sprite en hierin deze property moeten beschrijven. Zo weet iedereen dat die property er is en wat erin zit.
Dit maakt je code veel duidelijker en robuster.

Jan
%Europe/Berlin %537 %2008, 13:54
Helemaal mee akkoord.
Maar als de vraagsteller wil kunnen doen wat (niet zo netjes) in AS2 kon: 'zomaar' eenderwelke member toevoegen dan leek me dat de meest voor de hand liggende oplossing. (Maar niet de meest aangewezen nee) :)

Groeten,
http://users.telenet.be/jansurf/cwo.pngJan

Lanceee
%Europe/Berlin %539 %2008, 13:56
Of maak een dynamic class die Sprite extend.

Hoe zou u die klasse uitbreiden?:

dynamic class ExtSprite extends Sprite {
public function ExtSprite() {
//en nu?
}
}
...

private var es:ExtSprite = new ExtSprite();


EDIT********
Ik wil de meest juiste manier eigenlijk, dus als het anders moet, zeg maar !

Anti
%Europe/Berlin %543 %2008, 14:02
public class ExtSprite extends Sprite {

//private propertie
private var p_prop:int;

//default constructor
public function ExtSprit():void{}

//public propertie
public function get prop():int{return p_prop;}
public function set prop(value:int):void{p_prop = value;}

}




//declaratie en initialisatie
private var es:ExtSprite = new ExtSprite();

//set propertie
es.prop = 12;

Lanceee
%Europe/Berlin %649 %2008, 16:35
OK bedankt!