Pravim jednu igricu i imam jednu "glavnu" klasu pod imenom "Aktori" i nju extenduju druge pod-klase "Turreti" "Avioni" i "Zgrade"... (igrica bi trebala da bude nešto kao turret defence)
Struktura je sledeća: u lybrary-u imam nekoliko muvi klipova koji su klase "Turet_1", "Turet_2"... (klase su "nepostojeće" - automatski generaisane) i svi extenduju klasu "Turreti".
E sad, napravio sam jedan XML fajl u koji hoću da storujem osobine svake vrste turreta. (i aviona, i zgrada...)
Mađutim, trenutno stvaranje novog aktora vršim preko univerzalne funkcije koja kao prvi parametar traži da se preda klasa tog objekta. Otprilike izgleda ovako:
Code:
function stvoriNovogAktora(klasa:Class, iks:Number, yps:Number, ...){
var aktor = new klasa();
this.addChild(aktor);
aktor.x = iks;
aktor.y = yps;
...
}
function stvoriNovogAktora(klasa:Class, iks:Number, yps:Number, ...){
var aktor = new klasa();
this.addChild(aktor);
aktor.x = iks;
aktor.y = yps;
...
}
I to sve radi super. Ja predam klasu objekta kao parametar (recimo "Turret_1") i funkcija napravi novog aktora adekvatne klase.
Međutim, ako sve osobine jednog aktora (recimo turreta) stavim u XML, i ako je jedan od attributa jednog XML noda u stvari naziv klase ("Turret_1") ja to ne mogu da predam kao parametar...
Ne pomaže ništa, čak ni kastovanje
Class(nazivKlase);
ni
Class(String(nazivKlase));
ni
nazivKlase as Class;
ni...
ma ništa ne pomaže...
Ima neka fora možda sa .constructor, ali mi ono iz helpa nije baš jasno o čemu se radi, ali pominje se tamo nešto iz ove oblasti.
Druga stvar (ako ovo ne znate) makar kako mogu da saznam koja je superklasa nekog objekta.
Recimo, uzmem neki "Turret_1" i kako da saznam da li je njegova superKlasa "Tureeti" ili "Avioni" ili "Zgrade"?
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)