• ベストアンサー

FLAHを利用したバナーをランダムな場所からスタートしたい

FLASH MX2004でクロスフェードする、5つのバナーが有ります。 このバナーをランダムな位置からスタートさせたいのですが、方法が分かりません。 乱数の取得方法は分かるのですが・・・ 10fpsで、10フレームでクロスフェードし、40フレーム表示させ、また10フレームでクロスという感じで作成し、バナー5つで、合計200フレームとなってます。 初心者なので、申しわけありませんが、解説をお願いします。

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

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

横から失礼します,sassakun と申します。 #1の方の書かれているスクリプトで合っていますよ。 しかし, >> いつも1つ目のバナーから始まってしまいます。 という現象が起こるのですね。 フレーム数も200にして,画像も読み込んで,わざと SWF を重く(と言っても60KB程度に)して, 私も実験をしてみました。 普通の ムービープレビュー では ランダム にジャンプしましたが, パブリッシュしたHTMLを開いて見た場合, 質問者さまと同様に,いつも1つ目のバナーから始まってしまいました。 スクリプトは合っているのに,なぜそういうことが起こるかと言うと, ロード待ち処理を入れていないからだと思います。 最後のフレームまで,ロードが未完了のまま, いきなり フレームの長距離ジャンプ をしようと試みるので, 指定フレームまでジャンプできず,途中で墜落するのですよ。 フレームのラベル名は「p0」,「p1」,「p2」,「p3」,「p4」というのはそのままで, フレーム1 に書かれたスクリプトを,次のように書き直すと,きっとうまく行くと思います。 --------------------------------- // とりあえずストップ this.stop(); // 1フレーム進む時間ごとに毎回{ }内を実行 this.onEnterFrame = function() { // もし全てのロードが完了したら if (this.getBytesLoaded()>=this.getBytesTotal()) { // 変数rdn に 0~4 の乱数をセット var rnd = Math.floor(Math.random()*5); // 変数lbl に「p?」をセット( ? は 0~4 のいずれか) var lbl = "p"+rnd; // ムービーをフレームラベル「p?」に進める this.gotoAndPlay(lbl); // この onEnterFrame を削除 delete (this.onEnterFrame); // ロード未完了の場合は ストップ を継続 } else { this.stop(); } }; --------------------------------- (※上記スクリプトは Flash Player 6 以上で動作します。) つまり,よく見る, 「Now Loading...」 とか 「読み込み中...」 とかいうものが必要だということです。 と言っても スクリプト上は, 上で書いたスクリプト以外, フレーム1 には特に何も置く必要はありません。 上で書いたスクリプトのままでうまく行くとは思います。 しかし,ファイルが重い場合,真っ白な Flash がしばらく表示されます。 もし,真っ白な画面が長く続くのが気になるようでしたら, 「Now Loading...」のような暇つぶし画面を入れてください。 「ローディングムービー作成」 http://www.1art.jp/flash/le/lesson38/lesson38.htm 「Now Loadingのサンプル5個セット」 http://f-site.org/articles/2004/03/18005544.html その他, この辺↓からでも検索すれば,Now Loading 作り方やサンプルはたくさん出てきます。 http://www.google.com/search?hl=ja&q=Now+Loading+Fla&lr=lang_ja

ironika
質問者

お礼

ありがとうございます。見事解決できました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

再生させたいポイントが5つあって それをランダムで選んで再生させたいということですか? 再生させたいポイントが1,40,80,120,160フレーム目だとすると //0-4の乱数 var rnd = Math.floor(Math.random()*5); var point = 40*rnd; if (rnd == 0) point = 1; this.gotoAndPlay(point) //-------------------------------------- またはフレームラベルを利用して (各ポイントにp0,p1,p2,p3,p4とフレームラベルをつけます) //0-4の乱数 var rnd = Math.floor(Math.random()*5); var lbl = "p"+rnd this.gotoAndPlay(lbl)

ironika
質問者

補足

