Нативный EventDispatcher в старлинге
Запилил в очередной раз нативный диспатчинг - версия 2.
теперь ещё более нативный)
https://github.com/k0t0vich/Starling...ative-dispatch
https://github.com/k0t0vich/feathers...ative-dispatch
пример юзания
https://gist.github.com/k0t0vich/7642622
Пришлось отазаться от пулинга, но, имхо, это не так страшно.
Клонирование, хоть и есть, но только в баблинге и для тех объектов, у которых есть подписчики.
В общем, надо тестить по производительности и памяти и сравнивать с непатченым старлингом.
Соберусь с мыслями (и переводом) и пошлю даниэлю и джошуа пулреквесты на посмотреть..
Особенности реализации:
1. useCapture не работает и шлёт Error
2. useWeakReference работает нормально - единственный баг - если его использовать, то
removeEventListeners не удалит этот листенер. Надо удалять вручную или понадеяться на GC.
Впрочем, это не коснётся старых проектов на старлинге, т.к. там вообще не было викреференсов.
3. Все листенеры должны иметь 1 параметр event.
Я исправил в физерсе и старлинге где юзались 0 или 2.
Но в своих проектах надо будет самим исправлять.
PS. ревью кода, комментарии, тесты, критика и прочие холивары категорически приветствуются.
Также, прошу помощи в переводе на инглиш этого опуса.
Надо написать на http://forum.starling-framework.org/...tcher-conflict
Всего комментариев 5
Комментарии
28.11.2013 00:29 | |
Цитата:
Пулинг обязательно нужен — TouchEvent'ов фигачится много и они бабблятся.
|
|
Обновил(-а) Котяра 28.11.2013 в 02:08
|
12.12.2013 13:42 | |
Дима, я знаю, что ты много чего накрутил поверх старлинга и физерса)
Я к тебе ещё зайду. Фишка была в том, чтобы законтрибутить реализацию. в Starling 2.0. Но видимо не судьба. |
Последние записи от Котяра
- Страх и ненависть в Нью-Дели или сборка мультипака для arm7 и x86 c Adobe AIR 14 в FB (16.06.2014)
- Нативный EventDispatcher в старлинге (27.11.2013)
- Нужны ошибки компиляции при создании экземпляра синглетона извне? Запросто! (13.09.2013)
- ARP - новый формат упаковки ресурсов (07.02.2013)
- DropShadowFilter и GlowFilter в Starling (16.01.2013)