事件元数据:为“name”属性使用静态变量?

时间:2011-06-24 20:12:17

标签: flex events actionscript metadata

我想使用Event元数据标签来显示我的控件将分派的事件类型。语法如下:

<fx:Metadata>
    [Event(name="eventName", type="MyEvent")]
</fx:Metadata>

在Flex / Actionscript中,最好的做法是定义定义事件名称的静态变量,如下所示:

public class MyEvent extends Event
{
    public static const EVENT_NAME:String = "eventName";
    // Other stuff..
}

这是一个很好的做法,因为事件名称可以轻松更改,而不必在整个代码中进行修改。所以我的问题是:有没有办法在我的元数据事件标签中使用这个静态const?我似乎无法做到这样的事情:

<fx:Metadata>
    [Event(name="{MyEvent.EVENT_NAME}", type="MyEvent")]
</fx:Metadata>

我只是不知道这样做的正确语法,还是不可能?似乎它只是要求很难找到错误,如果有人决定更改const,因为它不是强类型在这里。提前谢谢!

2 个答案:

答案 0 :(得分:6)

坏消息是不可能的:(我梦见这种可能性,但是......

答案 1 :(得分:1)

是的,这是不可能做到的,但没有什么可以阻止你做自己的运行时检查。通过调用类(在此实例中)上的describeType()可以获得元数据。解析xml并根据您的consts检查值。如果有问题,抛出错误或输出跟踪。它并不完美,但它会给你一些安全感