Пересылка событий в ActionScript 3 запрещена? - PullRequest
1 голос
/ 03 марта 2010

Если я сделаю это

stuff.addEventListener(FooEvent.NAME, function(e:FooEvent) {
   dispatchEvent(e);
}

Я получаю сообщение об ошибке выполнения, в котором говорится, что событие не может быть преобразовано в FooEvent. Тем не менее, это работает нормально, если я делаю:

stuff.addEventListener(FooEvent.NAME, function(e:FooEvent) {
   dispatchEvent(new FooEvent(e.things));
}

Почему?

1 Ответ

3 голосов
/ 03 марта 2010

dispatchEvent вызывает clone переданного события, если это событие уже «используется» (т.е. отправлено). Исходя из того, что вы говорите, я совершенно уверен, что вы не переопределили clone -метод *1003* и, таким образом, он использует реализацию Event, которая возвращает простой ваниль Event. Это источник вашей ошибки.

Вам необходимо переопределить метод clone в FooEvent, чтобы вернуть соответствующие экземпляры FooEvent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...