0

Как отключить клавиатурные клавиши в Action Script?Action Script. Как отключить клавиатуру?

Я создаю Flash-память «Memory», Idea, чтобы открыть 2 равных карты. Когда открыта 2-я карта, она отображается в течение 750 миллисекунд, в это время игрок не может делать никаких действий. Когда я использую этот mouseChildren = false;, игрок не может щелкнуть мышью для этого времени, но он может использовать клавиши со стрелками клавиатуры/ввода/пробела/вкладки ... Мне нужно отключить It за это время.

Вот часть моего кода:

  { 
        trace("Wrong"); 
        _message = "Wrong"; 
        message_txt.text = _message; 
        _secondCard = event.currentTarget; 


        var timer:Timer = new Timer(750, 1); 
        timer.addEventListener(TimerEvent.TIMER_COMPLETE, flipBack); 
        timer.start(); 

       stage.addEventListener(KeyboardEvent.KEY_DOWN, blindKeyboard);//added here 
       stage.addEventListener(KeyboardEvent.KEY_UP, blindKeyboard);//added here 


        mouseChildren = false; 


       } 
      } 

function blindKeyboard(e:KeyboardEvent):void{ //added here function 
    e.preventDefault(); 
    e.stopPropagation(); 
} 

      protected function flipBack(event:TimerEvent):void 
    { 
     _firstCard.gotoAndPlay("flipBack"); 
     _secondCard.gotoAndPlay("flipBack"); 
     _firstCard.addEventListener(MouseEvent.CLICK, checkCards); 
     _secondCard.addEventListener(MouseEvent.CLICK, checkCards); 
     _firstCard = _secondCard = undefined; 
     mouseChildren = true; 
    } 

ответ

0

Вы только могли бы иметь функции для добавления/удаления слушателей:

function addListeners():void 
{ 
    // loop through and add the listeners for the cards 
    // add keyboard listeners 
} 

function removeListeners():void 
{ 
    // loop through and remove listeners from the cards 
    // remove keyboard listeners 
} 

Перед тем, как установить таймер, вы удалите слушателей:

removeListeners(); 

Затем в обработчике таймера flipback вы просто позвоните addListeners:

addListeners(); 
+0

Спасибо, и какие коды предназначены для удаления слушателей? – 2013-05-05 11:29:57

+0

То же, что и добавление - просто используйте removeEventListener вместо addEventListener – 2013-05-05 20:47:40

0

Попробуйте

stage.addEventListener(KeyboardEvent.KEY_DOWN, blindKeyboard); 
stage.addEventListener(KeyboardEvent.KEY_UP, blindKeyboard); 
function blindKeyboard(e:KeyboardEvent):void{ 
    e.preventDefault(); 
    e.stopPropagation(); 
} 
+0

Спасибо за ответ, но это не помогает - то же самое. Я могу использовать клавиатуру все время. – 2013-05-04 15:46:17

+0

Обновлено. Я пробовал это с помощью простого TextInput, и он отлично работал – codingbuddha

+0

Amm ... То же самое. Не работает ... Я обновил свой вопрос, где я разместил свой код. Может, я сделал это неправильно? – 2013-05-04 16:02:12