• ベストアンサー

画像のランダム表示

こんにちは。 フラッシュで、画像をランダムに表示させたいのですが、 スクリプトの書き方がわかりません。何方か教えていただけないでしょうか? 構成は ステージ上の【表示ゾーン(zon_mc)】ムービークリップの中に【バリ表示(bari_mc)】ムービークリップを作っています。 トップのステージのタイムラインとは別に画像を表示、非表示させたいのでこのような形になってます。 表示させたい画像は【bari】ファルダの中の【bali01.jpg】~【bali06.jpg】です。 よろしくお願いします。

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

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

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

ポイントは、1~6の範囲内で乱数を発生させるスクリプトと、JPEG 画像や swf ムービーを読み込む loadMovie です。 1~6までの乱数を発生させるスクリプトは、  rnd = Math.floor(Math.random()*6)+1; これで、rnd という変数に1~6の数字がランダムで入ります。 今回のファイル名は連番になっていますから、  "bali0"+rnd+".jpg" このようにすると、「 bali01.jpg 」~「 bali06.jpg 」のいずれかの文字列を、ランダムに作ることができます。 loadMovie の引数はファイルのパスやムービーのURLを表す文字列ですので、上記の方法で作成したファイル名にフォルダのパスを加えた文字列を、引数として渡します。 ご質問文にある zon_mc と bari_mc は、入れ子になっているということで、よろしいでしょうか? とりあえず入れ子になっているとすると、「 bari 」フォルダ(フォルダは swf ファイルと同じ階層にあるとします)にある「 bali01.jpg 」~「 bali06.jpg 」を、ムービークリップ bari_mc にランダムに読み込んで表示するスクリプトは、  rnd = Math.floor(Math.random()*6)+1;  zon_mc.bari_mc.loadMovie("bari/bali0"+rnd+".jpg"); (↑このスクリプトをコピーして使う場合は、行頭の全角のスペースを、半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) となります。メインのタイムラインを使わないのであれば、zon_mc.bari_mc.・・・を this.bari_mc.・・・か bari_mc.・・・に変更し、zon_mc のタイムラインに設定してください。 loadMovie は、FlashPlayer 3 から使える「 loadMovie 」と、FlashPlayer 5 から使える、MovieClip オブジェクトのメソッドの1つである「 loadMovie 」の2種類があります。 ここでは FlashPlayer 5 以降のスタイルを使いましたが、機能はどちらも同じですので、お好みでどうぞ。ただし、引数の数が違いますから、Flash Player 3 のスタイルを使う時にはご注意ください。 なお、指定の範囲内で乱数を作る方法は、Flash のテクニカルノート( Macromedia 社のHPで公開されています)に詳しい解説があります。よろしかったらご参照ください。 それから、Flash MX をお使いであれば、「 load_images.fla 」というサンプルが付いています。ランダムではありませんが loadMovie を使って画像を読み込むサンプルですので、こちらもご参考になさってみてください。

参考URL:
http://www.macromedia.com/jp/support/flash/ts/documents/fl0173.html

