![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Вот кстати иллюстрация
![]() Везде так делаю.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Dukobpa3, а удаление слушателя?
private function changeLocation(locId:String):void { if (_sceneView) { _host.removeChild(_sceneView); _sceneView.removeEventListener(ViewEvent.CHANGE, onViewChange); // ??? _sceneView.destroy(); } _sceneView = new _scenes[locId]; _sceneView.addEventListener(ViewEvent.CHANGE, onViewChange); _host.addChildAt(_sceneView, 0); } |
|
|||||
|
Та то такое. Текущий проект, сегдня этот кусок писал, будет еще вылизываться.
Там не только в этом косяки с очистками и дестроями И дестрои то пустые по большей части, а там этих слушателей внутри мама не горюй. Потом всё скопом делать буду на этапе оптимизации.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
обычно примерно так:
class BaseComponent { _isFinalized : Boolean; public final function destroy():void { if(!_isFinalized) { finalize(); _isFinalized = true; } } protected function finalize():void { //empty } } Благодаря такой конструкции можно не опасаться за то, что финализация будет произведена несколько раз. По теме спора: Предпочитаю не давать детям самостоятельно удаляться. При этом при финализации обязательно ремувлю всех детей.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Цитата:
Есть пакеты: model view controller внутри соответственно то ч то там и должно быть Когда время пришло просто взять и прощелкать все вьюхи подряд и проверить адекватность дестроев. Не надо рыться по всему проекту вылавливая где чего забыл.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Бывает другая ситуация. Не важно mvc там или нет. Не удалил какой-нибудь слушатель, все вроде бы ок работает. А потом бац, событие пришло, слушатель отработал, дернул ссылку, а она уже ведет к объекту null. При этом другой такой объект уже создан, и сложно понять почему объект null, когда по всей логике он не null
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|