私は 13 の異なる音楽ファイルを持つフラッシュ プロジェクトに取り組んでいます。ユーザーが対応するボタンをクリックして、再生中の曲を選択できるようにしたいと考えています。ユーザーが 13 個のボタンのいずれかをクリックすると、現在の曲を停止し、新しい曲を最初から再生して、音が重ならないようにしたいと考えています。
ムービーをテストすると、最初は一部のボタンが他の音楽を停止することがわかりましたが、一部のボタンは停止せず、現在の音楽の上に新しい音楽が再生されます (各ボタンのコードは、ある場所を除いて同一であると確信しています)。インスタンス名) 最初は機能するボタンが、数回クリックすると機能しなくなります。ボタンは、すでに再生中の音楽を停止することを除いて、私が必要とするすべてのことを行います.
チュートリアルを使用して、ActionScript コードを使用してライブラリからサウンド ファイルを再生および制御する方法を学習しましたが、私のコードはサウンド ファイルを停止するのに適切に機能しません。これがなぜなのかわからないので、ここにいくつかのコードを投稿します。13 個の異なるボタンがあるため、かなり多くのコードがあるため、1 つのボタンのコードのみを投稿します。残りのボタンのコードは同じですが、番号の接尾辞が各ボタンに固有になるように変更されています。すべてのコードは、同じシンボルのフレーム 1 にあります。
var music1Play:Music1 = new Music1();
var music1Channel:SoundChannel = new SoundChannel();
btnPiece1.addEventListener(MouseEvent.CLICK, playMusic1);
function playMusic1(e:MouseEvent):void
{
music2Channel.stop();
music3Channel.stop();
music4Channel.stop();
music5Channel.stop();
music6Channel.stop();
music7Channel.stop();
music8Channel.stop();
music9Channel.stop();
music10Channel.stop();
music11Channel.stop();
music12Channel.stop();
music13Channel.stop();
btnPiece1.mouseEnabled = false; /*Disables button to avoid double click*/
btnPiece1.mouseChildren = false;
btnPiece2.mouseEnabled = true; /*Enables the other buttons*/
btnPiece3.mouseEnabled = true;
btnPiece4.mouseEnabled = true;
btnPiece5.mouseEnabled = true;
btnPiece6.mouseEnabled = true;
btnPiece7.mouseEnabled = true;
btnPiece8.mouseEnabled = true;
btnPiece9.mouseEnabled = true;
btnPiece10.mouseEnabled = true;
btnPiece11.mouseEnabled = true;
btnPiece12.mouseEnabled = true;
btnPiece13.mouseEnabled = true;
music1Channel = music1Play.play();
music1Channel.addEventListener(Event.SOUND_COMPLETE, loopMusic1);
}
function loopMusic1(e:Event):void
{
music1Channel = music1Play.play();
music1Channel.addEventListener(Event.SOUND_COMPLETE, loopMusic1);
}
コードの何が問題なのかをお知らせいただくか、使用できる別の方法を提案してください。
ありがとうございました、
クリス