![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2012
Сообщений: 66
|
package { import flash.display.MovieClip; import flash.events.KeyboardEvent; import flash.events.Event; import flash.display.Sprite; import flash.events.MouseEvent; public class GS_MAIN extends MovieClip { public function GS_MAIN() { // constructor code addEventListener(KeyboardEvent.KEY_DOWN, keyIsDown) } function keyIsDown(e:KeyboardEvent) { trace("SDG"); } } } что может быть не так??? |
|
|||||
|
Проблема в том, что чтобы ваш мувик перехватывал события клавиатуры он должен быть в фокусе. Попробуйте кликнуть на нем мышью, а затем нажимайте клавиши.
Чтобы приложение вообще перехватывало события клавиатуры слушатель нужно вешать на сцену ( конечно приложение должно быть в фокусе, т.е. до этого пользователь должен кликнуть в области окна приложения). примерно так: В момент назначения слушателя объект ( этот ваш мувик ) должен находиться на сцене, т.е. его свойство stage не должно быть равным null. *Код у вас очень неряшливый |
|
|||||
|
Регистрация: Jul 2012
Сообщений: 66
|
1 - можно подробнее о stage?. что-то не очень могу разобраться, как обратиться к этому объекту. правильно ли я понимаю, что к стейдж можно обратиться из основного класса через this.stage? надо ли что-то импортировать ( у меня не получалось обращаться к stage методом stage.addEventListener...)
2 - В момент назначения слушателя объект ( этот ваш мувик ) должен находиться на сцене. это означает, что нужно добавлять слушатель после события added to stage? 3 - есть ли возможность программно добавить мувик в фокус? 4 - что нереляшливого в моем коде?)? |
|
|||||
|
Цитата:
через объект добавленный на сцену, типа myMovieClip.stage, this.stage и пр. И только после добавления этого объекта в список отображения ( когда он на сцене, виден в окне приложения). Импорты никакие не нужны. Нет. Такой возможности нет. Мелочи, где то откр. скобка на той же строке, где то снесена - код должен быть единообразным, иначе самому читать будет трудно. Где то команда не завершена ";", метод не возвращающий результат должен быть обозначен ":void" . Здесь просто затрудняет чтение, а в некоторых языках такой подход вообще не даст скомпилировать приложение.... |
|
|||||
|
Регистрация: Jul 2012
Сообщений: 66
|
спасибо большое, за информативный ответ)
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Wolsh, конечно, я просто ответил на вопрос про фокус и объект. Ведь выше сказали, что это невозможно и я решил поправить эту информацию, чтобы топикстартер был в курсе, вдруг пригодится когда нибудь.
Последний раз редактировалось samana; 18.08.2012 в 14:43. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
samana, так и я не к Вам придираюсь, а говорю что это не решение для топикстартера, по той причине что он спросил о программном назначении фокуса как о решении проблемы. Если прозвучало иначе, извините.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:35. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|