flex元件在建立的時候都會經歷四個事件:preinitialize , initialize , creationcomplete 和 updatecomplete(updatecomplete事件在任何改動視覺的情況下都會發生,不是初始化時獨有的)。
下面的例子檢測在巢狀和平行的情況下,各個元件的事件丟擲順序。
view plain
copy to clipboard
print?
<?xml version="1.0" encoding="utf-8"?>
preinitialize="showevent(event)"
initialize="showevent(event)"
creationcomplete="showevent(event)"
updatecomplete="showevent(event)">
"canv1"
preinitialize="showevent(event)"
initialize="showevent(event)"
creationcomplete="showevent(event)"
updatecomplete="showevent(event)">
"btn1"
preinitialize="showevent(event)"
initialize="showevent(event)"
creationcomplete="showevent(event)"
updatecomplete="showevent(event)"/>
"btn2"
preinitialize="showevent(event)"
initialize="showevent(event)"
creationcomplete="showevent(event)"
updatecomplete="showevent(event)"/>
上面的例子輸出順序是:
1299 >> eventtest0 preinitialize
1307 >> canv1 preinitialize
1310 >> btn1 preinitialize
1318 >> btn1 initialize
1319 >> canv1 initialize
1320 >> btn2 preinitialize
1321 >> btn2 initialize
1321 >> eventtest0 initialize
[swf] g:/projects/eventtest/bin-debug/eventtest.swf - 588,818 bytes after decompression
1387 >> btn1 creationcomplete
1387 >> btn1 updatecomplete
1387 >> canv1 creationcomplete
1387 >> canv1 updatecomplete
1388 >> btn2 creationcomplete
1388 >> btn2 updatecomplete
1388 >> eventtest0 creationcomplete
1390 >> eventtest0 updatecomplete
看著有點混亂,不過仔細看看,可以把過程分成兩個部分。
很明顯,所有的creationcomplete和updatecomplete發生在第二次update的時候,之前flex元件只是做一些設定和計算的工作,並沒有在畫布上畫任何東西。除此之外,還有這麼一些規律:
FLEX的初始化順序
from flex元件在建立的時候都會經歷四個事件 preinitialize initialize creationcomplete 和 updatecomplete updatecomplete事件在任何改動視覺的情況下都會發生,不是初始化時獨有的 下面的例子檢測在巢狀和平行的情況下,各個元件的...
Flex 元件初始化順序
在flex中,我們經常會用到,當容器或者這個元件初始化的時候,或者建立完成的時候,就去做一些事情。那麼此時flex就會派發preinitialize initialize和creationcomplete事件。當子項初始化完成後,其父容器開始初始化。即子項總是先於父容器初始化完成。然而,只有當所有子...
Flex 程式的初始化順序
flex程式執行的過程中會觸發 preinitialize,initialize 和 creationcomplete 事件,還會建立靜態成員變數和成員變數。它們的執行順序時怎樣的?flex 程式的執行順序如下。如果 flex 使用了元件,那麼主程式和元件的 preinitialize,initia...