Actionscript 3 AS3中的复合无间隙声环

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

我有一个WAV音乐文件,我想在Flash Pro中循环。但是,我不知道如何使用这条轨道,它有一个打开部分和一个循环部分

音频文件将“划分”为三个点:A、B和C。循环部分将是点B和C之间的所有音频,而A和B之间的音频将是开始部分,只播放一次

我试着把WAV分成两个文件:A-B是
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;
    }
}