Flexでキーボードイベントを取得するのに詰まる
Flex 3でコントロールのfocus関係なしにキーボードの入力を取得するには、
http://livedocs.adobe.com/flex/3_jp/html/help.html?content=events_11.html
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=304
の2つの方法があります。
前者は、applicationに対してaddEventListenerする方法。
後者は、stageに対してaddEventListenerする方法。
stageはcreationComplete時にはセットされておらず、
applicationComplete時には取得できるので注意。
…といいつつ、以下のようなコードでイベントが取れなくて
2時間くらい悩んだ。
... application.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); ... private function keyDownHandler(evt:KeyboardEvent):void { Alert.show('' + evt.keyCode); }
原因は、keyDownHandlerってものが普通にUIComponentにもあって、
そっちを参照しに行っていたから。
ギギギギギギギ