1

自分のRSLをロールバックし、それを純粋なas3アプリで使用したい場合、ドキュメントまたはこれを行う方法の例はありますか?

または、Adobeのエンジニアが何をしたかを把握するために、フレックスソースコードをトラバースする必要がありますか?

4

1 に答える 1

4

これは非常にトリッキーなものです。いくつかのポインタ:

外部からロードされた SWF からクラスを取得するには、アプリケーション ドメインで getDefinition メソッドを使用します。

public function loadHandler(evt:Event):void
{
   var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
   var clazz:Class = loaderInfo.applicationDomain.getDefinition("your.external.class");
}

必要なクラスの名前がわかっている場合、これによりクラス定義が得られます。

クラス ドメインを相互に「結合」するには (アプリケーションが swc に対してコンパイルできるようにしますが、クラスを含めて外部からロードすることはできません)、同じセキュリティ ドメインの loaderContext を指定する必要があります。

var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
loader.load(new URLRequest("library.swf"), context);

私があなたに与えることができる 3 番目のポインターは、コンパイラー・オプション「-external-library-path」です。これを使用して、コンパイル時間チェックの対象となる swc のリストを指定しますが、含めません (結果としてファイルサイズが小さくなります)。

mxmlc -source-path="dir/src" -external-library-path="dir/lib/framework.swc" --main.swf

申し訳ありませんが、これ以上詳しく説明できませんでした。これは非常に広範なトピックです。これで始められることを願っています....

于 2009-07-29T18:38:36.723 に答える