1

我在 Flex Builder 3 中有以下两个项目:

  • 一个 AS3 库项目(生成 SWC 文件)

  • 一个 Flex 应用程序项目(MXML 应用程序)

MXML 应用程序引用了 AS3 库项目(Flex 构建路径)。到现在为止还挺好。我现在想在应用程序使用 AS3 库时自动运行代码。[mixin] 标签应该完全符合我的需要。

我按照http://nondocs.blogspot.com/2007/04/metadatamixin.html的说明查看了 AutoQuick 项目。后者是 Adob​​e 的一个示例项目,展示了自动化框架的使用。在这个项目中,他们使用 [mixin] 标签(AQAdapter 类)。

我按照示例进行操作,但我的代码不起作用。不调用静态 init 方法。我将该库添加到编译器参数列表中也不起作用。

我怎样才能让它工作?

/* 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);
            }
        }
    }

}
4

1 回答 1

0

使用该标记,只要从主应用程序直接或间接引用该类,就会在应用程序启动时调用[Mixin]静态方法。init()

此外,您必须记住此方法是在静态上下文中运行的,因此您不应该在static没有先创建实例的情况下引用需要实例(非)的方法或属性。

链接:http ://adamflater.blogspot.com/2007/03/static-code-blocks.html

于 2009-07-06T09:28:41.620 回答