• ベストアンサー

for文での外部画像ファイルの読み込み

ステージ上に配置している複数のMCに それぞれ外部画像を読み込もうとしています。 読み込むMCはtb1,tb2,tb3、、というインスタンス名に していますので、それぞれ tb1.loadMovie("1.jpg"); tb2.loadMovie("2.jpg"); tb3.loadMovie("3.jpg"); . . なら表示されるのですが、 MCが20個あるなら for(i=1;i<=20;i++){ var TB:String = "tb" + i; TB.loadMovie(i+".jpg"); } というように簡単な文で書きたいのですが、 上記のfor文ですとうまくいきません。 for文以外でもよい方法があれば、 よろしければ教えていただけますか。 よろしくお願いします。

  • biff
  • お礼率75% (3/4)
  • Flash
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • maaaaaasa
  • ベストアンサー率33% (6/18)
回答No.2

eval("aaa.bbb.tb"+i).loadMovie(i+".jpg");

biff
質問者

お礼

maaaaaasaさん ありがとうございます。 無事できました!

その他の回答 (1)

  • mmmmmm00
  • ベストアンサー率18% (7/38)
回答No.1

for(i=1;i<=20;i++){ eval("tb"+i).loadMovie(i+".jpg"); } では いかがですか?

biff
質問者

お礼

無事できました。 ありがとうございました。

biff
質問者

補足

mmmmmm00さん ありがとうございます! eval("tb"+i)でやったところ、できました。 ですが、、 記載しなかったのですが、tbのあるところがmcの入れ子になっていて aaa.bbb.TB.loadMovie(i+".jpg"); と、なっております。 一番上の階層ですと教えていただいたのでいけたのですが、 そのまま aaa.bbb.eval("tb"+i).loadMovie(i+".jpg"); でやるとうまくいかなくて。 すいません、よい方法あれば教えていただけますか。 よろしくお願いいたします。

