Форум 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=118506)

apoptom 26.11.2008 00:36

клавиши
 
у мення такая проблема: есть функцИя (1) она работает при нажатии клавиши (1), есть функцИя (2) она работает при зажимании клавиш (1) и (2). но при отпускании клавиши (2) прЕкращается функцИя (2) и все. Как сделать чтоб при отпускании клавиши (2) опять исполнялась функцИя (1)?
заранее спасибо.

KiL33 26.11.2008 10:34

Попробуй так:
Код AS1/AS2:

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
        k = Key.getCode();
        if (k == 49) {
                trace('fc_1');
        }
        if (Key.isDown(49) && Key.getCode() == 50) {
                trace('fc_2');
        }
};
Key.addListener(keyListener);


apoptom 26.11.2008 15:19

не работает, когда я зажимаю (1) и (2) срабатывает функцИя (2) но когда я отпускаю(2) все останавливается, а нужно чтобы исполнялась функцИя (1).

AlexCooper 26.11.2008 16:17

Доп. Вопрос: Как отследить два нажатия кнопки и выполнять каждое положенное на них действия?
З.Ы. например одновременно нажаты UP & Right в соответсвии первая передвигает мувик вперёд а вторая поворачивает его на 5 градусов.

UPD: Всё я понял,
Код AS1/AS2:

keyListener.onKeyUp = function(){
        trace(Key.getCode());
}

есть такая функция, вот и добавь в неё флаг который будет запускать первую функцию если не кнопка "1" не была отпущенна.

UPD2: Наглядный пример, только он под мой вариант постоенно.
Код AS1/AS2:

var keyListener:Object = new Object();
 
keyListener.onKeyDown = function() {
 
        this[Key.getCode()]=true;
 
};
 
keyListener.onKeyUp = function(){
 
        this[Key.getCode()]=false;
}
 
Key.addListener(keyListener);
 
 
uped = function()
{
        trace('UP');
}
 
rotat = function()
{
        trace('Ro');
}
 
onEnterFrame=function(){
 
        if (keyListener['49']==true) uped();
 
        if (keyListener['50']==true) rotat();
}



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

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