每每程式學到一個階段,就會開始想如果要做OO功能該怎麼辦?那XX功能又該怎麼辦?不管是什麼語言,所提供的元件一定會在某些專案上不足以完成需求,這時候高手都會跟我們說:那就自訂元件~~~
所以,Flex要怎麼自訂元件?有兩條路可以走1.利用ActionScript 2.利用MXML標籤。很明顯如果使用ActionScript是一條比較困難但可以達成各種功能的路,而使用MXML標籤則會比較簡單,但或許會有些限制。
到底改寫元件可以怎樣?舉一個很常見的例子,在使用asp.net的下拉選單時,會有text與value屬性,分別代表顯示出來的屬性跟被選取時程式讀取的屬性;但在Flex的check並沒有這個分別,只有一個text屬性,那麼我們就可以利用改寫的方式,手動增加一個記載value的屬性,來達到這個目的。
要改寫既有元件有幾個重點:
1. 既然是改寫,在改寫元件裡應使用super()函式於建構子,讓改寫的元件先執行父元件的建構子,已完成一些必要的功能。
2. 同樣的,在override的函式中,也應保有既有的功能,所以利用super.函式名稱(例:super.rollOverHandler(event);),來先執行原始的功能,再於後面補上自己所需要的新功能。
3. 若是需要參考原始元件的程式碼,可以於Flex Builder的Source模式中,以Ctrl+左鍵點選元件名稱,即可連接該元件之原始程式碼。
4. 可利用Ctrl+O查看原始元件之所有方法,以判斷該覆寫的方法函式為何
5. 使用自訂元件應先在Application加入命名空間(例:xmlns:comp="comp.*")才可正確引用自訂元件。
所以,如果要做會發光的按鈕、自動提示的文字輸入框,雖然都可以在程式裡面控制,但若先將其做成自訂元件,將可以更容易的重覆使用,也會讓程式碼更好閱讀。
沒有留言:
張貼留言