1

サウンドファイル(mp3)を再生して30回ループしています。

soundChannel = soundLoop.play(0, 30);

textFieldに現在のループを数値として表示したいと思います。eventListenerを使用して、各ループがいつ再開するかを判断しようとしましたが、Event.SOUND_COMPLETEは、繰り返し再生するたびではなく、サウンドがロードされたときにディスパッチすると思います。

この分野での指導に感謝します。ありがとう。

動作するコードで編集 @Barışに感謝

    var lastPosition:Number;
    var loops:int=1;
    var timerLoops:Timer = new Timer(1000);
    timerLoops.addEventListener(TimerEvent.TIMER, startTimerLoops);

    function startTimerLoops():void
    {
        timerLoops.start();

        if(lastPosition > soundChannel.position)
            loops++;
            lastPosition = soundChannel.position;
            trace("Playing " + loops + " of 30" + "-" + lastPosition);

    }
4

1 に答える 1

1

soundChannel.positionサウンドの開始からのミリ秒単位の時間です。サウンドがループした後、0にリセットされます。それを追跡して、音がループしたかどうかを判断できます。

アップデート/エンターフレームで次のようなものが機能します:

private function update():void
{
   if(lastPosition > soundChannel.position)
      loops++;
   lastPosition = soundChannel.position;
}
于 2012-11-14T02:18:25.360 に答える