• ベストアンサー
  • 困ってます

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としたい場合はどうしたらいいのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数195
  • ありがとう数5

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

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

普通,ローカル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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 教えていただいた方法で、やりたいことができました。 が!別の問題が発生しました。 実は、こういうことをしています。 basic.fla   2フレーム目;メニュー1が押された状態でグレーアウト(メニュー2/3は使用可) basic_02.fla 3フレーム目;メニュー2が押された状態でグレーアウト(メニュー1/3は使用可) basic_03.fla 5フレーム目;メニュー3が押された状態でグレーアウト(メニュー1/2は使用可) 例えば、basic_03を開いたときに、メニュー3が押された状態で開きます。 ここはこれでいいのですが、その中でメニュー1を押したときに、また、5フレーム目へいってしまうのです。 (そうかいてあるのだから当たり前ですが。) これを回避するためにはどうしたらいいでしょうか? 変数等を組み合わせてうまくやるしかないでしょうか?

その他の回答 (1)

  • 回答No.1
  • SAYKA
  • ベストアンサー率34% (944/2776)

よく陥る罠だと思うけど 1frame目のそのscriptの後にscript自体を止める物を入れてごらん。 returnだかstopだかだったと思うけどちょっと記憶が古いので忘れた・・・ ただそのgotoを呼んだ後もscriptを続行しようとしていて、gotoと本来の続行処理が2つ現れていると考えたら良いよ。 確かそうだった筈・・・

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 1frame目のアクションスクリプトを gotoAndPlay(5); this.stop(); としてみたところ、意図しないところで止まってしまいました。

