![]() |
слушатель и ф-ция
Всем привет.
Есть ли какая-то разница между назначением слушателя так Код:
addEventListener(Event.ENTER_FRAME, function (e){Код:
addEventListener(Event.ENTER_FRAME, step);У меня есть пример кода, использующий один из физ. движков. Так вот, при назначении слушателя первым способом все работает, а если назначить вторым - флеш зависает, приходится принудительно прекращать его работу. То же творится с standalone. Ошибки если и выдает, то прочитать не могу, т.к. не могу завершить выполнение флешки и оставить работающим flash ide. Подчеркну суть вопроса: какая разница для компилятора /интерпретатора между первым и вторым способом? |
Разница в том, что в 1м случае вы не сможете отписаться от слушателя, т.к. у функции нет имени. Вообще использование вложенных функций не есть гуд, т.к. они не вычищаются из памяти.
|
Много в чем ещё разница, видимость переменных в первом и втором случае разная например. Думаю поэтому собсно заметно по-разному работают.
|
arkadattx
прекрасно понимаю насчет не есть гуд. ) Но Вы говорите про разницу для разработчика, который в первом случае не сможет отписаться. Я спрашиваю про разницу для компилятора, который в первом случае выполняет код, а во втором - нет. -De- а еще? ) Переменные никакие не объявляю, зависание происходит при обращении к экземпляру класса физ. движка. |
Не зная кода сложно говорить о чем-то. Но сам факт того что с "не есть гуд" вариантом работает - говорит ИМХО не в пользу разработчика.
Что до компиллятора - не знаю что и как преобразует, в разницу в байткоде тоже не вникал. |
Дело не в "не обьявляю", а "не использую". Ну и да, без примера это гадание.
Напишите там на каждой строчке трейс, "дошло до такой-то строки, переменные такие-то" к примеру и уже загадочность уменьшится. |
отписаться можно, но ток внутри самой функции, ну или по ссылке какой нить если передать значения, в общем лучше стараться не пользоваться подобной конструкцией
|
|
| Часовой пояс GMT +4, время: 09:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.