私は小さなFlashゲームに取り組んでいますが、異なるサウンドを同時に再生するのに問題があります。
たとえば、プレイヤーが塔を通過すると、ゴングの音が鳴ります。ジャンプするとジャンプ音が鳴ります。これらの2つのアクションは同時に発生する可能性があり、その場合は2つのサウンドを一緒に再生(オーバーラップ)する必要があります。
これらの音は次のように宣言されています。
s_jumping = new Sound();
s_jumping.attachSound("s_jump");
s_noise2 = new Sound();
s_noise2.attachSound("s_gong");
そして、それらは(必要に応じて)単純なs_jumping.start(0,1);
またはで呼び出されs_noise2.start(0,1);
ます。
私のコードのどこにも、s_jumping.stop()
またはを呼び出すことはありませんs_noise2.stop()
。
これらのサウンドは、別々に再生すると正常に機能しますが、一緒に再生すると機能しません。2番目の音が鳴ると、最初の音が止まります。
new Sound()
別の変数名で使うということは、それらの音が別々に存在するということだと思いました。代わりに、一方のサウンドがもう一方のサウンドをオーバーライドするようなものです。
私は何が間違っているのですか?
(注:ここでは大量のサウンドを再生しようとはしていません。私のテストでは、同時に最大3つのサウンドがあります。)
更新:さらにテストした後、持っているバックグラウンドサウンドを1つ削除すると、これらのサウンドは正常に再生されます。だから、ある種の限界に達したようです。奇妙なのは、現時点で私が同時に演奏する音は最大で3つまたは4つであるということです。私が読んだものから、それは少なくとも8つの音でOKであるはずです!
(注:Flash CS4、actionscript 2を使用し、Flash Player 8にエクスポートします。)