代码之家  ›  专栏  ›  技术社区  ›  FlyingCat

TextInput组件事件不工作

  •  0
  • FlyingCat  · 技术社区  · 14 年前

    我正在Flex中做一个只支持AS3的项目……我试着在我的文本输入框中使用点击ENTER/return时监听ENTER事件……但似乎效果不太好……我确实尝试过使用TextEvent.TEXT_输入它工作得很好,但不是组件.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 回复  |  直到 14 年前
        1
  •  0
  •   PatrickS    14 年前
    searchInput.selectable = true; 
    

    也许吧

    searchInput.mouseEnabled = true;
    

    searchInput.addEventListener(MouseEvent.CLICK, testEnter);
    
    private function testEnter(event:MouseEvent):void
    {
    }
    

    对不起,我刚才说得太快了。。。

    在这里

    searchInput=new TextInput();
    

    TextField不扩展UIComponent类,因此无法处理ComponentEvent。我应该告诉您更改事件处理程序,而不是告诉您更改事件处理程序。我的理解是你用Flex编写了3个项目,所以我先看了TextField!

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

    在这种情况下,您可能需要恢复到MouseEvent,但不是由TextField触发的,而是由一个简单的“Search”按钮触发的

        2
  •  0
  •   user185231 user185231    14 年前

    你要找的活动是 'change' / flash.events.Event.CHANGE 在修改控制值时发送。flex文档在这里非常有用: Flex 3 TextInput

        3
  •  0
  •   hering Robyn Liu    14 年前

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

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

    推荐文章