Клавиша ENTER не работает для ввода текста TLF? - PullRequest
0 голосов
/ 24 октября 2011

У меня есть ввод текста tlf в стадии, я хочу отправить Ahndler для этого объекта, когда нажмите клавишу ввода, но я не могу сделать это

import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.Sprite;
tlf.addEventListener(KeyboardEvent.KEY_DOWN,handler);
function handler(event:KeyboardEvent)
{
    if (event.keyCode = Keyboard.ENTER)
    {
        trace('enter key is detect');
    }
}

Где моя ошибка?

Ответы [ 3 ]

1 голос
/ 28 октября 2011

TLFText обрабатывает клавишу ввода иначе, чем классический текст.Для TLF используйте это:

tlf.addEventListener(TextEvent.TEXT_INPUT, textInputHandler);

function textInputHandler(evt:TextEvent):void {
    if (evt.text=="\r") {
        trace('THE ENTER KEY WORKS NOW');
    }
}
1 голос
/ 27 октября 2011

Оператор '=' предназначен для присваивания, а не сравнения. Оператор EQUAL TO равен '=='. Итак, в вашем коде:

 if (event.keyCode = Keyboard.ENTER)

должно быть:

if (event.keyCode == Keyboard.ENTER)

Если у вас есть текстовый ввод на сцене, и он называется 'tlf', это будет работать:

import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.Sprite;

tlf.addEventListener(KeyboardEvent.KEY_DOWN,key_down_handler);

function key_down_handler(ev:KeyboardEvent)
{
    if (ev.keyCode == Keyboard.ENTER)
    {
        trace('enter key!!!!');
    }
}

Один совет: попробуйте дать своим переменным и функциям более значимые имена, например вместо просто 'tlf', если это текстовое поле ввода: ' tlf_input_text' и вместо просто 'handler': ' key_down_handler 'или что-то в этом роде. Это поможет другим (и вам самим в долгосрочной перспективе) прочитать и понять ваш код.

0 голосов
/ 01 октября 2013

Я только что столкнулся с той же проблемой.

Лучший способ решить ее для меня - добавить (useCapture = true) в прослушиватель событий.

Итак, это: tlf.addEventListener(KeyboardEvent.KEY_DOWN,handler);

Получается так: tlf.addEventListener(KeyboardEvent.KEY_DOWN,handler,true);

Я не считаю, что 2 ранее предоставленных ответа являются удовлетворительными.Один хочет, чтобы кодер прекратил использовать TLF, другой хочет, чтобы он прекратил использовать KeyboardEvent.

Ссылка: http://forums.adobe.com/thread/826424

...