Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.04.2013, 15:26
ndiezel вне форума Посмотреть профиль Отправить личное сообщение для ndiezel Посетить домашнюю страницу ndiezel Найти все сообщения от ndiezel
  № 1  
Ответить с цитированием
ndiezel
 
Аватар для ndiezel

Регистрация: Mar 2009
Адрес: Из города на Ингуле
Сообщений: 116
Отправить сообщение для ndiezel с помощью ICQ
По умолчанию Не работает KeyboardEvent

Здравствуйте.
Уже второй день бьюсь с каким-то не понятным мне глюком.

Код:
Код AS3:
private function start_game(level)
		{
			stage.addEventListener(KeyboardEvent.KEY_DOWN,hero_fly);
			function hero_fly(e:KeyboardEvent):void
			{
				trace("asdas");
				switch (e)
				{
				...
Запускаю - trace ничего не выводит при нажатии на клавиши. Функция hero_fly - не запускается.
библиотеки KeyboardEvent и Event - подключены.
Вставляю этот код в основной as файл - работает. Пишу в классе Main - не работает.

В чём может быть причина?

Старый 25.04.2013, 15:33
Deimos747 вне форума Посмотреть профиль Отправить личное сообщение для Deimos747 Найти все сообщения от Deimos747
  № 2  
Ответить с цитированием
Deimos747
 
Аватар для Deimos747

Регистрация: Mar 2011
Сообщений: 243
Проблема в том, что на объекте нет фокуса. Если вам нужен обработчик, который будет работать всегда, то подписывайтесь к stage приложения.

Старый 25.04.2013, 15:37
ndiezel вне форума Посмотреть профиль Отправить личное сообщение для ndiezel Посетить домашнюю страницу ndiezel Найти все сообщения от ndiezel
  № 3  
Ответить с цитированием
ndiezel
 
Аватар для ndiezel

Регистрация: Mar 2009
Адрес: Из города на Ингуле
Сообщений: 116
Отправить сообщение для ndiezel с помощью ICQ
Цитата:
Сообщение от Deimos747 Посмотреть сообщение
Проблема в том, что на объекте нет фокуса. Если вам нужен обработчик, который будет работать всегда, то подписывайтесь к stage приложения.
Нет, мне не нужен обработчик, который будет работать всегда.
Я правильно вас понял, что нужно фокус переместить на мувик, действия в котором мне нужно отслеживать?

Если это так, буду благодарен за пример.

Старый 25.04.2013, 15:37
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 4  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
Цитата:
Сообщение от ndiezel Посмотреть сообщение
Вставляю этот код в основной as файл - работает.
тоесть fla ?

вешай слушатели в конструкторе главного класа
Код AS3:
public function Main() {
     stage.addEventListener(KeyboardEvent.KEY_DOWN,hero_fly);
     .....
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 25.04.2013, 15:42
Deimos747 вне форума Посмотреть профиль Отправить личное сообщение для Deimos747 Найти все сообщения от Deimos747
  № 5  
Ответить с цитированием
Deimos747
 
Аватар для Deimos747

Регистрация: Mar 2011
Сообщений: 243
Вешайте обработчик на
Код AS3:
Main.instance.stage.addEventListener(KeyboardEvent.KEY_DOWN,hero_fly);
где в Main.as
Код AS3:
public static var instance: Main;
public function Main() {
     instance = this;
     .....
}

Старый 25.04.2013, 15:54
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
"Main.instance.stage" — зло.
__________________
hauts.ru

Старый 25.04.2013, 16:00
Deimos747 вне форума Посмотреть профиль Отправить личное сообщение для Deimos747 Найти все сообщения от Deimos747
  № 7  
Ответить с цитированием
Deimos747
 
Аватар для Deimos747

Регистрация: Mar 2011
Сообщений: 243
Цитата:
Сообщение от Hauts Посмотреть сообщение
"Main.instance.stage" — зло.
Не спорю, но другого простого способа не знаю. Написание KeyboardManager не в счёт.

Старый 25.04.2013, 16:06
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 8  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
но другого простого способа не знаю
Сделать что? иметь постоянную ссылку на Main или stage?

Для второго варианта любой экранный объект будет иметь на него ссылку после добавления на сцену.
Вообще не вижу необходимости в такой конструкции
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 25.04.2013, 16:18
ndiezel вне форума Посмотреть профиль Отправить личное сообщение для ndiezel Посетить домашнюю страницу ndiezel Найти все сообщения от ndiezel
  № 9  
Ответить с цитированием
ndiezel
 
Аватар для ndiezel

Регистрация: Mar 2009
Адрес: Из города на Ингуле
Сообщений: 116
Отправить сообщение для ndiezel с помощью ICQ
Цитата:
Сообщение от Deimos747 Посмотреть сообщение
Не спорю, но другого простого способа не знаю. Написание KeyboardManager не в счёт.
Что такое KeyboardManager ?

И эм...
Я не против "философских диспутов", но у меня тут код не работает. И что самое печальное - я никак не могу понять - почему?
Растолкуйте уж топикстартеру, пожалуйста.

Да и не работает у меня main.instance
Ошибку выдаёт компиллятор.

Старый 25.04.2013, 16:29
Deimos747 вне форума Посмотреть профиль Отправить личное сообщение для Deimos747 Найти все сообщения от Deimos747
  № 10  
Ответить с цитированием
Deimos747
 
Аватар для Deimos747

Регистрация: Mar 2011
Сообщений: 243
Напишите в главном классе аналогичный код
Цитата:
Сообщение от Deimos747 Посмотреть сообщение
Код AS3:
public static var instance: Main;
public function Main() {
     instance = this;
     .....
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:12.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.