0

我正在 Flex 中开发一个仅 AS3 的项目....我尝试在我的文本输入框中使用单击输入/返回时收听 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
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 触发,而是由一个简单的“搜索”按钮触发

于 2010-08-10T01:56:11.673 回答
0

您要查找的事件是'change' / flash.events.Event.CHANGE在修改控件值时调度的。flex 文档在这里很有帮助:Flex 3 TextInput

于 2010-08-10T07:45:49.963 回答
0

如果你想听用户按 ENTER,你应该使用 keyDown 事件。否则(如前所述),您可以使用更改事件。

当您使用 TextField 组件时,正确的文档是链接文本

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

于 2010-08-10T09:46:09.383 回答