国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Flex 2 中的元數(shù)據(jù)標(biāo)簽
Flex 2 中的元數(shù)據(jù)標(biāo)簽

                                                    ——告訴編譯器如何編譯

雖然多數(shù)Flex開發(fā)者都使用過[Bindable]標(biāo)簽,但是很多人都不知道這個(gè)標(biāo)簽的作用甚至不知道該標(biāo)簽為何物。[Bindable]就是所謂的元數(shù)據(jù)標(biāo)簽。元數(shù)據(jù)標(biāo)簽是一種特殊的標(biāo)簽,它在代碼中的作用就是向編譯器提供如何編譯程序的信息。實(shí)際上,這些標(biāo)簽并沒有被編譯到生成的SWF文件中,而只是告訴編譯器如何生成SWF文件。文檔中列出的元數(shù)據(jù)標(biāo)簽共有12個(gè),本文將講解這些元數(shù)據(jù)標(biāo)簽的定義并給出使用它們的示例,在看完這篇文章之后,你就會(huì)明白應(yīng)該在何時(shí)何處在你的Flex 2應(yīng)用程序中使用元數(shù)據(jù)標(biāo)簽了。

[ArrayElementType]

實(shí)際上,定義一個(gè)數(shù)組通常來說是一件很平常的事情,因?yàn)閿?shù)組中的元素可以是任何類型的。不過,使用ArrayElementType元數(shù)據(jù)標(biāo)簽可以讓你定義數(shù)組元素的數(shù)據(jù)類型。下面的例子展示了如何使用[ArrayElementType]:

程序代碼
   [ArrayElementType("String")]
    public var arrayOfStrings:Array;

    [ArrayElementType("Number")]
    public var arrayOfNumbers:Array;

    [ArrayElementType("mx.core.UIComponent")]
    public var arrayOfUIComponents:Array;


[Bindable]

Bindable元數(shù)據(jù)標(biāo)簽是最經(jīng)常用到的一個(gè)元數(shù)據(jù)標(biāo)簽,因?yàn)樗钩绦蚪M件之間的數(shù)據(jù)同步變得很容易。Bindable可以用來綁定簡(jiǎn)單數(shù)據(jù)類型、類、復(fù)雜數(shù)據(jù)類型以及函數(shù)。綁定數(shù)據(jù)的時(shí)候,你必須先使用元數(shù)據(jù)標(biāo)簽定義一下數(shù)據(jù),正如Listing 1中所示的那樣。

Bindable也可以用來綁定到事件。Listing 2展示了如何使用getter和setter函數(shù)將一個(gè)屬性綁定到一個(gè)事件上。這個(gè)例子中有一個(gè)叫做phoneNumber的私有變量,還有一個(gè)公有的setter和getter函數(shù)。使用Bindable標(biāo)簽將這個(gè)getter方法綁定到了一個(gè)叫做phoneNumberChanged的事件上,只要數(shù)據(jù)發(fā)生改變setter方法就會(huì)分派phoneNumberChanged事件。通過使用setter方法,可以在數(shù)據(jù)賦予私有變量之前對(duì)其進(jìn)行操作。在這個(gè)例子中,數(shù)據(jù)只有在長(zhǎng)度大于等于10的時(shí)候才會(huì)被格式化。當(dāng)phoneNumberChanged事件被分派的時(shí)候,第二個(gè)TextInput組件會(huì)被更新,因?yàn)樗膖ext屬性綁定到了phoneNumber變量上。

[DefaultProperty]

DefaultProperty元數(shù)據(jù)標(biāo)簽用來將一個(gè)單一屬性設(shè)定為某個(gè)類的默認(rèn)屬性。它允許在一個(gè)容器標(biāo)簽內(nèi)設(shè)定屬性,而不用定義屬性的名字。一個(gè)簡(jiǎn)單的例子就是一個(gè)自定義Button類。Listing 3展示了一個(gè)簡(jiǎn)單的Button類,它將label屬性設(shè)定為了DefaultProperty。Listing 4展示了label屬性是如何在自定義Button標(biāo)簽中作為一個(gè)字符串定義的。

[Embed]

Embed元數(shù)據(jù)標(biāo)簽用來導(dǎo)入圖片到程序。可以通過兩種方式使用Embed。你可以將圖片嵌入到ActionScript中并將其指派給一個(gè)變量(如同下面代碼中的第一個(gè)例子),或者你也可以將圖片直接指派給組件的屬性(使用下面代碼中的第二個(gè)例子所示的語法規(guī)則)。

例1:
程序代碼
[Embed(source="myIcon.gif")]
[Bindable]
public var myIcon:Class;

<mx:Button label="Icon Button 1" icon="{myIcon}"/>
<mx:Button label="Icon Button 2" icon="{myIcon}"/>


例2:
程序代碼
<mx:Button label="Icon Button 1" icon="@Embed(source=myIcon.gif‘)"/>

<mx:Button label="Icon Button 2" icon="@Embed(source=myIcon.gif‘)"/>


上面這兩個(gè)例子產(chǎn)生的結(jié)果是一樣的。創(chuàng)建myIcon類的好處是,它在一個(gè)類中只定義一次并可以綁定到程序中的多個(gè)組件。

[Event]

Event元數(shù)據(jù)標(biāo)簽用來聲明那些被自定義類分派的事件。將這個(gè)元數(shù)據(jù)標(biāo)簽添加到類定義中之后,你就可以在MXML標(biāo)簽中添加事件處理函數(shù)來初始化該自定義類。Listing 5創(chuàng)建了一個(gè)自定義Button類,每當(dāng)它的label屬性改變的時(shí)候就會(huì)分派一個(gè)事件。Listing 6所顯示的主程序文件初始化了這個(gè)自定義Button并創(chuàng)建了事件處理函數(shù),該函數(shù)將新的labe屬性值賦給了一個(gè)TextArea組件以顯示當(dāng)前發(fā)生的更改。

