обработа нажати клавиш

На саите нашел исходник чата на флеше + neko решил переделать его на флеш+php, но тут наткнулся на прблему. Немогу понять как обрабатывать нажатия клавиш в swf-version 9. В исходнике приведена вот такая запись

function onKeyDown () {
         ENTER pressed ?
        if ( flash.Key.getCode() == 13 ) {     
                var text = tf.text;
                tf.text = "";
                send (text);
        }
}

Она не работает. Не могли бы вы привести примерчик этого на flash 9 в смысле на haxe flash 9. Прочтение доков больших результатов не принесло...

stage.addEventListener(Keyboa

stage.addEventListener(KeyboardEvent.KEY_DOWN, aaas);

private function aaas(e:KeyboardEvent):void
{
switch (e.keyCode)
{
case 39 : ww.x += 21;break;
case 38 : ww.y += -21; break;
case 40 : ww.y += 21; break;
case 37: ww.x -= 21; break;
}
}

addEventListener(KeyboardEvent.KEY_DOWN, ...

пример видимо был для flash. Для flash9 изменения должны быть аналогичными, как если бы мы переписывали с ActionScript2 на ActionScript3.
Можно повесить на сцену слушателя событий клавиатуры:

stage.addEventListener(flash.events.KeyboardEvent.KEY_DOWN, onKeyDown);
ну и в его обработчике проверять что за клавиша была нажата:
function onKeyDown (e : flash.events.KeyboardEvent )
{
        if ( e.keyCode == Keyboard.ENTER )
        {
                // ...
        }
}

P.S. еще просьба на будущее - указывать ссылку на пример, о котором идет речь, чтобы при желании его можно было увидеть полностью.

как правильно

как правильно повесить этот addEventListener?)
вот полный код

// connect
// обмен сообщении с сервером
// дизаин
//import flash.net.URLLoader;
//import flash.net.URLRequest;
//import flash.text.TextField;
//import flash.text.TextFieldAutoSize;
//import flash.display.Stage;
//import flash.display.Sprite;
//import flash.events.Event;
//import flash.events.KeyboardEvent;
//import flash.events.IOErrorEvent;

import flash.display.Sprite;
import flash.events.Event;
import flash.Lib;
import flash.display.Loader;
import flash.events.KeyboardEvent;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.events.IOErrorEvent;

class Test {

var tf : TextField;
var log : TextField;
var online : TextField;
var name : String;

function new () {
        CreateGui ();
}

function CreateGui (){
        tf = new TextField ();
        tf.height = 20;
        tf.width = 500;
        tf.x = 0;
        tf.y = 110;
        tf.type = "input";
        tf.border = true;
        tf.background = true;
        tf.backgroundColor = 0xEEEEEE;
        tf.alwaysShowSelection = true;
        tf.setSelection (0, 9);
        flash.Lib.current.addChild (tf);
/////////////////////////////////////////////////////////////////////////////
        log = new TextField ();
        log.background = true;
        log.backgroundColor = 0xFFFFFF;
        log.border = true;
        log.multiline = true;
        log.height = 100;
        log.width = 500;
        log.x = 0;
        log.y = 0;
        flash.Lib.current.addChild (log);
        display ("Please enter your name in the bottom textfield to login and press ENTER");
        ////////////////////////////////////////////////////////////////////////////
        online = new TextField ();
        online.background = true;
        online.backgroundColor = 0xFFFFFF;
        online.border = true;
        online.multiline = true;
        online.height = 100;
        online.width = 100;
        online.x = 500;
        online.y =0;
        flash.Lib.current.addChild (online);
        addEventListener(flash.events.KeyboardEvent.KEY_DOWN, onKeyDown);
        //flash.events.child.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler);
}

function onKeyDown (e : flash.events.KeyboardEvent) {
        // ENTER pressed ?
        //if ( flash.Key.getCode() == 13 ) {
        if ( e.keyCode == 13){ 
        //      var text = tf.text;
        //      tf.text = "";
        //      send (text);
        }
}

function send ( text : String ) {
        if ( name == null ) {
                name = text;
                //api.identify(name);
                return;
        }
        //api.say(text);
        userSay (name,text);
        var loader : URLRequest;
}

public function userJoin ( name ) {
        display ("User join <b>"+name+"</b>");
}

public function userLeave ( name ) {
        display ("User leave <b>"+name+"</b>");
}

public function userSay ( name : String, text : String ) {
        display ("<b>"+name+ " :</b> "+text.split ("&").join ("&amp;").split ("<").join ("&lt;").split (">").join ("&gt;"));
        //var url:String = "http://www.google.com/";
        //var request:URLRequest = new URLRequest(url);
        //var variables:URLVariables = new URLVariables();
        //variables.exampleSessionId = new Date().getTime();
   //variables.exampleUserLabel = "guest";
   //request.data = variables;
   //request.method = URLRequestMethod.POST;
   //navigateToURL(request);
}

function display ( line : String ) {
        //var bottom = (log.scroll == log.maxscroll);
        log.htmlText += line + "<br>";
        //if( bottom )
        //log.scroll = log.maxscroll;
}

static var c : Test;

static function main () {
        c = new Test ();
}

}

Пытался и импортировать его, и без него писать как вот тут: http://haxe.org/forum/thread/1110
Не получилось почемуто...

addEventListener(flash.events

addEventListener(flash.events.KeyboardEvent.KEY_DOWN, onKeyDown);
нужно
"сюда Stage, на котором обработка".addEventListener(flash.events.KeyboardEvent.KEY_DOWN, onKeyDown);

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>.

Подробнее о форматировании

CAPTCHA
Этот вопрос помогает предотвратить автоматический спам
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.
To prevent automated spam submissions leave this field empty.