ActionScript中怎么創(chuàng)建可視化Flex組件

這篇文章給大家介紹ActionScript中怎么創(chuàng)建可視化Flex組件,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)建站企業(yè)建站,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。

用ActionScript創(chuàng)建可視化的Flex組件

通過使用ActionScript中的new操作符你可以程序化的創(chuàng)建可視化的Flex組件,用同樣的方式你也可以創(chuàng)建任何ActionScript類的實(shí)例。創(chuàng)建后的組件的屬性都有默認(rèn)的值,但是組件此時(shí)并沒有父類和子類(包含各式各樣的DisplayObject),而且此時(shí)組件并不在FlashPlayer或AdobeAIR的顯示列表中,因此無法在界面看到該組件。當(dāng)創(chuàng)建組件完成后,你可以使用標(biāo)準(zhǔn)的賦值語句來重新設(shè)置組件的屬性的值。

如果你要把新創(chuàng)建的Flex組件添加到容器中去,必須使用容器的addChild()和addChildAt()方法,通過這種方法可以使得組件變成Flex程序的顯示層級(jí)的一部分。當(dāng)組件***次被添加到容器的時(shí)候,組件的子實(shí)例就被創(chuàng)建了。在組件的生命周期子實(shí)例創(chuàng)建的時(shí)候比較晚,因此你可以在子實(shí)例創(chuàng)建完成后設(shè)置它的屬性。

當(dāng)創(chuàng)建可視化組建的時(shí)候,你必須導(dǎo)入合適的包。在大多數(shù)情況下,這些包基本都在mx.controls包中,具體的你可以查閱AdobeFlexLanguageReference

下面的例子中,創(chuàng)建了一個(gè)Button控件并田間到HBox中去:

<?xmlversionxmlversion="1.0"?>  <!--usingas/ASVisualComponent.mxml-->  <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml">  <mx:Script><![CDATA[   importmx.controls.Button;   publicvarbutton2:Button;   publicfunctioncreateObject():void{   button2=newButton();   button2.label="ClickMe";   hb1.addChild(button2);   }   ]]></mx:Script>  <mx:HBoxidmx:HBoxid="hb1">  <mx:Buttonlabelmx:Buttonlabel="CreateObject"click="createObject()"/>  </mx:HBox>  </mx:Application>

Flex容器中新創(chuàng)建的元素將會(huì)排在容器的***。如果你并不像讓新創(chuàng)建的元素排在容器的***,可是使用addChildAt()方法來改變?cè)氐捻樞?。你也可以在調(diào)用addChild()方法后使用setChildIndex()方法來實(shí)現(xiàn),不過這樣做的話效率會(huì)降低。

你應(yīng)該為每個(gè)動(dòng)態(tài)創(chuàng)建的Flex組件定義實(shí)例變量并且將新創(chuàng)建的組件的實(shí)例存儲(chǔ)在變量里,就像當(dāng)你為組件的實(shí)例標(biāo)簽設(shè)置了id屬性的時(shí)候MXML編譯器所做的那樣。然后你就可以訪問你剛才動(dòng)態(tài)創(chuàng)建的組件。

◆如果要在程序中移除一個(gè)組件,你需要使用removeChild()或removeChildAt()方法。你也可以使用removeAllChildren()方法來移除容器的所有組件。調(diào)用這些方法并不是真正的刪除這些對(duì)象。如果你在程序沒有這些對(duì)象的任何引用,那么FlashPlayer的垃圾回收機(jī)制就會(huì)在將來的某個(gè)時(shí)間點(diǎn)進(jìn)行回收。如果在程序中存儲(chǔ)了該對(duì)象的引用,那么系統(tǒng)將會(huì)不從內(nèi)存中移除該對(duì)象。

在有些情況下,你是通過使用MXML標(biāo)簽來定義組件的。你可以設(shè)置容器的creationPolicy屬性為none來延遲容器中組件的實(shí)例化。為了創(chuàng)建那些用標(biāo)簽定義了但沒有實(shí)例化的組件,你可以使用createComponentFromDescriptor()和createComponentsFromDescriptors()方法。使用這些方法可以讓你程序化的創(chuàng)建組件而不是聲明化的。

可以支持addChild()方法的組件是UIComponent。換句話說,如果你創(chuàng)建了一個(gè)并不是mx.core.UIComponent的子類的對(duì)象,在你將該對(duì)象添加到容器之前你必須用UIComponent封裝該對(duì)象。下面的例子中,創(chuàng)建了并不是UIComponent子類的Sprite對(duì)象,在將該對(duì)象添加到Panel容器之前將對(duì)象添加為UIComponent的子對(duì)象:

<?xmlversionxmlversion="1.0"?>  <!--usingas/AddingChildrenAsUIComponents.mxml-->  <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml">  <mx:Script><![CDATA[   importflash.display.Sprite;   importmx.core.UIComponent;   privatevarxLoc:int=20;   privatevaryLoc:int=20;   privatevarcircleColor:Number=0xFFCC00;   privatefunctionaddChildToPanel():void{   varcircle:Sprite=newSprite();   circle.graphics.beginFill(circleColor);   circle.graphics.drawCircle(xLoc,yLoc,15);    varc:UIComponent=newUIComponent();   c.addChild(circle);   panel1.addChild(c);   xLoc=xLoc+5;   yLoc=yLoc+1;   circleColor=circleColor+20;   }   ]]></mx:Script>  <mx:Panelidmx:Panelid="panel1"height="250"width="300"verticalScrollPolicy="off"/>  <mx:Buttonidmx:Buttonid="myButton"label="ClickMe"click="addChildToPanel();"/>  </mx:Application>

關(guān)于ActionScript中怎么創(chuàng)建可視化Flex組件就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文題目:ActionScript中怎么創(chuàng)建可視化Flex組件
網(wǎng)站路徑:http://muchs.cn/article0/pdjooo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、做網(wǎng)站標(biāo)簽優(yōu)化、搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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í)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)