Flex3でLoaderで読み込んだSWFをMovieClipに変換した際にnullになってしまう

公開日:  最終更新日:2014/05/02

外部SWFファイルを制御したい。
そんな想いからはじまる今回のお話。

sponcer link


外部SWFを読み込むにはSWFLoaderやImageなどの方法がある。
Flex で読み込んだ SWF を制御 [ActionScript3.0]
ここを参考にSWFLoaderを使った方法で試みた。
しかし、
myLoader.content as MovieClip;
の部分でMovieClipへの変換がうまくいっていないらしくtraceしてみるとnullになっている。
MovieClipにしないと制御ができないーーー!!
ちなみに、myLoader.content自体をtraceすると[object AVM1Movie]と表示されている。
今度は、
ロードした外部swfを操作する for actionscript3.0
ここを参考にして、Loader関数を使った方法で試みてみる。
しかし、やはり
var mc:MovieClip = loader.content as MovieClip;
の部分でnullになる。
そこでAVM1MovieをMovieClipに変換する方法を探すのにすごい時間がかかったので備忘録で書き残しておく。
解決策はこれ
AVM1Movie Controller in Flex
まず以下のソースをForcibleLoader.asとして保存しておく。
引用URL:ForcibleLoader.as

使い方としては、まずこのASファイルをimportします。
最初使い方を勘違いしていた私は

とすれば、importできると勘違いしていました。
このままやるとネストできませんっておこられます。
なので、普通に
import ForcibleLoader;
とかいておきましょう。
ちなみに同じフォルダにこのASファイルがあることが前提です。
そんでいざ実践。
SWFLoaderにmyLoaderとIDをつけておいてScriptに以下のソースを書く。

やってみたらみごと[object MovieClip]とでてくれましたー!
これでようやく読み込んだSWFファイルの制御をすることができます。
Adobe Flex Builder Standard 3.0 日本語版 Windows/Macintosh版

  • このエントリーをはてなブックマークに追加
  • Pocket

関連記事-こちらもどうぞ

  • 記事はありませんでした
PAGE TOP ↑