2017-01-22 4 views
1

В настоящее время я пытаюсь сделать игру, но я столкнулся с несколькими проблемами. Одним из них является то, что я должен щелкнуть по экрану для управления стрелками. Есть ли способ исправить это?(ActionScript 3.0) Как исправить эту ошибку управления стрелкой?

Во-вторых, клавиши со стрелками работают по назначению, но клавиши WASD этого не делают. Почему это?

private function key_down(event:KeyboardEvent): void{ 
     if(event.keyCode == Keyboard.LEFT || event.keyCode == 65){ 
      leftPressed=true; 
     } 
     if(event.keyCode == Keyboard.RIGHT || event.keyCode == 68){ 
      rightPressed=true; 
     } 
     if(event.keyCode == Keyboard.UP || event.keyCode == 87){ 
      upPressed=true; 
     } 
     if(event.keyCode == Keyboard.DOWN || event.keyCode == 83){ 
      downPressed=true; 
     } 
    } 
    private function key_up(event:KeyboardEvent): void{ 
     if(event.keyCode == Keyboard.LEFT || event.keyCode == 65){ 
      leftPressed=false; 
     } 
     if(event.keyCode == Keyboard.RIGHT || event.keyCode == 68){ 
      rightPressed=false; 
     } 
     if(event.keyCode == Keyboard.UP || event.keyCode == 87){ 
      upPressed=false; 
     } 
     if(event.keyCode == Keyboard.DOWN || event.keyCode == 83){ 
      downPressed=false; 
     } 
    } 

Примечание: В другой части кода, я определил, как игрок перемещается, если leftPressed, rightPressed, downPressed и upPressed является истинным или ложным.

+0

Фокус: вам нужно сфокусировать свой Flash-объект на странице HTML при загрузке: http://stackoverflow.com/questions/7921690/how-do-i-make-my-flash-object-get-focus-on- load Keys: вам нужно использовать event.charCode вместо event.keyCode – Organis

+0

Ваш код отлично работает для меня с WASD и event.keyCode. Очевидно, что прослушиватель клавиатуры должен присутствовать на сцене. Не могли бы вы уточнить свою проблему? – Craig

+0

Видимо, только на моем компьютере клавиши WASD не работают. Когда я пытаюсь играть в игру на других компьютерах, клавиши WASD работают отлично. Это странно. –

ответ

2

Вот очень упрощенный вариант кода, который вы должны проверить непосредственно в файле .fla:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown); 

var leftPressed:Boolean; 

function keydown(event:KeyboardEvent): void 
{ 
    //if(event.keyCode == Keyboard.LEFT || event.keyCode == 65) 
    if(event.keyCode == 65) 
    { 
     leftPressed=true; 
     trace('left Pressed'); 
    } 

} 

Обратите внимание, что я закомментированная линия Keyboard.LEFT и заменить его с линией , который проверяет только ключ «a». Это должно работать на вашей системе.

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

  • Нет связанных вопросов^_^