早速のご回答ありがとうございます。 申しわけありませんが、もう少しだけ教えてください。 labelというレイヤーを作って、スタートさせたい5点にフレームラベルを付けました。また、asというレイヤーを作って、1フレーム目に、お教え頂いたActionScriptを記入しました。しかし、いつも1つ目のバナーから始まってしまいます。 記入の方法が間違っているのでしょうか。 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バナーのランダムな並べ替え

    ABCDEの広告サイトバナーがあるとして各サイトのバナーが3種類あるとします A-1、A-2、A-3...合計15個のバナーがあります。 下記で各サイトの3つのバナーをランダムで一つ表示させています <script language="JavaScript"> <!-- サイトA=new Array(); サイトA[0]='A-1'; サイトA[1]='A-2'; サイトA[2]='A-3'; i=Math.floor(Math.random()*サイトA.length); document.write(サイトA[i]); // --> </script> このようにABCDEと追記して5つのバナーを表示しているのですがこの5つのバナーの順序を リロードする度にランダムに並び替えたいのですが良い方法はないでしょうか?

  • FLASHで開始コマをランダムにしたいです。

    FLASHで開始コマをランダムにしたいです。 画像5枚が2,3秒づつで切り替わるバナーをFLASHで作りたいのですが、 ページに入る度に開始する画像をランダムにしたいんです。 (入るたびにバナーが変わるjavascriptのランダムバナーのように) いくつか指定したコマからランダムでスタートといった設定はできるのでしょうか? 確率も決められればベターです(これは特に重要ではないです)。 FLASH CS4を使用しています。お願いします。

    • ベストアンサー
    • Flash
  • フラッシュバナーのランダム表示について

    以下のスクリプトでフラッシュバナーをランダム表示させています。 loadMovie(1 + random (4 ) + ".swf", AAA); このランダム表示の比率を変えたいとき、例えばですが、4つのファイルを 1:1:1:3の割合で表示させるなどの場合、どういうスクリプトを書けばいいでしょうか? また、ファイル名は現在 1.swf、2.swf、3.swf・・ としていますが、ファイルを差し替えた際にキャッシュが残るので、それぞれ固有名詞にしたいのですが、 その場合の方法も教えてください。

  • ランダムなフレームに飛ばしてループさせたい

    フラッシュ初心者です。 過去の質問を拝見したのですが、それを利用しても 思うようにいかず困っているので質問をさせて下さい。 制作中のページにバナー広告を貼ろうと思っています。 そのバナーは5枚あり、1~4枚までは4秒、5枚目だけを 6秒表示させたく、かつ、それをいつでもランダムな順番で表示させたいと思っています。 一巡してもまた違う順番で、そのページが表示されている限り、回っていて欲しいのですが。。。 こちらの方のを利用させてもらったのですが (http://oshiete1.goo.ne.jp/kotaeru.php3?q=2225220)表示させる秒数を異なるようにしたいためか、うまくいきません。 シーン1のレイヤー1の1フレーム目に 上記で書かれているものを書き、 シーン1のレイヤー2・2から3フレームにボタン1、 シーン1のレイヤー2・4から5フレームにボタン2、 (同じくボタン4まで続き)、 シーン1のレイヤー2の10から14フレーム目にボタン5を 配置しています。 (0,5fpsにしています) ボタンにはそれぞれリンクのスクリプトをつけています。 全部秒数を同じにする動きはうまくいったのですが、 1枚だけ異なるようにする点でてこずっています。 本当に初心者で申し訳ありません。 どなたか、教えていただけないでしょうか、 宜しくお願い致します。

  • 複数のswfファイルをランダム表示させたい

    複数のswfファイルバナーがあって、トップページに これらのバナーをランダム表示させたくて、ランダム 表示用のswfファイルを用意したのですが、どうしても 表示できません。 ランダム表示用swfファイルの1フレーム目には、 下記の通りASを書いてみました。 swfList= new Array("aaa.swf","bbb.swf","ccc.swf"); listLength=swfList.length; rndNum= Math.floor(Math.random()*listLength); loadMovie(swfList[rndNum],"_root"); このswfファイルも、他のバナー用aaa,bbb,ccc.swfファイルも 同じフォルダ内に保存しています。 ちなみに当方Flash MX2004 professional使用です。 どこが間違っているか、どなたがご教授下さいませ。

  • ブラウザ取得毎にMCをランダム再生させる方法

    はじめまして。flash初心者のものです。 ブラウザを再取得する度に、再生されるMCが変わる(ランダム再生)様なバナーを作成したいです。考えている方法としては、『1つのswfの中に10個のMCを入れて、それぞれをランダムで再生させる』という事で良いと思っています。10個の外部swfファイルをランダムに読み込ませる方法は色々参考資料があるのですが、サーバーの都合で出来れば1つのswfファイルの中に収めたいのです。 現在、1つのswfファイルの中に、clip1~clip10まで作成してあり、それぞれ200フレームの長さのMCになっています。それぞれclip単体では正常に動作しているので、あとはこれをランダムに再生させたいのですが、どういったActionScriptにしたら良いのでしょうか。 ソフトは『FREE MOTION』 バージョンは『Flash Player 7』になってます。

  • ランダムリンクの設置について

    「ランダムリンク」の設置方法が分かりません。 (文字もしくはバナーをランダムで表示) これからブログを開設しようと思っているので、ランダムリンクが出来るブログならどこでも構わないのですが・・・ 設置するためのタグ(または解説が載っているサイト)、およびそのタグが設置可能なブログを教えていただけると助かります。 よろしくお願いいたします。

  • 初心者です(FLASHバナーのリンク設定)

    フラッシュ超初心者です。お恥ずかしい質問ですが・・・ フラッシュでバナーを作りました。そのバナーにホームページ内の別ページへリンクを貼りたいのですがリンクの貼り方(設定の方法)がわかりません。 ちなみに、Fash Maker3で作りました。Flash Makerへ問合せしても設定方法は教えてもらえませんでした。どなかた、Flash Makerでのバナーのリンク設定方法がおわかりになれば教えて下さい。 ちなみにFlash MX2004も持っているのですが、フラッシュ製作が簡易なFlash Makerを現在使っています。 超初心者の質問ですみませんが宜しくお願いします。

    • ベストアンサー
    • Flash
  • 再訪時のランダムな背景について

    FLASH初心者です。 いま,FLASH MX 2004 でホームページを作っています。 再訪時に背景をランダムに表示したくてうまくできないので困っています。どなたかご教授ください。 具体的には,レイヤーの一番下段の「背景」のフレームに img = Math.floor(Math.random()*6+1); this.loadMovie(img+".jpg"); と書くと、ランダムに外部JPG画像が変わるのですが、 「背景」のレイヤーの上段にある文字やボタンが表示されません。 画像もゆっくりフェードインするようにアルファ値で変化させたいのですが,それも受け付けてくれません。 どのようにすればいいのでしょうか。

    • ベストアンサー
    • Flash
  • ランダムに mcを連続attachMovieさせるアニメ

    MX2004初心者です。 ライブラリにsakura_mc(10フレーム)があります。 さくらの花びらが手前に飛んでくるこまアニメです。 //乱数生成関数 function rndInit(maxNum){   var a = math.random();   var b = Math.ceil( a*maxNum );   return b; }  MC = "sakura"  SW = Stage.width;  SH = Stage.height; this.onEnterFrame = function(){   if( rndInit(10) == 1 ){   count ++;   newName = MC + count;   attachMovie( "sakura_mc", newName, 1 );   //表示位置の設定   this[ newName ]._x = Math.random()*SW;   this[ newName ]._y = Math.random()*SH;    } }  この方法だと、sakura_mcがステージ上ランダムな位置に連続で再生 してくれます。  ただ、二つ以上のsakura_mcを同時にステージに再生はしてくれません。  sakura_mcを同時にいっぱい再生させたい場合はどうすればよいでしょうか?  sakura2_mcをつくって同じ命令を追加してもダメでした。  よろしくお願いします。

    • ベストアンサー
    • Flash