PDA

Просмотр полной версии : Имитация нажатий клавиш на клавиатуре


Crenth
17.08.2009, 09:48
Всем драсьте!

Подскажите, плиз, как ввести текст в компонент TextField не используя клавиатуру, а лишь отправляя события Event (textEvent или keyboradEvent) ???

методы типа meTextField.text=myText не подходят. Нужно именно черещз имитацию нажатий клавиатуры...

Gal4enochek
17.08.2009, 12:13
Так подойдет?

//field - ваше текстовое поле
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

function keyDownHandler(event :KeyboardEvent):void{
var symbol :String = String.fromCharCode(event.charCode);
field.appendText(symbol);
}

kackbip
17.08.2009, 12:22
Вот надо сделать как Галченок написал,
а потом стейджем диспатчить нужные события.

Добавлено через 35 секунд
stage.dispatchEvent( new KeyboardEvent(параметры) );

Crenth
17.08.2009, 13:31
Так подойдет?

//field - ваше текстовое поле
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

function keyDownHandler(event :KeyboardEvent):void{
var symbol :String = String.fromCharCode(event.charCode);
field.appendText(symbol);
}



Gal4enochek, к сожалению, этот метод не подходит, так как appendText не учитывает, где именно находится курсор в области ввода, если field имеет тип TextFieldType.INPUT
В вашем примере символ добавится в конце строки field.text.
Если делать так, как вы предложили, нужно будет все время учитывать позицию курсора, т.е написать все то, что уже есть в самом компоненте textField.
Если же имитировать нажатие кнопки на клавиатуре и посылать событие с кодом нажатой кнопки, то компонента сама сделает эту работу.
Проблема только в том, как послать событие в field, чтобы она думала, что я нажал кнопку на клаве...

kackbip
17.08.2009, 15:27
Никак :) Скорее всего.

Crenth
17.08.2009, 16:32
скорее всего можно как-то
в сях, делфи возможно...
в AS3 тем более должно быть...

помогайте!!! :)

Добавлено через 17 часов 48 минут
Людииииииииии!!!!!!!!!!!