外部画像の表示について

このQ&Aのポイント
  • Flash初心者ですが、外部画像を表示する方法について質問です。
  • 質問内容は、特定のフレームごとに画像を切り替える方法と、条件式を使った画像表示に関するものです。
  • ご教示いただけると幸いです。
回答を見る
  • ベストアンサー

外部画像jpg又はswfの表示について

はじめまして、こんにちは。 Flash初心者です。 [使用環境] Flash MX 2004 Win 2000 [質問] 1フレーム目にはslide1.○○○、2フレーム目にはslide2.○○○、 3フレーム目にはslide3.○○○といったふうに画像をnextボタンと backボタンを使って切り替わるようなものを作っています。  ※○○○にはjpg又はswfが入ります。 +――――――――――――――――――+ | +―――――――+  +――――+ | | |           |  |back   | | | |           |  +――――+ | | | picture     |            | | |           |  +――――+ | | |           |  |next    | | | +―――――――+  +――――+ | +――――――――――――――――――+ ・外部画像を読み込んで表示するには「 picture.loadMovie("slide1.jpg"); 」又は、  「 picture.loadMovie("slide1.swf"); 」で表示できます。 ・slide1はjpgかswfのどちらかのファイルしかなく、shile2、slide3も同様です。 ・1フレーム目がswfの場合「 picture.loadMovie("slide1.swf"); 」、  2フレーム目がjpgの場合「 picture.loadMovie("slide2.jpg"); 」  というように拡張子を指定してスクリプトを書くのではなく、  条件式を使って画像を表示するにはどうすればよいのでしょうか。 ・もしくは、エラーを無視して次の行へいくというプログラムはあるのでしょうか。 どなたか分かるようでございましたらご教示下さい。お願いします。

  • Flash
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

MovieClip.loadMovieメソッドを使うのではなく, MovieClipLoader()クラスのメソッドを使えばできます。 1フレーム目のスクリプト例 ---------------------------------------------------- // ファイルネームの登録(※可変) my_file = "slide1"; // MovieClipLoaderインスタンスの生成 var my_mcl:MovieClipLoader = new MovieClipLoader(); // リスナーオブジェクト生成 var oListener:Object = new Object(); // ロード失敗時の処理 oListener.onLoadError = function(target_mc:MovieClip, error_str:String, nHttpStatus:Number) { // 外部SWFファイル"slide1.jpg"をインスタンスpictureにロード my_mcl.loadClip(my_file+".jpg", picture); }; // イベントリスナーの登録 my_mcl.addListener(oListener); // 外部SWFファイル"slide1.swf"をインスタンスpictureにロード my_mcl.loadClip(my_file+".swf", picture); ---------------------------------------------------- Flash MX 2004(Flash Player 7)以上 です。 取り急ぎ失礼します。 SWF、JPEGファイルを読み込みたい(FlashMX2004以降) http://hakuhin.hp.infoseek.co.jp/main/as/import.html#IMPORT_03 MovieClipLoaderクラスについて http://www.fumiononaka.com/TechNotes/Flash/FN0501003.html

その他の回答 (1)

noname#35109
noname#35109
回答No.2

