我應該使用change
或textInput
事件來捕捉一個TextInput控制用戶輸入?爲什麼?從Flex TextInput控件捕獲用戶輸入:要使用哪個事件?
回答
textInput
僅在用戶有輸入文本進入控件時纔會被調度。另一方面,在用戶所做的每一次改變中都會發送一個change
。例如,如果用戶刪除了部分文本,則只會分派change
事件。
flash.events.TextEvent.TEXT_INPUT
:
這些都不當文本經由代碼改性分派
「時用戶類型,刪除或粘貼文本到 控制調度。」
(忽略詞 「刪除」 那裏 - 我只是嘗試它,此事件不發貨時文本被用戶刪除)
「當通過用戶更改TextInput控件中的文本,如果您 使用數據綁定或ActionScript 輸入。不會發生此事件分派代碼更改文字。「
您還可以使用valueCommit
事件,這是當用戶「提交」派出的變化(通常是通過從文本字段移動焦點的距離),但要記住,這個事件也時調度領域值以編程方式更改。
這是一個很好的答案,hasseg。如果我有足夠的代表,我會投票。
根據您捕捉什麼用戶輸入,你可以繼承TextInput組件,並覆蓋變化和TextInput事件的內部監聽器。
我不知道是否有很多原因希望這樣做,但最近我做了一個處理OS X中導致粘貼換行符被表示爲'\ r'的錯誤,而不是'\ n'。
所有你需要做的就是添加以下你的超級後()調用你的子類對象的構造函數:
this.addEventListener(Event.CHANGE, textFieldChangeListener);
this.addEventListener(TextEvent.TEXT_INPUT,textFieldInputListener);
然後添加監聽器方法和要執行的代碼。
兩個Event.CHANGE和TextEvent.TEXT_INPUT事件觸發輸入的每個字符。如果您想要的事件只會觸發給定TextInput字段的單個時間,請使用FocusEvent.FOCUS_OUT。
像Event.CHANGE和TextEvent,並將。TEXT_INPUT,這個事件只會觸發用戶輸入,而不是對該值進行編程修改。
我意識到提交後認爲使用FOCUS_OUT並不是一種好方法,因爲雖然每個字段只觸發一次,但它並不會告訴您用戶是否更改了值。 – hrabinowitz 2011-06-01 17:09:20
CHANGE
犯規告訴你什麼雖然已經改變 - TEXT_INPUT
和KEY_DOWN
做。
- 1. 如何讓用戶在Flex TextInput控件中鍵入TAB字符?
- 2. Flex手機TextInput事件
- 3. Flex 3 - 從TextInput焦點輸入/輸出
- 4. 哪些事件要在taphold上捕獲
- 5. 從一個用戶控件捕獲數據網格事件到另一個
- 6. WebBrowser控件TextInput事件
- 7. 哪個事件用於搜索輸入
- 8. Forms.WebBroswer捕獲用戶輸入
- 9. 捕獲用戶輸入
- 10. 如何使用jQuery從文件輸入中捕獲文件名?
- 11. 使用HTTP模塊獲取哪個控件引發事件
- 12. 要使用哪個視圖控件?
- 13. 捕獲單鍵輸入事件Jquery
- 14. 從用戶控件捕捉按鈕事件
- 15. TextInput組件事件不起作用
- 16. 要使用哪個Android控件?
- 17. Flex TextInput控件:搜索樣式渲染
- 18. 在用戶控件中捕獲包含的控件的鼠標事件
- 19. 從庫中捕獲重要事件
- 20. Flex 4:使用spark.primitive.path對象捕獲鼠標事件
- 21. 如何使用捕獲括號捕獲多個事件
- 22. 捕獲Flash/Flex重繪DisplayObject事件?
- 23. Flex Path - 捕獲點擊事件
- 24. 如何從組件中的Ember輸入中捕獲輸入事件?
- 25. C# - 在多個動態創建的用戶控件上捕獲事件
- 26. 想要在Flex中的Spark textinput控件中設置光標位置我使用Flex 4.5中的Flex
- 27. 從用戶輸入禁用Flex DateField組件
- 28. 哪個控件用於快速文本輸入(輸入框)?
- 29. 使用MessageFilter在控件上捕獲單擊事件
- 30. 如何給TextInput外觀到TextInput控件在Flex 4.5中移動
非常感謝您的澄清答案。作爲一個方面說明:我做了一些測試,發現在訪問'textInput`事件的事件處理程序中的`text`屬性時(使用`event.currentTarget.text`),我得到的值反映了`觸發事件的按鍵上的文本。 – 2008-11-12 12:45:45
對我來說這不是真的,至少在Flex 4.5中(我猜也是Flex 4)使用Spark TextInput。我得到change事件中的最後一個文本值,之前還有一個更改事件。 – Enrique 2011-06-25 00:02:31