Creating Own Meta Data in Flex
2008-10-12 17:35 宝宝合凤凰 阅读(308) 评论(0) 收藏 举报Creating Own Meta Data in Flex
作者:duzengqiang 日期:2007-09-28
Creating Own Meta Data in Flex
To create your own meta data, in Flex you have to set compiler option: -keep-as3-metadata
Here is small example -
Index.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
private var metaData:MetaDataExample = new MetaDataExample();
private function displayDescription():void
{
textArea.text = metaData.description;
}
]]>
</mx:Script>
<mx:TextArea width="100%" height="100%" id="textArea"/>
<mx:Button label="Describe" click="displayDescription()"/>
</mx:Application>
MetaDataExample.as:
package
{
import flash.utils.*;
public class MetaDataExample
{
public function MetaDataExample()
{
}
public function get description():String
{
return describeType(this).toString();
}
[Orange(size="very big", isTasty="Yes Yes Yes Yes!")]
public function get prop():String
{ return "hello"; }
public function set prop(value:String):void
{ }
}
}
and finaly meta-config.xml:
<?xml version="1.0"?>
<flex-config xmlns="http://www.adobe.com/2006/flex-config">
<compiler>
<keep-as3-metadata>
<name>Orange</name>
</keep-as3-metadata>
<keep-generated-actionscript>true</keep-generated-actionscript>
<source-path>
<path-element>.</path-element>
</source-path>
</compiler>
<output>C:\Program Files\Adobe\Flex\Flex SDK 2\bin\Index.swf</output>
</flex-config>
Now you simply compile your application with -load-config+="meta-config.xml". And you have your own meta data in Flex.
P.S. in order to check it you can use flash.utils.describeType() method, here is what i’ve got:
<accessor name="prop" access="readwrite" type="String" declaredBy="MetaDataExample">
<metadata name="Orange">
<arg key="size" value="very big"/>
<arg key="isTasty" value="Yes Yes Yes Yes!"/>
</metadata>
</accessor>

浙公网安备 33010602011771号
January 20th, 2007 at 6:29 pm
That’s very cool! I had no idea that was possible. Thanks!
January 20th, 2007 at 7:47 pm
Thanks to you.
I’ve enjoyed your video with Bruce Eckel =)
August 28th, 2007 at 8:15 pm
Hi,
It works in debug mode, but I can’t get it to work in run mode. Do you have any suggestions? Thanks!
August 28th, 2007 at 10:42 pm
Can you provide me with more info please? version of flex etc.
August 29th, 2007 at 11:52 am
Hi, I spoke to someone of Adobe and it seems that there are some versions of Flex Builder who cause this problem. Manually Compiling with mxmlc did the job. Thanks.