関連するQ&A

  • ランダムで画像を表示させるには?

    環境はFlashCS5で、アクションスクリプト3.0を使用しています。 5枚の画像(インスタンス名:mc0~mc4)をランダムで表示させるムービーを制作しているのですが、 下記のスクリプトですと、ランダムで画像が表示されるのですが、画像の切り替えがループになってしまって、次から次へとランダムで画像が切り替わります。フレーム1に下記のスクリプトを記述し、フレーム1にムービーインスタンス「mc0」から「mc4」を配置しています。 function randomShowMC():void { for (var i:int=0; i<5; i++) { this["mc" + i].visible = false; } var rnd:int = Math.floor(Math.random() * 5); this["mc" + rnd].visible = true; } randomShowMC(); var myTimer:Timer = new Timer(3000); myTimer.addEventListener(TimerEvent.TIMER ,function(){randomShowMC()}); myTimer.start(); このスクリプトを改良?改造?して、ランダムの画像が1回のみ…つまり、おみくじみたいに、(mc0~mc4の画像を)ランダムで1回のみ画像を表示させたいのです…表示後の画像が切り替わらずそのままで停止させたいのです。 又は、ムービーインスタンス「mc0」から「mc4」の画像をランダムで表示させ、最初に表示された、その画像で停止させるスクリプトを新規に記述しても構いませんので、ご指導・アドバイスをお願い致します…。 どなたか、解る方がいましたらランダム画像表示で1回表示のみのループしないスクリプトを教えてください。よろしくお願い致します…。

    • ベストアンサー
    • Flash
  • 画像をランダムに表示するには

    プログラム初心者ですAS3.0で書いています ステージの幅は横550×縦400 10個のムービークリップをランダムに8個表示したいです 縦が2個、横が4個で少し間を空けて表示 addChildで表示したいです 重複もできればなくしたいです よろしくお願いします

    • ベストアンサー
    • Flash
  • Flash8 ムービークリップをランダムに表示(更新する度に順番を変更)

    他の質問を確認させて頂いたのですが「更新する度に順番を変更」という部分で行き詰まり、今回質問させて頂きました。色々と調べたのですが、同じ質問が存在していたら申し訳ございません。 今回FLASHの作成で、1つのSWF内で3つのムービークリップ(mc_01、mc_02、mc_03)をランダムな順番で表示させたいというものです。ランダムに表示させるまでは、何とか行き着いたのですが、行き詰まったのは「更新の度に前回と順番が重複しない」ということです。 現在の状況は、下記の通りです。 mainというムービークリップに3つのムービークリップ(mc_01、mc_02、mc_03)をランダムに表示。 スクリプトは、下記の通りです。 var a = Math.floor(Math.random()*3)+1; main.attachMovie(["mc"+a], "mc", 0); 現状だと、更新する度にランダムに表示されますが、更新を押した際に、先頭が前回と同じムービークリップになってしまうことがあります。 (一回目の更新:mc_02 → mc_01 → mc_03) (二回目に更新:mc_02 → mc_03 → mc_01) この並びをアクションスクリプトで変えることは可能なのでしょうか?可能だとすれば、どのようなスクリプトを記述、もしくは参考にすれば良いでしょうか? 初心者な質問で申し訳ございませんが、宜しければどなたかご回答のほど宜しくお願い致します。

  • ランダムに画像ファイルを選出するには?

    Flash初心者です。 下記の例を実現する方法を教えていただけないでしょうか。 例) Aというフォルダに10000枚の画像ファイルがあるとします。 Aからランダムに画像を選び、ムービークリップ(以下MC)に読み込ませて表示し、任意の秒数で画像が切り替わっていくビューワーを作成するとして、"ランダムに画像をMCに読み込ませる(ただし、一度読み込んだものは二度は読み込まない)"にはどのようなやり方があるのでしょうか。 簡易かつ動作が軽いActionScriptの記述法を教えていただけると助かります。 よろしくお願いします!

  • Flash リンケージ

    ステージ上に空のムービークリップを配置して、そこにjpg画像を読み込む実験をしています。 loadMovieを使えば、外部のjpg画像を読み込めるのですが、 今やりたいのはflash内に画像を読み込んで、ライブラリ内にあるビットマップ画像(jpg)に対して、識別子を付けてスクリプト処理で表示させるというものです。 1.ステージに空のムービークリップ「mc」(←インスタンス名)を配置しています。 2.ライブラリ内のビットマップ画像には「p1」という識別子を付けています。 「p1」の識別子を使った表示方法が解らなかったので、とりあえず今はビットマップ画像を一旦新しいムービークリップで包んでそのムービークリップの識別子を「c1」として、 ルート上に mc.attachMovie("c1,"mc2",1); というように書いて、表示させています。 が、これではやりたい事と違います。 ライブラリ内のビットマップ画像に付けた識別子「p1」を利用して、 その該当するjpg画像をステージ上に配置(表示)させるにはどうすればよいでしょうか? FlashのバージョンはMXもしくは8 ASは1.0もしくは2.0です。

  • マウスを乗せるとランダムに画像が舞い上がる

    ある画像(たとえば★とします)にマウスを乗せると しゃぼんだまを飛ばしたようにランダムにある画像(★)から舞い上がると言うような物を作りたいと思っています。 マウスをはずすと舞い上がるものも消える(止まる)ようにしたいです。 ボタンのオーバーフレームにムービーを作ってみたのですが、動きがぎこちなく納得がいきません。 アクションスクリプトを使うとできるのかなと思いましたがボタンアクションかムービークリップアクションにすればよいのか分かりません。 このときにできればマウスポインターが指の形に変化しないようにしたいとも思っています。 よろしくお願いします。

  • Flash MX フレーム ランダムに取得する

    現在、あるコンテンツ製作していて、 画面上に5個画像(ムービークリップ)を表示しています。 そのムービークリップのなかには、グラフィックが10個入っていて、 targetFrame = Math.ceil(Math.random()*10); this.gotoAndPlay(targetFrame); というスクリプトで10個のフレーム中からランダムに表示させています。 (画面上の5個の画像は、その1個ずつが10個(フレーム)の中からランダムに選ばれるので、 5個の中には、同じ画像(同じフレーム)が含まれる場合があります。) 画面上に、あと2個画像(ムービークリップ)を追加し、その2個も、 10個のグラフィック(フレーム)中からランダムに表示させたいのですが、 かならず2個とも同じグラフィック(同じフレーム)を選ばせるにはどうすればよいでしょうか? Flash歴は長いのですが、知識はあまりない馬鹿な私に教えてやってください。

    • ベストアンサー
    • Flash
  • ランダムに画像を複数箇所表示させたい

    ランダムに画像の表示を2カ所行いたいのですが どのようにスクリプト文を書けばいいのでしょうか rootに01.js 02.js 03.html [aaa]フォルダに aaa01.jpg aaa02.jpg [bbb]フォルダに bbb01.jpg bbb02.jpg というファイル配置と仮定して 03のファイルに同時に aaa01とaaa02のどちらかをランダム bbb01とbbb02のどちらかをランダムに表示させたいのですがうまくいきません。 どなたか01.js 02.js 03htmlの書き方のアドバイスをお願いできないでしょうか?よろしくお願いいたします。

  • Javascriptでランダムに画像を表示させる方法について

    画像をランダムに表示させる為にalphaEDIT v2.0.3に以下のようなスクリプトを貼り付けました。 しかし表示させる画像の位置を動かすことができません。どうすればよいでしょうか? グーグルやおしえてgooで検索しましたが、わかりませんでした。 どうかご教授おねがいします。m(_ _)m <script language="JavaScript"> <!-- ranimg = new Array(); ranimg[0]="test1.jpg"; ranimg[1]="test2.jpg"; xx = Math.floor(ranimg.length*Math.random()); ranimg = ranimg[Math.floor(xx)]; document.write('<img src="'+ ranimg +'">'); // --> </script>

    • ベストアンサー
    • HTML
  • 画像をランダムに表示し、リンクもランダムにしたい

    下記の通りにしたら、ランダムに画像が表示され、 クリックすれば画像とペアになっているアドレス先に飛ぶことは出来たのですが そのときのリンク先をランダムにすることは出来ないでしょか? 例えば、img[2] の画像が表示された場合、jmp[2] ではなく 5つのアドレスの中からランダムにリンク先が決まる、 というようなことなんですが・・・。 // ランダムに画像を表示する jmp = new Array(); img = new Array(); // ジャンプ先のアドレス(数字は画像と対応) jmp[0] = "http://~"; jmp[1] = "http://~"; jmp[2] = "http://~"; jmp[3] = "http://~"; jmp[4] = "http://~"; // 画像のアドレス(数字はジャンプ先のアドレスと対応) img[0] = "img/img1.jpg"; img[1] = "img/img2.jpg"; img[2] = "img/img3.jpg"; img[3] = "img/img4.jpg"; img[4] = "img/img5.jpg"; n = Math.floor(Math.random()*jmp.length); document.write("<a href='"+jmp[n]+"' target='_blank'>"); document.write("<img src='"+img[n]+"' border='0'>"); document.write("</a>");

専門家に質問してみよう