再質問:for文について(MovieClipLoaderについて)

このQ&Aのポイント
  • コントロールファイルの読み込みから終了処理時までは「Now Loading」の表示を行っているが「Now Loading」の表示がされながらサムネイルが1枚づつ表示されてゆき、途中で止まってしまう。
  • サムネイルをクリックした時に、別のエリアに拡大画像を表示する設定を終了処理で行なっているが、途中まで表示されたサムネイルをクリックすると正しく拡大表示される。
  • 以前の質問時にもご指摘を受けたように、読み込み完了待機のためにフレームを利用したループ処理を実装すれば解決するのかなぁと思っています。
回答を見る
  • ベストアンサー

再質問:for文について(MovieClipLoaderについて)

以前質問で解決したと思っていましたが、本番環境で不具合が発生しましたので再度質問させて頂きます。 サムネイル表示するファイル名が入ったデータを配列に格納し、その配列に格納されたデータ分だけfor文を使ってループ処理を行い、その中でムービークリップの複製を作りLoadClipにて読み込み処理を行なっています。 その処理は以下の通りです。 for文で配列に格納されているファイル名で読み込み処理を行い、onLoadInit関数で  -複製したムービーの命名  -読込んだJPEGのunload  -セットカウンターのカウントアップ 等を行ないます。 for(i = 0 ; i <= var_ctr ; i++) {  sheet.target.duplicateMovieClip(i, i + 1) ;  dummy_loader.loadClip(var_folder + var_article[i] + ".jpg", sheet[ i ]); } dummy_listener.onLoadInit = function(target_mc:MovieClip) {  sheet[var_setctr]._name = var_setctr ;  sheet[var_setctr]._x += (var_setctr) * 90 ;  dummy_loader.unloadClip(var_folder + var_article[var_setctr] + ".jpg");  var_setctr++ ; }; 今回の問題は、 ・コントロールファイルの読み込みから終了処理時までは「Now Loading」の表示を行っているが「Now Loading」の表示がされながらサムネイルが1枚づつ表示されてゆき、途中で止まってしまう。 ・サムネイルをクリックした時に、別のエリアに拡大画像を表示する設定を終了処理で行なっているが、途中まで表示されたサムネイルをクリックすると正しく拡大表示される。 多分、以前の質問時にもご指摘を受けたように、読み込み完了待機のためにフレームを利用したループ処理を実装すれば解決するのかなぁと思っています。 宜しく御願い致します。

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

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

利用する数が 200 枚以上あっても、200 枚を同時にステージに置いて使うのでなければ、それほど処理は重くならないはずですが。 Thumb_nail のムービークリップを再利用し、その都度画像を読み直すのでしたら、古い画像は破棄されて新しい画像に置き換えられます。さしあたって同時に利用されるのは 10 ~ 20 枚程度ですので、unloadClip は必要ないかと思います。 いずれにしても、  dummy_loader.unloadClip(var_folder + var_article[var_setctr] + ".jpg"); この記述では、サーバーにあるファイルそのものを削除するという指定になっています。これは unloadClip では不可能(実行されても困りますが)ですし、引数も unloadClip の指定の型と合致しないため、呼び出しても結果は失敗に終わり、意味を持ちません。 ムービーがカクカクする・ボタンやマウスの操作の反応が鈍い・システムのフリーズなど、深刻なトラブルが頻発するようなら、不要なものは片っ端から削除・不要になった画像等をいつまでもステージに置いておかないようにするなど、徹底的にムービーのスリム化・効率化を図ることが重要になってきます。 同時に使うのが サムネイルサイズの JPEG 画像 10 ~ 20 枚程度なら、そこまでパフォーマンスが落ちることはないでしょうし、Thumb_nail ムービークリップがステージから消えれば、その内部で複製したムービークリップや読み込んだ画像も自動的に破棄されると思います。 Thumb_nail ムービークリップが稼働している間に unloadClip を実行すると、せっかく読み込んだ画像が消えてしまいます。 あえて、明示的に不要なオブジェクトを削除するのでしたら、実行するタイミングとしては、Thumb_nail ムービークリップがタイムラインから消える直前といったところでしょうか。 ムービークリップが消えると、読み込んだ画像も一緒に破棄されます。MovieClip.removeMovieClip で、複製したムービークリップを画像ごと削除するという方法でもできそうです。

