2012-04-03 16 views
0

私はフラッシュヘッダ付きのウェブページを持っています。フラッシュヘッダ(ブロック)には、別のドロップダウンメニューが「送信」ボタンとともに表示されます。キャッチは、ウェブページ上のフラッシュブロックで入力してください。

ユーザーが「入力」を押すと、フォームを送信します。 しかし、私は、任意のキーをキャッチすることができるように見えることはできません。

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
root.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
optiesPanelNew.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
optiesPanelNew.ddOptiesMerk.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 

function onKeyDownFunc(evt) 
{ 
    if (evt.keyCode == Keyboard.ENTER) 
    { 
     submitForm(); 
    } 
} 

ページ(ノンフラッシュ)のHTML部分にフォーカスがある場合に動作するJavaScript、この:

document.body.onkeydown = function theFunction() 
{ 
    alert("keydown"); 
} 

編集を:ああ、いや、フラッシュファイルはAS2に書かれていた...申し訳ありません: - FYI/ :私はして使用して終了コード:(AS2):

var keyListener:Object = new Object(); 
keyListener.onKeyDown = function():Void 
{ 
    if(Key.getCode()==13) 
     submitForm(); 

} 

Key.addListener(keyListener); 

答えて

1

I THI nk:ハンドラでイベントのタイプを指定する必要があります(つまり、 KeyboardEvent)、この方法では、ディスパッチされたオブジェクトは、そのインスタンスがハンドラに渡されたときにEventオブジェクトにキャストされます。 EventクラスにはのkeyCodeプロパティがなく、その後フォームを送信する条件が満たされません。そのため、フォームは提出されません。

だから、

function onKeyDownFunc(evt:KeyboardEvent) 

で、

function onKeyDownFunc(evt) 

ラインを交換してみてください、それはトリックを行う必要があります。

素晴らしい一日を過ごしましょう。

関連する問題