都道府県穴埋めゲーム

外部SWFを連続を連続で読み込みを行いたいと思っています。
現在は、loadMovieにて外部のSWFを一つだけ読み込んでいるのですが次回に更新を考えているなかで外部からのSWFを複数読み込みを考えております。

一つのSWFを読み込む事は、容易に分かったのですが複数となると[MovieClip.loadMovie]を使う事になるのかな?とGoogleで検索して
分かりましたが今ひとつ理解しきれておりません・・・

良い方法がございましたらお教え下さい。

私の制作環境は、
MacOS X 10.4、FLASH 2004MXにて制作をしております。

説明が下手で分かり難い所もあると思いますが、宜しくお願い致します。

A 回答 (1件)

結局,どういうご質問なのかわかりませんね。


実際にやってみて問題が生じた場合,
その回避方法などを質問されると回答もしやすいと思います。

ご質問内容が基本的によくわかりませんが,
少なくともわかることは,loadMovie と MovieClip.loadMovie はほとんど同じ事です。
クラスが違うだけというか,書き方が違うだけというか。

 loadMovie("○○.swf", "_root.MC1");

↑_root にある MC1とうインスタンス名のムービークリップに,○○.swf をロードする。

 _root.MC1.loadMovie("○○.swf");

↑_root にある MC1とうインスタンス名のムービークリップに,○○.swf をロードする。

同じです。
クラスで言えば,
上が MovieClipクラス の loadMovie関数。
下が 単なる 定義済みのグローバルな loadMovie関数。
書き方で言えば
書き方が上の方が古い書き方で,下の方が新しい書き方。

 loadMovie("URL","オブジェクト") …旧
 オブジェクト.loadMovie("URL")   …新

新しい書き方はオブジェクトが先に来る。
という感じですか。

◎Flashドキュメンテーション (重いですが)
「loadMovie 関数」
http://livedocs.macromedia.com/flash/8_jp/main/0 …
 > loadMovie() 関数を使用すると、
 > 複数の SWF ファイルを同時に表示し、
 > 別の HTML ドキュメントをロードせずに
 > SWF ファイルを切り替えることができます。

「loadMovie (MovieClip.loadMovie メソッド)」
 > loadMovie() メソッドを使用しない場合は、
 > Flash Player が 1 つの SWF ファイルを表示して終了します。
 > loadMovie() メソッドを使用すると、
 > 複数の SWF ファイルを同時に表示し、
 > 別の HTML ドキュメントをロードせずに
 > SWF ファイルを切り替えることができます。

ほとんど同じでしょう。

>> 一つのSWFを読み込む事は、
>> 容易に分かったのですが複数となると…

と書かれていますが,
上の文章や上の文章を引用したページの文章を誤解されているのではないでしょうか。
上記URLの

 > 複数の SWF ファイルを同時に表示し、

という文章は,
loadMovie にしても,MovieClip.loadMovieにしても,これらを使うと,
「自分自信以外のSWFを同時にいくつでも表示できますよ。」
という意味です。言い換えると,
loadMovie にしても,MovieClip.loadMovieにしても,これらを使わないと,
「自分自信のSWFファイルしか同時に表示できませんね。」
という意味です。

だから,どっちにしても,複数読み込むことはできます。
ただし,ターゲットとなるオブジェクトは両方とも1つですから,
たくさんロードしたい場合は,複数のオブジェクト(ムービークリップ)が必要です。

例えば,
「aaa.swf」「bbb.swf」「ccc.swf」という3つのムービーを作成して,
_root(メインムービー) に
MC1,MC2,MC3 というインスタンス名の3つのムービークリップを作成し,
_root の タイムラインに,


loadMovie("aaa.swf", "_root.MC1");
loadMovie("bbb.swf", "_root.MC2");
loadMovie("ccc.swf", "_root.MC3");

と書いて,「aaa.swf」~「ccc.swf」のあるフォルダに保存しパブリッシュすると,
それぞれのムービークリップにそれぞれのSWFが読み込まれるものができると思いますよ。
実際にやってみましたができました。

_root.MC1.loadMovie("aaa.swf");
_root.MC2.loadMovie("bbb.swf");
_root.MC3.loadMovie("ccc.swf");

と書いても良いです。
どっちかと言うと下の書き方の方が良いと思います。

----------------------------------

あと,思うのですが,
本当に書きたかったのは [MovieClip.loadMovie] ではなくて,
MovieClipLoaderクラスの [MovieClipLoader.loadClip] ではないでしょうか。

「MovieClipLoaderクラスについて」
http://www.fumiononaka.com/TechNotes/Flash/FN050 …
 > 外部ファイルのロード自体が同時に行われる訳ではなく、
 > MovieClipLoaderクラスによって順次読込みが行われることになります。
 > その順序は、必ずしもMovieClipLoader.loadClip()メソッドの呼出し順とは
 > 一致しません。
 > したがって、ロードの順序を特定したい場合には、
 > ひとつずつ順に読込みの処理を行わなければなりません。

何というか結局同じなのです。
メリットは,

 > その(ロードする)進行状況に応じて各種のイベントが発生し、
 > それらのイベントに対応した情報を取得することができます。

ということですね。
スクリプト例も上のURLに書いてくれています。

-----------------------------------

具体的に困られていないと,
具体例が挙げられないのですが,
ココ(教えて!gooやOKWaveなど)で,「MovieClipLoader」と検索してくださると
実際に困った事例やそのときの対処法がたくさん見つかると思います。

なんか,よくわかりませんが言えるのはこのくらいです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報