我使用FlashDevelop3 R2和Flex 3.3 SDK进行开发,在很多场合我必须使用嵌入元数据标签:
[Embed(source="path/to/file")] private var Asset:Class;
我理解上面所有这些都很好,我很感谢它的存在,因为我不喜欢经常打开Flash IDE.
当我最近通过其他作者课程时,我发现了一个我不理解的有趣的元数据标签:
[Event(name="", type="")]
我还没有看到我需要这种情况,而且我真的不明白它是什么.
提前感谢您的帮助.
Brian Hodge
blog.hodgedev.com hodgedev.com
这些[Event(name, type)]
声明描述了类实例可能分派的事件.
它们实际上对代码完成很有用- 例如,当您键入:时mySprite.addEventListener(
,代码编辑器(Flex Builder或FlashDevelop)将显示此对象可以分派的有意义的事件列表.
因此,您可以在代码中添加这些声明,并从更丰富的代码完成中受益.
另请注意,这适用于自定义Event类(请参阅FlashDevelop的新Event类模板).
package mycomp { import flash.events.Event; public class MyEvent extends Event { public const SOME_EVENT:String = "someEvent"; // required Event type declarations } } package mycomp { [Event(name="someEvent", type="mycomp.MyEvent")] public class MyComp extends Sprite { } } package myproject { import mycomp.MyComp; public class MyProject { function MyProject() { var mc:MyComp = new MyComp(); mc.addEventLister( //completes: SOME_EVENT + Sprite events } } }
我们使用它将自定义事件绑定到我们的自定义MXML组件.此标记允许您从MXML引用它.见文档:
[Event(name="enableChanged", type="flash.events.Event")]
class ModalText extends TextArea {
...
}
但是,如果您尝试引用未使用事件metatag声明的mxml标记上的事件,编译器将会抱怨.