Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   removeChild не работает (http://www.flasher.ru/forum/showthread.php?t=163625)

Лысый Червь 09.08.2011 23:24

removeChild не работает
 
Добрый вечер.
Пишу програму, которая должна загружать некоторые объекты на сцену, и, по необходимости, удалять.
код в классе:
Код AS3:

private function newBad(i:int,m:int):void{
                        u['bad'+i+''+m] = new bad();                                                       
                        addChild(u['bad'+i+''+m]);
                        u['bad'+i+''+m].addEventListener(bad._KILL,killBad);
                }               
                private function killBad (e):void{                       
                        removeChild(e.target);
                        e.target = null;                       
                }

возращает ошибку: ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.

что делать?

Bgg 09.08.2011 23:28

Читать документацию. Что же ещё?
Код AS3:

removeChild(e.currentTarget);

currentTarget

cleptoman 10.08.2011 08:38

тут вряд ли дело в target. трабла, скорее в том, что ваш BAD не умирает по 2 причинам + он продолжает диспатчить событие(это предположение).1 - не отписан от обработки события. 2 - не удален из массива.

попробуйте

Код AS3:

              private function killBad (e):void{
                        var bad:bad = e.target as bad;
                      bad.removeEventListener(bad._KILL,killBad);
                      //если u -массив, то:
                      u.splice(u.indexOf(bad),1);
                      //если u - Object, то предварительно присвойте своему инстансу свойство name и по нему занулите в обжекте.
                        removeChild(bad);
                        bad = null;                       
                }


Лысый Червь 11.08.2011 16:40

Спасибо большое. Я забыл снять слушатель событий, и возникала ошибка.


Часовой пояс GMT +4, время: 13:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.