我是相当新的动作脚本,并且需要知道如何循环BG音乐。我知道其他语言,你可以这样做
while(!endGame){
sound.play();
}
但我似乎无法找到如何做到这一点的AS,或者也许有更好的方法的语法?这是7秒的片段,所以我需要它来继续循环,直到终止条件得到满足。
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);
}
}
}