teddy1014
質問者

お礼

お礼が遅くなって申し訳ありません。 今回の処理は、同時に読込み枚数は多くても20枚程度が限度程度ですので、unloadの処理は省略しました。 これからも色々ご教授ください。 宜しく御願い致します。

その他の回答 (1)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

MovieClipLoader のイベント関数の第1引数を定義しておくと、イベントが起きたムービークリップへの参照を受け取ることができます。 イベントが起きた時、該当するムービークリップを操作したいのでしたら、  dummy_listener.onLoadInit = function ( target_mc:MovieClip )  {   target_mc._x += (var_setctr) * 90 ;  }; このような形で利用できます。 それから _name プロパティですが、これにはインスタンスの名前が格納されています。 例えば、ステージにある Thumb_nail の中の sheet の子である target は、絶対パスでは _root.Thumb_nail.sheet.target となりますが、target._name には、パスがなく「 target 」という文字列が入っています。 複製したムービークリップは複製時に新しいインスタンス名を指定しており、_name プロパティにはその名前が入っています。改めて命名する必要はありません。 その、名前なのですが。 例えば sheet.target をコピーし、コピーのムービークリップに1や2と数字で命名しても、文法上はエラーにはならないのですが、参照する時に sheet[ i ] となり、配列変数のように見えてしまいます。 Flash が配列変数として誤認することはないとは思いますが、面倒でも、sheet[ "target" + i ] のように何か英字の名前を付けた方が、分かりやすくなると思いますよ。 MovieClipLoader の unloadClip は、”loadClip で読み込んだ”画像やムービーを削除するメソッドです。ですから、引数は loadClip で読み込みを実行した、”ムービークリップへの参照”です。 JPEG などのビットマップ系の画像を大量に扱うと、ムービーが重くなり、再生するマシンにも負担をかけます。 少しでも負担を軽減するためにと、複製したムービークリップや外部から読み込んだ画像・ムービーなど、最初はステージになく、後から動的に追加したオブジェクトに限り、不要になった時にそれを削除できる機能が用意されています。 ムービーのパフォーマンスのことは改めて考えるとして、とりあえず unloadClip は不要です。 ----------------  > 読み込み完了待機のためにフレームを利用したループ処理を実装すれば解決するのかなぁと思っています。 方針に見当がついたら、まずはやってみましょう。 今回はロード完了率の算出も可能ですので、それも念頭に置いて考えますと。  フレーム1:初期設定  フレーム2:ムービークリップを複製し、読み込み命令を出す  フレーム3:待機(ファイルアクセスへの終了を待つ)  フレーム4:全ファイルオープン完了を待ち、ダウンロード総バイト数を算出する  フレーム5:ロード完了率の計算  フレーム6:全読み込みの終了を待ち、画像やスクロールバーの設定を行う  フレーム7:タイムラインはここで止める onLoadStart イベントを利用して、まず、全部のファイルが開くまで待機します。 ロード完了率の算出には、全体の総バイト数が必要です。これは全ムービークリップで読むバイト数の合計となり、1度計算すれば充分です。 しかし、onLoadStart イベント発生直後は読み込む総バイト数がまだ判明しておらず、その、ほんの少し後で判明するようです。 この辺りはちょっと簡略したロジックなのですが、フラグを監視して全部のムービークリップで onLoadStart が発生するのを待ち、バイト数の合計を出してから先に進むことにします。 フラグを確認している間に最後のムービークリップの総バイト数が判明するものと考える、少々甘いロジックです ^^; もっと頑丈なスクリプトにするなら、個々の読み込みバイト数の確定を待って合計を出し、先に進む、といった方法が考えられます。 MovieClipLoader.getProgress でロード済みバイト数を取得し、ロード完了率を算出しながら、全部の読み込み終了を待ち、その後の処理を行います。 画像の配置・_visible 属性の切り替え・ムービークリップのボタン化・スクロールバーの処理など、読み込み完了後の処理は、どうせなら1箇所にまとめてしまいましょう。 スクリプトにすると、大体、以下のようになります。 スクロールバー関連などの一部のスクリプトは省略しますので、これまでご紹介してきたスクリプトを参考に追加してください。  ・フレーム1(初期設定)   //ファイル名テーブルとファイルの総数   filename_tbl = new Array( "image1" , "image2" , "image3" , "image4" , "image5" );   image_max = filename_tbl.length;   //ファイルオープンに成功した数   open_success = 0;   //読み込みが終了したファイルの数   loaded_files = 0;   //ロードに必要なオブジェクトの準備   load_obj = new MovieClipLoader();   event_obj = new Object();   load_obj.addListener( event_obj );   //ロード完了率表示用   progress_obj = new Object;   loaded_bytes = 0;   total_bytes = 0;   loaded_per = 0;   /*ファイルのオープンに成功した時の処理*/   event_obj.onLoadStart = function()   {    //ファイルオープンに成功した数を更新    open_success++;   };   /*読み込み完了時の処理*/   event_obj.onLoadInit = function()   {    //読み込みが完了したファイル数を更新    loaded_files++;   };   /*エラー発生時の処理*/   event_obj.onLoadError = function ( target_clip:MovieClip , error_code:String )   {    //読み込みが完了したファイル数を更新    loaded_files++;   };   /*ここにスクロールバーの処理関数を書く*/  ・フレーム2(画像の読み込み)   for( i = 0 ; i < image_max ; i++ )   {    //ムービークリップを複製し、画像を読み込む    sheet.target.duplicateMovieClip( "target" + i , i );    load_obj.loadClip( filename_tbl[ i ] + ".jpg" , sheet[ "target" + i ] );   }  ・フレーム4(ファイルオープン完了を待ち、総バイト数の算出)   //全ファイルへのアクセスが完了した場合:   //総バイト数を算出して先に進む   if( open_success == image_max )   {    //各ムービークリップの総バイト数を算出(ロード完了率表示に使用)    for( i = 0 ; i < image_max ; i++ )    {     progress_obj = load_obj.getProgress( sheet[ "target" + i ] );     total_bytes += progress_obj.bytesTotal;    }   }   //未完了の場合は完了を待つ   else   {    gotoAndPlay( 3 );   }  ・フレーム5(ロード完了率の算出)   //各ムービークリップのロード済みバイト数の合計を算出   for( i = 0 ; i < image_max ; i++ )   {    progress_obj = load_obj.getProgress( sheet[ "target" + i ] );    loaded_bytes += progress_obj.bytesLoaded;   }   //ロード完了率を算出   loaded_per = Math.floor( ( loaded_bytes / total_bytes ) * 100 );   //ロード済みバイト数をリセット   loaded_bytes = 0;  ・フレーム6(全読み込みの終了を待ち、その後の処理をする)   //全ての読み込みが完了した場合   if( loaded_files == image_max )   {    for( i = 0 ; i < image_max ; i++ )    {     /*ここに、画像の位置決め・_visibleの設定・onPressの定義などを書く*/    }    /*ここにスクロールバーの設定を書く*/   }   //読み込み中の場合は終了を待つ   else   {    gotoAndPlay( 5 );   }  ・フレーム7(普段はこのフレームを表示)   stop(); 今回の目玉、ロード完了率についてですが。 MovieClipLoader.getProgress の戻り値は、総バイト数( bytesTotal )とロード済みバイト数( bytesLoaded )の2つです。 複数の戻り値を受け取るには、汎用型である Object 型の変数を1つ用意します。戻り値を受け取った時に変数にパラメータが定義され、それぞれ利用できるようになります。 MovieClipLoader.getProgress で取得できる情報は、引数で指定したムービークリップの情報だけです。読み込み中のムービークリップ全ての情報を得るには、ループを利用してその数だけ getProgress を実行します。 loaded_per 変数にロード完了率が%で入りますので、これをダイナミックテキストで表示しておくといいでしょう。 今までご紹介してきたスクリプトや他の方からいただいた回答の中に、ヒントがたくさんあるはずです。 ご紹介してきたスクリプトにしても、これが完璧というわけではなく、ほんの一例に過ぎません。 情報を整理し、いろいろ工夫してみてください。 毎度毎度、長文になってすみませんでした。

