2010-08-10 45 views
0

我正在使用Flex中的僅AS3項目......我試圖在使用點擊輸入/返回到我的文本輸入框中時聽到ENTER事件....但它似乎工作不正常。 ..我沒有嘗試使用TextEvent.TEXT_INPUT,它工作正常,但不Component.ENTER ...任何幫助?非常感謝!!TextInput組件事件不起作用

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
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項目,因爲它是Flex框架的一部分使用TextInput類...

在這種情況下,您可能需要恢復到的MouseEvent而不是由觸發TextField,但通過一個簡單的「搜索」按鈕

+0

HM ...它仍然不工作..... – FlyingCat 2010-08-10 01:58:44

+0

我不認爲點擊textInput是我想.......謝謝雖然.. – FlyingCat 2010-08-10 02:37:41

0

您正在查找的事件是'change'/flash.events.Event.CHANGE當調整控制值時調度。 flex文檔在這裏相當有幫助:Flex 3 TextInput

0

如果你想聽用戶按下ENTER,你應該使用keyDown事件。否則(如同樣提到的)你可以使用change-event。

當你正在使用的TextField的組件正確文檔link text

將TextInput成分也有一個valueCommit事件,也許你可以使用這樣的產品......