私はムービークリップを持っています。これは "myMC"と呼ばれています。これは非常に長く(5,000フレーム)、何十ものネストされたムービークリップが子として "myMC"に追加/削除されています。ネストされたクリップを参照することなく表示リストからMovieClipの追加/削除を監視するイベント?
、私はmyMCにリスナーを追加して、オブジェクトが追加されたときに/それ(Event.ADDEDの線に沿って何か)から取り外すために聞くことができる方法はありますか?
私はムービークリップを持っています。これは "myMC"と呼ばれています。これは非常に長く(5,000フレーム)、何十ものネストされたムービークリップが子として "myMC"に追加/削除されています。ネストされたクリップを参照することなく表示リストからMovieClipの追加/削除を監視するイベント?
、私はmyMCにリスナーを追加して、オブジェクトが追加されたときに/それ(Event.ADDEDの線に沿って何か)から取り外すために聞くことができる方法はありますか?
はいできます。親にEvent.ADDED
のイベントリスナーを追加してください。MovieClip
子が追加されると、ADDED
イベントがバブルアップしてハンドラを起動します。ハンドラからevent.target
プロパティを読み取って、特定の子インスタンスを取得できます。
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!'
*/
間違っていると、event.targetに最近追加されたムービークリップが含まれません。 – Artemix