有没有办法在动画片段上使用声道?

时间:2011-04-01 13:28:55

标签: actionscript-3 flash audio flash-cs5 media-channel

我能描述的唯一方法就是显示我已经编写的代码,然后尝试解释我想要做什么。 基本上,我正在创建一个音板游戏,在屏幕的底部,我将有一个动画片段,我将拖动其他动画片段,然后点击付费,并使用数组和.push他们将播放为了。我试图使用代码将声音放到动画片段上。到目前为止,我有这个:

var snd1:Sound = newSound();
snd.load(newURLRequest("naturefrog.wav"));

var channel:SoundChannel;
snd.addEventListener

我现在仍然坚持听取听众的意思。

3 个答案:

答案 0 :(得分:0)

您应该使用Flash API for Sound来确定要添加的侦听器。页面底部有一些有用的示例。

我假设您要添加:

snd.addEventListener(Event.COMPLETE, completeHandler);
snd.addEventListener(Event.ID3, id3Handler);
snd.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
snd.addEventListener(ProgressEvent.PROGRESS, progressHandler);

答案 1 :(得分:0)

如果声音是外部声音,请参阅此答案以了解声音何时完成加载:   Loading a sound from an external source

现在,一旦你准备好播放声音并听完它的声音,就会在这里得到解答:   demonstrates setting up listeners for sound_complete, as well as looping

答案 2 :(得分:0)

当用户将动画片段的声音引用拖动到特定的movieclilp中时,您正在将它的声音引用推送到数组中,对吗?如果这样做,你可以从数组中移出一个元素(array.shift,通常会移除并返回数组的第一个元素)。

function playSoundInArray(){
    if(array.length){
        var snd:Sound = array.shift() as Sound;
        channel = snd.play();
        channel.addEventListener(Event.SOUND_COMPLETE, onSoundPlayed);
    }else{
        //Do something here if there is no sound reference or the array is empty
    }
}

function onSoundPlayed(e:EVent){
    channel.removeEventListener(Event.SOUND_COMPLETE, onSoundPlayed);
    playSoundInArray();
}