Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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/3/flash/4.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/4/video/2.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 有没有办法在电影剪辑中使用一个声道?_Actionscript 3_Flash_Audio_Flash Cs5_Media Channel - Fatal编程技术网

Actionscript 3 有没有办法在电影剪辑中使用一个声道?

Actionscript 3 有没有办法在电影剪辑中使用一个声道?,actionscript-3,flash,audio,flash-cs5,media-channel,Actionscript 3,Flash,Audio,Flash Cs5,Media Channel,我能描述这一点的唯一方法是展示我已经拥有的代码,然后试图解释我想要做什么。。 基本上,我正在创建一个音板游戏,在屏幕的底部我会有一个是movieclip的条,我会将其他movieclip拖到上面,然后单击pay,使用数组和。按顺序播放。我试着用代码把声音放到电影唇上。到目前为止,我有: var snd1:Sound = newSound(); snd.load(newURLRequest("naturefrog.wav")); var channel:SoundChannel; snd.add

我能描述这一点的唯一方法是展示我已经拥有的代码,然后试图解释我想要做什么。。 基本上,我正在创建一个音板游戏,在屏幕的底部我会有一个是movieclip的条,我会将其他movieclip拖到上面,然后单击pay,使用数组和。按顺序播放。我试着用代码把声音放到电影唇上。到目前为止,我有:

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

var channel:SoundChannel;
snd.addEventListener
现在,我一直在想我应该为侦听器添加哪些内容。

您应该使用来确定要添加哪些侦听器。页面底部有一些有用的例子

我想您会想添加:

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

如果声音是外部的,请参阅此答案了解声音何时完成加载:

现在,当您准备好播放声音并聆听它完成时,这里的答案如下:

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


谢谢你的帮助。我想做的是,当我把它拖放到另一个电影剪辑上时,让它播放声音,如果这有意义的话,我完全迷路了,所以任何帮助都会很好。谢谢我不确定你是否能帮我,但我想做的是让电影剪辑在被拖到另一个电影剪辑上时播放声音,然后按下播放按钮,以便按照声音被拖的顺序播放声音。我知道我需要使用数组、推送函数和循环…但我迷路了。任何帮助都将不胜感激。谢谢,谢谢,这真的很有帮助。我不确定你是否能帮我,但我想做的是让movieclip在拖到另一个movieclip上时播放声音,然后按下播放按钮,以便按照声音被拖的顺序播放声音。我知道我需要使用数组、推送函数和循环…但我迷路了。任何帮助都将不胜感激。谢谢
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();
}