每天学一点AS3.0(一)---声音的控制

   今天突然间发现,自己荒废了好久的Flash了,今天开始慢慢的复习并进一步学习一下,今天开始关于声音的学习。

1,加载库中的声音
   文件--》导入---》导入到库
2,加载本地的声音
   在第一帧处写代码:
代码

   // URLRequest类是用来制定要加载的地址,此时的地址是本地地址
   var url:URLRequest = new  URLRequest( string  url);
   
// 声明一个声音对象
   var sound:Sound = new  Sound();
   
// 通过load方法把url加载的声音加载到Sound对象里面
   sound.load(url);
   
// 播放
   sound.play();

 

3,加载远程的声音
   在第一帧处写代码:  

代码
// URLRequest类是用来制定要加载的地址,此时的url为http地址
   var url:URLRequest = new  URLRequest( string  url);
   
// 声明一个声音对象
   var sound:Sound = new  Sound();
   
// 通过load方法把url加载的声音加载到Sound对象里面
   sound.load(url);
   
// 播放
   sound.play();

 

4,加载进度

首先,要知道进度是如何计算的。
   公式:进度=已经加载过的字节/总共的字节数
   那么现在我们就要知道已经加载的自己怎么获得,总共的字节数怎么获得
   1,通过sound的属性来获得
      sound.bytesLoaded:获得已经加载的字节数
      sound.bytesTotal:获得总共的字节数
   2, 添加一个新层命名为“显示进度”,在第一帧处添加一个动态文本命名为jd_txt
   3,在as层的第一帧处写代码:

 

代码
// URLRequest类是用来制定要加载的地址,此时的url为http地址
var url:URLRequest = new  URLRequest( " http://121.28.24.122/blog/eb/upload/audio1/20090422/hahaxiao_1240364607390.mp3 " );
 
// 声明一个声音对象
var sound:Sound = new  Sound();
// 通过load方法把url加载的声音加载到Sound对象里面
sound.load(url);
// 给声音对象添加加载中事件
sound.addEventListener(ProgressEvent.PROGRESS,jz);
 
// 给声音对象添加加载完成后的事件
function jz(e){
    var jd:Number
= Math.round((sound.bytesLoaded / sound.bytesTotal) * 100 );
    jd_txt.text
= " 加载 " + jd + " % " ;
}

 

测试影片,效果如下:

每天学一点AS3.0(一)---声音的控制_第1张图片

知识点:

1,对于Sound对象存在方法,属性和事件,对于方法和属性就不需要过多的解释,最重要的是事件

对于Sound对象的事件如下:

每天学一点AS3.0(一)---声音的控制_第2张图片

上面的表格就显示了Sound对象的5个事件,最为常用的事件有complete,ioError,progress个事件

上面的列子中,我们用到的是progress事件,通过Sound对象的addEventListener方法添加事件,参数有两个,

一个是ProgressEvent.PROGRESS,一个是jz,第一个参数是事件类型,第二个是事件执行函数。

在定义jz函数的时候,注意要有一个参数e,这个e就是产生事件的相关信息,这个函数可以有两个写法:

 

function jz(e){
    ....
}
// 或者
function jz(Event:ProgressEvent){
    ....
}

 

使用哪一个都一样的。

今天到此结束,下一会,我们添加一个进度条!

 

你可能感兴趣的:(as3)