flex初始化時的事件測試

2021-08-29 22:04:01 字數 1667 閱讀 5288

flex元件在建立的時候都會經歷四個事件:preinitialize, initialize, creationcomplete和updatecomplete (updatecomplete事件在任何改動視覺的情況下都會發生,不是初始化時獨有的)。我這裡有個例子來檢測在巢狀和平行的情況下,測試各個元件的事件丟擲順序。

<?xml version="1.0" encoding="utf-8"?>

preinitialize="showevent(event)"

initialize="showevent(event)"

creationcomplete="showevent(event)"

updatecomplete="showevent(event)">> "+

event.currenttarget.name+" "+event.type);

}]]>

輸出是:

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元件只是做一些設定和計算的工作,並沒有在畫布上畫任何東西。除此以外,還有這麼一些規律:

* 就單個元件而言,事件的丟擲順序是preinitializeinitializecreationcomplete

* 巢狀關係的兩個元件(比如canvas和button1),preinitialize先外後內 ,initialize和creationcomplete先內後外 。只是creationcomplete要在下一次update才會發生 。

* 平行關係的兩個元件(比如canvas和button2),按mxml內的順序,只有前面元件initialize結束後,後面的元件才會丟擲preinitialize。

flex 初始化時的事件測試

flex 初始化時的事件測試 flex元件在建立的時候都會經歷四個事件 preinitialize,initialize,creationcomplete和 updatecomplete updatecomplete事件在任何改動視覺的情況下都會發生,不是初始化時獨有的 我這裡有個例子來檢測在巢狀和...

Flex 初始化時全屏的問題

stage.displaystate stagedisplaystate.full screen 在上面這種情況下,不響應鍵盤事件,下面全屏後仍然響應鍵盤事件,不過只是在air下才有這個模式哦。stage.displaystate stagedisplaystate.full screen inte...

Flex初始化時載入外部XML

flex初始化時載入外部xml配置檔案 flex專案中經常需要同伺服器進行資料互動,可以將伺服器訪問位址寫到到xml配置中,在flex初始化時讀取到記憶體。省去因伺服器位址變化而重新編譯flex程式的麻煩。1 新增xml配置檔案 config.xml http localhost 2286 http...