• ベストアンサー

SWFとHTML組み込み後の再生速度の違い

初心者的質問ですが、SWFの状態とHTMLに組み込んだ後のフレームアニメーションの速度の違いに悩んでいます。 ただの円を右から左に動かすだけでもHTML組み込み後は目に見えて遅くなりますが、これは皆さんそうなのでしょうか?? もしそうなら対策を教えていただきたいのですが。 具体的には、 音声(ナレーション)に合わせて文字が一文字ずつ現れるアニメーションを作る際に、書き出した状態では揃っていても、HTMLに組み込んだ後は音声におくれて文字が現れる状態です。 ちなみにフレームレートは30ですが、15でも遅れる割合は変わりませんでした。 仕事上のことなので、わかる方がいましたら是非教えてください。お願いします。

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

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

#2です。 円のムービークリップをモーショントゥイーンで左から右に動かす・・・という、単純なムービーのパフォーマンスですが。 フレームレート 12 で試したところ、スタンドアロンプレイヤーでも HTML でも、アニメの速さは同じに見えました。 一応、処理の重いものということで、ムービークリップに虹色のグラデーションをかけ、HTML では背景を透過するようにして試してみましたが、HTML の方が目立って遅いようには見えませんでした。もしかしたら若干遅くなっているのかも知れませんが、それでも、ちょっと見たくらいでは分からないほど、本当に目立たない程度の遅れだと思われます。 しかし、同じ内容のムービーでもフレームレートを 30 にすると、HTML では目に見えて遅くなります。アニメが時折カクカクしているのがはっきり分かるので、処理落ちしているのは明白です。 Flash Player 5 からは、20 を超える大きなフレームレートを設定できるようになりました。 ですが、再生する側のスペックが恵まれてさえいれば大きなフレームレートを本当に実現できているかと言うと、実はそれも怪しいもので、可能な限り実現しようとするあまりリソースを多く消費し過ぎて、逆にパフォーマンスを落とすこともあるそうです。 Flash で推奨されるフレームレートは標準で 12 、ちょっとキメ細かい表現をしたい場合でも 15 ~ 18 くらいが限界で、それ以上にすると何が起こるか分からないというのが、正直なところだと思います。 大きなフレームレートにしたムービーが、swf だと問題ないのに HTML では遅くなるという現象は実際にあるようで、過去に同じような質問が出ていました。  ・SWF上だと50fpsで動くのにIEにはめると遅くなる理由は?   http://okweb.jp/kotaeru.php3?q=708224 回答したのも私で、スッキリ解決に至らなかった質問を紹介するのは恐縮ですが、ご参考までに。 それから、パフォーマンスを向上させるポイントが Flash のテクニカルノートで紹介されていましたので、よろしければご参照ください。

参考URL:
http://www.macromedia.com/jp/support/flash/ts/documents/fl0179.html
WDU
質問者

お礼

ありがとうございます。 自分のFLASHのバグではないかと思っていたので、少なくとも同じ事例があることに安心しました。 これからはフレームレートに頼らない設計をしていきたいものです。

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

その他の回答 (3)

  • HapHands
  • ベストアンサー率73% (19/26)
回答No.4

とりあえず、「SWF(スタンドアロンプレイヤー)とブラウザ(FlashPlayer)で再生レートが異なる」という問題と「アニメーションと音声がずれる」という問題は、別物として切り分けて考えた方がよいと思います。 いずれにしましても質問者さまの環境(OS、ブラウザ、FlashPlayerのバージョン等)を明記された方がより有効な回答が着く可能性が高くなると思います。 前者に関してはWin+IE6では再生レートが設定したレートよりも10%~20%程度遅くなる、という現象が発生するようです。 これを回避するにはwmode属性を明示的に設定し、なんらかの値を指定します。Flashではパブリッシュ設定でHTMLタブで「ウィンドウモード」の設定を「標準」以外(通常は「不透明表示」でしょう)にします。 後者に関してはDPEさまが#2でご指摘されている通り、サウンドの再生に「ストリーミング」を使用されるのがよろしいかと思います。

参考URL:
http://numerous.org/bazooka/mt/archives/2004/05/15_144104.html
WDU
質問者

