自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解讀FlexApplication初始化順序

開發(fā) 后端
本文向大家介紹一下FlexApplication初始化順序,F(xiàn)lex組件在建立的時(shí)候都會(huì)經(jīng)歷四個(gè)事件:preinitialize, initialize, creationComplete和updateComplete,這里和大家分享一下。

本文和大家重點(diǎn)討論一下FlexApplication初始化順序,F(xiàn)lex組件在建立的時(shí)候都會(huì)經(jīng)歷四個(gè)事件:preinitialize, initialize, creationComplete和updateComplete,而FlexApplication初始化順序是preloader->systemManager->FlexApplicationstarted。

FlexApplication初始化順序

FlexApplication初始化順序是preloader->systemManager->FlexApplicationstarted...

◆preinitialize

在所有的初始化之前觸發(fā),沒有子組件的定義,但是可以引用組件的變量.

◆initialize

當(dāng)所有子組件生成完成后觸發(fā),在這個(gè)時(shí)間點(diǎn)還沒有組件被渲染出來.

◆reationComplete

組件定義完成并已經(jīng)在顯示列表.

◆applicationComplete

所有的組件初始化完成并顯示.

首先介紹一下SystemManager.SystemManager是Flex應(yīng)用的主控者,它控制著應(yīng)用窗口,Application實(shí)例,彈出窗口,cursors,并管理著ApplicationDomain中的類.SystemManager是FlashPlayer實(shí)例化的***個(gè)類,它存儲(chǔ)了主應(yīng)用窗口的大小和位置信息,保存其子組件比如:浮動(dòng)彈出窗口和模態(tài)窗口的痕跡.通過SystemManager可以獲得內(nèi)嵌字體,樣式和document對(duì)象.
自定義的可視化組件(UIComponent的子類)只有在調(diào)用過addChild()后,才會(huì)有一個(gè)SystemManager賦給他們,之前是Null.所以在自定義可視化組件的構(gòu)造函數(shù)中不要使用SystemManager.

Application對(duì)象創(chuàng)建時(shí)發(fā)生事件:

1.實(shí)例化Application對(duì)象
2.FlexApplication初始化Application.systemManager
3.Application在初始化過程之前,派發(fā)預(yù)初始化事件.
4.調(diào)用createChild().此時(shí),所有應(yīng)用組件被創(chuàng)建,所有組件的createChild()被調(diào)用.
5.Application派發(fā)初始化事件,表明所有的組件初始化完畢.
6.派發(fā)creationComplete事件
7.Application對(duì)象添加到顯示列表中
8.派發(fā)applicationComplete事件

大多數(shù)情況下,我們使用<mx:Application>來創(chuàng)建application對(duì)象,但如果使用ActionScript來創(chuàng)建的話,那么建議不要在application的構(gòu)造函數(shù)中創(chuàng)建組件,推薦在crateChildren函數(shù)中,主要是從性能方面考慮.

Flash包含的是一個(gè)時(shí)間線上的多個(gè)幀,而Flex的SWF只包含2個(gè)幀.SystemManager,Preloader,DownloadProgressBar和少量工具類都在***幀,剩下的包括應(yīng)用代碼/內(nèi)嵌資源全都在第二幀中.當(dāng)FlashPlayer下載下載SWF時(shí),只要接收到***幀內(nèi)足夠的數(shù)據(jù),就會(huì)實(shí)例化SystemManager,由它來創(chuàng)建Preloader,然后創(chuàng)建DownloadProgressBar,這兩個(gè)對(duì)象會(huì)察看剩余字節(jié)的傳輸過程.當(dāng)***幀的所有字節(jié)傳輸完畢后,SystemManager發(fā)送enterFrame到第二幀,然后是其他事件.***Application對(duì)象派發(fā)applicationComplete事件.

Flex是一個(gè)事件驅(qū)動(dòng)的編程模型,任何事情的發(fā)生,其背后必然存在一個(gè)事件.而開發(fā)者***次看到MXML時(shí),很難體會(huì)到一個(gè)Xml標(biāo)記的應(yīng)用的事件流和實(shí)例化的生命周期.這個(gè)對(duì)于HTML和Flash的開發(fā)者尤其會(huì)感到困惑,因?yàn)槠涫煜さ姆绞脚cFlex的一點(diǎn)也不相似.HTML的實(shí)例化是從上到下的,Flash的執(zhí)行是從Frame0開始一幀幀運(yùn)行的.而Flex則又有不同.
從我們開始學(xué)習(xí)Flex時(shí),我們就需要了解事件流和MXML的實(shí)例化.我非常困惑因?yàn)槲覍?shí)在難以理解什么樣的事件會(huì)被觸發(fā)或者事件什么時(shí)候會(huì)被觸發(fā).關(guān)鍵是要理解事件的基礎(chǔ)并親自觀察事件流的初始化.

【編輯推薦】

  1. Flex 初始化時(shí)的事件測(cè)試
  2. Flex2.0Beta1新功能出爐
  3. 揭露Flex2.0的幾大誤區(qū)
  4. FlexBuilder3.0與Eclipse3.4的***結(jié)合
  5. 剖析Flex DataGrid分頁控件的兩種分頁形式用法

 

 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2011-03-23 15:02:55

ListenerFilterServlet

2012-02-28 10:04:09

Java

2013-03-04 11:10:03

JavaJVM

2023-11-12 23:08:17

C++初始化

2009-07-03 16:21:33

Java的聲明和初始化Java

2022-01-04 19:33:03

Java構(gòu)造器調(diào)用

2011-06-17 15:29:44

C#對(duì)象初始化器集合初始化器

2021-03-12 10:30:11

SpringMVC流程初始化

2022-07-06 10:37:45

SpringServlet初始化

2020-12-03 09:50:52

容器IoC流程

2019-11-04 13:50:36

Java數(shù)組編程語言

2009-09-08 09:48:34

LINQ初始化數(shù)組

2009-11-11 15:29:15

ADO初始化

2024-01-15 06:34:09

Gin鏡像容器

2009-06-11 13:26:16

Java數(shù)組聲明創(chuàng)建

2009-07-31 17:51:27

C#對(duì)象初始化

2009-06-10 16:17:00

Netbeans JT初始化

2012-03-13 13:38:42

Java

2021-07-07 05:00:17

初始化源碼

2021-12-26 00:08:35

C++初始化列表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)