Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как сгенерить событие нажатия клавиши??? (http://www.flasher.ru/forum/showthread.php?t=103304)

DEAFFF 02.11.2007 15:27

Как сгенерить событие нажатия клавиши???
 
Например есть обработчик нажатия клавиши.

Есть кнопка - мувик.

Я хочу что бы при нажатии на эту кнопочку мышкой генерировалось событие кей даун (с определенным кей кодом) и автоматически срабатывал обработчик нажатия клавиши.

Т.е. должно получится так, что как будто я нажал на клавишу, а на самом деле я нажал на кнопку на экране.

Способ вызывать обработчик события не предлагать, на это есть опеределнные причины.

Есть ли другие способы?

etc 02.11.2007 16:08

Код:

key = Key;
o = _global.Key = {};
o.addListener = function(obj) {
        key.addListener(obj);
}
o.removeListener = function(obj) {
        key.removeListener(obj);       
}
o.getCode = function() {
        if (this._send) {
                return this._code;
        } else {
                return ASnative(800, 1)();
        }
}
o.broadcastMessage = function(name) {
        if (typeof arguments.caller == 'function') {
                this._send = true;
        }
        key.broadcastMessage(name);
        if (typeof arguments.caller == 'function') {
                this._send = false;
        }
}
delete o;
btn.onPress = function() {
        Key['_code'] = 8;
        Key['broadcastMessage']('onKeyDown');
}
onKeyDown = function() {
        trace(Key.getCode()+','+(Key.getCode()==Key.BACKSPACE));       
}
Key.addListener(this);

Дописать предлагается самостоятельно.

NB! Код содержит кучу хаков и не рекомендуется к применению в AS2.

DEAFFF 02.11.2007 16:53

Все заработало!
Огромное спасибо!


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

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