2012-04-11 5 views
0

ステージにロードするすべてのムービークリップを配列にする方法はありますか?AS3は1つの変数を使用してすべてのムービークリップをロードします

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!")} 

私は3つの映画クリップがあります。これは、cartoonEasy、cartoonMedium、およびcartoonHardです。 私はそれらのうちの1つをステージに追加しますが、変数は変わります。 私はそれらをただ1つの変数だけを使って作る方法ですか?それは配列を使用していますか?

私はライブラリから呼び出されたムービークリップの1の中のオブジェクトを1つの変数で簡単に制御できます。

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

答えて

0

実際にアレイを使用することができる:

私が考えていることは、このようなものです。私はthrow new Error("message");ではなくtrace("error")を使用することをお勧めし

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:あなたがこれを行うことができ、これらのオブジェクトのすべてにコードを適用するには

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

+0

が、これは私が必要とするだけのステージにちょうど1 MCのである...すべてのMCに追加されます... – pizza0502

+0

pizza0502 @次に、あなただけの 'はaddChild行うことができます(c1Allを[0]); '第1に' c1All [1] 'を追加するなど – 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; 
関連する問題