這篇文章主要介紹了Flex應(yīng)用程序怎么啟動(dòng),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供上蔡企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都做網(wǎng)站、HTML5建站、小程序制作等業(yè)務(wù)。10年已為上蔡眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
Flex應(yīng)用程序啟動(dòng)
編寫(xiě)一個(gè)簡(jiǎn)單的Flex應(yīng)用程序并不復(fù)雜,就算你從來(lái)沒(méi)接觸過(guò)Flex程序設(shè)計(jì),照著幫助的實(shí)例步驟,不需花多長(zhǎng)時(shí)間也能做出一個(gè)漂亮簡(jiǎn)捷的小程序出來(lái)。不過(guò),隨著對(duì)Flex程序編寫(xiě)的深入,會(huì)越來(lái)越覺(jué)得,其實(shí)要編寫(xiě)一個(gè)好的Flex應(yīng)用程序并不簡(jiǎn)單,涉及到各個(gè)方面的知識(shí),需要對(duì)Flex應(yīng)用程序的架構(gòu)、事件機(jī)制的處理、設(shè)計(jì)與程序的結(jié)合等等各個(gè)方面均要有所掌握。
這***部分的內(nèi)容從Flex應(yīng)用程序的啟動(dòng)與運(yùn)行講起。另外,F(xiàn)lex應(yīng)用程序總的來(lái)說(shuō)是以事件驅(qū)動(dòng)的程序,因此,大家在深入學(xué)習(xí)Flex的各個(gè)方面知識(shí)的時(shí)候,應(yīng)該隨時(shí)以事件驅(qū)動(dòng)的觀點(diǎn)來(lái)進(jìn)行思考。
大家都知道,我們?cè)诰帉?xiě)Flex應(yīng)用程序時(shí),通常是以<mx:Application>標(biāo)簽作為開(kāi)頭,實(shí)際上,F(xiàn)lex應(yīng)用程序在啟動(dòng)運(yùn)行的時(shí)候并不是直接從Application開(kāi)始運(yùn)行,在這之前還有一部分悄悄的先運(yùn)行了,正如大家所看到的,當(dāng)我們運(yùn)行編寫(xiě)好的Flex應(yīng)用程序時(shí),盡管我們沒(méi)有編寫(xiě)任何與啟動(dòng)進(jìn)度載入條相關(guān)的代碼,但無(wú)一例外的,應(yīng)用程序均會(huì)為我們自動(dòng)加上這一部分。因此才有我們看到的如下圖所示的標(biāo)準(zhǔn)的Flexloading載入條(在下一篇文章中,我們將一起來(lái)改變這千篇一律的載入條,創(chuàng)建自定義的loading效果)。
◆通常我們所說(shuō)的Flex應(yīng)用程序,本質(zhì)上來(lái)說(shuō)是基于Flex框架、采用ActionScript3.0編寫(xiě)的Flash應(yīng)用程序,從這一點(diǎn)來(lái)說(shuō),它和普通的Flash應(yīng)用程序沒(méi)有任何差別。相對(duì)來(lái)說(shuō),傳統(tǒng)的使用FlashIDE(如FlashCS3)創(chuàng)建Flash程序時(shí)更多的基于“時(shí)間線”(Timeline)及“幀”(Frame)的概念,更易于設(shè)計(jì)師理解;而基于Flex框架來(lái)創(chuàng)建的Flash應(yīng)用程序更多是強(qiáng)調(diào)程序性,很少提及“時(shí)間線”與“幀”的概念,更易于程序員理解。其實(shí)Flex應(yīng)用程序一樣也有時(shí)間線,只是這部分由Flex框架隱藏起來(lái)了,通常不為大家所熟悉,在默認(rèn)創(chuàng)建Flex程序時(shí),這一切Flex已幫我們完成了,但了解這部分內(nèi)容更有助于大家對(duì)Flex應(yīng)用程序的啟動(dòng)有更深刻的認(rèn)識(shí),以便能對(duì)程序更靈活的控制與發(fā)揮~~
我們來(lái)看看上面這幅示意圖,F(xiàn)lex應(yīng)用程序共由兩幀組成,第1幀為preloader部分,第2幀為主應(yīng)用程序部分,此兩部分由Flex應(yīng)用程序的根SystemManager統(tǒng)管,SystemManager是flash.display.MovieClip的子類(lèi),影片剪輯(movieclip)支持幀。由于swf屬于一種漸進(jìn)式(progressive)下載的格式,正是由于swf格式這個(gè)特性,F(xiàn)lashPlayer并不需要等待整個(gè)程序下載完成便可直接訪問(wèn)已載入幀的內(nèi)容,因此***幀通常用來(lái)作為應(yīng)用程序載入時(shí)的loading畫(huà)面顯示,一般來(lái)說(shuō),***幀包含的內(nèi)容應(yīng)該盡可能的少(在***幀中盡量不要含有Flex框架的組件),以便能很快的下載并立即顯示;第二幀才是主應(yīng)用程序真正的內(nèi)容,一旦SystemManager實(shí)例進(jìn)入到第二幀后,即開(kāi)始內(nèi)部主應(yīng)用程序運(yùn)行的生命周期(lifecycle),也就是進(jìn)入我們最為熟悉的<mx:Application>運(yùn)行的部分(SystemManger實(shí)例有一application的屬性,在第1幀時(shí),此屬性為null,當(dāng)進(jìn)入到第2幀時(shí),該屬性才指向真正的主程序application實(shí)例)
◆注:幀是時(shí)間線的一個(gè)基本單元,如PAL電視制式,每秒25幀;而電影通常為每秒24幀,其實(shí)和我們這里講的Flash中的幀類(lèi)似的概念記住我們開(kāi)始所說(shuō)的,F(xiàn)lex應(yīng)用程序總的來(lái)說(shuō)是以事件驅(qū)動(dòng)的程序。
在程序進(jìn)入第2幀,主程序application開(kāi)始運(yùn)行后,便會(huì)相應(yīng)的觸發(fā)相應(yīng)的一系列事件,按事件發(fā)生的先后順序依次來(lái)介紹:
preinitialize
應(yīng)用程序application已實(shí)例化,但此時(shí)還未創(chuàng)建任何相關(guān)的孩子組件(childcomponen)
initialize
此時(shí),創(chuàng)建了相應(yīng)的孩子組件,但還未對(duì)這些子組件進(jìn)行布局
creationComplete
應(yīng)用程序application完成全部實(shí)例化,并完成所有子組件的布局
apllicationComplete
◆上面三處事件的完成,表明application內(nèi)部啟動(dòng)的整個(gè)進(jìn)程完成,接下來(lái)便會(huì)通知SystemManager派發(fā)applicationComplete事件。此時(shí),啟動(dòng)程序啟動(dòng)完成并準(zhǔn)備運(yùn)行。
運(yùn)行下面這個(gè)小程序,再次理解這幾次事件,注意:由于在preinitialize事件產(chǎn)生時(shí),此時(shí)還未創(chuàng)建任何子組件,故在此事件的處理函數(shù)中,不能直接將相應(yīng)顯示的字符串賦給TextArea組件顯示。
<?xmlversionxmlversion="1.0"encoding="utf-8"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="preinitHandler()" initialize="initHandler()" creationComplete="creationComHandler()" applicationComplete="appComHandler()"viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ privatevarpreTxt:String; privatefunctionpreinitHandler():void{ preTxt="preinitializecompleted."+"\n"; } privatefunctioninitHandler():void{ vartxt:String="initializecompleted."+"\n"; txtArea.text=preTxt+txt; } privatefunctioncreationComHandler():void{ vartxt:String="creationCompletecompleted."+"\n"; txtArea.text+=txt; } privatefunctionappComHandler():void{ vartxt:String="applicationCompletecompleted."+"\n"; txtArea.text+=txt; } ]]> </mx:Script> <mx:TextAreaidmx:TextAreaid="txtArea"height="183"width="189" horizontalCenter="0"top="37"/> <mx:Labelymx:Labely="228"text="Flex應(yīng)用程序啟動(dòng)之事件產(chǎn)生"fontSize="12"horizontalCenter="0"/> </mx:Application>
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Flex應(yīng)用程序怎么啟動(dòng)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
新聞名稱(chēng):Flex應(yīng)用程序怎么啟動(dòng)
本文地址:http://aaarwkj.com/article38/gpjipp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站改版、移動(dòng)網(wǎng)站建設(shè)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)