お礼

ありがとうございます。 >これを回避するにはwmode属性を明示的に設定し、 >なんらかの値を指定します。Flashではパブリッシュ >設定でHTMLタブで「ウィンドウモード」の設定を「標 >準」以外(通常は「不透明表示」でしょう)にしま >す。 の方法で解決しました。 ただ、今度はスタンドアロンプレーヤーよりブラウザ側のほうが早くなってしまったのは・・・なぜ・・?

全文を見る
すると、全ての回答が全文表示されます。
  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

通信回線や再生する側の描画能力等の関係で多少は遅くなることはあっても、それはファイルや処理が重いからということですので、フレームレートを半分にして容量や処理を軽くしても全く改善されないということは、ないと思うのですが。 サウンドの「同期」を確認してみてください。サウンドを挿入したフレームを選択して「プロパティ」パネルを見ると、「同期」という項目があるかと思います。 この項目が、「スタート」か「イベント」になっていませんでしょうか。「スタート」または「イベント」にしている場合は、絵と音の同期は保証されません。 絵と音を完全に同期させるには「ストリーミング」がオススメです。「ストリーミング」にすると、描画が間に合わない時は間のフレームを間引いてでも音との同期が最優先されますので、ナレーションやBGMに合わせて絵を動かしたい時などには最適です。 「ストリーミング」では、各フレームに再生するべきサウンドのデータが書き込まれます。従って、「ストリーミング」でサウンドをループさせると、その回数分だけサウンドのデータが書き出されることになります。(「スタート」や「イベント」にしてある場合は、何回ループさせても、書き出されるサウンドデータは1ループ分だけです)その分、ファイルが大きくなりますので、ご注意ください。 Flash は全てのフレームの読み込みが終わらなくても、読み込みの済んだフレームから順次再生しながら、ダウンロードを並行して続行する仕様になっています。 しかし、裏で通信しながら描画するとなると、どうしても処理は重くなり、絵の動きがカクカクになる現象(いわゆる”処理落ち”)が発生しやすくなります。 サウンドを扱うムービーはただでさえも処理が重いので、全フレームのロードの完了を待ってから、本編を再生するようにしてはいかがでしょう。

WDU
質問者

補足

ありがとうございます。 補足で質問させて頂きますが、ただ単に丸いオブジェクトが左から右へ動くムービークリップのみのswfファイル(モーショントゥイーンのみ)を実行した場合と、HTMLに挿入した後とやはり速度が違います。 皆さんの環境ではそういったことはありませんか?

全文を見る
すると、全ての回答が全文表示されます。
  • UNAHO
  • ベストアンサー率57% (20/35)
回答No.1

原因の可能性としては ・ブラウザのプラグインのバージョンが古い ・通信速度の問題(アップロード前とアップロード後の伝達速度の違い) 等が考えられます。 後はswfをいくつか読み込んで使っている場合はもっとも遅いフレームレイトに設定されるというのもありますが、現状の質問内容からはこれ以上の推測はできません。

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

