• ベストアンサー

ボタンをクリックする度にランダムな画像を表示には

FLASHで簡単なゲームを作っています。ボタンをクリックするとランダムな画像(もしくはシーン)を表示させるにはどうすればよいでしょうか。よろしくお願いします。

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

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

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

さて,どうしましょう??? スクリプトは結構簡単です。でも,たくさん方法があって,どのようにされたいかがわからないと,答えにくいのです… と言っても,どのようにしたいかが答えにくいですよね。 >> ボタンをクリックするとランダムな画像を表示させる~~ うーん,困った。 すみませんが,案を出します。その他の場合もほぼ同様にできると思うので,応用してみてください。 ムービークリップの中の各フレームに5枚の画像を用意して, それをランダムに呼び出す(そのフレームまでgotoする)のを例とします。 まず,ムービークリップを用意してください。 ムービークリップのインスタンス名を「gazou」とでもしておきましょう。 そのムービークリップの編集で, ムービークリップを6フレームにし,各フレームをキーフレームにして, 2~6の各キーフレームそれぞれに1枚ずつ,合計5枚の画像を配置してください。 1フレームは空白キーフレームにして,そのフレームには stop(); と書いてムービークリップを止めておきます。 これで,ムービークリップの準備は完了。 次に,メインのアニメーションの編集に移ります。 画像ランダム表示用のボタンを用意して,そのボタンに, ---------------------------------- on (release) { FlmNo = Math.floor(Math.random()*5)+1; _root.gazou.gotoAndStop(FlmNo); } ---------------------------------- ↑または,↓ ---------------------------------- on (release) { FlmNo = random(5)+1; _root.gazou.gotoAndStop(FlmNo); } ---------------------------------- と書きます。FlmNoは勝手に決めた変数名で何でも良いです。 これで,ムービークリップ内のランダムなフレームが表示されるので,ランダムな画像が表示されます。 「↑または↓」と書いています。これはどっちでも良いのですが上の方が推奨されています。 でも,下の方が,ランダムに近いです。 これを改良して使用してください。 FlmNo = Math.floor(Math.random()*5)+1; の部分が,少し難しいですよね,解説しておきます。 日本語で書くと, 変数FlmNo = 数.小数切捨て(数.0以上1未満の乱数×5)+1 というような意味です。 よく考えればわかると思いますが,もっと簡単に書くと, 変数FlmNo = 0~4までの乱数 + 1 と言うことで,1~5までのどれかの数が得られます。 この1~5を,「gotoAndStop()」の ( ) に代入しています。 >> (もしくはシーン)を表示させるにはどうすれば… シーンは,制約があるので,考えるのは簡単ですが書くのは手間です。 「シーン *」は引用符 (" ") で囲む必要があるからです。 下は,ボタンをクリックすると,2~6のどれかのシーンにgotoする例です。 「シーン 1」にボタンがあると想定しているため,以下のようなスクリプトになります。 ---------------------------------- on (release) { sceneNo = Math.floor(Math.random()*5)+2; if (sceneNo == 2) { gotoAndPlay("シーン 2", 1); } else if (sceneNo == 3) { gotoAndPlay("シーン 3", 1); } else if (sceneNo == 4) { gotoAndPlay("シーン 4", 1); } else if (sceneNo == 5) { gotoAndPlay("シーン 5", 1); } else if (sceneNo == 6) { gotoAndPlay("シーン 6", 1); } } --------------------------------- sceneNoは勝手に決めた変数名です。 とりあえず, sceneNo = Math.floor(Math.random()*5)+2; つまり, 変数sceneNo = 0~4までの乱数 + 2 で,2~6まで(5シーン)のsceneNo(シーンNo)を得ておいて, 2だったら「シーン 2」へ,3だったら「シーン 3」ヘ… とgotoするということです。 gotoAndPlayにしていますが,gotoAndPStopでも良いです。 スクリプト自体は,シーンの場合も,もっと簡単にできることはできるのですが, 仕組みを作るのにちょっと手間なのと,説明が難しくなります。 こんなところで,どうでしょうか。

