0

これが私の質問です

私のメインステージでは、このコードを追加してサウンドを繰り返しました。このステージでは問題なく動作し、ループもうまくいきました

var HP1sound:Sound = new HP_sound();

var HP_channel:SoundChannel = new SoundChannel();

function playSound():void
{
    HP_channel=HP1sound.play();
    HP_channel.addEventListener(Event.SOUND_COMPLETE, onComplete);
}

function onComplete(event:Event):void

{
    SoundChannel(event.target).removeEventListener(event.type, onComplete);
    playSound();
}
    playSound();

ただし、コードを別のページに追加し (すべての変数を変更)、正しいサウンドが 1 回正しく再生されますが、ループする必要がある場合は、最初のステージのサウンドが再生されます。(2 ページ目のコードを以下に示します)

var Crow_sound2:Sound = new Crow_sound();

var Crow_channel:SoundChannel = new SoundChannel();

function playSound2():void

{
    Crow_channel=Crow_sound2.play();

    Crow_channel.addEventListener(Event.SOUND_COMPLETE, onComplete);
}

function onComplete2(event:Event):void
{
    SoundChannel(event.target).removeEventListener(event.type, onComplete);

     playSound2();
}
 playSound2();

つまり、playSound を再生するリピートでサウンド playSound2 を再生しています。

助けていただければ幸いですありがとう

4

1 に答える 1

1

onCompleteこれらの行でに変更するのを忘れましたonComplete2:

Crow_channel.addEventListener(Event.SOUND_COMPLETE, onComplete);
SoundChannel(event.target).removeEventListener(event.type, onComplete);

彼らはする必要があります:

Crow_channel.addEventListener(Event.SOUND_COMPLETE, onComplete2);
SoundChannel(event.target).removeEventListener(event.type, onComplete2);
于 2012-12-23T04:19:40.767 に答える