Обработка событий клавиатуры Flex Canvas - PullRequest
0 голосов
/ 23 октября 2010

В прилагаемом примере кода события клавиатуры просто не работают.
Элемент управления никогда не достигает handleKeyDown , независимо от того, какую клавишу я нажимаю.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Canvas creationComplete="initIt()" id="can1">
 <mx:Label text="it's here" y="2000"/>
</mx:Canvas>
 <mx:Script>
  <![CDATA[

   private function initIt():void {
     can1.addEventListener(KeyboardEvent.KEY_DOWN,handleKeyDown); 
   }

   private function handleKeyDown(e:KeyboardEvent):void {
    if(e.keyCode == Keyboard.UP) {
     trace("up");
     verticalScrollPosition++;
    }
    if(e.keyCode == Keyboard.DOWN) {
     trace("down");
     verticalScrollPosition--;
    }    
   }
  ]]>
 </mx:Script>
</mx:Application>

Ответы [ 2 ]

0 голосов
/ 24 октября 2010

попробуйте переключить фокус вручную в функции initIt ()

0 голосов
/ 23 октября 2010

Причина в том, что обычно у Canvas нет фокуса.Без фокуса обычно нет событий клавиатуры.Посмотрите на « Проблема с обработкой событий клавиатуры внутри Canvas с использованием Flex. » для возможного решения.

...