- ベストアンサー
大量の配列を簡略化する方法
- Actionscript2.0を使用して大量の配列を簡略化する方法について教えてください。
- 写真をランダムに表示させるために大量の配列を操作する必要がありますが、効率的な書き方を知りたいです。
- forループを使用して配列の宣言を簡略化できる方法についても教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「photo1~photo5 がどの階層にあるのか」とか 「スクリプトはどこに書いたのか」とかがわかりませんが, もし photo1~photo5 が 仮に this 階層にあるとすれば, photo1.gotoAndStop(photo[0]); photo2.gotoAndStop(photo[1]); photo3.gotoAndStop(photo[2]); photo4.gotoAndStop(photo[3]); photo5.gotoAndStop(photo[4]); この部分は for(i=0; i<=4; i++){ this["photo" + (i+1)].gotoAndStop(photo[i]); } という感じに書き換えるとできると思いますよ。 または絶対パスで次のようにするとか。 for(i=0; i<=4; i++){ _root["photo" + (i+1)].gotoAndStop(photo[i]); } キーワード は「配列アクセス演算子」です。 ※ 配列 と 配列アクセス演算子 とは とりあえず全く別物と考えた方が良いです。 「FN0507001 - ドット演算子と配列アクセス演算子 - Flash テクニカルノート」 http://fumiononaka.com/TechNotes/Flash/FN0507001.html また, 次のページでダウンロード できるファイルは フリーソフト Suzuka 用なので そのサンプルファイルは使うことはできませんが やっている内容やスクリプト自体は同じようなことです↓。 「Suzuka 基礎・基本 for文 と 配列アクセス演算子」 http://suzupara.iinaa.net/kiso061.html
お礼
回答ありがとうございます。 > for(i=0; i<=4; i++){ > this["photo" + (i+1)].gotoAndStop(photo[i]); > } 実はこの部分は、質問後に試行錯誤して自身で出来ました。 まだ完全に理解はしていないと思いますので、リンク先を熟読させていただきます。 var photo = new Array(1,2,3,4,5); こちらの簡略化の方法の方が想像がついていなかったのですが、 こちらも結局はfor文で解決しました。 var photo = new Array(); for(i=1; i<=5; i++){ photo[i-1] = i } 正しいやり方なのかどうかわかりませんが、とりあえずできたので…。 もっとスマートなやり方があれば、ご教授ください。 まだしばらく質問はオープンにしておきます。