我從TextField繼承了一個自定義組件。組件需要知道它的任何樣式何時在運行時通過setStyle被更改。我會怎麼做?這可能很明顯,但我找不到一個事件或適當的方法來覆蓋。Flex:組件如何知道其樣式之一是否已更改?
1
A
回答
1
styleChanged()方法
public function styleChanged(styleProp:String):void
檢測樣式屬性的更改。當設置任何樣式屬性時,Flex會調用styleChanged()方法,並傳遞給它的設置樣式的名稱。
這是一種高級方法,您可能會在創建UIComponent的子類時重寫該方法。創建自定義組件時,可以重寫styleChanged()方法以檢查傳遞給它的樣式名稱,並相應地處理更改。這使您可以覆蓋現有樣式的默認行爲,或添加您自己的自定義樣式屬性。
如果處理樣式屬性,則您對styleChanged()方法的重寫應調用invalidateDisplayList()方法,以使Flex在下次屏幕更新時執行組件的updateDisplayList()方法。
參數styleProp:String - 樣式屬性的名稱;如果此組件的所有樣式已更改,則爲null。
2
如果你想要的文本字段與容器和其他組件的Flex你可能想將其包裝在一個UIComponent
,或有子類實現IUIComponent
和IStyleClient
或ISimpleStyleClient
接口(其中UIComponent implements). If you do the component will work with Flex' style system and every time a style changes a method called
styleChanged`將被稱爲發揮很好:
public function styleChanged(styleProp:String):void
參見http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#styleChanged()
相關問題
- 1. 如何知道.NET C#中的文件是否已更改?
- 2. 是否有異步的方式知道文件已更改?
- 3. 如何知道行是否已更新
- 4. 如何知道iPhone用戶SIM卡是否已更改?
- 5. 如何知道ckeditor的內容是否已更改
- 6. 如何知道是否一個std ::列表已被修改
- 7. 如何知道數組內某個元素的值是否已更改?
- 8. 知道文件的內容是否已經使用Node.js更改
- 9. 如何以編程方式知道Azure存儲表是否已更改?
- 10. 如何知道Office的VBA組件是否已安裝?
- 11. 我想知道如何更改選項卡控件樣式
- 12. TableModel如何知道值已更改?
- 13. 知道一個目錄中的文件是否已被修改
- 14. 如何知道MediaScanner是否已啓用?
- 15. 如何知道AVAudioPlayer是否已暫停?
- 16. React如何知道函數是否是一個組件?
- 17. 如何知道表是否是數組?
- 18. 如何知道數組中的哪些數據已被更改?
- 19. 如何知道表單是否已被修改
- 20. Android Studio如何知道圖片是否已從Firebase更新?
- 21. 如何知道mysql表是否已更新?
- 22. 如何從客戶端知道表是否已更新
- 23. 如何知道TextInput組件是否在Flex中處於活動狀態
- 24. 如何知道PHAsset是否被修改?
- 25. Flex:更改組件
- 26. Windows窗體綁定問題:如何知道用戶是否已更改值
- 27. 如何知道一個屬性是否是一個數組?
- 28. 如何知道用IntelliJ Idea修改的Scala文件是否已保存並且是否已簽入CVS?
- 29. 是否可以在運行時更改組件樣式?
- 30. 如何知道一項活動是否已經開始
啊。是啊。感謝您花時間發佈更好的答案。 +1 – 2009-06-26 17:43:32
_Especially_因爲TextField不會從UIComponent繼承... – 2009-06-26 17:44:49