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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.04.2010, 19:33
engineer_f_R вне форума Посмотреть профиль Отправить личное сообщение для engineer_f_R Найти все сообщения от engineer_f_R
  № 1  
Ответить с цитированием
engineer_f_R

Регистрация: Oct 2009
Сообщений: 53
Question Реакция на нажатие клавиш.

Код AS3:
package 
{
	import flash.display.*;
 
	import flash.events.*;
	public class MainClass extends MovieClip
	{
		var keyboardControl:KeyboardControl = new KeyboardControl ();
 
 
 
		public function MainClass ()
		{
			addChild(keyboardControl);
		}
	}
 
}
Код AS3:
package {
	import flash.display.*;
	import flash.ui.*;
	import flash.events.*;
	import flash.events.KeyboardEvent;
 
	public class KeyboardControl extends MovieClip {
		var leftKeyIsDown:Boolean=false;
		var rightKeyIsDown:Boolean=false;
		var upKeyIsDown:Boolean=false;
		var downKeyIsDown:Boolean=false;
		var keyPressed:int;
 
 
		public function KeyboardControl():void {
			addEventListener(KeyboardEvent.KEY_DOWN, keyPressFunction);
			addEventListener(KeyboardEvent.KEY_UP, keyReleaseFunction);
 
		}
 
 
 
 
		function keyPressFunction(e:KeyboardEvent):void {
			trace("aaa");
			keyPressed=e.keyCode;
 
			if (keyPressed==Keyboard.RIGHT) {
				rightKeyIsDown=true;
				trace("aaa");
			}
			if (keyPressed==Keyboard.LEFT) {
				leftKeyIsDown=true;
			}
			if (keyPressed==Keyboard.UP) {
				upKeyIsDown=true;
			}
			if (keyPressed==Keyboard.DOWN) {
				downKeyIsDown=true;
			}
		}
 
 
		function keyReleaseFunction(e:KeyboardEvent):void {
			var keyReleaseCode:int=e.keyCode;
			if (keyReleaseCode==Keyboard.RIGHT) {
				rightKeyIsDown=false;
 
			}
			if (keyReleaseCode==Keyboard.LEFT) {
				leftKeyIsDown=false;
 
			}
			if (keyReleaseCode==Keyboard.UP) {
				upKeyIsDown=false;
			}
			if (keyReleaseCode==Keyboard.DOWN) {
				downKeyIsDown=false;
			}
		}
 
 
 
 
	}
 
}
Вот так пишу и никакой реакции на нажатие кнопочек. Что я делаю не так?

Старый 08.04.2010, 19:54
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Ваш мувик должен иметь фокус. Он есть? Его нету.
Подписывайте stage.

Старый 08.04.2010, 19:56
engineer_f_R вне форума Посмотреть профиль Отправить личное сообщение для engineer_f_R Найти все сообщения от engineer_f_R
  № 3  
Ответить с цитированием
engineer_f_R

Регистрация: Oct 2009
Сообщений: 53
Код AS3:
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressFunction);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleaseFunction);
если сделать так, то выдаётся ошибка:
Цитата:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at KeyboardControl()
at MainClass()

Старый 08.04.2010, 20:04
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 4  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
регистрируйте слушателя в главном классе или дожидайтесь события добавления дочернего класса на stage чтобы прикрепить к нему слушателя события клавиатуры.

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

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

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


 


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


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