関連するQ&A

  • FLASH での基本的なアクションについて教えてください

    ご教授お願いします。 Flash CS3を使用しております。 1フレーム目で停止し、そこで表示されているボタン(b1というインスタンス名)をクリックすると2フレーム以降が再生されるファイルを 作成しようとしていますが、うまくアクションさせることができません。ボタンはちゃんと機能していると思います。 現在、私が1フレーム目に入力しているアクションは下記のとおりです。 this.stop() function gotoAndPlay(2); b1.addEventListener(MouseEvent.CLICK,gotoAndPlay); どのあたりが不適切なのでしょうか? 以前にFlash5を使用したことがあり、その際はボタンへのアクションも選択するだけで簡単にできたのですが、CS3はやはり高機能だけにやや難解です。 詳しい方には、あまりに基本的な質問かもしれませんが 格闘すること数時間、先に進まず困っております。 どなたかご教授いただけますと、大変ありがたいのですが・・・。

  • 基本的なことなんですが、、、なぜかできない。(FLASHムービー)

    FLASHのシンボルムービーを作成しました。 10フレームくらいの簡単なものです。 シーン上に上記のムービーを貼り付けたのですが、フレームの都合上、1-2フレームしか使えないので、 とりあえず2フレーム分だけ貼り付けて、2フレーム目の方のアクションに this.gotoAndPlay(2); というように一つ前のフレームに戻るアクションをつけました。 ですが、なぜか2フレーム目でとまってしまいます。 それ以外にアクションはまだつけてないんですが。。。 このムービーのレイヤーを削除すると3フレーム目まで行くようになりました。 なぜでしょうか???

  • FLASH5で以下のようなことをする場合に。

    [1]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30] B     ●a A   ● 上記のようなflaファイルがあります。 AはボタンでBはムービーです。 Aのボタンには以下のようなアクションスクリプトが設定されています。 -------------------- on(rollOut){ this.gotoAndPlay(18); } -------------------- Bの18フレームには以下のようなアクションスクリプトが設定されています。 -------------------- this.stop(); -------------------- Aのボタンの1度目のロールオーバーはきちんと意図した通りに動くのですが、 連続で2回やった時に意図した動きになりません。 時間を置いて再びやったり、違うボタンを触ってからやればきちんと動きます。 連続で2回やってもきちんと意図した通りの動きをさせるためにはどのようにすればいいのでしょうか?

  • FLASHで外部swfファイルを読み込み表示するには

    FLASHで外部swfファイルを読み込み表示できるということを知り、下記の方法で行ったのですがうまくいきません。どのような方法をとれば、うまくいくでしょうか。使用ソフトは、FLASHMXです。よろしくお願いします。 1. 読み込むswfファイル (2.swf) を用意する。 2. 読み込んで再生するためのプロジェクタ (1.exe) を用意する。 3. "1.exe"と"2.swf"を同じ階層に保存する。 ※"1.exe"の作成方法  ・使用するレイヤーは、起動したときに用意されている1つだけで、フレーム1に"loadMovie"を埋め込み、URLには"2.swf"、場所はレベルで"1"を選択する。  ・"1.fla"と名前を付けて保存し、プロジェクタ"1.exe"としてパブリッシュする。 なお、"1.exe"と"2.swf"のステージサイズ及びフレームレートは同じに設定しています。

  • suzukaのスクリプトで

    suzukaでFlashを制作しております。 プログラムはさっぱりなので検索して出てきたactionscriptを切り貼りして試している状況です。 その1.フレームアクションにおいて、キーを押したら特定のフレームまで移動するスクリプトを入れたいので20フレーム目に以下のスクリプトを入れたのですが、どちらも使えませんでした。具体的な解決策はありますでしょうか。 ●[parse error]とエラーが出る this.stop(); on(keyPress ("a")){ _root.gotoAndPlay(21); } ●キーを押しても何も起こらない this.stop(); if(Key.isDown(Key.RIGHT)){ _root.gotoAndPlay(21); } else if(Key.isDown(Key.LEFT)){ _root.gotoAndPlay(31); } その2.フレームアクションの10フレーム目に this.stop(); buttonA.onPress=function(){ _root.gotoAndPlay(11); }; とボタンのスクリプトを入れると、 どこのフレームまで移動しようが 同じボタンへの命令で上書きするまで このボタンへの効果が持続されてしまうのですが、 押した瞬間に後に命令を引き継がせないスクリプトの記述はありますか?

    • ベストアンサー
    • Flash
  • FLASHで作ったswfついて

    困ってしまいました。 以前作ったFLASHムービーをHP上に立ち上げていたのですが、先日PCの調子が悪くOSを入れ直した際にflaデータを消してしまいました。 HP上からswfをダウンして再度FLASHで読み込みしたんですが、各レイヤーはフレーム化されてしまい、又音が読み込めません。これはどうしようもありませんか? 少なくても、画像はあきらめても音を取り出す方法はないでしょうか?(FLASHに読み込む)

  • FLASHのGetURL

    デスクトップ上にAというフォルダをつくりその中に、 a.swfとb.swfというFlashファイルを入れて、 a.flaの「ボタン」のアクションから on (release) { getURL ("b.swf", "_self"); } と入力してパブリッシュ後、a.swfから実行すると、 (絶対パスというのでしょうか)“c:\document&setting\○○\b.swf”は見つかりません というメッセージが出てしまいます。

  • Flash Playerでのリンク

    Flash MX2004を使用してます。 同じパソコン上で、 a.swfとb.swfというFlashファイルを作って、 a.flaの「ボタン」のアクションから on (release) { getURL ("b.swf", "_self"); } と入力してパブリッシュ後、a.swfから実行すると IE(ブラウザ)が立ち上がってbのリンクへ飛びますが、これをFlash Playerのみを使って(ブラウザを使わずに)リンクさせることはできますか。

  • FLASHデータのアップについて。

    今FLASHを使用したHPを作成中ですが、web上に公開する際 の質問です。 (1)ページを何点かFLASH4で作成した後、パブリッシュし、SWFとHTMLを書き出す。 (2)Deramweaverでswfを読み込んだhtmlページを作成。(FLASHで書き出したHTMLは破棄。) (3)各ページを複数作成し、それぞれのリンクはFLASH上のボタンで指定。 以上の手順で作成したHPなのですが、ローカル環境での動作はまったく問題ないのですが、webにアップした際に、swf正常に読み込まれるものと読み込まれないものがあるのです。一部なので、サーバのMIMEタイプ設定の問題とは思えません。 私はパブリッシュの仕方か、flaファイルの作成の仕方(レイヤー構造等?)のどちらかに問題があると思うのですが・・・。 具体的なことは難しいとは思いますが、一般的にどのような問題点が考えられますでしょうか? また、試してみた方が良いことなどありますでしょうか? ちなみに、読み込んだとしても異常にスピードが遅いときもあるのですが、これもどのように回避した良いのかをぜひアドバイス頂きたいです。 ちなみに、作成したファイルの大きさは、flaで200~500KB、swfで20~30KB程度です。 早くHPを公開したいと思ってるのですが、壁にぶつかってます。宜しくお願い致します。

  • FLASHでパブリッシュのswfが重い原因知りたい

    FLASH CS3(Action Script3.0)でコンテンツを作成している途中ですが、パブリッシュする前の本体(拡張子fla)は400KBで、パブリッシュした生成物(拡張子swf)も100KB足らずでしたが、色々スクリプトを追加したり、クラスをimportしたりして、その後生成物が本体より重い3MBになってしまいました。どれが重い原因か探りたいですが、スクリプトが複雑で逐一調べるのも難です。何か重い原因を調べるよい方法がないでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • Flash