2012-04-11 1 views
0

Gibt es eine Möglichkeit, alle MovieClips, die ich auf der Bühne in ein Array laden möchte, zu erstellen?AS3 verwenden Sie eine Variable, um alle MovieClips zu laden

if (selectDiffText.text == "Collection 1 Easy") 
    { 
     var c1_easy:cartoonEasy = new cartoonEasy(); 
     addChild(c1_easy); 
     c1_easy.x = 412; 
     c1_easy.y = 400; 
     TweenMax.from(c1_easy, 0.5, {alpha:0, ease:Expo.easeOut}); 
    } 
    else if (selectDiffText.text == "Collection 1 Medium") 
    { 
     var c1_medium:cartoonMedium = new cartoonMedium(); 
     addChild(c1_medium); 
     c1_medium.x = 412; 
     c1_medium.y = 400; 
     TweenMax.from(c1_medium, 0.5, {alpha:0, ease:Expo.easeOut}); 
    } 
    else if (selectDiffText.text == "Collection 1 Hard") 
    { 
     var c1_hard:cartoonHard = new cartoonHard(); 
     addChild(c1_hard); 
     c1_hard.x = 412; 
     c1_hard.y = 400; 
     TweenMax.from(c1_hard, 0.5, {alpha:0, ease:Expo.easeOut}); 
    } 
else{trace("ERROR!")} 

jetzt habe ich 3 movieclip in der Bibliothek, die cartoonEasy, cartoonMedium und cartoonHard ist. Ich werde einen von ihnen in die Bühne, aber mit verschiedenen Variablen hinzufügen. ist es ein Weg, ich kann sie nur mit einer einzigen Variable machen? benutzt es Array?

weil wenn ich nur 1 Variable verwende, dann kann ich leicht Objekt innerhalb 1 des MovieClips steuern, den ich aus der Bibliothek angerufen habe.

, was ich denke ist wie folgt:

var c1_all:cartoonAll = new cartoonEasy() = new cartoonMedium() = new cartoonHard() 

Antwort

0

der Tat ein Array verwendet werden könnte.

var c1All:Array = [ 
    new cartoonEasy(), 
    new cartoonMedium(), 
    new cartoonHard() 
]; 

Um Ihren Code auf alle diese Objekte anwenden Sie dies tun können:

for each(var i:MovieClip in c1All) 
{ 
    addChild(i); 
    i.x = 412; 
    i.y = 400; 
    TweenMax.from(i, 0.5, {alpha:0, ease:Expo.easeOut}); 
} 

PS schlage ich throw new Error("message"); statt trace("error") verwenden.

+0

aber dies wird in allen MC hinzufügen ..., was ich brauche, ist nur 1 der MC nur auf die Bühne ... – pizza0502

+0

@ pizza0502 Dann können Sie einfach tun 'addChild (c1All [0]); 'das erste hinzufügen,' c1All [1] 'für das zweite usw. – Marty

1
function addCartoon(obj:*):void{ // might change * to DisplayObject 
    addChild(obj); 
    obj.x = 412; 
    obj.y = 400; 
    TweenMax.from(obj, 0.5, {alpha:0, ease:Expo.easeOut}); 
} 

var obj:*; 
switch (selectDiffText.text){ // use switch since it is clean code 
    case "Collection 1 Easy": 
    obj = new cartoonEasy(); 
    case "Collection 1 Medium": 
    obj = new cartoonMedium(); 
    case "Collection 1 Hard": 
    obj = new cartoonHard(); 
    default: 
    trace("ERROR!") 
} 
if(obj){ 
    addCartoon(obj); 
} 






// manipulating obj will change the item on stage. 
obj.x = 500;