• 締切済み

ADOBEソフト FLASHで『蜷川実花さんのwebサイト』のようにt

ADOBEソフト FLASHで『蜷川実花さんのwebサイト』のようにtop画像をランダムに表示させていのですがどうやればいいのか分からず苦戦しています。時間を取らせて申し訳ありませんがどなたか教えてください。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

添付された画像を見る限り そのやり方(←メインのタイムラインを延長して何枚も画像を配置するやり方)は 根本的に間違った方向だと思いますが, そのやり方を延長するなら, 次のように考えるべきでしょう。  1枚目の画像…フレーム1 から登場  2枚目の画像…フレーム15 から登場  3枚目の画像…フレーム29 から登場  4枚目の画像…フレーム43 から登場      ~         ~ したがってランダムに出すべき数値は 「14×○+1」になります。○には 0~5 が入ります。 したがってスクリプトは次のようになります↓。 rnd = 14 * Math.floor(Math.random() * 6) + 1; gotoAndPlay(rnd); === 最初に「根本的に間違った方向」と書きましたが どこがどう間違っているのかと言えば, その方法だと全てのフレームがメモリ上にロードされるまで フレーム1 で停止させて全てのフレームのロード完了後に gotoAndPlay(rnd); をする必要が出てくるのです。 Flash は通常 フレーム1 にあるものから順次ロードし再生されます。 いきなり,ロードされていないフレームにジャンプすることはできません。 ですから, 上に書いたスクリプトのままでは 理想状態での机上の空論の中では無事に動作しますが, 実際にアップしてやってみると「フレーム1しか表示されない」とか 「真っ白になって何も表示されない」ということになってしまいます。 また, 1回のアクセスで見せる画像は「1枚きり」で良いのです。 「1枚きり」で良いのに全部ロードするのは非効率です。 === 添付された画像を見る限り, Flash CS4 で ActionScript 2.0(または 1.0)を使って Flash を作ろうとされているように見えます。 ActionScript 2.0(または 1.0) の場合, ステージ上に1つの小さなムービークリップでも作成して, そのムービークリップ内には例えば 「pic_mc」 などというようなインスタンス名を付け, その 「pic_mc」 に ランダムで1枚の JPEG をロードする方法を取るのが良いと思います。 例えば6枚の外部JPEGを用意して, 「pic0.jpg」「pic1.jpg」「pic2.jpg」「pic3.jpg」「pic4.jpg」「pic5.jpg」 というファイル名にして SWF や HTML と同じフォルダに置き, rnd = Math.floor(Math.random() * 6); pic_mc.loadMovie("pic" + rnd + ".jpg"); というスクリプトを書く。 という方法を取るのが良いと思います。 なおこうすれば, 外部JPEGを他のもの(他の絵柄や写真)に変えるだけで Flash を再度作り直さなくても 違ったもの(違った絵柄や写真)を表示させることもできるようになる。 というメリットも増えます。 ↑更新やメンテナンスが楽チンになる。 その他色々なことを調べる場合は Googleなどで「loadMovie」と検索してみてください。

baira
質問者

お礼

確かにいわれてるように添付した写真の内容ではなんどやってもおかしかったので、これで解消して一歩前進しました。 事細かく解説していただいてありがとうございます。

baira
質問者

補足

Flash CS4 で ActionScript 2.0(または 1.0)を使って Flash を作ろうとしています。 ActionScript 2.0(または 1.0) の場合, ステージ上に1つの小さなムービークリップでも作成して, そのムービークリップ内には例えば 「pic_mc」 などというようなインスタンス名を付け, その 「pic_mc」 に ランダムで1枚の JPEG をロードする方法を取るのが分かりません。 『例えば6枚の外部JPEGを用意して, 「pic0.jpg」「pic1.jpg」「pic2.jpg」「pic3.jpg」「pic4.jpg」「pic5.jpg」 というファイル名にして SWF や HTML と同じフォルダに置き, rnd = Math.floor(Math.random() * 6); pic_mc.loadMovie("pic" + rnd + ".jpg");』 というのも細かく教えていただければうれしいです。

関連するQ&A