Actionscript 如何在AS3应用程序中使用[mixin]标记?
我在Flex Builder 3中有以下两个项目:Actionscript 如何在AS3应用程序中使用[mixin]标记?,actionscript,metaprogramming,mixins,Actionscript,Metaprogramming,Mixins,我在Flex Builder 3中有以下两个项目: 一个AS3库项目(生成SWC文件) 一个Flex应用程序项目(MXML应用程序) MXML应用程序引用AS3库项目(Flex构建路径)。到目前为止,一切顺利。现在我想在应用程序使用AS3库时自动运行代码。[mixin]标记应该完全满足我的需要 我按照中的说明检查了AutoQuick项目。后者是Adobe的一个示例项目,展示了自动化框架的使用。在这个项目中,他们使用[mixin]标记(类AQAdapter) 我遵循了示例,但我的代码不起作用。
- 一个AS3库项目(生成SWC文件)
- 一个Flex应用程序项目(MXML应用程序)
/* class to be automatically loaded */
package {
/* includes */
[mixin]
public class TestApp extends Sprite {
/* additional members */
private static var mContainer:DisplayObjectContainer;
private static var mInstance:TestApp;
/**
* @private
*/
public static function init(root:DisplayObject):void
{
if(!mInstance)
{
mContainer = root as DisplayObjectContainer;
mContainer.addEventListener(FlexEvent.APPLICATION_COMPLETE, applicationCompleteHandler);
}
}
}
}
使用
[Mixin]
标记,只要类直接或间接从主应用程序引用,就会在应用程序启动时调用静态init()
方法
此外,您还必须记住,此方法是在静态上下文中运行的,因此在不首先创建实例的情况下,不应引用需要实例(非<静态
)的方法或属性
链接:必须使用标记[Mixin](第一个字母是大写!),并且像“var test:TestApp;”这样的引用足以调用静态代码。编译器选项-include=ClassName仍然加载该类,因此不需要在代码中添加引用。