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

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

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

Регистрация: Mar 2011
Сообщений: 7
По умолчанию Почему не работает условие event.keyCode == Keyboard.ENTER

Adobe Professional CS5 (11.0.0.485), AS3, Flash Player 11. Изучаю вообщем ActionScript.

Выполняю пример из руководства http://help.adobe.com/ru_RU/ActionSc...rogramming.pdf
страница 30-38, три раза всё удалял и делал заного...

Там решенный пример, который у меня почему то неработает. По заданию нужно в текстовое поле textIn набрать имя, нажать ENTER, скрипт сверяет это имя со списком имен из массива validNames. Если имя подходит, тогда в текстовое поле mainText пишется сообщение "Hello [name]".

свойства textIn - тип редактируемый, т.е. InputText в английской версии, и ещё во вкладке "контейнер и поток" поведение: однострочный ставлю (как в англ. версии я хз).

Загвостка в том, что по нажатию ENTER ничего не происходит.

код HelloWorld.fla (действие - первого кадра):
Код AS3:
import flash.ui.Keyboard;
 
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("");
 
mainText.border=true;
textIn.border = true;
 
textIn.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
 
function keyPressed(event:KeyboardEvent):void
{
	if (event.keyCode == Keyboard.ENTER)
	{
		mainText.text = myGreeter.sayHello(textIn.text);
	}
}
код Greeter.as:
Код AS3:
package
{
	public class Greeter
	{
		public static var validNames:Array = ["Sammy", "Frank", "Vova"];
 
		public function sayHello(userName:String = ""):String
		{
			var greeting:String;
			if (userName == "")
			{
				greeting = "Hello. Please type your user name, and then press the Enter key.";
			}
			else if (validName(userName))
			{
				greeting = "Hello, " + userName + ".";
			}
			else
			{
				greeting = "Sorry " + userName + ", you are not on the list.";
			}
			return greeting;
		}
		public static function validName(inputName:String = ""):Boolean
		{
			if (validNames.indexOf(inputName) > -1)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}
Я для теста в коде заменил event.keyCode == Keyboard.ENTER на event.keyCode == Keyboard.SPACE и всё работало корректно. Хм, но почему тогда ENTER несрабатывает?

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

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

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


 


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


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