2011-07-13 8 views
3

私はムービークリップを持っています。これは "myMC"と呼ばれています。これは非常に長く(5,000フレーム)、何十ものネストされたムービークリップが子として "myMC"に追加/削除されています。ネストされたクリップを参照することなく表示リストからMovieClipの追加/削除を監視するイベント?

、私はmyMCにリスナーを追加して、オブジェクトが追加されたときに/それ(Event.ADDEDの線に沿って何か)から取り外すために聞くことができる方法はありますか?

答えて

-1

はいできます。親にEvent.ADDEDのイベントリスナーを追加してください。MovieClip子が追加されると、ADDEDイベントがバブルアップしてハンドラを起動します。ハンドラからevent.targetプロパティを読み取って、特定の子インスタンスを取得できます。

+0

間違っていると、event.targetに最近追加されたムービークリップが含まれません。 – Artemix

4

Event.ADDEDおよびEvent.REMOVEDがお手伝いします。

Thiseイベントはbubblingなので、直接の親を聞く必要はありません。以下の例に示すように、これらのイベントをすべての祖先で捕捉することができます。

import flash.events.Event; 
import flash.display.Sprite; 

var onAdded:Function = function (event:Event) : void 
{ 
    // event.target references the display object being added 
    trace(event.type +": '" + event.target.name+"'"); 
} 

var onRemoved:Function = function (event:Event) : void 
{ 
    // event.target references the display object being removed 
    trace(event.type+": '" + event.target.name+"'"); 
} 

addEventListener(Event.ADDED, onAdded); 
addEventListener(Event.REMOVED, onRemoved); 

var container:Sprite = new Sprite(); 
container.name = 'Container here' 
addChild(container); 

var test:Sprite = new Sprite(); 
test.name = "I am the one!"; 
container.addChild(test); 
container.removeChild(test); 

/* 
added: 'Container here' 
added: 'I am the one!' 
removed: 'I am the one!' 
*/ 
関連する問題