1

FlexBuilder3には次の2つのプロジェクトがあります。

  • 1つのAS3ライブラリプロジェクト(SWCファイルを生成します)

  • 1つのFlexアプリケーションプロジェクト(MXMLアプリケーション)

MXMLアプリケーションは、AS3ライブラリプロジェクト(Flexビルドパス)を参照します。ここまでは順調ですね。アプリケーションがAS3ライブラリを使用するときに、コードを自動的に実行したいと思います。[mixin]タグは、私が必要としていることを正確に実行する必要があります。

http://nondocs.blogspot.com/2007/04/metadatamixin.htmlの指示に従い、AutoQuickプロジェクトをチェックアウトしました。後者は、自動化フレームワークの使用法を示すAdobeによるサンプルプロジェクトです。このプロジェクトでは、[mixin]タグ(クラスAQAdapter)を使用しています。

例に従いましたが、コードが機能していません。staticinitメソッドは呼び出されません。ライブラリをコンパイラ引数リストに追加しましたが、どちらも機能しませんでした。

これを機能させるにはどうすればよいですか?

/* 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 に答える