|
|
|||||
Регистрация: May 2011
Сообщений: 10
|
Удаление movieclip по событию.
Подскажите как отлавливать событие завершения клипа, и удалять его со сцены, пытался сделать так
import flash.display.MovieClip; import flash.events.Event; var l:int = 0; var w:int = box.width; var h:int = box.height; addEventListener(Event.ENTER_FRAME, onEnterFrame); function onEnterFrame(event:Event) { ++l; var d:wv = new wv(); d.name = "d"+ l; d.x = box.x + Math.random() * w;//ложим в случайную точку d.y = box.y + Math.random() * h;//на поверхности воды addChild(d); d.addEventListener(Event.EXIT_FRAME, removeframe); } function removeframe(myEvent:Event) { var DisOb:DisplayObject = DisplayObject(myEvent.target); var mov:MovieClip = DisOb as MovieClip; trace (mov.name); mov.removeEventListener(Event.ENTER_FRAME,removeframe); removeChild(mov);//getChildByName("") } Т.е в функцию removeframe заходит по несколько раз trace получаю. Цитата:
Пытался передалать код с As2 на AS3 отсюда |
|
|||||
Используйте MovieClip.addFrameScript(). Кажется как-то так:
var mc:MovieClip = new MyMovieClip(); mc.addFrameScript(mc.totalFrames - 1, remove, mc); function remove(mc:MovieClip):void { mc.addFrameScript(mc.totalFrames - 1, null); if (mc.parent) mc.parent.removeChild(mc); } Последний раз редактировалось bav; 09.12.2011 в 20:03. |
|
|||||
Не понял, что ты пытаешься сделать, но вот тут явно ошибка. Подписываешься на EXIT_FRAME, а отписаться пытаешься от ENTER_FRAME:
|
|
|||||
Регистрация: May 2011
Сообщений: 10
|
Цитата:
Попробовал как написал bav, немного изменив и получилось. Спасибо за помощь. На всякий случай исходник в приложении, вдруг кому понадобится. |
Часовой пояс GMT +4, время: 01:06. |
|
« Предыдущая тема | Следующая тема » |
|
|