2011-08-04 3 views
1

ステージですべてのMCを取得するにはどうすればよいですか?AS3のステージですべてのMCを取得するにはどうすればよいですか?

私は私の段階で、それは私のシナリオの選択したフレーム番号、あなたが持っている正確に何をほとんどその擬似コードのような 何か

for(i=0; nbOfChild ; i++) 
    if(stage.childAt(i) is MC and isInTheFrameWithLabel('foo')) 
    stage.childAt(i).addEventListerner(MyStuff) 

答えて

9

で可能かどうすべてのMovieClipの存在のためにaddEventListenerを呼び出したいです。 。

for(var i:int = 0; i<numChildren; i++) 
{ 
    var e:DisplayObject = getChildAt(i); 
    if(e is MovieClip) 
    { 
     // do stuff with e 
     trace(e); 
    } 
} 

またトリッキートリックスターなると、このような何かを行うことができます:

/** 
* Iterate through MovieClips within a container and parse them through handler 
* @param container The container to iterate through and find MovieClips in 
* @param handler A function that accepts MovieClip as its only parameter 
*/ 
function each(container:DisplayObjectContainer, handler:Function):void 
{ 
    for(var i:int = 0; i<container.numChildren; i++) 
    { 
     var e:DisplayObject = container.getChildAt(i); 
     if(e is MovieClip) handler(e); 
    } 
} 

// Example 
each(this, function(mc:MovieClip):void 
{ 
    trace(mc); 
    mc.x += 10; 
}); 
+0

おかげで –

+0

i

+0

@Ascension Systems何ですか?あなたが私がそれをしなければならないということを意味するならば、あなたは1人の子供だけで終わるでしょう:[オブジェクトMainTimeline] – Marty

0

あなたのような必要がありますので、あなたも、イベントをトリガしているムービークリップを知るために、アレイにそれらのムービークリップをプッシュする必要があります:あなたは私だけのソリューション(同)を見つけ

var holdObjects:Array = new Array(); 
for(var i:int = 0; i<numChildren; i++) 
{ 
    var e:DisplayObject = getChildAt(i); 
    if(e is MovieClip) 
    { 
     // do stuff with e 
     trace(e); 
     e.addEventlistene(...); 
     holdObjects.push(e); 
    } 
} 
+2

ここで何をやっているのか少し詳細を教えてください。好奇心。つまり、イベントをトリガーしているMovieClipを知りたければ、リスナー関数に解析しているイベントで** target **プロパティを使用できます。 – Marty

+0

なぜ私はそれのための配列を使用するのか分かりません? –

関連する問題