Apache Royale: Как определить клавишу ввода на j: textInput - PullRequest
0 голосов
/ 26 мая 2020

У меня есть этот код:

<j:TextInput localId="ti_pass"  >
    <j:beads><j:PasswordInput/></j:beads>
</j:TextInput>

К сожалению, глядя на https://apache.github.io/royale-docs/component-sets/jewel/textinput, я не нашел бусинки для события KeyDown. Есть ли определенное событие c для его прослушивания?

Есть ли способ узнать, была ли нажата клавиша ввода?

С уважением,

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Я должен сказать, что есть лучшее решение вашей проблемы, но я полностью забыл, потому что сосредоточился на keydown. Извините.

У вас есть событие enter в TextInput, которое вы можете использовать напрямую. Пример находится в Tour De Jewel в TextInputPlayGround.

private function enterPress(event:Event):void
{
    trace("enter pressed");
}
<j:TextInput text="A TextInput" enter="enterPress(event)"/>

HTH

Carlos

0 голосов
/ 28 мая 2020

вам нужно прослушивать KeyboardEvent.KEY_DOWN в цепочке (TextInput).

Если вы находитесь в M XML, сначала добавьте слушателя для initComplete в окружающий контейнер для listenKeyDown:

initComplete="listenKeyDown()"

Затем в части Script добавьте:

public function listenKeyDown():void {
    the_textinput.addEventListener(KeyboardEvent.KEY_DOWN, keyDownEventHandler)
}

protected function keyDownEventHandler(event:KeyboardEvent):void
{
    trace("Any key:", event.key);

    if(event.key === KeyboardEvent.KEYCODE__DOWN)
    {
        trace("Down key:", event.key);
    }
}
...