[Effect]

Effect元數(shù)據(jù)標(biāo)簽用來定義一個(gè)自定義效果,當(dāng)某個(gè)事件發(fā)生的時(shí)候該效果會(huì)被分派。這個(gè)示例可以基于前面Event的例子來創(chuàng)建,通過簡(jiǎn)單地更改ButtonLabel類(Listing 7)中的一行代碼,就定義了一個(gè)效果,該效果可以在MXML標(biāo)簽中直接使用(Listing 8)。

[IconFile]

IconFile是用來定義一個(gè)jpg,gif或者png文件的文件名的,它在你的自定義類中作為圖標(biāo)來使用。[Embed]元數(shù)據(jù)標(biāo)簽可以用來嵌入圖片、SWF文件、音樂文件以及視頻文件等,而IconFile則只是用來嵌入用來作為自定義類圖標(biāo)的文件。下面是一個(gè)IconFile的例子:

程序代碼
[IconFile("icon.png")]
public class CustomButton extends Button
{

}


[Inspectable]

在使用Flex Builder 2的時(shí)候,你可能會(huì)希望某些自定義組件的屬性在代碼提示和屬性檢查器(property inspector)中顯示,Inspectable元數(shù)據(jù)標(biāo)簽就是用來定義那些屬性的。Listing 9展示的例子定義了一個(gè)inspectable的ccType變量,它定義了Visa為默認(rèn)值、Credit Card為類別并將取值范圍定義為包含了Visa, Mastercard, Discover, 和 American Express的枚舉。

[InstanceType]

當(dāng)在一個(gè)模板對(duì)象中聲明一個(gè)像IDeferredInstance這樣的變量時(shí),InstanceType元數(shù)據(jù)標(biāo)簽就用來聲明對(duì)象的類型。下面是InstanceType的用法:

程序代碼
[InstanceType("package.className")]


[NonCommittingChangeEvent]

NonCommittingChangeEvent元數(shù)據(jù)標(biāo)簽在某個(gè)特定事件發(fā)生的時(shí)候可以防止變量在事件發(fā)生的過程中被更改。Listing 10展示了它是如何工作的。一個(gè)名為s的字符串類型的私有變量被綁定到了名為ti2的TextInput組件上。另外一個(gè)id為ti1的TextInput組件在它的text發(fā)生更改的時(shí)候就會(huì)將s的值設(shè)置為它的text屬性的值。另外,當(dāng)triggerBinding 事件被分派的時(shí)候,附加在s變量上的Binding元數(shù)據(jù)標(biāo)簽就會(huì)進(jìn)行綁定。只有在Enter鍵在ti1 TextInput組件中被按下時(shí)才會(huì)分派triggerBinding事件。

[RemoteClass]

RemoteClass可以用來將一個(gè)ActionScript類綁定到一個(gè)Java類或一個(gè)ColdFusion CFC。這樣做可以自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型。下面的例子將包c(diǎn)om.mydomain中的名為MyClass的ActionScript類綁定到了同一個(gè)包中名為MyClass的Java類:

程序代碼
package com.mydomain {
   [Bindable]
   [RemoteClass(alias="com.mydomain.MyClass")]
   public class MyClass {
     public var id:int;

     public var myText:String;

   }
}


[Style]

Style元數(shù)據(jù)標(biāo)簽用來為組件定義自定義樣式屬性的。只需要簡(jiǎn)單地將Sytle元數(shù)據(jù)標(biāo)簽添加到類的定義當(dāng)然,然后就可以使用getSytle方法獲取它的值了。Listing 11 和 12中的例子定義了兩個(gè)樣式,分別為borderColor 和fillColor,它們的數(shù)據(jù)類型都是uint。當(dāng)類初始化的時(shí)候這兩個(gè)樣式就會(huì)在標(biāo)簽中被設(shè)定。代碼中覆寫了updateDisplayList函數(shù),用自定義的樣式畫了一個(gè)圓形邊框并將其填充。

現(xiàn)在你應(yīng)該會(huì)有這樣的感覺了:“喔,現(xiàn)在我知道在哪里可以使用它們了”或者“嗯,我想我會(huì)在新的項(xiàng)目中嘗試使用這些元數(shù)據(jù)標(biāo)簽”。如果你沒有,那么你可能需要回過頭去再看一遍這篇文章。OK,我想說的是Adobe Flex小組提供給我們的元數(shù)據(jù)標(biāo)簽不只是非常的強(qiáng)大,可以讓我們擴(kuò)展或自定義我們要做的東西,而且它還非常易于使用。通過使用它們,僅僅幾行代碼就可以完成一大堆事情。如果不使用這些標(biāo)簽,你會(huì)發(fā)現(xiàn)在Flex 2中實(shí)現(xiàn)一些東西是很辛苦的。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Flex 3 metadata tags 標(biāo)簽 - Just Code - JavaEye...
flex4 讀書筆記 chapter 1
Flex Metadata tags 元數(shù)據(jù)標(biāo)簽
原創(chuàng)系列之:Flex數(shù)據(jù)綁定基礎(chǔ)介紹[轉(zhuǎn)]
Flex實(shí)現(xiàn)多功能Mp3播放器
ArcGIS.Server.9.3和ArcGIS API for Flex實(shí)現(xiàn)GraphicsLayer上畫點(diǎn)、線、面(五)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服