teddy1014
質問者

お礼

ありがとうございます。 思いつく処理概要も記述したかったのですが、質問は800文字と言う制限のために省略してしまいました。 >JPEG などのビットマップ系の画像を大量に扱うと、ムービーが重くなり、再生するマシンにも負担をかけます。 少しでも負担を軽減するためにと、複製したムービークリップや外部から読み込んだ画像・ムービーなど、最初はステージになく、後から動的に追加したオブジェクトに限り、不要になった時にそれを削除できる機能が用意されています。 これに関しては、今回あまり関係ありませんか?。 1回のProcessで読込むJPEGは10~20枚程度ですが、カテゴリー・サブカテゴリーを切り替えながらサムネイル表示のProcessを実行すると言う機能なので、対象となるJPEGの数は200枚くらいになります。 それでも、unloadに要する時間を軽減した方が得策でしょうか?。

関連するQ&A

  • 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
  • 画像の読み込みについて

    複数の画像を順番に読み込んで表示させようと考えています。 例えば以下のような形で、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
  • ActionScriptで配列をクリアする方法を教えてください。

    ActionScriptで、オブジェクトを格納した配列をクリアする正しい方法を教えてください。 具体的には、 ・new Array() で配列を生成する。 ・new Object() で生成したオブジェクトを配列に格納する。 ・配列の中身を処理したあと、配列を一度クリアする。 ・配列に別のオブジェクトを格納する。 ような処理をしたいのですが、メモリリークを起こさずに配列をクリアするにはどうしたらいいでしょうか? 例えば、イメージはこんな感じです。(意味のないコードですが) // 配列の生成 var arr = new Array(); // 配列にオブジェクトを格納 for (var i = 0; i < 5; i++) { var obj = new Object(); obj.num = i; } // 配列のクリア arr.length = 0; // クリアした配列に別のオブジェクトを格納 for (var i = 0; i < 5; i++) { var obj = new Object(); obj.num = i * 2; } 上記のコードで、arr.length = 0; で配列をクリアしていますが、これで配列に格納されたオブジェクトが確保したメモリがすべて解放されるでしょうか? あるいは、配列の内容がなくなるまで pop() 等で取り出す等の処理をする必要があるでしょうか? 以上よろしくお願いします。

    • ベストアンサー
    • Flash
  • for文を簡単な処理に書き変えたい

    いま、配列を作る作業をしているのですが、for文を使うと、forをいくつ書けば良いのか分からない状態です。 作ろうとしている配列が、A[X][Y]で、Xの要素数は固定で良いのですが、Yの要素数が実験のたびに変動するためです。そして、処理したいのが、この配列の各列の値を適当な値(このfor文の前に値が決まっています)を代入することです。 例えば、for文だと、Y=3のときには for(i=0;i<○;i++){ for(j=0;j<○;j++){ for(k=0;k<○;k++){ A[line][0] = C[i];//(Cという配列のi成分) A[line][1] = B[j]; A[line][2] = E[k]; } } } のように書くような内容なのですが、Yが増えると、for文も増やさないといけません。 ここで、再帰処理のような方法をつかってうまく書きたいのですが、どう書いたら良いのか分かりません。 一般的なfor文の書き換え方みたいなことでも良いので、教えて頂けませんか?宜しくお願いします。

  • ActionScriptのLoaderクラス

    以下、FLASHのカテゴリーがあることに気付かずに、プログラミング(その他)に投稿してしまいましたので、再投稿いたします。よろしくお願いいたします。 以下はActionScript3.0を用いたフォトギャラリーで、外部のXMLファイルに記述しているパスをFLASH上に読み込み、それを参照して外部のフォルダからサムネイル画像を読み込むプログラムの一部です。 おそらく、ActionScriptの超初歩的なことが分かっていないのだと思います。 申し訳ございませんが、ご教示ください。 1 var thumbLoader_obj:Loader; 2 for(var i:uint=0;i<8;i=i+1){ 3 var thumbBtn:MovieClip=this["btn0"+(i+1)+"_mc"]; 4 var thumbUrl:URLRequest=new URLRequest(imgThumb_arr[i]); 5 thumLoader_obj=new Loader(); 6 thumbLoader_obj.load(thumbUrl); 7 thumbLoader_obj.x=3; 8 thumbLoader_obj.y=3; 9 thumbBtn.addChild(thumbLoader_obj); 10 } 以上は配列:imgThumb_arrに格納しているサムネイル画像のパスを参照して、loadメソッドを用いて インスタンス:thumLoader_objに読み込んだサムネイル画像を、サムネイル画像の枠を格納しているインスタンス:thumbBtnにループ処理で配置させるプログラムです。 3行目からわかる通り、サムネイル画像の枠のインスタンス名はbtn01_mc~btn08_mcで、 7行目と8行目は単なるサムネイル画像と枠の配置調整のための座標設定です。 さて、質問なのですが、5行目の代わりに1行目を thumLoader_obj=new Loader(); と書いて、5行目をコメントアウト(もしくは削除)してもプログラム的には問題ないように初心者の私には思えてしまうのですが、このようにすると、最後のサムネイル枠(btn08_mc)にしかサムネイル画像が読み込まれません。最初の通りだとすべての枠に該当するサムネイル画像が読み込まれてうまくいきます。明らかなプログラム上の違いがあるのだと思いますが、調べてみても簡単には分かりませんでした。どなたか、お教えいただければ幸いです。

  • swfを読み込む毎にランダムに画像を読み込むには、

    下記のように決まった画像を読み込むスクリプトを現在使用しています。 フラッシュを開く毎に20枚程度の画像の中からランダムに7枚選んで表示させたいのですが、ここから修整するにはどのように考えたら良いのでしょうか? 現在はまったく固定の画像を読み込んでいるだけなのでいいのですが、、。 // 写真のURLを保存する配列 var photoArr:Array // 写真を自動的に変更するタイマー var imageTimer:Timer; // 大きな画像を読み込むローダー var bigImageLoader:Loader; // 現在表示されている画像の番号 var imageNum:Number = 0; //-------------------------------- // 初期化の処理 //-------------------------------- // 配列を設定する photoArr = new Array(); photoArr[0] = "b00.jpg"; photoArr[1] = "b01.jpg"; photoArr[2] = "b02.jpg"; photoArr[3] = "b03.jpg"; photoArr[4] = "b04.jpg"; photoArr[5] = "b05.jpg"; photoArr[6] = "b06.jpg"; // タイマーを起動 startTimer(); // サムネイルを表示 setThumbnail(); // 大きな画像を読み込む loadImage(); //-------------------------------- // 関数 //-------------------------------- // サムネイルを並べる function setThumbnail() { for (var i=0; i<photoArr.length; i++) { // MovieClipを並べる var mc:Thumbnail = new Thumbnail(); mc.y = i * 74; mc.mouseChildren = false; mc.addEventListener(MouseEvent.CLICK, onThumbnailClick); mc.buttonMode = true; mc.num = i; thumbnailTarget.addChild(mc); // サムネイル画像をロードする var loader:Loader = new Loader(); var url = "gallery_img/"+photoArr[i]; var urlRequest = new URLRequest(url); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onThumbnailLoad); loader.load(urlRequest); loader.x = 4; loader.y = 17; mc.addChild(loader); } } // タイマーをスタートする function startTimer() { imageTimer = new Timer(8000, 0); imageTimer.start(); imageTimer.addEventListener(TimerEvent.TIMER, onTimerCalled); } // 大きな画像を読み込む function loadImage() { // サムネイルの背景色を変える for (var i=0; i<photoArr.length; i++) { var mc = thumbnailTarget.getChildAt(i+1); if (i == imageNum) { mc.gotoAndStop(2); mc.scaleX = 1.1; mc.scaleY = 1.1; } else { mc.gotoAndStop(1); mc.scaleX = 1; mc.scaleY = 1; } } // 表示されている画像を消す if (bigImageLoader != null) { mainTarget.removeChild(bigImageLoader); } // 新しい画像を読み込む var url = "gallery_img/"+photoArr[imageNum]; var req = new URLRequest(url); bigImageLoader = new Loader(); bigImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoad); bigImageLoader.load(req); mainTarget.addChild(bigImageLoader); } //-------------------------------- // イベント //-------------------------------- // サムネイルが押されたら実行される function onThumbnailClick(eventObj) { imageNum = eventObj.target.num; loadImage(); imageTimer.stop(); imageTimer.start(); } // サムネイルがロードされたら実行される function onThumbnailLoad(eventObj) { var mc = eventObj.target.loader; mc.width = 80; mc.height = 55; } // タイマーが呼ばれるたびに実行される function onTimerCalled(eventObj) { imageNum++; if (imageNum >= photoArr.length) { imageNum = 0; } // 大きな画像を読み込む loadImage(); } // 大きな画像が読み込まれたら実行される function onImageLoad(eventObj) { // bigImageLoader.alpha = 0; stage.addEventListener(Event.ENTER_FRAME, onFadeIn); } // function onFadeIn(eventObj) { // フェードインをつける bigImageLoader.alpha += 0.05; if (bigImageLoader.alpha >= 1) { removeEventListener(Event.ENTER_FRAME, onFadeIn); } }

    • ベストアンサー
    • Flash
  • srcの使用方法について

    var array:Array = new Array(); for (var i = 0; i<images.length; i++) { array.push({src:images[i].firstChild.nodeValue}); } mcLoader.loadClip(array[i].src, thisMC); srcの使用方法について,どのような意味なんでしょうか? 構文などを調べてみても掲載させていませんでした. array[i].srcでは,配列に格納された名前を取ってきているようですが,いまいち理解できません.配列以外の変数では変数の値の名前をsrcを利用して参照することは可能なのでしょうか?

    • ベストアンサー
    • Flash
  • JavaScriptでどちらの書き方が実行速度が速いですか?

    以下の2つの書き方は厳密には(内部処理のステップ的には)どちらが早いでしょうか? for (var i=0; i<10; i++) {  if (value == "dummy")  {   continue;  }  document.write(value); } for (var i=0; i<10; i++) {  if (value != "dummy")  {   document.write(value);  } }

  • Flashのfor文で変数名を・・・

    Flashでfor文を使い、変数に値をいれたいと考えています。 kotae1,kotae2,kotae3・・・kotae10という名前の変数に 数字の順に答えを格納していきたいのですが、 iを使って表現するにはどのようにすればいいのでしょうか。 for(var i = 0; i < 10; i++){ 「   」= i * 10; } 「 」のところです。 よろしくお願いします!

    • ベストアンサー
    • Flash
  • for文を使った配列の処理について

    for文を用いてそれぞれの$i時に別の名前で配列をつくり、共通の処理をするCGIを作ろうとしています。 for($i=1;$i<3;++$i){ @HAIRETSU = "@HAIRETSU$i"; #@HAIRETSUの処理# } のようなソースを用いて@HAIRETSU1、@HAIRETSU2を定義し、それぞれ共通の処理をすることを考えましたが、うまくいきません。何か良い方法はあるでしょうか?

    • ベストアンサー
    • CGI

専門家に質問してみよう