如何获得Flex元数据的自动完成功能?

时间:2012-08-08 09:52:41

标签: actionscript-3 flex

我看了一下flex元数据,看起来很安静。虽然我遇到了问题,但我没有自动完成元数据。

我会告诉你我做了什么,也许你发现了一个错误。我想创建自己的Style元数据标签,例如,例如我的风格。我想创建自己的,因为我更容易在运行时确定元数据是由我还是由flex框架添加的(因此我不会使用预定义的Style元数据标记)。

添加元数据非常简单,我只是编写了这段代码来实现它:

<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark" 
         width="1024" height="768">

     <fx:Metadata>
         [MyStyle(required="true")]
     </fx:Metadata>
</s:Group>

在我的WindowedApplication组件上,我添加了一个添加到舞台的舞台监听器。因此,添加到应用程序的所有元素将在将它们添加到舞台时触发Event.ADDED。在那个eventHandler中,我扫描了元数据标签的添加元素。

protected function addedToStageListener(event:Event):void
{
    var classInfo:XML = describeType(event.target);
    for each (var x:XML in classInfo..metadata)
    {
        if (x.@name == "MyStyle")
            trace(x);
    }
}

我还添加了一个flex-config.xml文件(在我的src文件夹的顶层)来添加编译器选项,以便我可以在运行时读取我的自定义元数据标记。该文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<flex-config>
    <compiler>
        <keep-as3-metadata>
            <name>MyStyle</name>
        </keep-as3-metadata>
    </compiler>
</flex-config>

当我运行时,我得到了我期望的结果

<metadata name="MyStyle">
  <arg key="required" value="true"/>
</metadata>

所以这很有效。我的下一步是在向代码添加元数据标记时添加自动完成功能。为此,您应该创建一个metadata.xml,它指定元数据标签吗? 所以我这样做了,最后我得到了这个简单的metadata.xml

<?xml version="1.0" encoding="UTF-8"?>
<annotations version="2.1.1">
    <metadata name="MyStyle" description="Adds style.">
        <context name="class" />
        <attribute name="required" type="Boolean" required="true" />
    </metadata>
</annotations>

要将metadata.xml正确添加到我跟随that tutorial by Adobe的项目中,但它不起作用。我没有得到自动完成功能。你有什么建议吗?

更新:我使用Flash Builder 4.6 Professional,并创建了一个Flex库项目。

0 个答案:

没有答案