Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   нажатие Enter (http://www.flasher.ru/forum/showthread.php?t=171121)

noobuser 09.11.2011 05:43

нажатие Enter
 
Есть ли какое то свойство объекта которое позволяло бы приравнять нажатие Enter'a к нажатию кнопки? Что бы не делать прослушку нажатия клавиш, узнавать код клавиши и т.д. Помнится где то читал что есть что то подобное. Мне по сути нужен способ выполнить одну и туже функцию при нажатии кнопки, и при нажатии Enter'a в поле TextField. И сделать это максимально простым способом с минимумом строк кода. Спасибо.

Thurman Merman 09.11.2011 06:08

В as есть понятие focus
stage.focus = btn;
stage.focus = null;
а "нативнее" никак.

MAPUTO 09.11.2011 14:51

Я использовал в таком случае Event для TextField -> change или textInput. Давно это было...
Но при вводе текста и нажатии энтера оно срабатывает и можно его использовать как дубль события клик по кнопке.

noobuser 09.11.2011 19:32

Извините, не понял как нажать кнопку с помощью focus...

GBee 09.11.2011 20:06

Если это одно поле в проекте, то ловите ентер по textInput и выполняйте.

Если их куча создайте свой TextField на основе стандартного и ловите ентер по textInput и диспатчте свое событие.

ну и stopImmediatePropagation()

noobuser 09.11.2011 23:14

хоть убейте не получается. =( банально не получается в textInput проверить на ввод энтера. делаю
Код AS3:

if (e.text=="#13"){
...
}

ну тут я подозреваю что не правильно ввожу параметр для проверки на равенство #13... Да и банально уже пробовал вешать Listener на KeyboardEvent.KEY_DOWN.
Код AS3:

function Handler(e:KeyboardEvent) {
if (e.charCode==13) ...
}

и аналогично ничего не работает о_О

И второй нюанс. я вот не пойму как в таком случае объявить саму функию которая будет выполняться.. если вызывать её и при нажатии кнопки и при нажатии энтера.. там же параметры разных типов в неё передаются...

GBee 09.11.2011 23:50

У себя поискал

Код AS3:

private function onKeyDown(event:KeyboardEvent):void
{
        /*if(Keyboard.capsLock)
                showWarning(resourceManager.getString("common", "caps_lock_enabled"));
        else
                hideWarning();*/

        if(event.keyCode==Keyboard.ENTER)
        {
                check();
        }
}

Закомментировал ненужный, но, возможно, интересный кусок кода.

noobuser 10.11.2011 00:54

так тоже пробовал. не работет :(
Код AS3:

myobject.addEventListener(KeyboardEvent.KEY_DOWN, Handler_6);
 
function Handler_6(event:KeyboardEvent):void
{
        if (event.charCode==Keyboard.ENTER)
        log.addLog("работает");
}


GBee 10.11.2011 01:04

charCode
keyCode

noobuser 10.11.2011 01:06

дада, сам только что заметил разницу.. попробовал с keyCode... не работает блин ( такого быть не может. что я могу делать не так ?


Часовой пояс GMT +4, время: 00:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.