- ベストアンサー
音再生時の遅れを解消する方法はありますか?
- 音楽ゲームにおいて、キーボードを押してから音が出るまでの遅れが問題となっています。
- 遅れを小さくする方法を探しています。具体的には、遅れを0.03秒以下にしたいです。
- 既にFPSの設定や音声ファイルの圧縮など、いくつかの試みを行っていますが、効果はほとんどありませんでした。解決策をご存知の方がいらっしゃいましたら、教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
私も専門家でないので、自身はありませんが以下のようにされてはいかがですか onClipEvent(keyDown){ if (Key.isDown(70)) {//Fキーを押している間のこと if(f_ok){ sound01.start(0,1); f_ok = false; } } onClipEvent(KeyUp)}//Fキーを離している間 f_ok = true; _root.mc_enter._visible = false; } }
その他の回答 (1)
- LACOMS
- ベストアンサー率65% (15/23)
onClipEvent(enterFrame)は、フレームに入るたびに実行されます。 したがって、フレームレートによります。フレームレートは、再生環境に依存し正確なものではありません。 以下のようにされてはいかがでしょうか。 onClipEvent(enterFrame) ↓ onClipEvent(keyDown) これだと、キーが押された瞬間にイベントが発生します。 ちなみに、 サウンドデータは重いので最初にロードしておくとよいでしょう。
お礼
回答ありがとうございます。 onClipEvent(keyDown)にしようとしたら問題にぶちあたりました。 実はキーを押し続けた時に音の再生が連続実行されないようにするために、「キーを離したとき」の判定もしなければならないのですが、onClipEvent(keyDown)を使うとそのキーを押し続けた時の連続再生防止機能を実現できません。というか、どうやって実現すればいいのかがわかりません。 つまりこれまではif(Key.isDown(13)){}else{}でそれを実現できていたのですが、onClipEvent(keyDown)を使うようになると、「キーを離したとき」をどうやって判定するのかがわからないのです。初心者ですいません。もしよかったら教えてもらえないでしょうか。
お礼
やったー!!できました!! しかも再生の遅延が以前よりもウンとなくなりました。 これでFLASH環境での開発が可能です。 本当に協力してくださってありがとうございました。 以下、他の人のために一応まとめを書いておきます。 onClipEvent(keyDown){ if (Key.isDown(70)) {//Fキーを押している間のこと if(f_ok){ s01.start(0,1); f_ok = false; } } } onClipEvent(keyUp){//Fキーを離している間 f_ok = true; }