0

私はFlexでAS3のみのプロジェクトに取り組んでいます....テキスト入力ボックスでEnter/ReturnをクリックするとENTERイベントをリッスンしようとしました....しかし、うまく機能していないようです... TextEvent.TEXT_INPUTを使用してみましたそれは正常に機能しましたが、Component.ENTERは機能しませんでした...何か助けがありましたか??? どうもありがとう!!

import fl.events.ComponentEvent;
    searchInput=new TextField();
        searchInput.type=TextFieldType.INPUT;
        searchInput.background=true;
        searchInput.backgroundColor=0xecffee;
        searchInput.defaultTextFormat=TF;
        searchInput.width = 200;
        searchInput.height=16;
        searchInput.x=50;
        searchInput.y=180;
        addChild(searchInput);
        searchInput.addEventListener(ComponentEvent.ENTER, testEnter);


    }
    private function testEnter(e:ComponentEvent):void{
        if(searchInput.text!=null){
            beginSearch(searchInput.text);
        }
4

3 に答える 3

0

Enterキーを押しているユーザーの声を聞きたい場合は、keyDown-eventを使用する必要があります。それ以外の場合(前述のように)、change-eventを使用できます。

TextFieldコンポーネントを使用しているため、適切なドキュメントはリンクテキストです

TextInput-componentにはvalueCommit-eventもあります。おそらく、これを使用できます...

于 2010-08-10T09:46:09.383 に答える
0

探しているイベントは'change' / flash.events.Event.CHANGE、コントロール値が変更されたときにディスパッチされるものです。Flexのドキュメントは、ここで非常に役立ちます: Flex 3 TextInput

于 2010-08-10T07:45:49.963 に答える
0
searchInput.selectable = true; 

そして多分

searchInput.mouseEnabled = true;

次にこれを試してください:

searchInput.addEventListener(MouseEvent.CLICK, testEnter);

private function testEnter(event:MouseEvent):void
{
}

すみません、私はそれについて少し速すぎました...

ここにあります

searchInput=new TextInput();

TextField は UIComponent クラスを拡張しないため、ComponentEvent を処理できません。イベントを変更するように言う代わりに、イベント ハンドラを変更するように言うべきでした。Flex で AS3 プロジェクトを作成することを理解しているので、最初に TextField を調べました。

Flex フレームワークの一部であるため、AS3 プロジェクトで TextInput クラスを使用できるかどうかはわかりません...

その場合、MouseEvent に戻さなければならないかもしれませんが、TextField によってトリガーされるのではなく、単純な「検索」ボタンによってトリガーされます。

于 2010-08-10T01:56:11.673 に答える