suzupen
質問者

お礼

丁寧な回答いただきありがとうございます。回答いただいていたことに気づかずあきらめかけておりました。。。御礼が遅くなり申し訳ありません。 さっそくこれから試してみます!

suzupen
質問者

補足

私の知識不足で操作に戸惑い、ご報告が遅くなりましたが、フレームに画像を配置する方法で、今回の問題は無事解決いたしました。これから、シーンの操作にを試してみたいと思います。 今回教えていただいたスクリプトは、今後もとても役に立ちそうです。機会がありましたら、是非またご指導いただけますようお願いいたします。 このたびは、まことにありがとうございました!

関連するQ&A

  • 画像がランダムに表示されるFLASH

    いつもお世話になっています。 以下のようなFLASHを作りたいのですが、やり方がわからず困っています。 (1)リロードするたびにランダムで切り替わる画像1~6がある (2)画像の横にボタン1~6があり、マウスオーバーするとそれぞれ画像1、画像2…と表示される (3)ボタン1~6をクリックするとwebページ1~6へジャンプ(リンクさせている) 上記目的のうち、(2)(3)については完成しています。具体的にはAフレームには画像1、Bフレームには画像2…と配置し、ボタン1~6のアクションスクリプトにそれぞれ「マウスオーバー時にAフレームに飛ぶ」と記述しています。そしてメインのタイムライン1フレーム目にはアクションスクリプトに「ボタン1がクリックされたらwebページ1へ、ボタン2がクリックされたらwebページ2へ…」と記述しています。 これで(2)(3)の目的は果たせており、問題は(1)です。 ランダム表示される画像があり、ボタンのマウスオーバーで指定した画像が表示され、クリックでwebページへとぶ、ためにはどこにどんな記述をすれば良いのでしょうか? ちなみに作ったFLASHがサイトのトップページの一部となり、クリックで飛ぶwebページはそのサイト内です。 アドバイスいただけると助かります。 どうかよろしくお願いします。FLASHは上記がほぼ初めての挑戦である初心者です。

  • 画像のランダム配置からボタンクリックでまとまる

    「ロールオーバーで下画像を表示させる」という質問の回答がありました。 同じような設定で、ステージを400x400、mc0~mc15をランダムに並べておき 別に置いたボタンをクリックすると正しい座標位置へゆっくり移動し、ひとつの 写真にできあがるというのを作りたく思います。 mc0~mc15は写真をスライスした画像100x100です。 ご教授願います。

    • ベストアンサー
    • Flash
  • 画像がランダムに表示されるFLASHを作りたい

    こんにちは、お世話になります。 下記FLASHを作りたく以前も質問させていただいたのですが、どうしてもうまくいかないところがあり、再度投稿させていただきます。 (1)リロードするたびにランダムで切り替わる画像1~6がある (2)画像の横にボタン1~6があり、マウスオーバーするとそれぞれ画像1、画像2…と表示される (3)ボタン1~6をクリックするとwebページ1~6へジャンプ(リンクさせている) (4)画像1~6をクリックするとwebページ1~6へジャンプ(リンクさせている) まず画像を表示させるために一定区間をループ再生するフレームアクションを画像分(=6個)作りました。 各々frame1、2…とフレームラベル名をつけ、 ボタン1~6には on(rollOver){ this. gotoAndPlay("frame1"); } と記述しています。(ボタン1の例) そして1フレーム目に stop(); button1.onRelease = function(){ getURL("リンク先URL", "_self"); } gazou1に on(release){ getURL("リンク先URL", "_self"); } としています。これにより(2)(3)(4)は実現できています。でも(1)のランダムが全然分かりません。 ループ再生のフレームの前に7フレーム追加し、 1は空白キーフレーム 2はgazou1 3はgazou2… と配置し、フレーム1のアクションに stop(); button1.onRelease = function(){ getURL("リンク先URL", "_self"); } a=Math.ceil(Math.random()*6)+this._currentframe; gotoAndStop(a); と書き加えました。すると、画像が何も表示されないのです。IE7やSafariでは更新ボタンを押せばランダムで画像が現れるのですが、更新ボタンを押さなければ表示されませんし、Operaでは一度ボタンにロールオーバーさせなければ表示できません。 ランダム関数がよく分からずにやっているからダメなのだと思いますが、わからなすぎて何を勉強すればいいのかも分かりません。 とにかく時間がないので困っています。 どこが間違っているのかお教えいただけないでしょうか? 長文で申し訳ありません。どうかよろしくお願いします。

    • ベストアンサー
    • Flash
  • 画像のランダム表示

    ページの更新時に画像をランダムに表示し、かつその画像をクリックするとランダムに画像が変わっていくようにしたいのですが・・。 まったくの初心者なので、答えまで教えていただけますと幸甚です。 よろしくお願いいたします。

  • 画像をランダムで表示させたい

    自分のホームページで画像を数種類をランダムで表示させたいです 無料HPなのでCGIは使えません HP開いたときや、HP開いたままで更新ボタンを押したときに ランダムで画像を何種類か表示させたいです

    • ベストアンサー
    • HTML
  • VBでボタンを押すと画像をランダム表示させる

    VisualBasic2005ExpressEditionで「ボタンを押すとピクチャーボックスに画像をランダムで表示」させたいんですが、どうやるかわかりません教えてください。何件か探しては見たんですが見つかりませんでした。もしかしてVBでは、そういったプログラムはできないんでしょうか?

  • 画像を切り替えランダム表示

    初めて質問をします。 画像をクリックすると別の画像に切り替わる画像を、ランダムに表示させるにはどうしたらよいでしょうか?教えてください。 Javascript初心者で、どうしてもできず困っています。よろしくお願いします。

  • ボタンクリックで画像を替えたい

    はじめまして。 ホームページを作成しているのですが、解決できない問題があり 皆様方のお知恵を拝借したく投稿させていただきました。 どうかお力添えをいただけますと幸いです。 具体的な内容としまして、 大きな画像(400px×125px)の下に横並びでボタン(80px×25px)を5つ配置しているのですが そのボタンをクリックすると大きな画像部分がクリックしたボタンに あわせて入れ替わって表示されるようにしたいのです。 ボタンA → 画像A ボタンB → 画像B ボタンC → 画像C ボタンD → 画像D ボタンE → 画像E という風に変化させていのですが 今ひとつ方法がわからずに苦しんでいます。。 これをFLASHをつかわず作成したいと考えています。 説明不足、言葉足らずなどあるかとは思いますが どなたかお力添えをいただけませんでしょうか。 よろしくお願いいたします。

  • ボタンをクリック後、画像を表示させるには?

    FlashMXをでページを作っています。 あるページにいくつかボタンがあるとします。 一つのボタンをクリックすると、同一ページ内の決まった位置に画像が出てきます。 しかも次のボタンを押すまでは、その画像は表示されたままなんです。 こんなボタンを作りたいんですが、どうしたらいいのか分かりません。 ボタンと、表示させるイメージは準備してあります。 この二つをどう組み合わせればよいのでしょうか? お願いします。

    • ベストアンサー
    • Flash
  • ボタンクリックで画像を表示

    質問です。 ボタンをクリックして同じFlash内に画像を出したいのですが うまくいきません。 on (release) { tellTarget ("./mem") { gotoAndStop("kk"); } } クリックするとmemレイヤーのkkというムービークリップを 出すように設定したつもりなのですが、多分このプログラムが 間違っていると思うのですが、どこが間違っているのでしょうか。 教えてください。 お願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう