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 несрабатывает?