as3.0 当跳到其他帧的时候关闭当前帧的声音

如题。每个帧都有背景音,也分别有一个控制声音的键,现在就是希望在各个帧来回变换的时候能关闭之前那个帧的声音。用过SoundMixer.stopAll();但是跳到其他帧之... 如题。
每个帧都有背景音,也分别有一个控制声音的键,现在就是希望在各个帧来回变换的时候能关闭之前那个帧的声音。
用过SoundMixer.stopAll();
但是跳到其他帧之后就什么声音都没有了。
stopAllSound();的话说是访问可能未定义的属性,感觉也不能用。
真的试过好多方法了,一直无解

故求解答。

急,在线等!
展开
 我来答
alanbabbage
推荐于2016-06-14 · TA获得超过979个赞
知道小有建树答主
回答量:755
采纳率:0%
帮助的人:1151万
展开全部

单独控制声音,暂时知道的有两种方法,

1、元件控制,将声音放到影片剪辑中去,之后声音同步属性选“数据流”,延长帧,到达或超过声音流(即蓝色的波形)长度。


控制方法:直接停止和播放影片剪辑即可。


2、使用Sound类进行播放声音


控制方法:在Sound.play()时,有返回SoundChannel类,此时将SoundChannel记录起来,在需要停止时使用SoundChannel.stop();来停止声音


另外,stopAllSound()是错误的代码,应该是stopAllSounds(),少了个s。而且stopAllSounds只适用于as2.0。功能跟SoundMixer.stopAll();一样,也是全部停止的。


给个Sound类停止例子代码

import flash.media.Sound;
import flash.media.SoundChannel;
import flash.utils.getDefinitionByName;

var sound:Sound = getSound("url_sound");//url_sound是库中声音的AS链接
var channel:SoundChannel = sound.play();

//停止代码,在需要停止时,调用
//channel.stop();

/**获取声音*/
function getSound(url:String):Sound{
var cls:Class = getDefinitionByName(url) as Class;

return new cls() as Sound;
}

//之所以使用函数来获取声音,主要是考虑到多声音情况。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式