ActionScript 3: добавление нескольких экземпляров одного и того же объекта на сцену и удаление каждого по отдельности
У меня есть фрагмент кода, добавляющий три сцены одного и того же мувиклипа на сцену. Я также добавил слушателя MouseEvent.CLICK. Как только кликнет любой из фрагментов ролика, я хочу, чтобы он был удален со сцены. Моя проблема заключается в том, что всякий раз, когда щелкает любой из элементов, удаляется только последний, а когда я снова нажимаю на другой экземпляр, я получаю:
ArgumentError: Ошибка № 2025: предоставленный объект DisplayObject должен быть дочерним по отношению к вызывающей стороне.
Я добавил эти три мувиклипа в массив, но я не знаю, как правильно определить, на какой экземпляр щелкнули, и удалить только указанный экземпляр.
Вот выдержка из кода, который у меня есть:
var myMC: SomeMC;
var myArray: Array = [];
function Loaded(e: Event): void {
for (var i: int = 0; i < 3; i++) {
myMC = new SomeMC();
myMC.addEventListener(MouseEvent.CLICK, Clicked);
myMC.y = 50;
myMC.x = 50 * i;
addChild(myMC);
myArray.push(myMC);
}
}
function imageClicked(e: MouseEvent){
// Only the last instance gets removed.
e.currentTarget.parent.removeChild(myMC);
}
Буду благодарен за любую помощь.
1 ответ
В Loaded
Функция, которую вы создаете 3 экземпляра объекта, но, выполнив:
myMC = new SomeMC();
Вы перезаписали ссылку. В первой итерации myMC
1-й, 2-й 2-й, и т. д...
Затем в imageClicked
Вы пытаетесь удалить это. Первый раз он работает, потому что ссылается на последний объект, но после того, как вы удалили его со сцены, он больше не будет работать.
Как насчет изменения e.currentTarget.parent.removeChild(myMC);
в e.currentTarget.parent.removeChild(e.currentTarget);
? Это должно удалить нажал один.