2017-09-07 9 views
0

ライブラリー内の天気アイコン(MovieClipsとして)を使用して、FLAからSWFファイルをエクスポートしました。リンケージ名は "IconX"(Xは0〜25のアイコン番号)です。AS3 - 外部SWFからMovieClipアセットをロードする方法

他のテンプレートでこれらのアイコンを使用したい...特定のMofieClipアセットを新しいテンプレートに読み込むにはどうすればよいですか?

アイコン付きのSWFはTP1023.swfと呼ばれ、他のテンプレートと同じ場所に座っています。

+4

可能な重複https://stackoverflow.com/questions/6188770:あなたがSWFをロードし、それが正しく初期化され たら、あなたが望む任意の要素を取得することができます/ as3-load-symbol-from-external-swf-library) –

答えて

-1

最も簡単な方法は、ロードされたSWF内に、求めているものを返すメソッドを設定することです。 すなわち:

public function getAsset(classId:String):DisplayObject { 
    var c:Class = Class(getDefinitionByName(classId)); 
    if (!c) { 
     trace("ERROR: class " + classId + " not found."); 
     return null; 
    } 
    var d:DisplayObject = new c() as DisplayObject; 
    if (!d) { 
     trace("ERROR instantiating " + classId); 
     return null; 
    } 
    return d; 
} 

私はそれが一般的な目的でなければならないと仮定ので、DisplayObjectを返します。他のタイプも使用できます。

var c:MovieClip = loadedSwf.getAsset("MyAssetId") as MovieClip; 
[外部SWFライブラリからAS3負荷シンボル](の
+0

この回答の質は低いです。これは、両方のSWFが同じサンドボックス内にある限り機能しますが、より複雑な設定では失敗します。 ** Loaded.contentLoaderInfo.applicationDomain.getDefinition(...)**メソッドについて読んで答えを改善してください。 – Organis

+1

私はあなたが最近かなりの回答をしたことに気付きました。私が見たものは、同じ低品質です:彼らは不完全な、または誤解を招く技術情報を含み、人々を間違った方向に押し出します。私は**あなたが徹底的に問題を分析し、あなた自身の答えを構成する前に利用可能な多くの関連文書と既存の回答を読むことを奨励しています**。低品質の回答はStackOverflowの目的を大きく凌駕します。そのような回答はOPだけでなく、同じ問題を解決するすべての人々を欺くものです。 – Organis

+0

私は単純な解決法を提案しましたが、これはうまくいきますが、あなたの好みではないようです。 ApplicationDoman.getDefinition()は、おそらく既に知っていることは否定できない。あなたは気持ちが分かれば別の解決策を提案し、私の答えを落とすことは自由ですが、あなたが知らない人々を惜しみなく惜しみません:)チャオ –

関連する問題