[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像をランダムに表示させたい)

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

このQ&Aのポイント
  • flashを使用して画像をランダムに表示させる方法についてご質問です。
  • swfファイルでは表示されるが、htmlでの出力時には表示されない問題が発生しています。
  • フレームに画像を置かずにフレーム自体にgotoAndStopを使用してランダム表示を試みていますが、うまくいっていません。

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

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

Flash はバージョンがわからないと回答できない部分が多いのですよ。 仕様やスクリプトも,作るべきムービー自体の構造も変わるので。 質問する場合は, わざわざバージョンを隠すのではなくて,なるべく書くようにしてください。 まず,本題とはあまり関係のない部分からですが, random関数は Flash 4 以前の関数です。 しかし,書かれている文型は Flash 5 以降の文型です。 Flash 5 以降のバージョンをお持ちであるか, または, Flash Lite(携帯用Flash)1.0 ,1.1 にパブリッシュするのではない場合は, random関数の使用はさけて Mathクラスの randomメソッド を使うようにしましょう。 Flashドキュメンテーション (Flash 8 のヘルプ) 「random 関数」 http://livedocs.adobe.com/flash/8_jp/main/00001764.html  ~引用~ > Flash Player 5 以降では使用しないでください。 > この関数の代わりに Math.random() を使用します。 「Math.random() でランダムな整数を取得する方法」 http://www.adobe.com/jp/support/flash/ts/documents/fl0173.html したがって,ここまでで,次のように変更されます。 gotoAndStop(2 + random ( 4 ));  ↓ 変更 ↓ gotoAndStop(2+Math.floor(Math.random()*4)); 次に本題ですが, Flash の SWF ファイルは基本的にストーリーミング再生されます。 特別なことをしないかぎり, フレーム1 から順次ロードされて, ロードをしながらそれと並行して再生もされます。 無茶な gotoAndStop() などをしない普通に流れるアニメーションの場合, このストリーミング再生に関してはあまり気にする必要もないのですが, ご質問の場合は無茶な gotoAndStop() をしているので, この点に気を付けなければなりません。 ロードが完了していないフレームにいきなりジャンプしようとしても, ロードされてしていないのですから表示されるはずがありません。 ロードが完了していないフレームにいきなりジャンプすると, 真っ白な画面で止まったままになってしまいます。 ですから,  フレーム1が読み込まれる   →フレーム1が再生される    →全てのフレームが読み込まれるのを待つ     →読み込まれてからジャンプ という読み込み待ち処理を入れなければなりません。 簡単には, 次のようにします(Flash MX 以降のバージョンで使えるスクリプトです)。 ------------------------------------------------- // とりあえずストップ stop(); // 1フレーム進む時間ごとに繰り返し実行 _root. { // 読み込まれた容量/全体の容量 が 1 以上になれば if (_root.getBytesLoaded()/_root.getBytesTotal()>=1) { // フレーム2 ~5 にランダムジャンプ gotoAndStop(2+Math.floor(Math.random()*4)); // この _root.onEnterFrame を削除 delete _root.onEnterFrame; } }; ------------------------------------------------- しかし,このままだと, 何もない(何かあっても)フレーム1でしばらくストップします。 そこで,よく見かける,「Now Loading...」 と表示されてバーが動く物や, 「読み込み中」が点滅するようなものを表示させて, 見てもらう側に「故障ではないという表明」や「暇つぶしのサービス」をする必要が出てくるのです。 ローディングバーなどの作り方やサンプルは, 適当に検索して良い物や好みの物を見つけてください。 http://www.google.co.jp/search?hl=ja&q=NowLoading+Flash&lr=lang_ja

wm_smss24
質問者

お礼

的確なご回答有難うございました。 flashのバージョンはMX proの7.0.1でした。 頂いたスクリプトを埋め込んだら表示されるようになりました。 gotoAndStopでただ飛ばせばいいというわけではないのですね。 とても参考になりました。有難うございました。

関連するQ&A