Показать сообщение отдельно
Старый 29.03.2010, 22:36
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от tofflife Посмотреть сообщение
В Game.swf, в document-классе есть код:

Код AS3:
this.parent.addEventListener(KeyboardEvent.KEY_UP, onGlobalKeyUp);
//Пробовал так же this.addEventListener(KeyboardEvent.KEY_UP, onGlobalKeyUp);
И по каким-то причинам, при обычном запуске game.swf, обработчик срабатывает.
this.parent в этом случае равен Stage. Поздравляю! Вы подписались на глобальный диспетчер клавиатурных событий.


Цитата:
А если я пытаюсь загрузить её извне(см. код выше), т.е. из другой флешки, обработчик не вызывается...
Ну, тогда this равен loader.content, а this.parent соответственно равен loader. loader не имеет фокуса (т.е. this.stage.focus != loader), а значит, диспатчить события клавы loader не будет.

В обоих случаях достаточно добавить слушателя к stage:

Код AS3:
this.stage.addEventListener(KeyboardEvent.KEY_UP, onGlobalKeyUp);
естественно, убедившись в наличии этого this.stage.

Для флешек из разных доменов может произойти "упс"!
__________________
Воспитан в TimeZero. Работаю в Mail.ru.