2009-07-06 6 views
1

I持っFlex Builderで3で、次の二つのプロジェクト:AS3アプリケーションで[mixin]タグを使用するにはどうすればよいですか?

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

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

MXMLアプリケーションは、AS3ライブラリプロジェクト(Flexビルドパス)を参照します。ここまでは順調ですね。私は今アプリケーションがAS3ライブラリを使用するときに自動的にコードを実行したいと思う。 [mixin]タグは、私が必要とするものとまったく同じものでなければなりません。

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

私は例に従っていますが、私のコードは機能しません。 static initメソッドは呼び出されません。コンパイラ引数リストにライブラリを追加しましたが、それもうまくいきませんでした。

これを動作させるにはどうすればよいですか? [Mixin]タグ付き

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

} 

答えて

0

、静的init()方法であればクラスがメインアプリケーションから直接または間接的に参照されるように、アプリケーションの起動時に呼び出されます。

また、このメソッドは静的コンテキストで実行されるため、インスタンスを最初に作成することなく、インスタンス(非static)を必要とするメソッドまたは属性を参照しないでください。

リンク:http://adamflater.blogspot.com/2007/03/static-code-blocks.html

+1

タグ[MIXIN](最初の文字が大文字である!)を使用する必要があり、同様の参照 "VAR試験:でTestApp;"静的コードを呼び出すのに十分です。 –

+0

コンパイラオプション-include = ClassNameは、クラスを読み込むので、コード内に参照を追加する必要はありません。 –

関連する問題