#1です。 朝回答しないと,夜まで回答できないので, #1では出勤寸前にドタバタで回答しました。 それで, スクリプト書いた→SWFとJPEG作った→動かした→動いた→回答した という作業を10分くらいで済ませました。 間違った回答をしたわけではありませんが, 妙なゴミが入っていたり, SWF も JPEG も両方ともなかった場合の処理が抜けていたり, フレーム2 以降のことを考えて作ったものではありませんので, もう少しちゃんとした形のスクリプトを回答し直します。 基本的に#1と骨子は全く同じです。 ゴミを取ったのと使い勝手を考えたものです。 1フレーム目のスクリプト例 (コピペ可能) -------------------------------------- // とりあえずストップ this.stop(); // MovieClipLoaderインスタンスの生成 var my_mcl:MovieClipLoader = new MovieClipLoader(); // リスナーオブジェクト生成 var oListener:Object = new Object(); // イベントリスナーの登録 my_mcl.addListener(oListener); // ファイルをロードするユーザー定義関数の定義 function loadFile(my_file:String) { // ロード失敗時の処理 oListener.onLoadError = function() { if (flag == "s") { // 外部JPGファイルをインスタンスpictureにロード my_mcl.loadClip(my_file+".jpg", picture); // flag を j に flag = "j"; // ※エラー処理が不要であればこの↓ else 文をカット } else if (flag == "j") { // インスタンス名my_textのダイナミックテキストにエラー表示 my_text.text = "SWFもJPEGもありません。"; } }; // 変数 flag の値を "s" にする var flag:String = "s"; // 外部SWFファイル"slide1.swf"をインスタンスpictureにロード my_mcl.loadClip(my_file+".swf", picture); // インスタンス名my_textのダイナミックテキストを初期化 my_text.text = ""; } // ファイルをロードするユーザー定義関数の実行 loadFile("slide1"); -------------------------------------- 2フレーム目のスクリプト例 -------------------------------------- // ファイルをロードするユーザー定義関数の実行 loadFile("slide2"); -------------------------------------- 以降3フレーム目なら, loadFile("slide3"); などのように,".swf" や ".jpg" を取ったファイル名を引数にして, フレーム1 の ユーザー定義関数 loadFile(); を実行させる形のものです。 なお,nextボタン と backボタンは 書く必要はないと思いますが次のような感じでしょうね。 nextボタンのスクリプト例 -------------------------------------- on (release) { this.nextFrame(); } -------------------------------------- backボタンのスクリプト例 -------------------------------------- on (release) { this.prevFrame(); } -------------------------------------- ※作成環境: Flash MX 2004以上  パブリッシュ設定: ActionScript 2.0  動作環境: Flash Player7以上  です。 #1のままだと, SWF も JPEG もなかった場合, Flashが,存在しない JPEG のロードを試み続けるので,よろしくない形です。 ですから変数 flag を立てて,両方なかった場合は, 「my_text」というインスタンス名のダイナミックテキストにエラー表示をするしくみのものに変えました。 ですから,「my_text」というインスタンス名のエラー表示用のダイナミックテキストを, ムービークリップ picture より上のレイヤーに作ってくだされば,指定した文字列がエラー表示されます。 もしエラー表示が不要でしたら, 「my_text」というインスタンス名のダイナミックテキストを用意せずに,  // ※エラー処理が不要であればこの↓ else 文をカット  } else if (flag == "j") {    // インスタンス名my_textのダイナミックテキストにエラー表示    my_text.text = "SWFもJPEGもありません。"; この4行を削除してください。 するとSWFもJPEGも両方ともなかった場合のエラー処理は行われません。 このエラーについてですが, > ・もしくは、エラーを無視して次の行へいくという > プログラムはあるのでしょうか。 と書かれている意味がよくわかりません。 Flash は基本的にエラーが起きても何事もなかったかのようにそのことは無視して次の処理へと進みます。 Flash はいつもポーカーフェイスです。 ですから, 上のスクリプトのように「エラーを出させること」の方に苦労するのです。 loadMovie だと,なかなか簡単にエラーの表情を見せてくれないので (出そうと思ったら出せますが普通ではありません), MovieClipLoaderクラスの onLoadError イベントハンドラで, エラーをわざわざ取り出しているのです。 エラーの表情を見せるときは, 本当にFlash Payer が苦悩したときです。 for 文などが,(半)無限ループに入ったときなどに, 死にかけ寸前で 「このまま処理を続けると,どうのこうの…」 「処理を続行する?しない?」というような困窮のダイアログが出てきます。 loadMovie で SWF や JPEG がないくらいのエラーでは, ファイルが表示されないだけで,何事もなかったかのように次々に処理を続けます。 それが,Flash がスマートに見える1つの理由であり,逆に難しくて恐い面です。 参考URLは#1と同じですが1つ増えて…。 SWF、JPEGファイルを読み込みたい(FlashMX2004以降) http://hakuhin.hp.infoseek.co.jp/main/as/import.html#IMPORT_03 MovieClipLoaderクラスについて http://www.fumiononaka.com/TechNotes/Flash/FN0501003.html 関数 http://homepage3.nifty.com/ginga-b/MX/function.html

snow_drop11
質問者

お礼

sassakun様、早速のご回答ありがとうございます。 お礼が遅くなりましてすいません。 MovieClip.loadMovieメソッドを使うのではなく, MovieClipLoader()クラスのメソッドを使えばいいのですね。 非常に詳しく分かりやすい回答で理解できました。 ありがとうございました。

