1

検索ボックスと検索ボタンを備えたフラッシュ ムービーを作成しています。ボタンには次のコードがあります。

on (release, keyPress "<Enter>") {
    searchbox.execute();     
    /*the function above processes searches*/
}

ボタンをクリックしても問題なく動作します。Enter を押しても Bean は実行されません! これがなぜなのか、そして私がそれを回避できる方法を知っている人はいますか? リスナーをまったく回避できるのであれば、リスナーを使用しないことをお勧めします。

4

1 に答える 1

4

on() の使用は非推奨の AS1 プラクティスであるため、使用を中止する必要があるかもしれません。MovieClip クラスの onKeyDown イベント ハンドラーのおかげで、適切なコードを使用してリスナーなしで実行できるため、リスナーについて心配する必要はありません。;)

とにかく、コードを続けます。ボタンを含むタイムラインに次のように入力します。

//Enable focus for and set focus to your button
searchButton.focusEnabled = true;
Selection.setFocus(searchButton);

//The onRelease handler for the button
searchButton.onRelease = function(){
    //You need this._parent this code belongs to the button
    this._parent.searchbox.execute();
}

//The onKeyDown handler for the button
searchButton.onKeyDown = function(){
    //Key.getCode() returns the key code of the last key press
    //Key.ENTER is a constant equal to the key code of the enter key
    if(Key.getCode() == Key.ENTER){
        this._parent.searchbox.execute();
    }
}
于 2013-02-07T14:23:56.543 に答える