读书人

Flex中的元数据标签(Metadata tags)2

发布时间: 2012-11-01 11:11:33 作者: rapoo

Flex中的元数据标签(Metadata tags)二

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,默认值为anypublic 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对象后,被该标签标识的属性,会从发送到服务端的数据中忽略掉。 1 楼 bence 2010-05-31 总的太好了,谢谢分享

读书人网 >flex

热点推荐