![]() |
Sptite and EventListener ADDED
Есть спрайт в который время от времени добавляются объекты.
При добавлении или изменении объекта в этом спрайте надо вызвать событие. Пробовал слушать события:ADDED, CANCEL, COMPLETE, RENDER, RESIZE. Все кроме ADDED молчат на изменения или добавления в существующий объект новый объектов. А ADDED зацикливается вызывая событее тучу раз. Код:
tSource.addEventListener(Event.ADDED,refScroll);Может кто-нибуть разъяснить почему вылетает и какое событие правильней слушать EventListener-ом на изменения в спрайте или мувиклипе? |
Скорее всего вы создали рекурсию своим кодом, вот и всё.
|
Я понимаю что создал рекурсию.
Так-как при пере добавлении tSource на сцену сново вызывается событие ADDED. Но вопрос в том как повесить EventListener чтобы он вызывался только для изменений внутри объекта (для всех его детей и детей их детей ) а не при добавлении самого объекта. Пока делаю removeEventListener перед пере добавлением, но в моем случае это костыль. |
Ну наверное:
Код:
if (evt.currentTarget == evt.target) |
wvxvw, тогда событие вызовется, если добавился сам клип, а не его дети :)
Код:
if ( ( event.target as DisplayObject ).parent === event.currentTarget ) { |
Ок, не было возможности проверить =)
ЗЫ. а зачем === ? |
wvxvw, долго объяснять. в общем можешь считать "чтоб наверняка", а на будущие все объекты сравнивай именно так. только простые типы сравнивай обычным равно.
|
А еще, насколько я помню, === быстрее работает=)
|
BlooDHounD, давно хотел разобраться с тождественным равенством.
Можно пример/где прочитать почему нужно использовать === вместо == |
DarkLight, ага. потому что он сравнивает адреса в памяти.
terbooter, в хелпе много букф. не поймёте - приходите расскажу. |
| Часовой пояс GMT +4, время: 21:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.