![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 12
|
Тело пишу под FrameRate, предварительно насовав кучу
boolean или int - функций среди var-ов. Само собой иногда приходится делать removeListener. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 1,724
|
я пишу третим способом
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 33
|
Цитата:
В языке си это обязательный параметр синтаксиса. ActionScript же куда более "лоялен" и подобное прощает. |
|
|||||
|
Я чаще делаю функции-хендлеры не private, а protected. Правда, в зависимости от случая.
Стиль названия - clickHandler или someObjectClickHandler (если не к this). Третий способ.
__________________
Дело не в тебе |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
|
|
|||||
|
[+1 08.07.09]
Регистрация: Mar 2009
Сообщений: 107
|
var mySp:Sprite = new Sprite(); mySp.addEventListener(Event.ENTER_FRAME, function(e:Event):void { trace('enter frame'); }); Я где-то прочитал, что если вызывать подобную конструкцию, то при каждом запуске события функция и все её содержимое создается заново, а предыдущая её версия не удаляется. Правда ли это? |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 33
|
Цитата:
А имя конструктора в си-подобных синтаксисах всегда такое же, как и имя класса - и только этого с лихвой хватает, чтобы не спутать конструктор ни с чем другим (к тому же можно смотреть так: ф-я, начинающаяся в большой буквы и есть конструктор). Ведь нельзя читать-воспринимать код класса вне его контекста. З.Ы. А в Delphi, например, конструктор определяется словам constructor. Цитата:
Детальнее: сам код/значение вычищается из памяти, когда на на него никто больше не ссылается. Грубо говоря, в данном примере на него ссылается EventListener. Когда он перестанет ссылаться, код удалится из памяти. Но чтобы он перестал ссылаться - нужно сделать removeEventListener. В этом примере вам это не удастся. Нужно иметь ссылки на ф-ю, которуй вы удаляете из EventListener. А ссылка эта в примере не сохраняется ни в какую переменную - она генерируется "на лету" и сразу в стек параметров. Поэтому вы не сможете ее узнать. Вот иной вариант: Но!!! Не используйте бездумно подобный код! Ибо за пределами видимости переменных mySp и f не будет! Учитывайте это! Последний раз редактировалось GydruS; 13.07.2009 в 06:22. |
|
|||||
|
стервочка (я мужик)
|
что-то тема анонимных функция часто плавает последних 2 недели...
http://www.flasher.ru/forum/showpost...77&postcount=7 http://www.flasher.ru/forum/showpost...4&postcount=19 |
|
|||||
|
У меня вопрос.
Просто к слову, почти оффтоп: function oneTimeHandler(e:Event){ //bla-bla var useCapture=(e.eventPhase==EventPhase.CAPTURING_PHASE)?true:false; e.target.removeEventListener(e.type,arguments.callee,useCapture); } А то у меня чувство, что я не до конца разобрался с т.н. Event flow'ом... |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|