Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как реализована событийная модель в AS3? (http://www.flasher.ru/forum/showthread.php?t=139673)

Gaen 08.05.2010 01:42

Проверил. Действительно, addEventListener ругается на null, что в принципе логично.

Я имел в виду, что если автор при реализации своего аналога addEventListener опустит проверку на null, приложение в итоге все равно корректно свалится, но только уже при обработке события. Хотя лучше конечно проверять сразу при подписывании, как это сделано во флэше.

gloomyBrain 08.05.2010 02:02

Цитата:

приложение в итоге все равно корректно свалится
Приложение к ActionScript имеет косвенное отношение =)
Просто захотелось разобраться (в корыстных целях) как оно выглядит "изнутри"

ЗЫ
Как так получается - что мы получаем объект по методу? То есть в addEventListener() мы указываем метод, и уже сразу знаем в каком объекте его вызывать. Этого я так и не понял. Видимо в методе (как в объекте) есть ссылка (доступная только для AVM) на экземпляр, которому он принадлежит. Как-то странно получается =)

wvxvw 08.05.2010 02:11

В AS3 функции - объекты, в Java - нет, ну на сколько я знаю.

gloomyBrain 08.05.2010 02:13

В java есть класс Method, но он в данном случае бесполезен, ибо как раз ссылки на объекта-обладателя (не класса, а объекта) не предоставляет =( *ушел плакать*

UPD
Ах вот оно что...

BlooDHounD 08.05.2010 02:24

gloomyBrain, и зачем Вам apply? Вы не в курсе, что у событий в АС3 фиксированная сигнатура?

gloomyBrain 08.05.2010 02:31

Ну там чуть пониже такая штука есть =)
Цитата:

public function broadcastEvent(evnt:String, ...args):void {
for(var i:uint = 0; i < listeners.length; i++) {
listeners[i][evnt].apply(listeners[i], args);
}
}
короче в java реализация такого возможна, но это D&G (дорого и глупо)


Часовой пояс GMT +4, время: 20:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.