ActionScript активирует две кнопки одновременно
Я пытаюсь сделать игру во флэш 8 (actioncript 2). Таким образом, на экране есть две стрелки. Когда вы нажимаете "стрелку вверх" (с клавиатуры) один раз, одна из стрелок будет скрыта. Когда вы нажимаете "стрелку вверх" во второй раз, другая стрелка будет скрывать два. Но с моим кодом, когда я нажимаю "стрелку вверх", обе стрелки скрываются. Есть ли способ, которым я могу это предотвратить.
var x;
var y;
var myListener:Object = new Object();
function onKeyDown() {
if (Key.isDown(Key.UP)) {
x = 1;
btn1._visible = false;
Key.removeListener(this);
}
Key.addListener(this);
if (Key.isDown(Key.UP)) {
y = 1;
btn2._visible = false;
Key.removeListener(this);
}
}
Key.addListener(this);
Есть "х" и "у", потому что я буду использовать их позже, если нажата одна или обе стрелки.
1 ответ
Решение
Если вы хотите, чтобы несколько стрелок btn1, btn2... исчезали одна за другой, вы можете сделать так:
var a:Array = [btn1, btn2];
var l:Number = a.length;
var n:Number = 0;
var keyListener:Object = new Object();
keyListener.onKeyDown = function():Void {
if (Key.getCode() == Key.UP && n < l) {
a[n]._visible = false;
n++;
}
}
Key.addListener(keyListener);
замечание
Ваши переменные x
а также y
заменены на n
это значение равно 1, если первая стрелка невидима, и 2, если вторая стрелка также невидима.