Actionscript 3 AS3中的复合无间隙声环
我有一个WAV音乐文件,我想在Flash Pro中循环。但是,我不知道如何使用这条轨道,它有一个打开部分和一个循环部分 音频文件将“划分”为三个点:A、B和C。循环部分将是点B和C之间的所有音频,而A和B之间的音频将是开始部分,只播放一次 我试着把WAV分成两个文件:A-B是Actionscript 3 AS3中的复合无间隙声环,actionscript-3,flash,loops,audio,wav,Actionscript 3,Flash,Loops,Audio,Wav,我有一个WAV音乐文件,我想在Flash Pro中循环。但是,我不知道如何使用这条轨道,它有一个打开部分和一个循环部分 音频文件将“划分”为三个点:A、B和C。循环部分将是点B和C之间的所有音频,而A和B之间的音频将是开始部分,只播放一次 我试着把WAV分成两个文件:A-B是intro文件,B-C是looping文件,这样在intro声音结束后,looping声音就开始了。 这两个文件都在库中(现在我只关注本地文件) 总而言之,以下是AS3代码: import flash.media.Sound
intro
文件,B-C是looping
文件,这样在intro
声音结束后,looping
声音就开始了。
这两个文件都在库中(现在我只关注本地文件)
总而言之,以下是AS3代码:
import flash.media.Sound;
import flash.events.Event;
import flash.media.SoundChannel;
var introMusic:Sound = new heroIntro();
var loopingMusic:Sound = new heroLoop();
var musicChannel:SoundChannel = new SoundChannel();
musicChannel = introMusic.play();
musicChannel.addEventListener(Event.SOUND_COMPLETE,continueMusic);
function continueMusic(e:Event):void{
musicChannel.removeEventListener(Event.SOUND_COMPLETE,continueMusic);
musicChannel= introMusic.play();
musicChannel.addEventListener(Event.SOUND_COMPLETE,continueMusic);
}
循环是完全无间隙的,但在介绍和循环部分之间的过渡会产生令人讨厌的间隙声音。如何使过渡无间隙?您可以在第一个声音结束前,在不同的声道中播放第二个声音一秒钟左右,以避免间隙声音。这不是一个优雅的解决方案,但可能会奏效。也许是这样的:
import flash.media.Sound;
import flash.events.Event;
import flash.media.SoundChannel;
var introMusic:Sound = new heroIntro();
var loopingMusic:Sound = new heroLoop();
var introChannel:SoundChannel = new SoundChannel();
var loopingChannel:SoundChannel = new SoundChannel();
var hasBegunLooping:Boolean = false;
introChannel = introMusic.play();
function update():void{ //called every tick
if(!hasBegunLooping && introChannel.position > introMusic.length - 1000){
loopingChannel = loopingMusic.play(0, int.MAX_VALUE);
hasBegunLooping = true;
}
}