2015-01-04 2 views
0

Я пытаюсь создать игру во flash 8 (ActionScript 2). Таким образом, на экране есть две стрелки. Когда вы нажимаете «стрелка вверх» (с клавиатуры) один раз, одна из стрелок будет скрываться. Когда вы нажмете «стрелка вверх» второй раз, другая стрелка скроет два. Но с моим кодом, когда я нажимаю «стрелку вверх», обе стрелки скрываются. Есть ли способ предотвратить это.ActionScript активирует сразу две кнопки

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); 

Есть «x» и «y», потому что я буду использовать их позже, если нажать одну или обе стрелки.

ответ

0

Если вы хотите, чтобы несколько стрел 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, если вторая стрелка также невидима.

Смежные вопросы