Ik heb een ernstige ruzie met actionscript 2.. ik weet dat ik beter 3 kan gaan gebruiken maar ik ben genoodzaakt 2 te gebruiken omdat op onze school/werk er 2.0 gebruikt wordt..
anyway.. ik heb hier een situatie die misschien voor de doorgewinterde AS-scripter / OOP specialist is bedoeld.. als je me kan helpen dan supergraag..
hypothetische minimum case:
men neme een class die er ongeveer zo uitziet.. een class die een movieclip extend:
deze klasse, wanneer aangeroepen met een string voor naamgeving, moet dus een movieclip aanmaken op de mainstage.. en daar wil ik dan direct controle over hebben doormiddel van de klasse..
*** ik return nu in de klasse de aangemaakte movieclip omdat ik weet dat je met new MovieClip() geen movieclips kunt aanmaken in as2.. daar was ik al achter.. met deze return hoopte ik dus dat ik op zijn minst een declaratie kan doen of iets zodat ik tenminste een movieclip waar ik mijn eigenschappen, methods etc aan kan hangen.. ik leg het misschien wat vreemd uit maar hieronder een situatie zoals ik het graag zou willen en wat denk ik ook logische OOP manier is:
Wie kan helpen hier iets zinnigs van te maken en as2 compatible??
edit: ik heb uiteraard ook geprobeerd:
ipv de return die ik nu doe.. maar dat werkt niet.. dat was ideaal geweest.. iemand een workaround?

anyway.. ik heb hier een situatie die misschien voor de doorgewinterde AS-scripter / OOP specialist is bedoeld.. als je me kan helpen dan supergraag..
hypothetische minimum case:
men neme een class die er ongeveer zo uitziet.. een class die een movieclip extend:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| class Creature extends MovieClip{ var health:Number; var size:String; function Creature(var creatureName:String){ //constructor _root.createEmptyMovieClip(creatureName,0); _root[creatureName].attachMovie(creatureName+"_idle","mc_idle",1); health = 100; size = "whatever"; walkYouDumbCow(); return _root.[creatureName]; // *** zie opmerking onder! } public function attack(){ // blabla } public function runAway(){ // yadaya } private function walkYouDumbCow(){ // random walking around blabla } } |
deze klasse, wanneer aangeroepen met een string voor naamgeving, moet dus een movieclip aanmaken op de mainstage.. en daar wil ik dan direct controle over hebben doormiddel van de klasse..
*** ik return nu in de klasse de aangemaakte movieclip omdat ik weet dat je met new MovieClip() geen movieclips kunt aanmaken in as2.. daar was ik al achter.. met deze return hoopte ik dus dat ik op zijn minst een declaratie kan doen of iets zodat ik tenminste een movieclip waar ik mijn eigenschappen, methods etc aan kan hangen.. ik leg het misschien wat vreemd uit maar hieronder een situatie zoals ik het graag zou willen en wat denk ik ook logische OOP manier is:
code:
1
2
3
4
5
6
7
8
9
10
| var beestjeStout:Creature = new Creature("angryCreature"); var beestjeLief:Creature = new Creature("evasiveCreative"); if(beestjeStout.hitTest(beestjeLief._x,beestjeLief._y,true)){ beestjeStout.attack(); beestjeLief.runAway(); } trace("zelfs dit werkt niet en geeft undefined: "+beestjeStout._x); trace("zelfs dit werkt niet en geeft undefined: "+beestjeLief._y); trace("zelfs dit werkt niet !!!: "+beestjeStout.health); |
Wie kan helpen hier iets zinnigs van te maken en as2 compatible??
edit: ik heb uiteraard ook geprobeerd:
code:
1
| this = _root.[creatureName]; |
ipv de return die ik nu doe.. maar dat werkt niet.. dat was ideaal geweest.. iemand een workaround?
[ Voor 4% gewijzigd door Verwijderd op 30-01-2010 14:19 ]