flash as3用代码播放声音的常用方法和属性

1.一般我们在动画中用代码加载声音,下面列举一些控制声音的方法

给文件库里的声音加链接,双击文件右边的链接起个类名,比如bg_sound,然后把它加载进动画中

var bgsound: bg_sound = new bg_sound();

然后声音对象有几个常用属性:

bgsound.length//声音的长度,以毫秒为单位
bgsound.bytesTotal  //声音的总字节

然后播放声音是这个方法:

声音名.play(播放头(默认为0), 播放循环次数(默认为0), 播放分配声道(一般默认为空));

然后要控制声音的停止和音量,必须调用类soundChannel,它有stop()方法,position属性,soundtransform用来控制音量,还有complete事件,下面上代码。

2.具体代码

import flash.media.SoundChannel;
var pos; //声音停止的位置
var bgsound: bg_sound = new bg_sound(); //加载进声音
var channel: SoundChannel = new SoundChannel();  //声道
channel = bgsound.play();  //把声音的控制交给声道
//暂停
btn.addEventListener(MouseEvent.CLICK, fn)
function fn(e)
{
     pos =  channel.position;//注意保存位置必须要在声道停止之前,否则会错误
     channel.stop();//注意声音本身是无法stop的,就是不能bg_sound.stop() 
}
//播放
btn2.addEventListener(MouseEvent.CLICK, fn2)
function fn2(e)
{
     channel = bgsound.play(pos);
}

//停止

btn3.addEventListener(MouseEvent.CLICK, fn3)
function fn3(e)
{
     pos =  0;
     channel.stop(); 
}


//音量的控制
var vlCont:SoundTransform = new SoundTransform();
vlCont.volume = 0.1;  //声音的大小,0-1
channel.soundTransform = vlCont;
//声音加载完成后调用的事件
channel.addEventListener(Event.SOUND_COMPLETE, f_complete);
function f_complete(e)
{
     trace("adasd");
     }

3.注意事项

当我们做动画把声音直接拉入影片剪辑时(主时间轴不会)如果有返回前面帧的地方,它也会把声音重播一遍的。

所以建议声音全部用代码加入,不用数据流。

你可能感兴趣的:(Flash-AS3)