AS3 предоставляет два метода для решения этой проблемы.Наиболее простым является указание команде воспроизведения, сколько раз вы хотите, чтобы звук повторялся с использованием параметра «петли».https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Sound.html#play()
Второй метод, который дает вам больше контроля, немного сложнее.По сути, вы запускаете звук и добавляете слушателя, который следит за воспроизведением звука.Если воспроизведение завершено, событие SOUND_COMPLETE сработает, и его функция обратного вызова может возобновить воспроизведение.Чтобы дать вам пример:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
public class Main extends Sprite
{
private var sound:Sound;
private var soundChannel:SoundChannel;
public function Main():void
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
sound = new Sound();
var urlRequest:URLRequest = new URLRequest("sound.mp3");
sound.load(urlRequest);
soundChannel = sound.play();
soundChannel.addEventListener(Event.SOUND_COMPLETE, soundFinished);
}
public function soundFinished(event:Event):void
{
soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundFinished);
soundChannel = sound.play();
soundChannel.addEventListener(Event.SOUND_COMPLETE, soundFinished);
}
}
}