Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何计算播放中的当前声音循环(0,30)_Actionscript 3_Audio - Fatal编程技术网

Actionscript 3 如何计算播放中的当前声音循环(0,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

我正在播放一个声音文件(mp3)并循环播放30次

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将您的函数与计时器事件和侦听器结合在一起,它工作得非常完美。我已经在上面的问题中添加了最后的代码。干杯