dポイントプレゼントキャンペーン実施中!

音がどうしてもずれて非常に困っています。

タイムラインに直接サウンドファイルを埋め込む場合は、「ストリーミング」を選択して同期をとることができますが、スクリプトによって埋め込んだ場合はどのようにして同期をとることができるのでしょうか?

たとえば次のように最初のフレームに書きます。
mySound1.attachSound("001.wav");
mySound1 = new Sound();

そしてフレームのたとえば100番目でこの音を再生するために、100番目のタイムラインに次のように記述します。
mySound1.start();

このようにするとなぜか音の再生が遅れるのです。
お助けください。

環境:flash8 AS2.0 WindowsXP

A 回答 (2件)

#1です。



よくわかりませんね.......。
少なくとも ストリーミングサウンド とか イベントサウンド とか言う問題ではなく,
何かの影響で処理が頭打ちしているような気はしますが。


また,結局,
タイムラインのフレームスクリプトとして,
mySound1.start();
を実行させたいときに遅れが起こるのか,
タイピング時に
mySound1.start();
を実行させたいときに遅れが起こるのかがよくわかりませんが,
もしタイピング時に他の音とタイプの音が同期しないのであれば,
「updateAfterEvent 関数」は試してみられましたか?

updateAfterEvent 関数
http://livedocs.macromedia.com/flash/8_jp/main/0 …
 ~引用~
> Mouse ハンドラおよび MovieClip ハンドラでのみ機能します。
> Mouse クラスでは mouseDown、mouseUp、mouseMove、
> keyDown、keyUp ハンドラ、
> MovieClip クラスでは onMouseMove、onMouseDown、
> onMouseUp、onKeyDown、onKeyUp ハンドラです。
> Key クラスでは機能しません。

ということなので,
かなり制約付きですが,
Key クラスのメソッドで,キー操作監視するのではなく,
見えない(透明な,またはステージ外)ムービークリップを作って,
そのムービークリップ自体に
onKeyDown ハンドラ を使ってキー操作を監視させると,
updateAfterEvent 関数 が使えると思います。

キー操作の音が遅れるのではなく,
フレームのスクリプトだとどうしようもありませんが。



よくわかりませんが,
ふと思ったので,思っただけのことを書きました。
(ぜんぜん参考にならない気がしています。)
    • good
    • 0
この回答へのお礼

ありがとうございます。
キーを押す前から音がずれるのです・・・

もうあきらめるしかないみたいです。
とはいえ、2度にわたりいろいろ教えていただきありがとうございます。別の勉強になりました。

お礼日時:2007/02/28 19:50

Flash には,イベントサウンド と ストリーミングサウンド という 2 種類のサウンドがありますが,


Sound オブジェクトを使用して,ActionScript で配置した音はイベントサウンドであるので,
音とアニメーションの同期は基本的にできません。

しかしそのそも,
アニメーションを作成する段階で,タイムラインに音を配置しないと,
音と同期したアニメーションは作れない(非常に作りにくい)と思いますが???



ここまでは簡単に言えるますが,
その対処法は回答が難しいですね。

「対処法案」としましては,
_root のタイムラインの最初の方(フレーム1 とか フレーム2 とか)あたりに,
無音の短い音を配置して,
その音のプロパティを同期で「ストリーミング」にしてみると,
001.wav に関しても勝手にストリーミングになるかもしれません(やってみないとわかりません)。


しかし,

> 音の再生が遅れるのです。

音が遅れる???
音が遅れるということは,
タイムラインに直接サウンドファイルを埋め込んで「ストリーミング」を選択した場合でも,
やはり遅れるのではないでしょうか?
つまり,音自体の問題ではないでしょうか?
最初に余分な無音部分があるとかそういう意味です。


普通は,
音だけが先に進んでしまう(アニメーションが遅れる)のを防ぐために
直接サウンドファイルを埋め込んで「ストリーミング」を選択する場合が多いと思います。

音の再生はイベントサウンド でも ストリーミングサウンド でもどちらでも普通は正常ですが,
複雑な図形や動きの処理に時間がかかり,
アニメーション自体の絵の動きが遅れる場合があります。
その場合,
「ストリーミング」にしておくと,音の再生にアニメーションが同期を取るように,
コマ飛ばしなどが自動で行われます。
それで絵はカクカクしながらも,なんとか音にアニメを無理矢理同期させるのが「ストリーミング」です。

アニメが先行してしまう(つまり音が遅れる)ような現象には,
会ったことがないので,会ったことがあっても気づかなかっただけかもしれませんが,
この点についてはよくわかりません。

この回答への補足

sassakunさん丁寧に解説していただきありがとうございます。

実は作ろうとしているものがリズム音楽×タイピング系のゲームでして、音の重複再生が頻繁でして、たぶんそれで音の方が遅れているのだと思います。
1つの音だけでは遅れないのですが、2つめの音を再生したときに0.2秒ほどの遅れが生じてしまい、その遅れはその他全ての音に影響します。しかし、時々うまくいくこともあります。

それで、ご教授していただいた対処法案ですが、うまくいきませんでした。

音自体の問題かということに関しては、無音部分はありませんから問題ないと思います。

ちなみにfpsを10まで落としてやると普通どうりにいきます。

やはりフラッシュは音には弱いのでしょうか・・・?

ともあれ、教えていただきありがとうございます。

補足日時:2007/02/24 13:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!