声音的支持在早期的Flash中就已经存在。由于音乐在娱乐应用中的重要地位,作为网络富媒体的先锋,Flash长期不遗余力的推进脚本语言对声音的功能支持。
目前支持四种形式的声音数据:
Ø 在运行时加载的外部声音文件。
Ø 在应用程序的SWF文件中嵌入的声音资源。
Ø 来自连接到用户系统上的麦克风的声音数据。
Ø 从远程媒体服务器流式传输的声音数据,这种声音数据常见于网络广播。
在ActionScript 3.0中,声音播放和控制的类主要集中在flash.media包中。其中,最主要的声音类是Sound类。使用Sound类处理声音加载、管理基本声音属性,以及启动声音播放。
加载声音文件前,需要首先创建一个URLRequest对象,该对象保存声音文件的地址。将URLRequest对象作为参数传递给Sound类的load()方法。
var soundpath:URLRequest=new URLRequest();
//声音数据地址
soundpath.url="sounddata/sample.mp3";
//新建声音对象
var mysound:Sound=new Sound();
//加载外部声音数据
mysound.load(soundpath);
由于声音的加载是一个异步过程,因此利用事件响应,可以安全的在声音加载后播放该文件。当Sound类加载完成后,FlashPlayer会发送Event.COMPLETE消息。
//添加加载完成侦听
mysound.addEventListener(Event.COMPLETE, onSoundLoaded);
//事件侦听函数
function onSoundLoaded(event:Event):void
{
var localSound:Sound = event.target as Sound;
localSound.play();
trace("load complete");
}
运行程序,如果对应的声音文件存在,则FlashPlayer就可以加载并播放该声音文件了。