如何用FLASH控制动画声音的停止和播放?

前几天有朋友问我如何用FLASH控制动画声音的停止和播放,我查找了下资料,给大家分享一下,希望对需要它的有用哦。

如何用FLASH控制动画声音的停止和播放?

软件推荐:英文歌曲APP下载(安卓版)语言记忆卡片-旅游圣地(ABAAPP下载(苹果版)快车下载(电脑版)

/*

As3Sound.as

*/

package{

importflash.display.Sprite;

importflash.events.*;

importflash.media.Sound;

importflash.media.SoundChannel;

importflash.net.URLRequest;

importflash.utils.Timer;

importflash.text.TextField;

importflash.text.TextFieldAutoSize;

importflash.filters.DropShadowFilter;

publicclassAs3SoundextendsSprite{

privatevarurl:String="https://XXX.com/music/XXX.mp3";

privatevarsoundFactory:Sound;

privatevarchannel:SoundChannel;

privatevarpositionTimer:Timer;

privatevarplay_btn:Sprite;

privatevarstop_btn:Sprite;

privatevard_filtersropShadowFilter=newDropShadowFilter(5,45,0x000000,80,8,8);

//用于记录音乐现在是否为暂停状态

privatevarbSoundStop:Boolean=false;

publicfunctionAs3Sound(){

varsxl_txt:TextField=newTextField();

sxl_txt.text="CS4中如何控制声音的播放或停止的";

sxl_txt.autoSize=TextFieldAutoSize.LEFT;

sxl_txt.x=stage.stageWidth/2-sxl_txt.width/2;

sxl_txt.y=20;

addChild(sxl_txt);

varmp3_request:URLRequest=newURLRequest(url);

soundFactory=newSound();

//成功加载数据后

soundFactory.addEventListener(Event.COMPLETE,completeHandler);

//在存在可用于MP3声音的ID3数据时

soundFactory.addEventListener(Event.ID3,id3Handler);

//加载音乐错误时

soundFactory.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);

//音乐加载中...

soundFactory.addEventListener(ProgressEvent.PROGRESS,progressHandler);

soundFactory.load(mp3_request);

channel=soundFactory.play();

//音2 放完成

channel.addEventListener(Event.SOUND_COMPLETE,soundCompleteHandler);

//用Timer监听音乐的播放进度

positionTimer=newTimer(1000);

positionTimer.addEventListener(TimerEvent.TIMER,positionTimerHandler);

positionTimer.start();

//创建一个按钮,用于播放音乐

play_btn=newSprite();

play_btn.graphics.beginFill(0xFFCC32);

play_btn.graphics.drawRoundRect(0,0,70,18,10,10);

play_btn.graphics.endFill();

varplay_txt:TextField=newTextField();

play_txt.text="播放";

play_txt.x=18;

play_btn.x=50;

play_btn.y=100;

play_txt.selectable=false;

play_btn.addChild(play_txt);

play_btn.filters=[d_filters];

play_btn.addEventListener(MouseEvent.CLICK,soundPlay);

addChild(play_btn);

//创建一个按钮,用于停止音乐

stop_btn=newSprite();

stop_btn.graphics.beginFill(0xFFCC32);

stop_btn.graphics.drawRoundRect(0,0,70,18,10,10);

stop_btn.graphics.endFill();

stop_btn.x=130;

stop_btn.y=100;

varstop_txt:TextField=newTextField();

stop_txt.x=18;

stop_txt.text="暂停";

stop_txt.selectable=false;

stop_btn.addChild(stop_txt);

stop_btn.filters=[d_filters];

stop_btn.addEventListener(MouseEvent.CLICK,soundStop);

addChild(stop_btn);

}

//监听音乐的播放进度

privatefunctionpositionTimerHandler(event:TimerEvent):void{

varybf:int=channel.position.toFixed(0);

varzcd:int=soundFactory.length;

varbfs:int=Math.floor(ybf/zcd*100);

//trace("音乐总长度:"+zcd,"音乐已播放:"+ybf,"播放进度为:"+bfs+"%");

}

//加载音乐完成时

privatefunctioncompleteHandler(event:Event):void{

//trace("加载音乐完成:"+event);

}

//在存在可用于MP3声音的ID3数据时

privatefunctionid3Handler(event:Event):void{

//trace("音乐的ID3信息如下:");

for(varsinsoundFactory.id3){

//trace("",s,":",soundFactory.id3[s]);

}

//trace("关于ID3信息介绍,请参见Sound类-->属性-->id3");

}

//加载音乐错误时

privatefunctionioErrorHandler(event:Event):void{

//trace("加载音乐错误,错误信息如下:"+event);

positionTimer.stop();

}

//加载音乐时

privatefunctionprogressHandler(eventrogressEvent):void{

varyjz:int=event.bytesLoaded;

varzcd:int=event.bytesTotal;

varbfs:int=Math.floor(yjz/zcd*100);

//trace("音乐总长度:"+zcd,"已加载:"+yjz,"加载进度为:"+bfs+"%");

}

//音2 放完成

privatefunctionsoundCompleteHandler(event:Event):void{

//trace("音2 放完成:"+event);

positionTimer.stop();

}

//点击播放按钮事件

privatefunctionsoundPlay(event:MouseEvent):void{

if(bSoundStop){

bSoundStop=false;

channel=soundFactory.play(channel.position.toFixed(0));

}

}

//点击停止按钮事件

privatefunctionsoundStop(event:MouseEvent):void{

if(!bSoundStop){

bSoundStop=true;

channel.stop();

}

}

}

}