Flex 2 中的元数据标签 Flex 2でのデータには、メタタグ
04月24th, 2007 — Dreamer 04月24日、 2007年-ドリーマー 英文原文: Flex 2 Metadata Tags英語のテキスト: Flex 2のメタデータタグ
原文地址:http://mxdj.sys-con.com/read/361239.htm元の住所: http://mxdj.sys-con.com/read/361239.htm
原文作者: Rich Tretola (作者是everythingflex.com的创建人以及IFBIN的贡献者之一)オリジナルの著者: リッチtretola ( everythingflex.comの創立者で、著者は、 ifbinのいずれかの寄稿者)
译者:Dreamer。翻訳:ドリーマーです。 本文未经同意,谢绝转载。本稿では、同意せず、再版を拒否しています。
Flex 2 中的元数据标签 Flex 2でのデータには、メタタグ
——告诉编译器如何编译 -どのよう、コンパイラのコンパイラを伝える
虽然多数Flex开发者都使用过[Bindable]标签,但是很多人都不知道这个标签的作用甚至不知道该标签为何物。現在、ほとんどのFlex開発者が使用して[連結]ラベル、しかし、多くの人々はありませんのラベルの役割を知っているかも分からないのラベルはなぜです。 [Bindable]就是所谓的元数据标签。 [連結]は、いわゆるメタデータタグです。 元数据标签是一种特殊的标签,它在代码中的作用就是向编译器提供如何编译程序的信息。メタデータのラベルは、特別なラベル、それはコンパイラの役割をするコードを提供するプログラムをコンパイルするにしてください。 实际上,这些标签并没有被编译到生成的SWF文件中,而只是告诉编译器如何生成SWF文件。実際には、これらのラベル組み込みでコンパイルされていないのSWFで生成されたドキュメントは、しかし、単にSWFファイルを生成するコンパイラに申し出てください。 文档中列出的元数据标签共有12个,本文将讲解这些元数据标签的定义并给出使用它们的示例,在看完这篇文章之后,你就会明白应该在何时何处在你的Flex 2应用程序中使用元数据标签了。書類には、メタデータのラベルに記載され、合計12日、この資料では、これらのメタデータを説明するラベルの定義を使用すると明記してその例では、この記事を読み、注意する必要がありますいつどこでFlex 2アプリケーションのデータには、メタタグで使用されています。
[ArrayElementType] [ arrayelementtype ]
实际上,定义一个数组通常来说是一件很平常的事情,因为数组中的元素可以是任何类型的。実際には、通常の配列の定義は非常に共通点を持って、その配列の要素のためには、任意のタイプのです。 不过,使用ArrayElementType元数据标签可以让你定义数组元素的数据类型。しかし、メタデータのラベルを使用することarrayelementtypeせていただきます。配列の要素を定義するデータの種類です。 下面的例子展示了如何使用[ArrayElementType]:は、次の例を使用する方法を示して[ arrayelementtype ] :
[ArrayElementType("String")] [ arrayelementtype ( "文字列" ) ]
public var arrayOfStrings:Array; [ArrayElementType("Number")]公共var arrayofstrings :配列; [ arrayelementtype ( "コード" ) ]
public var arrayOfNumbers:Array;公共var arrayofnumbers :配列;
[ArrayElementType("mx.core.UIComponent")] [ arrayelementtype ( " mx.core.uicomponent " ) ]
public var arrayOfUIComponents:Array;公共var arrayofuicomponents :配列;
[Bindable] [連結]
Bindable元数据标签是最经常用到的一个元数据标签,因为它使程序组件之间的数据同步变得很容易。連結メタデータのラベルは、メタタグ、最も頻繁に使用されて、それにより、プロセスのデータを同期コンポーネントの間には非常に簡単です。 Bindable可以用来绑定简单数据类型、类、复杂数据类型以及函数。連結は、単純なデータ型をバインドするために使用、種類、複雑なデータの種類と機能です。 绑定数据的时候,你必须先使用元数据标签定义一下数据,正如Listing 1中所示的那样。バンドルデータ、メタデータを使用する必要があります。最初のデータのラベルの定義を、 リスト1に示す。 图1是Listing 1的代码运行结果。リスト1図1は、コードの結果です。
图1: 図1 :
Bindable也可以用来绑定到事件。連結こともできますして事件をバインドするために使用します。 Listing 2展示了如何使用getter和setter函数将一个属性绑定到一个事件上。 リスト2のゲッター、セッターを使用する方法を示して関数の属性は法的に拘束される事件を参照して下さい。 这个例子中有一个叫做phoneNumber的私有变量,还有一个公有的setter和getter函数。この例では、変数はプライベートと呼ばれる電話番号には、公開とし、セッターゲッター機能です。 使用Bindable标签将这个getter方法绑定到了一个叫做phoneNumberChanged的事件上,只要数据发生改变setter方法就会分派phoneNumberChanged事件。連結のラベルが使用さgetterメソッドを結合して、このphonenumberchanged事件と呼ばれる限り、セッターメソッドが変更されたデータに割り当てられた事件phonenumberchangedです。 通过使用setter方法,可以在数据赋予私有变量之前对其进行操作。セッターメソッドを使用した、プライベート変数を与えることは、データの前で動作します。 在这个例子中,数据只有在长度大于等于10的时候才会被格式化。この例では、わずか10のデータに相当する時間の長さを超えるされるフォーマットです。 当phoneNumberChanged事件被分派的时候,第二个TextInput组件会被更新,因为他的text属性绑定到了phoneNumber变量上。 phonenumberchangedするときに割り当てられた時間の場合は、 2番目のtextinputのコンポーネントが更新される、テキストのため、彼の電話番号の属性を法的に拘束されるの変数です。
图2和图3显示了Listing 2代码的运行结果。図2と図3は、リスト2のコードの結果です。
图2: 図2 :
图3: 図3 :
[DefaultProperty] [ defaultproperty ]
DefaultProperty元数据标签用来将一个单一属性设定为某个类的默认属性。 defaultpropertyメタデータのラベルを使用して、 1つの属性は、デフォルトのカテゴリを設定してプロパティです。 它允许在一个容器标签内设定属性,而不用定义属性的名字。容器のラベルを設定することができるの属性ではなく、カスタム属性名を入力します。 一个简单的例子就是一个自定义Button类。簡単な例は、カスタムボタンのカテゴリをクリックします。 Listing 3展示了一个简单的Button类,它将label属性设定为了DefaultProperty。 リスト3に示します単純なボタンをクリックカテゴリ、それはdefaultproperty label属性に設定されています。 Listing 4展示了label属性是如何在自定义Button标签中作为一个字符串定义的。 リスト4のlabel属性は、どのように表示されるカスタムボタンのラベルを文字列として定義されています。
[Embed] [埋め込み]
Embed元数据标签用来导入图片到程序。埋め込み画像をインポートするメタデータのラベルを使用される手順を実行します。 可以通过两种方式使用Embed。埋め込みできる2つの方法で使用されています。 你可以将图片嵌入到ActionScript中并将其指派给一个变量(如同下面代码中的第一个例子),或者你也可以将图片直接指派给组件的属性(使用下面代码中的第二个例子所示的语法规则)。することができます。 ActionScriptおよび画像に埋め込まれている変数に割り当てられている(のようには、次のコードでの最初の例) 、またはすることもできますが、画像に直接に割り当てられているコンポーネントの属性(に次のコードを使用して2番目の例で詳細の構文規則)です。
例1: ケース1 :
[Embed(source="myIcon.gif")] [埋め込み(ソース= " myicon.gif " ) ]
[Bindable] [連結]
public var myIcon:Class;<mx:Button label=”Icon Button 1″ icon=”{myIcon}”/>公共var myicon :クラス; <mx:button label="iconボタンをクリック1" icon="{myicon}"/>
<mx:Button label=”Icon Button 2″ icon=”{myIcon}”/> <mx:button label="iconボタンをクリック2" icon="{myicon}"/>
例2: 例2 :
<mx:Button label=”Icon Button 1″ icon=”@Embed(source=myIcon.gif’)”/><mx:Button label=”Icon Button 2″ icon=”@Embed(source=myIcon.gif’)”/> <mx:button label="iconボタンをクリック1" icon="@embed(source=myicon.gif')"/> < MXの場合:ボタンラベル= "アイコンをボタンをクリック2 "のアイコン= " @埋め込み(ソース= myicon.gif ' ) " / >
上面这两个例子产生的结果是一样的。上記の結果、これらの2つの例は同じです。 创建myIcon类的好处是,它在一个类中只定义一次并可以绑定到程序中的多个组件。 myiconを作成するようなことの利点は、クラスの定義と1つの手続きにバインドするだけでは、多くのコンポーネントです。
[Event] [イベント]
Event元数据标签用来声明那些被自定义类分派的事件。イベントのメタデータを使用してこれらのステートメントラベルが割り当てられたカスタムクラスのイベントです。 将这个元数据标签添加到类定义中之后,你就可以在MXML标签中添加事件处理函数来初始化该自定义类。このメタデータが追加されたラベルのクラスで定義されて、 mxmlのラベルを追加することもできます事件の関数を初期化してカスタムカテゴリをクリックします。 Listing 5创建了一个自定义Button类,每当它的label属性改变的时候就会分派一个事件。 リスティング5カスタムボタンを作成カテゴリを作成するには、属性を変更するときに割り当てられた時間のラベルは、事件のです。 Listing 6所显示的主程序文件初始化了这个自定义Button并创建了事件处理函数,该函数将新的labe属性值赋给了一个TextArea组件以显示当前发生的更改。 リスト6に示すのメインプログラムファイルを初期化するカスタムボタンを押すと、この事件の関数を作成して、新しいプロパティの値の機能を割り当てるにはTextAreaコンポーネントを表示するラベの現在の変更を適用します。
图4显示了Listing 5 和Listing 6中的代码运行结果。図4は、リスト5およびリスト6のコードの結果を確認します。
图4: 図4 :
[Effect] [効果]
Effect元数据标签用来定义一个自定义效果,当某个事件发生的时候该效果会被分派。効果のメタデータを定義するラベルを使用してカスタム効果は、ときに1つの事件が発生したときの結果が代入されます。 这个示例可以基于前面Event的例子来创建,通过简单地更改ButtonLabel类( Listing 7 )中的一行代码,就定义了一个效果,该效果可以在MXML标签中直接使用( Listing 8 )。の例に基づいてこれは、上記の例のイベントを作成し、簡単な変更にbuttonlabelを通じてクラス(リスティング7 )のコードをその随行員たちは、上の定義には、効果への影響を直接に使われることは、 MXMLタグ(リスト8 ) 。
[IconFile] [ iconfile ]
IconFile是用来定义一个jpg,gif或者png文件的文件名的,它在你的自定义类中作为图标来使用。 iconfileを使用して定義するにjpg 、 gif 、またはpngのファイル名、これにして、カスタムのアイコンを使用する部門でノミネートされています。 [Embed]元数据标签可以用来嵌入图片、SWF文件、音乐文件以及视频文件等,而IconFile则只是用来嵌入用来作为自定义类图标的文件。 [埋め込み]メタデータラベルの写真を使用して埋め込み、 SWFファイル、音楽ファイルやビデオファイル、および埋め込みにのみ使用してカスタムアイコンを使用されてiconfileのドキュメントの作成カテゴリです。 下面是一个IconFile的例子:以下は、 iconfile例:
[IconFile("icon.png")] [ iconfile ( " icon.png " ) ]
public class CustomButton extends Buttonパブリッククラスcustombutton拡張ボタンをクリック
{} ( )
[Inspectable] [ inspectable ]
在使用Flex Builder 2的时候,你可能会希望某些自定义组件的属性在代码提示和属性检查器(property inspector)中显示,Inspectable元数据标签就是用来定义那些属性的。 Flex Builder 2のは、使用する時間は、希望をカスタマイズすることがありますの特定のコンポーネントの属性は、コードのヒントと属性をインスペクタ(プロパティインスペクタ)は、詳細、 inspectableメタデータのラベルを使用してそれらの属性を定義します。 Listing 9展示的例子定义了一个inspectable的ccType变量,它定义了Visa为默认值、Credit Card为类别并将取值范围定义为包含了Visa, Mastercard, Discover, 和American Express的枚举。 リスティング9詳細の例は、変数の定義をinspectable cctype 、ビザのデフォルト値を定義して、クレジットカードの種類や範囲の定義を含めるビザ、マスターカード、発見、アメリカンエキスプレスと列挙します。
图5展示了当将组件添加到程序中的时候所显示的代码提示。図5のコンポーネントが表示されるときに追加されたプロセスのコードが表示されるヒントをご覧ください。
图5: 図5 :
图6与上面展示的是同样的代码,但是这次是设计视图,所以我们能看到属性检查器。図6と同じコードの上にディスプレイが、しかし、これは、設計のビューで、我々が目には、属性インスペクタです。 你可以看到属性ccType的类别为Credit Card,它的所有可选的值都在下拉列表中。することができます。 cctypeの詳細については、クレジットカードの種類の属性を、すべてのオプションには、ドロップダウンリストの値です。
图6: 図6 :
[InstanceType] [ instancetype ]
当在一个模板对象中声明一个像IDeferredInstance这样的变量时,InstanceType元数据标签就用来声明对象的类型。テンプレートのオブジェクトのときには声明の中でideferredinstanceなどの変数、ラベルinstancetypeのメタデータを検索するタイプのオブジェクトをしている。 下面是InstanceType的用法: instancetypeの利用方法に次のとおりです:
[InstanceType("package.className")] [ instancetype ( " package.classname " ) ]
[NonCommittingChangeEvent] [ noncommittingchangeevent ]
NonCommittingChangeEvent元数据标签在某个特定事件发生的时候可以防止变量在事件发生的过程中被更改。メタデータのラベルをnoncommittingchangeevent事件が発生したときに、特定の変数の事件の発生を防止することは、変化の過程にある。 Listing 10展示了它是如何工作的。 リスティング10示してどのように動作します。 一个名为s的字符串类型的私有变量被绑定到了名为ti2的TextInput组件上。秒と呼ばれる文字列の種類のプライベート変数に同梱のti2 textinputのコンポーネントを検索すると呼ばれる。 另外一个id为ti1的TextInput组件在它的text发生更改的时候就会将s的值设置为它的text属性的值。 ti1 textinputのコンポーネントの別の番号としては、テキストの変更は、時間の値を設定することはテキストのためにその属性の値です。 另外,当triggerBinding 事件被分派的时候,附加在s变量上的Binding元数据标签就会进行绑定。加えて、 triggerbindingれるときに割り当てられた場合、追加の変数をラベルの結合のメタデータを行っていくと結合します。 只有在Enter键在ti1 TextInput组件中被按下时才会分派triggerBinding事件。 ti1だけでtextinputのコンポーネントにするにはEnterキーに割り当てられたtriggerbindingされる事件が押されています。
[RemoteClass] [ remoteclass ]
RemoteClass可以用来将一个ActionScript类绑定到一个Java类或一个ColdFusion CFC。 remoteclass ActionScriptのカテゴリを使用しては、バインドされたJavaクラス、またはColdFusionのフロンです。 这样做可以自动转换数据类型。これにより、データの種類を自動的に変換します。 下面的例子将包com.mydomain中的名为MyClass的ActionScript类绑定到了同一个包中名为MyClass的Java类: com.mydomainパッケージは、次の例でのActionScriptに呼び出されるmyclassに同じパッケージに同梱のタイプと呼ばれるJavaクラスmyclassに:
package com.mydomain {パッケージcom.mydomain (
[Bindable] [連結]
[RemoteClass(alias="com.mydomain.MyClass")] [ remoteclass (エイリアス= " com.mydomain.myclass " ) ]
public class MyClass {パブリッククラスmyclassの(
public var id:int; public var myText:String;公共var番号: int ;公共var mytext :文字列;
} )
} )
[Style] [スタイル]
Style元数据标签用来为组件定义自定义样式属性的。スタイルのコンポーネント]タブで使用されるメタデータを定義するカスタムスタイル属性を設定します。 只需要简单地将Sytle元数据标签添加到类的定义当然,然后就可以使用getSytle方法获取它的值了。 sytleのメタデータだけに単純にする必要がラベルの作成カテゴリの定義を追加するにはもちろん、と入力し、使用することができますの値を取得することgetsytleします。 Listing 11 和12中的例子定义了两个样式,分别为borderColor 和fillColor,它们的数据类型都是uint。 リスティング11と12の例では、 2つのスタイルを定義し、 bordercolor fillcolorが、それらは、種類のデータをuintです。 当类初始化的时候这两个样式就会在标签中被设定。ときに、クラスの初期化は、 2つのスタイルにセットアップされるラベルです。 代码中覆写了updateDisplayList函数,用自定义的样式画了一个圆形边框并将其填充。コードupdatedisplaylist関数を上書きして、絵画のスタイルを定義されて以来、国境を充填する円形のです。
图7展示了Listing 11 和Listing 12中代码运行的结果。図7によると実行中のコードをリスト11リスト12結果です。
图7: 図7 :
现在你应该会有这样的感觉了:“喔,现在我知道在哪里可以使用它们了”或者“嗯,我想我会在新的项目中尝试使用这些元数据标签”。今すぐこのような場合には、感情: "ああ、今すぐ私の知ってここで使用することができます"または"ああ、と思うが、新しいプロジェクトは、これらのメタデータのラベルを使用しようとします。 " 如果你没有,那么你可能需要回过头去再看一遍这篇文章。をお持ちでない場合は、入力し、あなたが必要な場合が館に戻って再yibianこの記事です。 OK,我想说的是Adobe Flex小组提供给我们的元数据标签不只是非常的强大,可以让我们扩展或自定义我们要做的东西,而且它还非常易于使用。分かった、そう言ってやるがしたいことはAdobe Flexのグループのメタデータタグを提供するだけでなく、我々の非常に強いので、展開またはカスタムを選択してください私たちがこれを行うに物事、それは非常に簡単に使用します。 通过使用它们,仅仅几行代码就可以完成一大堆事情。それらを使用した、わずか数行のコードを完了する多くのことをします。 如果不使用这些标签,你会发现在Flex 2中实现一些东西是很辛苦的。もしこれらのラベルは使用しないで、あなたは見つけるのFlex 2での実現にはいくつかのことは非常に困難です。
本文链接: http://www.zhuoqun.net/html/y2007/508.html 转载请注明出处,谢谢。 このリンク: http://www.zhuoqun.net/html/y2007/508.html転載をご参考までに、よろしくお願いします。
TrackBack引用地址: http://www.zhuoqun.net/html/y2007/508.html/trackback トラックバック使用される住所: http://www.zhuoqun.net/html/y2007/508.html/trackback



纯顶一下,支持好人トップへ-をサポートするには善人
[Embed]标签“例2”位置标错了 [埋め込み]ラベルを" 2 "上の間違った場所
to N神:多谢提醒,我也觉得有点别扭就是没发现。
发现Flex的标签只在Flex项目里有效,用Flex创建as3项目,使用所有标签都无效,包括[Embed]フレックスが見つかりましたラベルだけでは、 Flexプロジェクトでの効果的な利用のFlex as3プロジェクトを作成し、使用したすべてのラベルは無効に、 [埋め込み]
Flash CS3出来了,但是代码编辑器还是很难使,本来想用CS3 来做界面Embed到类里面、Flex创建AS3项目来写代码、编译。フラッシュcs3アウト、しかし、コードエディタまたはことは非常に難しいように、もともとcs3インターフェイスを指名手配して埋め込みタイプの内側、フレックスas3プロジェクトを作成するコードを書くのコンパイラを指定します。 好像行不通。うまくいかないようです。
不知道各位有什么好想法?知る必要はありません良いアイデア»
PS:Dreamer 交换一下链接怎么样http://www.weni.cn psの:ドリーマー取引所へのリンク方法の種類http://www.weni.cn