Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   События и удаленные объекты (http://www.flasher.ru/forum/showthread.php?t=148933)

Stanq 14.01.2011 23:18

События и удаленные объекты
 
Есть объект, например

Код AS3:

package 
{
        import flash.display.MovieClip;
 
        public class TestObj extends MovieClip
        {
 
                public function TestObj() {
                      this.addEventListener(Event.ENTER_FRAME, TestFunct);
 
                }
                private function TestFunct(event:Event) {
                  // что-то делаем
                }
 
        }
 
}

В основном коде динамически создается
Код AS3:

var obj:TestObj = new TestObj();
this.addChild(obj);

А потом удаляется
Код AS3:

this.removeChild(obj);


Вопрос нужно ли удалять (removeEventListener) все события в объекте или в AS3 есть "сборщик мусора" и события удаляются вместе с объектами?

Не только ENTER_FRAME, а клики и т.д.

cleptoman 14.01.2011 23:27

ну, мышинные можно и не грохать, должны тереться сборщиком объекты, подписанные на них, если ссылок на них нет. а вот ентерфреймы, таймеры всяческие и твины лучше убивать и занулять

JackFromChaos 14.01.2011 23:49

Если я все правильно понимаю, если подписываться с useWeakReference=true, то все должно удаляться.
Код AS3:

this.addEventListener(Event.ENTER_FRAME, TestFunct,false,0,true);

Но я не проверял. :)

udaaff 14.01.2011 23:57

Цитата:

Сообщение от JackFromChaos (Сообщение 964738)
Если я все правильно понимаю, если подписываться с useWeakReference=true, то все должно удаляться.
Код AS3:

this.addEventListener(Event.ENTER_FRAME, TestFunct,false,0,true);

Но я не проверял. :)

Сборщик мусора итак пометит объект для удаления. Но когда он его загребет - это не известно. Поэтому от enterFrame нужно вручную отписаться перед удалением объекта.


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

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