![]() |
|
||||||||||
|
|||||
|
Я не так делал, да и не суть важно уже.
Решил сделать с помощью focus private function start_game(level) { stage.focus=this; addEventListener(KeyboardEvent.KEY_DOWN,hero_fly); function hero_fly(e:KeyboardEvent):void { switch (e) { case Keyboard.UP : { trace("asdas"); y -= 5; break; } } } }; trace не выводит ничего. ![]() Последний раз редактировалось ndiezel; 25.04.2013 в 17:39. |
|
|||||
|
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Ваш код в первом сообщении должен нормально работать, скорее проблема в том что сама функция start_game не вызывается. Ну и лучше отдельно объявите hero_fly.
Что касается вашего последнего поста - а если этот ваш объект опять потеряет фокус ? Будете каждый раз вручную задавать ? Хотя я понятия не имею о том что и как у вас устроено в приложении, может и не потеряет. |
|
|||||
|
На объекте просто фокуса нет. Зачем так извращаться через instanse и прочее херню с передачей ссылок? Есть же хорошее событие, пишешь прям в том классе где слушатель вешаешь
Все работать будет. |
|
|||||
|
Там есть (была во всяком случае) багофитча флешплеера:
Если фокус был на спрайте, который снесли из списка отображения - фокуса нет нигде (и пока не кликнешь по флешке - никакие кнопки на стейдже не поймаешь) Решение: При старте вешаем вечный слушатель ENTER_FRAME на stage. Проверяем в слушателе stage.focus и если stage.focus == null, то делаем stage.focus = stage. |
|
|||||
|
Спасибо всем.
Решил через наведение фокуса на уровень, в котором идёт игра. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|