関連するQ&A

  • FLASHアニメの再生速度

    FLASHアニメの再生速度の設定について教えてください。 いま、スムーズにゆっくり動くアニメを作りたいのですが可能でしょうか。 フレームレートをたとえば標準12fpsから8fpsなどにすると遅くなるのは分かったのですが それだとカクカクゆっくり動いてしまうので、12fpsなどでゆっくり動かす方法はありますでしょうか? 調べたところ、fpsは描画速度と言っていたり、再生速度といっていたりでちょっと分かりませんでした。 よくゆっくりスムーズに動くswfアニメがありますが、どの設定や、やり方で出来るのでしょうか。 よろしくおねがいします。

  • HTML

    こんばんわペコリ(o_ _)o)) HTMLについて教えて下さい。   1.文字列全体を点滅させるHTML   2.一文字一文字を右から左へ左から右へ点滅させるHTML   3.それぞれを交互に点滅させるHTML この3つのHTMLコ-ドを教えて下さいm(__)m

  • Flashでアニメーションを作ってるのですが、

    Flashでアニメーションを作ってるのですが、 動画がスムーズに動きません(例、右から左へ)。 スムーズに動かないというのは、画像の情報自体は綺麗に流れているのですが(つまり、最終フレームまでにそれぞれ1フレームに表示される位置は合っているということです)、 なんというかチェックして最終してみると、画像の一部の表示が遅れているような(?)、何だか表示の仕方が、カクカクしているんです。 アニメーションの流れはおかしくないのですが、やはり綺麗につりたいので、気になってしまいます。 どうすればスムーズに再生することができますか? 多分パソコンのフラッシュの表示速度に処理が追いついてないからだと考えているのですが...。 最終的にはswf形式ではなく、mpegに変換する予定なのですが、 swfをmpegに変換しても、処理遅れは修正されないのでしょうか?

  • フレームを解除して新しいHTMLファイルを開きたい

    フレームの宣言をする htmを作成し、それをロードすると、左フレームにメニュー、そこのメニューから選択すると右のフレ-ムにコンテンツの **.htmファイルを見れるように、最近よく見かける方式のHPを作りました。 しかし、左フレームのメニューからあるHTMLファイルを開いたときにはフレームを解除してその新しいHTMLファイルを画面いっぱいに表示したいのですがどうやったらできるのでしょうか? 左フレームのメニューから右フレ-ムの位置指定すると右フレ-ム内に、位置指定しないと別のブラウザ画面に表示(拡大すれば画面いっぱいになるが)になるようです。元のフレームを閉じて、新しいHTMLファイルだけを画面いっぱいに表示したいのですが。おわかりのかたがおられたら教えてください。

    • ベストアンサー
    • HTML
  • loadMovieで外部swfの読込みについて

    現在、外部swfを連続で再生させるフラッシュを作成中です。 以下の方法で実現しています。 ------------------------------------------------- 親SWFの_rootに,例えば「loadMC」というインスタンス名のムービークリップを作ります。 このMCは小さくて透明のMCか,中に何も入っていない空のMCが良いと思います。 そして,親SWFのフレームのスクリプトに _root.loadMC.loadMovie("movie1.swf"); と書けば,「loadMC」というインスタンス名のムービークリップに「movie1.swf」が読み込まれます。 またはボタンにスクリプトを書いて,ボタンで読み込みをさせても良いです。 そして,「movie1.swf」の最終フレームに, _root.loadMC.loadMovie("movie2.swf"); と書いておきます。これで同じ「loadMC」に「movie2.swf」が読み込まれます。 同じ所に新たなムービーを読み込むと自動的に前のムービーは unload されるので, unloadMovie(); は必要ありません。 「movie2.swf」の最終フレームには _root.loadMC.loadMovie("movie3.swf"); 「movie3.swf」の最終フレームには _root.loadMC.loadMovie("movie4.swf");   …  … ------------------------------------------------- 作成後のプレビュー又はswfをダブルクリックなどで直接表示させると正常に表示されます。 しかし、HTMLに埋め込むと真っ白な状態でまったく表示されません。 調べているのですが原因がわかりません。 どなたかご教授のほど宜しくお願い致します。

    • ベストアンサー
    • Flash
  • HTMLレイアウトのことについて教えてください

    HTML初心者で右も左も解らないのでよろしくお願いします CSSで左がメニュー、右がコンテンツ部分の2カラムのテンプレートを作成しています、フレームを使用したときのようにメニューを押したら左の部分だけを変えることはできますか? 通常は同じレイアウトにしたい場合はメニューの数だけ同じテンプレートのHTMLを作成する物ですか? そうした場合メニューや同一レイアウトの部分に変更があった場合全てのHTMLを書き直さなければいけないという事ですよね? メニューの数が多い場合や変更がこまめにある場合はは大変になりますよね? 何か良い方法はありますか? 普通はこういった使い方はしないものでしょうか? よろしくお願いします。

  • テキストファイルの読み込みをするswfムービーが単独では表示可能だがHTML

    テキストファイルの読み込みをするswfムービーが単独では表示可能だがHTMLファイルだと読み込まない。 ということが起こっているのですが、 HTMLファイルの文字コードをSHIFT-JISにしてもUTF-8にしても結果は同じ状態です。 ローカルでもサーバーでも単独ではテキストファイル読み込み(表示)をするのに、HTMLファイルを通すと読み込みしないのはどうしてでしょうか? HTMLファイルと他のファイルとの間の問題かな・・と考えているのですが、さっぱり検討がつきません。 どなたかお分かりの方いらっしゃいましたらご教授願います。

  • HTMLについて

    サイト作りをしているのですが、理想は右にメニューがあって、左にページが開くというものです。 メニューに出きてほしいHTMLと画面を二分割にするHTMLは出来ているのですが、画面を二分割にするHTMLを打ち込んだ後、どこにメニューに出てきて欲しいHTMLを打ち込めばいいのか分かりません。 何処に入れればいいのかを教えて下さい。 あと、メニューに出てきて欲しいHTMLの前には何か特別なHTMLは必要なのでしょうか? 例:<target name="a">又は<div name="a"> ↓画面を二分割にするHTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>L・L・B</title> </head> <frameset cols="270, 370"> <frame src="a" name="meun"> <frame src="b" name="main"> <noframes> </noframes> </frameset> </html>

  • 外部SWFの制御、プロパティにアクセスについて

    制作環境:Flash CS5、ActionScript3 外部SWFのプロパティ、フレームの制御について悩んでいます。 まず、外部SWFを読み込むSWF:parent.swf、読み込まれるSWF:child.swfがあるとします。 parent.swfはタイムライン1フレームだけで以下を記述しています。 var swfUrlReq:URLRequest=new URLRequest("./child.swf"); var fileLoader:Loader=new Loader(); var mc:MovieClip=new MovieClip(); fileLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeSwf); fileLoader.load(swfUrlReq); function completeSwf(eventObject:Event):void { mc=fileLoader.content as MovieClip; mc.stop(); addChild(mc); trace(mc.word); } child.swfでは総フレーム55くらいで、添付の画像のように左から右に移動して終わるだけのムービーです。1フレーム目にはvar word:String="読めた!!"; 最後の55フレームにはstop();を記述しています。 でいざパブリッシュしてみるとmc.stop();が効かず勝手にムービーが再生され、おまけに以下の「Error #1069: _01_fla.MainTimeline__Preloader__ にプロパティ word が見つからず、デフォルト値もありません。」のエラーでてしまいます。 どうやったらフレームを制御でき、child.swf内部に設定した変数wordを読めるでしょうか?ネットでいろいろ検索引っかかったのですがどれも解決にはなりませんでした、どなたか教えてください、よろしくお願いします。

    • ベストアンサー
    • Flash
  • 【AS3.0】移動量について

    現在、右から左に移動するループアニメーションを作成しています。 フレームレートは30fpsで現在のスクリプトは下記になります。 ------------------------------------ var stepX:int = -1; MC.addEventListener(Event.ENTER_FRAME,xEnterFrame); function xEnterFrame(evt){ MC.x += stepX; if(MC.x <= -1500){ MC.x = -640; } } ------------------------------------ フレームレート30fpsで上記の通りに実行すると滑らかに右から左にスクロールします。 これはこれで良いのですが、本当はコマアニメのようにカクカクに動かしたく試行錯誤しているのですが上手くいきません。 例えば、0.5秒(15フレーム)に一回-20pxずつ動くといったような感じにしたいと思っています。 timerクラスは、タイムラインアニメーションと同期がとれないので使用したくありません。 大変力不足で申し訳ないのですが、ご助力ご協力お願いいたします。

このQ&Aのポイント
  • 筆まめ28で作成した住所録が保存操作をしないうちに別の画面に切り替わり、再度作動手順をやり直していると、何らかの原因で保存されないファイルを復元するか?とのボタンが出てきたのでクリックしたが、復元されず、それ以後それまでに作成した別の住所録も急に読み込めなくなった。
  • パソコンのOSはWindows10です。
  • お困りごとの詳細は、筆まめ28で作成した住所録が保存されない問題に加えて、別の住所録も急に読み込めなくなったことです。エラーメッセージは表示されていません。
回答を見る