TextInput Component事件无效

时间:2010-08-10 01:52:51

标签: flex events actionscript textinput

我正在使用Flex中的一个仅限AS3的项目....当我在textinput框中使用点击进入/返回时,我试图听取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);
        }

3 个答案:

答案 0 :(得分: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!

我不确定你是否可以在AS3项目中使用TextInput类,因为它是Flex框架的一部分......

在这种情况下,你可能不得不恢复到MouseEvent,但不是由TextField触发,而是通过一个简单的“搜索”按钮

答案 1 :(得分:0)

您要查找的事件是'change' / flash.events.Event.CHANGE,在修改控件值时会调度该事件。 flex文档在这里非常有用:Flex 3 TextInput

答案 2 :(得分:0)

如果你想听用户按ENTER,你应该使用keyDown-event。否则(如同提到的那样)你可以使用change-event。

当您使用TextField组件时,正确的文档是link text

TextInput组件还有一个valueCommit-event,也许你可以使用这个......