我正在使用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);
}
答案 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,也许你可以使用这个......