関連するQ&A

  • 外部ファイルの画像読み込みについて

    環境 WinXP Flash8 同じボタンをいくつも配置したいのと、汎用性を持たしたいのでボタンを ASで配置したいと思いますが、ASをほとんど扱ったことがないのでわかりません。 ■やりたいこと ・ボタン1~10をステージ上に配置 ・画像(pcs1.jpg~pcs10.jpg)をそれぞれに読み込みたい。 ・画像がない場合はボタンも表示させない ・それぞれのボタンを押すとphoto_mcに画像(photo1.jpg~photo10.jpg)が読み込まれる ■現状 WEBで見つけたソースを色々といじってみた。画像は配置できたのですが ボタンのアクションが全て同じ(10番目)になってしまいます。 画像がないときの処理もわかりません。 AS:フレーム1 for (var i = 1; i<10; i++) {  _root.createEmptyMovieClip("mc"+i, i);  var load_mc = _root["mc"+i];  load_mc.createEmptyMovieClip("my_mc", 0);  var jpg_pcs = "pcs"+i+".jpg"; load_mc.my_mc.loadMovie(jpg_pcs); i = i-1; load_mc._x = i*20; i = i+1; load_mc.onPress = function() { var photo = "photo"+i+".jpg"; photo_mc.loadMovie(photo); }; } これってボタンじゃなくてmcを配置してclickイベントになってますよね? ボタンを生成したかったのですがわからなくて・・・ 根本的なことが分かっていなくてソースをいじってますがアドバイスお願い致します。 今のソースは全く無視していただいて結構です。

    • ベストアンサー
    • Flash
  • 外部swfファイルの閉じ方

    メインに"stage2というmcを配置し、123.swfを読み込むボタンを配置しました。 ボタンスクリプト: on (release) { _root.construction(); loadMovie("123.swf", "_root.stage"); _root.stage.swapDepths(5); for (i=1; i<=4; i++) { _root["m_"+i]._visible = false; } 開いた外部swfファイルを閉じる設定をしたいのですが、どのようにすればよいでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ステージにある複数のインスタンスを制御したいです

    ステージに配置してある複数のインスタンスをアクションスクリプトで制御したいです。 インスタンスには「mc0」~「mc9」の連番で名前をつけています。 例えば、それぞれのインスタンスのタイムラインを再生させる指示を与えるとすると、 mc0.gotoAndPlay("main"); mc1.gotoAndPlay("main"); mc2.gotoAndPlay("main"); mc3.gotoAndPlay("main"); ・ ・ ・ mc9.gotoAndPlay("main"); となると思いますが、もっとスマートに書くとするとどんな書き方があるでしょうか? 数がもっと増える可能性があるので、もっと合理的な方法を知りたいです。 アクションスクリプトで生成したインスタンスを動かすには、 for(var i:int=0;i<10;i++){ var mc:MovieClip=new McMC(); addChild(mc); mc.name="mc"+i; mc.x=200+i*50; mc.y=200; mc.gotoAndPlay("main"); } のような感じで動かすのはやったことがあるので 既にステージに直接配置されているインスタンスもfor文で同じように制御できると思い 以下のように試してみましたが… for(var i:int=0;i<10;i++){ var mc:MovieClip; mc.name="mc"+i; mc.x=200+i*50; mc.y=200; mc.gotoAndPlay("main"); } 未定義となってしまいます。 やはり地道に書くしかないのでしょうか? ご教授を宜しくお願い致します。 ※FlashCS4、AS3で作業しています。

    • ベストアンサー
    • Flash
  • ActionScript - 複数の空ムービークリップ

    複数の空ムービークリップを作成してその中に 画像を埋め込みたいのですがうまくいきません。 for(var i=1;i<10;i++){  //空ムービークリップ作成 _root.createEmptyMovieClip("mc"+i,0); var load_mc = "_root.mc" + i; var jpg = i + ".jpg";  //画像の読み込み load_mc.loadMovie(jpg); } の様に行っているのですが エラーは起こりませんがうまくいきません。 ↑プラス横一列に並べる方法もよかったら お教え願います。よろしくお願いします。

  • for文について

    以前もお聞きしたかも知れませんが、教えて頂きたく。 7フレームに以下のScriptを記述しています。 sheet.target.duplicateMovieClip(ctr,ctr) ; dummy_loader.loadClip(var_article[ctr-1]+".jpg",sheet[ctr]); gotoAndPlay("rtn") ; dummy_listener.onLoadError = function(target_mc:MovieClip, errorCode:String) { gotoAndstop("end") ; } dummy_listener.onLoadComplete = function(target_mc:MovieClip) { sheet[ctr]._name = ctr ; sheet[ctr]._x += (ctr - 1) * 90 ; var_ctr++ ; dummy_loader.unloadClip(var_article[ctr-1]+".jpg"); }; 「rtn」は6フレームのフレームラベル、「end」は8フレームのフレームラベルです。 var_articleと言う配列に入っている情報(Key項目)を元にJPEGを読込んでいます。 onLoadCompleteにてJPEGをセットして前のフレームに戻して配列にデータが入っている間6<->7フレームをグルグル回って処理しています。 正常に動いています。 これを、No.1005374の#3でDPEさんに指摘して頂いたようにfor文を使ってのループ処理に変えたいと思います。 for(i = 0; i <= ctr; i++) { sheet.target.duplicateMovieClip(ctr,ctr) ; dummy_loader.loadClip(var_article[i]+".jpg",sheet[i]); } これで、1件づつ読込んでonLoadCompleteにて複製したムービークリップに名前を付けて当該の座標に配置しようと試みました。が、結果はfor文が全て処理されてからonLoadCompleteの処理がなされてしまいます。 自らフレームを利用したループと、for文を利用したループと、何処が違うのでしょう?。 どうぞ宜しく御願い致します。

    • ベストアンサー
    • Flash
  • AS3.0 配置したインスタンスにswfの読み込み

    初歩的なご質問です。 AS3.0にて、ステージ上に配置したムービークリップ(インスタンス名:mc)に外部swf(test.swf)を読み込みたいのですが、、どうもうまくいきません。 わかりやすく申しますと、AS2.0形式では mc.loadMovie("test.swf"); となっているスクリプトをAS3.0で行いたいです。 拙い文章で恐縮ですが、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 外部画像の読み込みについて

    現在、Flash MX(ActionScriptのバージョンは確認方法がわかりませんでした・・・)を使用して ムービーが読み込まれた際に画像ファイルを埋め込む、といったプログラムを行っています。 ステージにimgというインスタント名のムービークリップを設置し、1フレーム目に img.loadMovie("./img/01.jpg"); というActionをプログラムしているのですが、環境によってうまく動作しません。 環境によっては、というのは、PC上ではうまく動作するのですが、携帯からアクセスするとうまく動作してくれません。 携帯でアクセスした場合にうまく動作してほしいので、困っています。 色々試してみたところ、ムービークリップに下記のようなアクションスクリプトを導入したところ、動作しました。 on(KeyPress "1"){ _root.img.loadMovie("./img/01.jpg"); } ただし、ステージ上にインスタント名img2のムービークリップを追加で設置し、下記のようになスクリプトを導入してみたところ imgのみ正常に画像が表示され、img2には何も表示されませんでした。 on(KeyPress "1"){ _root.img.loadMovie("./img/01.jpg"); _root.img2.loadMovie("./img/02.jpg"); } PCで動作確認を行う場合、いずれも正常に動くので対処法がよくわかりません。 最終的には、n個の画像をムービーがロードされたときに自動配置するようにしたいのですが このような場合、どのようにプログラムしていけばよいのでしょうか。 また、あらかじめ画像を読み込むだけ読み込み必要なときにのみ表示する、といったことは可能でしょうか? 解決策をご教授いただければ幸いです。よろしくお願いいたします。

  • loadMovieでjpg画像の読み込み

    こんにちは。 ムービークリップhyozi_mcに外部のjpg画像を読み込ませようとしています。 cauntaフォルダの中にあるb01.jpgとb02.jpgを読み込ませるためにタイムラインに hyozi_mc.loadMovie("caunta/b02.jpg"); hyozi2_mc.loadMovie("caunta/b01.jpg"); と記述しています。 プレビューをするとb01.jpgは読み込みますが、b02.jpgは読み込みません。何も表示されていません。 両方ともフォトショップが加工しました。 2つの画像の違いは保存する時にjpgの画質をb01は高にb02は中にしている位です。 フラッシュでloadMovieをしようと思えば画像の画質をある程度あげないといけないとか決まりみたいなのがあるのでしょうか? すみませんが教えて下さい。 よろしくおねがいます。 ソフトはFlashMXを使っています。

    • ベストアンサー
    • Flash
  • FLASHCS3のActionScript3.0で外部画像の読み取り後

    FLASHCS3のActionScript3.0で外部画像の読み取り後に、ムービー内に画像を入れると表示されません。 複数画像をfor文で読みながら、読み終えたらEvent.COMPLETEで関知して、loadComp関数内で addChildして画像を表示させたいですが、その後マウスドラッグで動かせるようにするため mc1という空のムービーを作ってその中に、画像を内包したいのですがそうすると画像が表示されないです。 ※mc1.addChild(event.target.loader);というように 普通にmc1を除いて、 addChild(event.target.loader); とすると表示されます。 ムービーに内包すると画像が表示されないのはなぜか知りたいです。 よろしくお願いします。 photoLoad(); //画像読み込み関数 function photoLoad() { urlList[0] = "photo1.jpg"; urlList[1] = "photo2.jpg"; urlList[2] = "photo3.jpg"; urlList[3] = "photo4.jpg"; urlList[4] = "photo5.jpg"; for (var i = 0; i < urlList.length; i++) { var x:int; loaderList[i] = new Loader(); loaderList[i].load(new URLRequest(urlList[i])); loaderList[i].x = x; x = x+100; //画像のサイズによって変更 loaderList[i].contentLoaderInfo.addEventListener(Event.COMPLETE,loadComp); } } //画像読み込み関数ここまで**************************************** function loadComp(event:Event):void{ var mc1:MovieClip = new MovieClip(); //■■■問題の箇所・addChildの前にmc1をつけると表示されない■■■ addChild(event.target.loader); //移動可能に mc1.addEventListener(MouseEvent.MOUSE_DOWN, startObj0); mc1.addEventListener(MouseEvent.MOUSE_UP, stopObj0); function startObj0(event:MouseEvent):void { mc1.startDrag(); } function stopObj0(event:MouseEvent):void { mc1.topDrag(); } }

    • ベストアンサー
    • Flash
  • 画像の読み込みについて

    複数の画像を順番に読み込んで表示させようと考えています。 例えば以下のような形で、MovieClipLoaderを使って読み込もうとする場合、どのようにすればよいでしょうか。 イメージとしては、下記最後のfor文の中で読み込んでいる部分が、 順番に、1つ目の画像が読み込みが完了したら、2枚目の画像の読み込みのような形になると良いのですが。 よろしくお願いします。 var listener:Object = new Object(); listener.onLoadComplete=function(){ trace("onLoadComplete"); } listener.onLoadInit = function() { }; listener.onLoadProgress=function(target_mc,loadedBytes,totalBytes){ trace("onLoadProgress:"+":"+loadedBytes+"/"+totalBytes); } listener.onLoadStart=function(){ trace("onLoadStart"); } var loader:MovieClipLoader = new MovieClipLoader(); loader.addListener(listener); for(var i=0;i<10;i++){ loader.loadClip("hoge.jpg", this['image'+i].img); }

    • ベストアンサー
    • Flash

専門家に質問してみよう