![]() |
Event-callback-сироты
Я как-то не задумывался про зачистку памяти от событий и их callback-функций. Есть у меня примерно такой код:
Код:
mov.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {P.S. Естественно, если функция имеет свой дом (: я событие удаляю по нормальному перед удалением объекта. |
Это уже один из поводов никогда не использовать конструкцию из кода выше.
|
Нужно подписывать на нормальные функции.
|
Нужно подписывать не функции, а методы экземпляров класса.
|
Ну, я примерно так и думал, просто сложно отказать себе в JavaScript-стайл-программировании.
А на поставленный вопрос кто-нибудь ответит? (: Что случится, если всё-таки писать так, как в примере? |
Случится запор в памяти.
|
А если конструкция будет примерно следующая?..
Код:
mov.myNewMethod = function(e:MouseEvent):void { |
Если сможете отписаться, то не будет.
Но зачем использовать такие кривые конструкции? |
Ясно. А что в этих конструкциях кривого?
Не создавать же мне 50 своих классов только для того, чтобы сделать им 50 методов, отнаследовать 50 мувиков от этих классов, чтобы можно было нормально подписаться/отписаться на события. По моему кривая конструкция - у Гарбаж Коллектора. |
1. есть динамические классы.
2. что предпочтительно - вы ведь в любом случае создаете объект класса, так какая вам разница, будете вы создавать объекты типа Sprite или CustomSprite? Я не верю, что нужно 50 разных методов... скорее всего можно обойтись 2-3 разновидностями... ну десятком на крайняк, но их все равно нужно будет написать в таком случае, так что работы ну уж точно не прибавится. |
| Часовой пояс GMT +4, время: 23:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.