![]() |
Проблема со слушателем клавиатуры
Вложений: 1
Всем добрый день.
Собственно изучаю AS3 на основе нескольких скачаных уроков, в процессе создания приложения вылезла ошибка. Исходник прилагается. Суть ошибки - в файле keys.as в строках 10-11 не знаю как правильно подойти к прослушивателям событий, ибо первоначальный вариант(оставил в комментариях к коду) со stage выдаёт null(точнее Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"). |
Ну, как бы, все верно и stage здесь и не нужен. При таком раскладе все работает без проблем? Я проверить не могу, ибо IDE заболела и из вредности отказывается вкомпиливать классы и трейсить. Бегло просмотрел код, ошибок не заметил, но у вас на ball нет фокуса, оттого он и не получает событие.
И да, у вас все в классах, что не может не радовать глаз после вопросов о кадрах. Но используйте типизацию переменных. Нормальный компилятор такое даже не скомпилит. Затем конструкторы пишутся с Большой Буквы, а в конце вызова конструктора принято писать круглые скобки, все же это вызов метода. И еще одно - как добавляете что-то на сцену, лучше в конструкторе (объекта gg в данном случае) прописать слушателя Event.ADDED_TO_STAGE, тогда и стейдж будет у него определен. |
Вот основная поблема в том, что реакция на событие
keys.as Код AS3:
|
Я же сказал, что у вас нет фокуса на объекте, прочитайте про фокус.
|
Наверно я скажу глупость, но лучше всё же уточнить.
Программно фокус ставится Код AS3:
|
Самое простое - подписаться в классе gg на ADDED_TO_STAGE, затем приписать в том же классе
Код AS3:
Код AS3:
|
Заветная жёлтая рамка появилась вокруг шарика(gg который). Однако на команды с клавиатуры всё также не отвечает.
|
Где вы такие уроки нашли, что вся логика нелогично и нерационально разнесена в классах? Я переделал для FD, закомментил ненужности и выяснил, что слушатели клавиатуры не вешаются на нужный объект, хотя по коду, вроде бы, на него вешается (я еле-еле разобрался в разноименных переменных, являющимися ссылками на одни и те же объекты, когда можно использовать одну статическую ссылку (синглтон так синглтон)). Парадокс. Необходимо срочно рационально структурировать весь код, поубирать дубликаты ссылок и вместо флешного твина обратить внимание на Tween Max/Lite.
|
| Часовой пояс GMT +4, время: 23:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.