Управление памятью AS3 - PullRequest
0 голосов
/ 03 июля 2010

Мое приложение AS3 в основном делает следующее (псевдокод из класса основного приложения) 3 или 4 раза, добавляя пользовательские объекты в stage:

_movieClipClassVariable = new MyCustomSpriteSubclass();     
_movieClipClassVariable.addEventListener(MyEvents.READY, function(event:Event):void {
            _hideLoading();
            mcHolder.addChild(_movieClipClassVariable);                               
        });                     

_movieClipClassVariable.addEventListener(MouseEvent.CLICK, myClickHandler); 


private function coverClickHandler(event:Event):void
{           
    ...
}

Как правильно разрешить сборку мусора _movieClipClassVariable после не надо?Назначить null ему?Удалить всех слушателей?Использовать слабую ссылку для слушателей?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 03 июля 2010

Я бы сказал все вышеперечисленное.

Рекомендую прочитать Грант Скиннерс о ресурсах . Также посмотрите на его слайды из его выступления по управлению ресурсами .

На эту тему имеется довольно много информации, и эти две ссылки - лучшие из найденных мной ресурсов.

0 голосов
/ 03 июля 2010

Чтобы воспользоваться сборщиком мусора, вы должны учитывать:

  1. Не определяется методы-обработчики внутри вызова X.addEventListener ()
  2. Удалить все прослушиватели событий на объекте, который вы хотите освободить из памяти
  3. Сделать объект нулевым 4. (опционально) вы можете принудительно вызвать сборщик мусора system.gc();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...