関連するQ&A

  • 外部画像の読み込み→表示で

    Flash MX でアクションスクリプトを記述しました。 this.myPhoto.loadMovie("/image1.jpg"); インスタンス名:myPhoto 画像ファイル名:image1.jpg (画像ファイルimage1.jpgはswfファイルと同じ階層) バブリッシュして htmlファイルと swfファイルを作成しましたが、htmlでは画像が表示されません。 swfファイルをFlash Player再生すると画像は表示されています。 this.myPhoto.loadMovie("/image1.jpg"); を this.myPhoto.loadMovie("image1.jpg"); と『/』を除いて記述すると、 今度は htmlファイルでは画像が表示されますが、swfファイルはFlash Playerで再生しても表示されません。 htmlでもswfでも表示するようには出来ないものでしょうか? OS: windowsXP SP2 IE: Ver6.0 FLASH: Flash MX アクションスクリプトの初心者で質問の仕方さえ要領を得てないと思いますがご勘弁ください。 不明の点はご指摘ください。

    • ベストアンサー
    • Flash
  • 外部の画像、もしくはswfを読み込んでボタンをつくりたい

    以下2パターンを試してみました。 1 ボタンシンボルが配置してあるswfファイルを作成(0.swf)し、「sum」というMCに読み込み loadMovie("0.swf","sum"); 結果は、通常状態の表示は問題なく行いましたが、マウスをボタンの上にもってきても反応しませんでした。 (カーソルは変更されるが画像に変化なし) 2 MCをつくり、そこに on (rollOver) { this.gotoAndStop("2"); } on (rollOut) { this.gotoAndStop("1"); } 下の階層に、1フレーム目および2フレーム目に通常状態とrollOverの画像を読み込むためのMCを配置。それぞれsum_1、sum_2。 そのMCがあるタイムライン上に loadMovie("0.jpg","sum.sum_1"); loadMovie("0_on.jpg","sum.sum_2"); 要するに箱を作って、画像だけ差し替えられるようにした感じです。 実行すると、1フレーム目は正常に表示されますが、マウスをかざした時に白くなってしまい、マウスを戻しても白いままで最初の画像が戻りません。 loadMovieはこういう動きなのでしょうか。 外部から読み込んでボタンとして動作させたい場合はどのようにすればいいでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • loadMovieで外部swfの読込みについて

    現在、外部swfを連続で再生させるフラッシュを作成中です。 以下の方法で実現しています。 ------------------------------------------------- 親SWFの_rootに,例えば「loadMC」というインスタンス名のムービークリップを作ります。 このMCは小さくて透明のMCか,中に何も入っていない空のMCが良いと思います。 そして,親SWFのフレームのスクリプトに _root.loadMC.loadMovie("movie1.swf"); と書けば,「loadMC」というインスタンス名のムービークリップに「movie1.swf」が読み込まれます。 またはボタンにスクリプトを書いて,ボタンで読み込みをさせても良いです。 そして,「movie1.swf」の最終フレームに, _root.loadMC.loadMovie("movie2.swf"); と書いておきます。これで同じ「loadMC」に「movie2.swf」が読み込まれます。 同じ所に新たなムービーを読み込むと自動的に前のムービーは unload されるので, unloadMovie(); は必要ありません。 「movie2.swf」の最終フレームには _root.loadMC.loadMovie("movie3.swf"); 「movie3.swf」の最終フレームには _root.loadMC.loadMovie("movie4.swf");   …  … ------------------------------------------------- 作成後のプレビュー又はswfをダブルクリックなどで直接表示させると正常に表示されます。 しかし、HTMLに埋め込むと真っ白な状態でまったく表示されません。 調べているのですが原因がわかりません。 どなたかご教授のほど宜しくお願い致します。

    • ベストアンサー
    • Flash
  • jpgを外部リンクさせswfで書き出し、loadmovieで読み込む

    こんにちは、よろしくお願いします。 WinXPでFlashMXを使用しています。 タイトルの通り、jpg画像を外部リンクさせたものをswfで書き出し、そのswfファイルをloadmovieで読み込みたいのですが、jpg画像が表示されません。 jpg画像以外のテキスト文字などは正常に表示されます。 jpg画像を外部リンクさせ、swfで書き出すところまでは正常に表示されるのですが、そのswfファイルをloadmovieで読み込ませると画像だけが表示されません。 お分かりになる方がいらっしゃいましたら、ぜひ御回答お願いします。

  • 外部画像を呼び出す。

    はじめまして。Flashを勉強中しだしたばかりで、本やNETを観て覚えてます。 環境はWinでFlashMX2004で作ってます。 今回は外部の.jpg画像(計8枚)を順番に呼び出して、それぞれにトゥイーンを使った効果を入れて画像を切り替えるというものです。 ボタンなどで操作するのではなく、ただ永遠に再生(ループ)させるだけです。 イロイロと資料を見ましたが、どこもphotoアルバム形式で、ボタンでページ送りにするものばかりで、的を得た回答に辿り着けません。 今は、【images】と言うムービークリップを作成して、【シーン1】の【1フレーム目】に配置して、scriptで images.loadMovie("p1.jpg"); とだけ記述してます。 この画像一枚さえ呼び出すことが出来ないでいます。 画像が悪いのか、swfとipgのフォルダ構成が悪いのか、イロイロと試しましたが画像が表示されないまま既に8時間以上経過してます。。。 どうか、分かる方教えてください。 よろしくお願いします。

  • 重たい外部swfのプリロード

    空のmcをステージにおき、そのフレームに、loadMovie();で外部のswfを読み込むまでは、出来るのですが、その外部swfが重い場合なので、プリロード(%)表示させたいのですが、どの場所にどういったscriptが、必要ですか? onClipEvent (data)ハンドラで外部ファイルのロードを待つとかのscriptを書いてるのですが、間違っているのでしょうか?

  • 外部swf(jpg)に対するLoading表示

    容量の大きいswfファイルを作る時、ムービー全体の容量を計算し表示させるプリローダ(Now Loading)をつける方法は知っているのですが、 loadMovie();を使って外部swf(jpg)を読み出す際、 それ(複数の場合はそれぞれ)にプリローダをつける方法がいまいちよくわかりません。ご存知の方いらっしゃいましたら、ぜひ教えていただけますでしょうか?

    • ベストアンサー
    • Flash
  • 外部swfのラベル移動

    FLASH MX2004で作成しています。 main.swf上のload_mcのレベル0に、外部swfのA.swfを読み込んでいます。 #main上のフレーム this.load_mc.loadMovie("A.swf", 0); A.swfが終わると同時に、main.swf上のload_mcのレベル1に、外部swfのB.swfを読み込みます。 #A.swfの最終フレーム stop(); _root.load_mc.loadMovie("B.swf", 1); ここまではできています。 その後、B.swf内のcontentsというMC内のラベルをlabel2に移動させたいのです。 #A.swfの最終フレーム stop(); _root.load_mc.loadMovie("B.swf", 1); _root.load_mc.contents.loadMovie("label2"); これができません。 _root.load_mc.contents.loadMovie("label2"); _root.contents.loadMovie("label2"); _root.load_mc.loadMovie("label2"); load_mc.contents.loadMovie("label2"); contents.loadMovie("label2"); なども試してみましたが、うまくいきません。 わたしの頭ではこれが限界です。 ぜひともお力お貸しください!

  • 外部JPG読み込みでのLoading

    こんにちは。 FLASH MXでものすごく単純なことをしようとしているのですが、 出来ずに困っております。 外部JPGを読み込むときにloading画面を表示したいのですが、 それが出来ずに困っております。 レイヤーが下記の様に3つあります。 script loading(loadingの文字)1フレーム目に文字、2フレーム目は空 base(読み込み用のMC) scriptの1フレーム目に下記のスクリプトを書いております。 --------------------------------------------------------- base.loadMovie("thumb/"+_name+".jpg"); if(this.getBytesTotal() < this.getBytesLoaded()){ this.gotoAndstop(2); }else{ this.stop(); } ---------------------------------------------------------- これでプレビューすると写真読み込みは完了しているのですが、 loadingの文字が写真の上にかぶさったままになります。 どのようにすればよろしいでしょうか?お教えいただければ 幸いです。

    • ベストアンサー
    • Flash
  • 外部swfを読み込むとき、座標指定したいのですが

    大元が「0.swf」、読み込む外部ファイルが「1.swf」として、0.swfにボタンを配置し、 on (press) { loadMovie("1.swf",1) } と書きました。 このままでは、1.swfは、0.swfの0,0位置に読み込まれますが、これを、座標指定してもう少し右下に読み込むためにはどう記述すればよいのでしょうか? よろしくお願いします。 Flash MX Version6/WinXP

    • ベストアンサー
    • Flash

専門家に質問してみよう