Событие для мониторинга добавить / удалить MovieClips из списка отображения? - PullRequest
3 голосов
/ 14 июля 2011

У меня есть мувиклип, давайте назовем его «myMC», он очень длинный (5000 кадров), в течение которого многие десятки вложенных мувиклипов добавляются / удаляются как «дети» в «myMC».

Без ссылки на вложенные клипы , есть ли способ добавить слушателя в myMC и прослушивать, когда из него добавляется / удаляется объект (что-то вроде Event.ADDED)?

Ответы [ 2 ]

4 голосов
/ 14 июля 2011

Event.ADDED и Event.REMOVED помогут вам.

Эти события всплывают , поэтому нет необходимости слушать непосредственного родителя.Вы можете перехватить эти события у любого предка дисплея, как показано в примере ниже.

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!'
*/
0 голосов
/ 14 июля 2011

Да, вы можете.Просто добавьте прослушиватель событий для Event.ADDED к вашему родителю MovieClip.При добавлении детей события ADDED будут всплывать и вызывать ваш обработчик.Вы можете прочитать свойство event.target из вашего обработчика, чтобы получить конкретные дочерние экземпляры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...