![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Структура вложенности не имеет значения для сравнения скорости способа "подписывать родителя" и способа "подписывать каждого ребёнка". В ЛЮБОМ случае событие будет всплывать от того объекта где произошло, до самого верха иерархии отображения. В ЛЮБОМ случае на каждом "этаже" оно будет смотреть, есть ли листнер. В ЛЮБОМ случае листнер выполнится один раз.
Затраты на всплытие, проверки наличие листнера будут одинаковы, надеюсь это понятно. отличатся будут только затраты подписки/отписки. при 50 объектах вы 50 раз подпишите каждого ребёнка или один раз - родителя. вне зависимости от того является ли отец "дедом", "прадедом" и т.п. =)
__________________
Могу ошибаться... =) |
|
|||||
|
стервочка (я мужик)
|
mickfallout, думаешь с 3го раза станет понятнее?
![]() |
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
BlooDHounD, возможно =) в педагогике вроде считается что повторять надо 3 раза... =)
__________________
Могу ошибаться... =) |
|
|||||
|
Только ещё момент есть: например, по клику если подписан лишь родитель, а нужно получить дитё, которое лежит под мышкой нужно провести какие-то операции, например getObjectsUnderPoint, и в итоге мы получаем доп. нагрузку (пусть и мизерную, в другом случае это может быть чуть более существенно) в момент исполнения программы. Затрачивая больше памяти и подписывая все N объектов на клик мы загружаем ЦП единожды, во время подписки, а по клику сразу имеем нужный объект.
Я к тому, что нужно по задаче больше смотреть. Я слабо представляю, но могу допустить ситуацию в котором при каждом движении мыши надо производить какие-то нечеловеческие калькуляции математикой, чтобы узнать кто лежит внизу и тогда, наверное, подписка каждого объекта была бы предпочительней
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
stopPropagation наше всё.
|
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Цитата:
__________________
Могу ошибаться... =) |
|
|||||
|
стервочка (я мужик)
|
mickfallout, видимо он бредит. просто он ничего не знает о event.target.
|
|
|||||
|
в target, в currentTarget хранится тот, кого подписали на событие.
package { import flash.display.Sprite; import flash.events.MouseEvent; public class JustMain extends Sprite { public function JustMain() { super(); var spr:Sprite = new Sprite(); var spr2:Sprite = new Sprite(); var spr1:Sprite = new Sprite(); spr2.graphics.beginFill(23412343); spr2.graphics.drawRect(0, 0, 100, 100); spr2.graphics.endFill(); spr1.graphics.beginFill(23412343); spr1.graphics.drawRect(0, 0, 100, 100); spr1.graphics.endFill(); spr.addChild(spr2); spr.addChild(spr1); spr1.y = 200; super.addChild(spr); spr.addEventListener(MouseEvent.CLICK, onClick); } private function onClick(e:MouseEvent):void { (e.currentTarget as Sprite).x += 10; (e.target as Sprite).y += 10; } } }
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
да, я "оговорился" =)
__________________
Могу ошибаться... =) |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:00. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|