flex creationComplete事件的一些思考

flex creationComplete事件的一些思考
2009-05-19 14:32

轉載:

 關於creationComplete事件的發生時機,手冊中是這樣說的:
 假設程序中有這樣的結構:


Application
    OuterVBox
        InnerVBox1
            InnerVBoxLabel1
        InnerVBox2
            InnerVBoxLabel2


 事件: preinitialize, initialize, creationComplete發生的順序是這樣的:

OuterVBox preinitialize
    InnerVBox1 preinitialize
        InnerVBox1Label preinitialize
        InnerVBox1Label initialize
    InnerVBox1 initialize
    InnerVBox2 preinitialize
        InnerVBox2Label preinitialize
        InnerVBox2Label initialize
    InnerVBox2 initialize
OuterVBox initialize
        InnerBox1Label creationComplete
        InnerVBox2Label creationComplete
    InnerVBox1 creationComplete
    InnerVBox2 creationComplete
OuterVBox creationComplete


 所有的initialization事件完成後,creationComplete時間纔開始發生,先從葉子控件開始,然後是他們的父控件,直到application。

 如果將 OuterVBox容器變成ViewStack並且creationPolicy 屬性爲auto, 則事件發生順序是:

OuterViewStack preinitialize
    InnerVBox1 preinitialize
    InnerVBox2 preinitialize
OuterViewStack initialize
        InnerBox1Label preinitialize
        InnerBox1Label initialize
    InnerVBox1 initialize
        InnerBox1Label creationComplete
    InnerVBox1 creationComplete
OuterViewStack creationComplete

然而,對於item renderer
或者 item editor, Flex 可能會重用item renderer 或者item editor的實例。但是被重用的renderer 或者item editor的實例不會再次發生creationComplete事件。作爲替代,你可以使用dataChange事件。Flex 會在每次data屬性發生變化時觸發dataChange事件。在Accessing the listData property (Flex2 help中)一節中的例子就使用了dataChange事件來更新在DataGrid控件的item renderer中的TextArea的內容
發佈了38 篇原創文章 · 獲贊 4 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章