4 Embed
Embed标签用来导入图片等到程序。可以通过两种方式使用embed。
下面代码展示了两种给一个button加icon的例子
<mx:Script> <![CDATA[ [Embed(source="com/assget/close.png")] [Bindable] public var myIcon:Class; ]]> </mx:Script> <mx:Button label="Embed tag1" icon="{myIcon}"/> <mx:Button label="Embed tag2" icon="@Embed(source='com/assget/close.png')"/>
推荐使用一个变量的方式加载icon,因为这个变量可以重复使用。
5 Event
Event用来声明那些被自定义的事件,将这个元数据标签定义到类之后就可以在mxml标签中添加事件监听了。
例如:定义了myEnableEvent事件。
<mx:Metadata> [Event(name="myEnableEvent", type="flash.events.Event")] </mx:Metadata>
在下面的代码中,我们就可以处理myEnableEvent事件了。
经过测试发现,其实上面的代码是可以省略掉的,但是个人觉得还是写上的好。因为这样的代码看着比较清晰,特别是自定义的事件。
6 Effect
这个和event的用法差不多,[Effect(name="eventNameEffect", event="eventName")]
就不说了
7 IconFile
IconFile 是用来定义一个jpg,gif或者png文件的文件名的,它在你的自定义类中作为图标来使用。[Embed]元数据标签可以用来嵌入图片、SWF文件、音 乐文件以及视频文件等,而IconFile则只是用来嵌入用来作为自定义类图标的文件。下面是一个IconFile的例子:
[IconFile(”icon.png”)]
public class CustomButton extends Button{}
不过这个我试了没见效果,不知道为什么?
8 Inspectable
在flexbuilder中,一个属性的提示就是这个标签的功劳。这个在自定义组件中很重要的,能给使用者提供一个属性值的下拉列表框。
先看一个自动完成的例子,
package com.beyondsoft.widgets { import mx.controls.ComboBase; public class AutoComponent extends ComboBase { public function AutoComponent() { super(); } [Inspectable(defaultValue="any", enumeration="any,first,last,only", category="Other",type="String")] //匹配的模式有四种any,first,last,only,默认值为any public var matchType:String; } }
通过以上的简单配置,在flexbuilder中matchType就有四个下拉框了,而且默认值为any了。
下面的代码设置了,boolean类型数据的提示
[Inspectable(defaultValue=true, category="Common")] public var isCheck:Boolean;
9.RemoteClass
RemoteClass 可以用来将一个ActionScript类绑定到一个Java类或一个ColdFusion CFC。这样做可以自动转换数据类型。下面的例子将包com.mydomain中的名为MyClass的ActionScript类绑定到了同一个包中名 为MyClass的Java类:
package com.beyondsoft.widgets { [Bindable] [RemoteClass(alias="com.mydomain.MyClass")] public class MyClass { public function MyClass() { } } }
RemoteClass 在flex的mvc框架中是经常用到的。
10 Style
Style元数据标签用来为组件定义自定义样式属性的。只需要简单地将Sytle元数据标签添加到类的定义当然,然后就可以使用getSytle方法获取它的值了。如果想自定义组件,那得好好学习它了。
下面的例子中,定义了一个自己的样式customColor,用getStyle("customColor")得到此样式的值。
package com.beyondsoft.widgets { import mx.core.UIComponent; [Style(name="customColor",type="uint",format="Color",inherit="no")] public class CustomCircle extends UIComponent { public function CustomCircle() { super(); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth,unscaledHeight); this.graphics.lineStyle(1,this.getStyle("customColor"),1.0); this.graphics.beginFill(112211,1.0); this.graphics.drawEllipse(0,0,100,100); } } }
调用此组件
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:local="com.beyondsoft.widgets.*"> <local:CustomCircle customColor="#00ffcc"/> </mx:Application>
下面是是元数据标签的列表
标签 | 描述 |
[ArrayElementType] | 在数组中定义所有允许的数据类型。 |
[Bindable] | 声明一个属性可以在代码中使用数据绑定表达式。 |
[DefaultProperty] | 定义组件在MXML中使用时的默认属性的名称。 |
[Deprecated] | 标识一个类或类的元素是不推荐使用的,这样编译器能认出他并在被调用时给出一个警告信息。 |
[Effect] | 定义MXML的特效属性名称。 |
[Embed] | 在编译时导入 JPED,PNG,SVG 或 SWF文件。也会导入SWC文件的图片资源。他的功能等同于MXML中的 @Embe 语法。 |
[Event] | 定义MXML的事件属性的名称和类型。 |
[Exclude] | 使 Flex Builder 的标签检查器忽略类元素。语法类似 [Exclude(name=”label”, kind=”property”)] |
[ExcludeClass] | 是 Flex Builder 标签检查器忽略类。这相当于ASDoc中的 @private 标签。 |
[IconFile] | 定义一个图标文件,使组件在Adobe Flex Builder的插入面板中以该图标显示。 |
[Inspectable] | 定义一个属性的列表,供组件使用者在 Flex Builder 的的属性提示和标签检查中使用。同时也定义了属性的可用值。 |
[InstanceType] | 指定了 IDeferredInstance 中的,属性接受的数据类型。 |
[NonCommittingChangeEvent] | 定义一个事件过渡触发器。 |
[RemoteClass] | 把一个ActionScript对象映射到Java对象。 |
[Style] | 为组件的样式属性定义一个MXML标签属性。 |
[Transient] | 当一个 ActionScript 对象被映射到Java对象后,被该标签标识的属性,会从发送到服务端的数据中忽略掉。 |