質問: flashでできあがったhtmlとswfで表示が違う。 flash5を使用して、swfを作成しております。 1フレーム目 アクション;gotoandplay(5); 5フレーム目 アクション;this.stop(); f12を押して、パブリッシュして作成されたhtmlファイルをみてみると、なぜか3フレーム目で止まってしまっています。 (3フレーム目のアクションは「this.stop();」) 作成されたswfファイルをダブルクリックで直接みると、ちゃんと5フレーム目になっているのですが...。 3フレーム目の「this.stop();」を削除すると、5フレーム目にいきますが、今度は、7フレーム目、9フレーム目と指定したときに、5フレーム目で止まってしまいます。 swfファイルはきちんと動作しているので、間違ってないのかなあ?と思うのですが。 やりたいことは、基本になるflashファイルがあり、それをコピーして、コピーしたファイルは、3フレーム目からスタート、5フレーム目からスタート...としたいのです。 例; basic.fla ; 2フレーム目からスタート basic_02.fla ; 3フレーム目からスタート basic_03.fla ; 5フレーム目からスタート basic_04.fla ; 7フレーム目からスタート : : またパブリッシュしたhtmlファイルを表示すると、1フレーム目から、3フレーム目へ飛んでいるわけではなく、1>2>3と移動しているようです。(一瞬チラっと見える) そうではなく、1>3としたい場合はどうしたらいいのでしょうか?
回答: 普通,ローカルpcで起こることはほとんどありませんが, ネット上の swf で, ロードされていないフレームへの無理なジャンプをしようとしたときに起こる現象だと思います。 つまり フレーム5 までロードされていないかもしれない状態のフレーム1で, いきなり gotoandplay(5) などをするので, フレーム5 まで一気にたどり着けずに失速停止してしまうパターンです。 ローカルpcでなぜそれが起こるのかはよくわかりませんが, ネット上にアップすると, 無理なジャンプをしようとしたとき,まず普通に起こる失速現象だと思うので, 今のままではどっち道使えない状態だと思います。 対処するには, いわゆるムービーのロード待ち 「nowloading...」 のようなしくみが必要です。 flash 5 の場合, ムービークリップの onclipevent (enterframe) {} を使ってロード状態を監視するのが普通です。 簡易的な「nowloading...」のようなものの作成方法を説明します。 フレーム1 のステージ上に, 「load_txt」 という変数名を付けた ダイナミックテキスト を用意し, その変数名「load_txt」の テキストフィールド を ムービークリップに変換 します。 そして, その ムービークリップ を選択した状態で, そのムービークリップ自体に次のような スクリプト を書きます(コピペ可能)。 // このムービークリップが表示されたときに実行 onclipevent (load) { // _root の再生を停止 _root.stop(); } // 1フレーム進む時間ことに毎回実行 onclipevent (enterframe) { // ロードされたパーセンテージを変数 loaded に代入 loaded = math.floor(_root.getbytesloaded()/_root.getbytestotal()*100); // テキストに表示 this.load_txt = loaded+"%ロード完了"; // もし 100%ロードが完了したら if (loaded>=100) { // _root を 5 フレームより再生(★ 5 は書き替える) _root.gotoandplay(5); // このムービークリップを深度1000辺り(適当)に移動 this.swapdepths(1000); // このムービークリップを削除 this.removemovieclip(); } } こうすると, ムービー全体のロード完了後に gotoandplay(5); するので, 途中で落下しなくなると思います。 (「nowloading..」という文字自体はあってもなくても良いですし, あった方が良いと思う場合はムービークリップの中などに適当に書いてください。) ※ローカルpc内の通常表示では このテキストはおそらく見えないか見えても一瞬です。 ネットにアップするとロードしたパーセンテージが 上がって行くのが見えるかもしれません。 また「制御」→「ムービープレビュー」の 「表示」→「ストリーミングを表示」辺りで 確認できると思います。 参考図↓ 見えない場合は okwave よりアクセスしてください。 http://okwave.jp/qa4527303.html