Actionscript 3 如何计算播放中的当前声音循环(0,30)
我正在播放一个声音文件(mp3)并循环播放30次Actionscript 3 如何计算播放中的当前声音循环(0,30),actionscript-3,audio,Actionscript 3,Audio,我正在播放一个声音文件(mp3)并循环播放30次 soundChannel = soundLoop.play(0, 30); 我想在文本字段中将当前循环显示为一个数字。我曾尝试使用eventListener来确定每个循环何时重新启动,但我认为Event.SOUND\u在加载声音时完成调度,而不是每次重复播放 我非常感谢您在这方面的指导。谢谢 使用工作代码编辑 感谢@Barış var lastPosition:Number; var loops:int=1; var t
soundChannel = soundLoop.play(0, 30);
我想在文本字段中将当前循环显示为一个数字。我曾尝试使用eventListener来确定每个循环何时重新启动,但我认为Event.SOUND\u在加载声音时完成调度,而不是每次重复播放
我非常感谢您在这方面的指导。谢谢
使用工作代码编辑
感谢@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);
}
soundChannel.position
是从声音开始的时间(以毫秒为单位)。声音循环后,它被重置为0。你可以追踪它来判断声音是否循环
更新/输入框架中的以下内容可以正常工作:
private function update():void
{
if(lastPosition > soundChannel.position)
loops++;
lastPosition = soundChannel.position;
}
soundChannel.position
是从声音开始的时间(以毫秒为单位)。声音循环后,它被重置为0。你可以追踪它来判断声音是否循环
更新/输入框架中的以下内容可以正常工作:
private function update():void
{
if(lastPosition > soundChannel.position)
loops++;
lastPosition = soundChannel.position;
}
这是否需要某种侦听器来拾取每个“重置为0”?是的,这个函数应该是一个侦听器。它可以是计时器事件或输入帧事件。它必须定期调用,以便在循环发生时能够快速检测。感谢@BarışI将您的函数与计时器事件和侦听器结合在一起,它工作得非常完美。我已经在上面的问题中添加了最后的代码。干杯这是否需要某种侦听器来拾取每个“重置为0”?是的,这个函数应该是一个侦听器。它可以是计时器事件或输入帧事件。它必须定期调用,以便在循环发生时能够快速检测。感谢@BarışI将您的函数与计时器事件和侦听器结合在一起,它工作得非常完美。我已经在上面的问题中添加了最后的代码。干杯