2016-04-09 3 views
-1

Я очень новичок в flash, и мне интересно, почему следующий код не будет работать, все, кажется, на месте, но я уверен, что что-то очевидное отсутствует. Любая помощь будет оцененаПростая flash as3 программирование начинающего

var rightPressed:Boolean = false; 

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); 

function keyDownHandler(e:KeyboardEvent):void{ 
if(e.keyCode == Keyboard.RIGHT); 
rightPressed = true; 
}  
if(rightPressed){ 
    trace("right"); 
} 
+0

Что вы пытаетесь сделать и что вы имеете в виду «не сработает»? –

+0

Для начала: введите свой код правильно. Есть некоторые очевидные проблемы с вашим кодом, если вы попытаетесь отложить его правильно. – Aaron

ответ

3

Вы должны удалить эту ; в конце строки if(e.keyCode == Keyboard.RIGHT); или изменить его на кронштейне.

Это приводит к тому, что ваш код всегда устанавливается rightPressed = true;, потому что он не находится под условным тестом.

И вы пропустили скобу в конце функции.

Я не проверял это предложение, но с этим он будет выглядеть следующим образом:

var rightPressed:Boolean = false; 

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); 

function keyDownHandler(e:KeyboardEvent):void{ 
if(e.keyCode == Keyboard.RIGHT){ 
    rightPressed = true; 
}  
if(rightPressed){ 
    trace("right"); 
} 
} 

или просто сделать свой код внутри условного теста:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); 

function keyDownHandler(e:KeyboardEvent):void{ 
if(e.keyCode == Keyboard.RIGHT){ 
    trace("right"); 
}  
} 

Надежда, что помогает;)

+0

Да, что помогает много, как вы можете сказать, я благодарю вас! – Dan