网站制作学习网Flash→正文:as3.0播放音频代码
字体:

as3.0播放音频代码

Flash 2011/6/16 18:13:53  点击:不统计

原载于:原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n

用as3.0 做了一个播放mp3的音频播放器,比较点单,有声音控制,有暂停和播放,首先看下面代码

var pos:Number=0;//定义播放位置,当播放位置为空时,则开始从头播放
var leng:Number;//定义用来存放音频总长度
var my_channel;// 定义声音频道对象,是字面翻译,慢慢理解
var my_sound:Sound=new Sound();//这里定义一个声音对象
var p_b:int = 1;//定义当前播放按钮为停止状态,如果开始为开始播放,则设置该变量为2
//my_sound.addEventListener(Event.COMPLETE,loader_complete);//这里可以定义加载声音,加载完毕后调用locader_complete

函数,这里定义的是获取播放音频的总长度
my_sound.load(new URLRequest("abc.mp3"));//声音对象my_sound 加载mp3文件
my_channel = my_sound.play(pos);//mp3对象文件播放,并给声音频道对象,这里可以写参数,参数详细介绍看下面原文是网站制作学习网的FoAsP.cn
my_channel.stop();//这里是开始停止播放声音,如果想以开始播放,则将这行去掉。

ps_button.addEventListener(MouseEvent.CLICK,p);//定义开始结束按钮,点击时调用p函数

function loader_complete (e:Event){leng = my_sound.length;}//这里是加载完毕后获取总长度
function p(me:MouseEvent){//这里定义了开始结束按钮
    p_b=p_b==1?2:1;//当p_d为1时,点击后变为2,当为2时变为1
 if(p_b==2){//默认为1为停止播放,点击一次为2开始播放
   while(pos>leng)pos-=leng;//当重复的多次的时候时间长度更新,则进行回放
        my_channel = my_sound.play(pos);//从pos位置播放
  soundform = my_channel.soundTransform;//将新的播放频道对象赋值
   b_up.addEventListener(MouseEvent.CLICK,dasheng);//定义声音按钮b_up,点击调用dasheng函数,增大声音
                b_down.addEventListener(MouseEvent.CLICK,xiaosheng);//定义声音按钮b_down 点击调用xiaosheng函数
  p_s.gotoAndStop(1);//p_s为二帧动画1为停止的方框 2为播放的三角
 }else{//当点击为1时则进行停止播放
     b_up.removeEventListener(MouseEvent.CLICK,dasheng);//停止播放去除声音监听
            b_down.removeEventListener(MouseEvent.CLICK,xiaosheng);//停止播放去除声音监听
  p_s.gotoAndStop(2);//p_回到2帧播放三角0
  pos=my_channel.position;
  my_channel.stop();//停止声音播放
 }
}
function dasheng(me:MouseEvent){
 soundform = my_channel.soundTransform;//建立音频对象的 声音格式对象
 snum = soundform.volume;//获取当前声音大小
 snum = snum+0.1;//更新增大10%
 soundform.volume= snum>1?1:snum;//如果大于1 则等于1
 my_channel.soundTransform = soundform;//将新的声音给声音频道对象
}
function xiaosheng(me:MouseEvent){//解释同上
 soundform = my_channel.soundTransform;
 snum = soundform.volume;
 snum = snum-0.1;
 soundform.volume= snum<0?0:snum;
 my_channel.soundTransform = soundform;
 soundnum.text = String(soundform.volume*100).substr(0,3)+"%";
}

声音对象.play(开始位置,播放次数);//播放,从开始位置播放 播放次数 次。
声音频道对象.stop();停止音频播放
获取声音格式对象为 声音对象=声音频道对象.soundTransform;//这是我自己的说法 啊,不专业
获取声音大小为 声音频道对象.volume;
设置声音大小为 声音频道对象.volume=1(这里是0-1之间); 声音频道对象.soundTransform = 声音对象。
获取已经播放的位置  位置=声音频道对象.position;为时间
获取总长度为 leng = 声音对象.length;

要区分:声音对象,声音频道对象和 声音格式对象,这都是我自己命名的,可以自己区分理解一下。


·上一篇:as3.0农历(阴历)日期代码(转) >>    ·下一篇:flash actionScript3 3维旋转效果代码 >>
推荐文章
最新文章