:: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理

          Flex應(yīng)用啟動(dòng)的事件序列(1)

            Flex的事件可以分為系統(tǒng)事件和用戶(hù)事件。

            由用戶(hù)操作觸發(fā)的事件,就是用戶(hù)事件。Flex的用戶(hù)事件遵循了W3C DOM Level3(W3C文檔對(duì)象模型Level3)事件規(guī)范。具體可參見(jiàn)http://www.w3.org/TR/DOM-Level-3-Events/ 。用戶(hù)事件是應(yīng)用中最常見(jiàn)的事件類(lèi)型,比如鼠標(biāo)點(diǎn)擊、鍵盤(pán)輸入等都屬于用戶(hù)事件。除了用戶(hù)直接觸發(fā)的事件,在Flex應(yīng)用運(yùn)行過(guò)程中,F(xiàn)lex架構(gòu)本身也會(huì)自動(dòng)觸發(fā)一些事件,也就是所謂的系統(tǒng)事件。在信號(hào)燈應(yīng)用中,creationComplete事件是系統(tǒng)事件,而MouseEvent.CLICK事件則是用戶(hù)事件。

            所有的Flex可視化組件都繼承自基類(lèi)mx.core.UIComponent,同時(shí)也繼承了UIComponent的系統(tǒng)事件。當(dāng)Flex應(yīng)用啟動(dòng)時(shí),會(huì)觸發(fā)一系列事件,這些事件表明了組件在啟動(dòng)過(guò)程中的不同時(shí)間點(diǎn),比如被創(chuàng)建、布局完成或者在屏幕上完成繪制等。這些啟動(dòng)序列事件幫助開(kāi)發(fā)者更好的監(jiān)控并控制應(yīng)用運(yùn)行生命周期的各個(gè)環(huán)節(jié)。實(shí)際上,這"一系列"事件都由一個(gè)事件類(lèi)mx.events. FlexEvent表示。FlexEvent類(lèi)的不同類(lèi)型反映了啟動(dòng)過(guò)程中不同階段發(fā)生的事件。

            在Flex應(yīng)用中,容器和組件啟動(dòng)時(shí)的事件序列不同。

            在組件所屬的容器內(nèi),組件被實(shí)例化、加入到父容器的顯示列表中,然后設(shè)置外觀尺寸,最終完成容器中的布局,并被繪制出來(lái)。圖3-1顯示了組件的啟動(dòng)事件序列:


          圖3-1

            由于容器包含了子組件,因此容器啟動(dòng)時(shí)的序列不同于單一組件,圖3-2顯示了包含子組件的容器的啟動(dòng)過(guò)程。不僅容器本身要完成創(chuàng)建的全過(guò)程,所包含的子組件也要依次序地完成自身的創(chuàng)建。當(dāng)然如果容器中嵌入了子容器,其啟動(dòng)過(guò)程與此類(lèi)似。

          圖3-2
           

          Flex應(yīng)用啟動(dòng)的事件序列(2

            在所有組件和容器被創(chuàng)建并最終繪制在屏幕上之后,Application對(duì)象將觸發(fā)applicationComplete事件,該事件類(lèi)型標(biāo)志著應(yīng)用啟動(dòng)完畢,是應(yīng)用啟動(dòng)時(shí)觸發(fā)的最后一個(gè)事件。

          3-2中描述的部分啟動(dòng)序列事件解釋如下:

            preinitialize:在初始化之前觸發(fā),對(duì)于容器來(lái)說(shuō),所有子組件尚未定義。一般來(lái)說(shuō),不會(huì)在該事件觸發(fā)時(shí)配置組件;

            initialize:當(dāng)組件或容器完成構(gòu)造,并設(shè)置初始化屬性后觸發(fā)。在這個(gè)階段,對(duì)于容器,其所有的子組件的preinitialize事件已經(jīng)觸發(fā),但是這些子組件還沒(méi)有完成布局;

            creationComplete:當(dāng)應(yīng)用或組件(包括所有子組件)完成構(gòu)造、布局和繪制可見(jiàn)時(shí)觸發(fā)。當(dāng)creationComplete事件發(fā)生時(shí),組件已經(jīng)被創(chuàng)建出來(lái),因此開(kāi)發(fā)者也能夠訪(fǎng)問(wèn)同組件相關(guān)的屬性,比如height、width等屬性。開(kāi)發(fā)者通常使用這個(gè)事件來(lái)對(duì)應(yīng)用進(jìn)行初始化配置。比如為某些應(yīng)用組件添加偵聽(tīng)器,調(diào)用Web服務(wù)等;

            applicationComplete:所有的組件初始化完成并顯示。

           

          主站蜘蛛池模板: 阿拉尔市| 绥芬河市| 宁海县| 内江市| 措美县| 秭归县| 鲜城| 安乡县| 页游| 黑龙江省| 景泰县| 江北区| 梧州市| 庆城县| 漾濞| 玉龙| 思茅市| 宣化县| 澜沧| 农安县| 琼海市| 叙永县| 深水埗区| 墨竹工卡县| 门头沟区| 图木舒克市| 清流县| 泰顺县| 丹凤县| 洞口县| 杨浦区| 博湖县| 博客| 信宜市| 同江市| 佛山市| 志丹县| 满城县| 敦化市| 安徽省| 会宁县|