就下载 —— 安全下载、无毒手机软件、绿色软件官方下载网站最近更新|下载排行|热门标签|收藏本站

您现在的位置是:就下载 > IT资讯 > 软件教程 > Flash如何控制动画或声音的停止与播放

今天有闪友问到如何控制AS3中的声音问题,用下面的小实例说明: /* As3Sound.as */ package { import flash.display.Sprite; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.utils.Timer; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.filters.DropShadowFilter; public class As3Sound extends Sprite { private var url:String = "http://XXX.com/music/XXX.mp3"; private var soundFactory:Sound; private var channel:SoundChannel; private var positionTimer:Timer; private var play_btn:Sprite; private var stop_btn:Sprite; private var d_filtersropShadowFilter=new DropShadowFilter(5,45,0x000000,80,8,8); //用于记录音乐现在是否为暂停状态 private var bSoundStop:Boolean = false; public function As3Sound() { var sxl_txt:TextField = new TextField(); 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); var mp3_request:URLRequest = new URLRequest(url); soundFactory = new Sound(); //成功加载数据后 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(); //音乐播放完成 channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); //用Timer监听音乐的播放进度 positionTimer = new Timer(1000); positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler); positionTimer.start(); //创建一个按钮,用于播放音乐 play_btn = new Sprite(); play_btn.graphics.beginFill(0xFFCC32); play_btn.graphics.drawRoundRect(0, 0, 70, 18, 10, 10); play_btn.graphics.endFill(); var play_txt:TextField = new TextField(); 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 = new Sprite(); 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; var stop_txt:TextField = new TextField(); 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); } //监听音乐的播放进度 private function positionTimerHandler(event:TimerEvent):void { var ybf:int = channel.position.toFixed(0); var zcd:int = soundFactory.length; var bfs:int = Math.floor(ybf/zcd*100); //trace("音乐总长度:"+zcd, "音乐已播放:"+ybf, "播放进度为:"+bfs+"%"); } //加载音乐完成时 private function completeHandler(event:Event):void { //trace("加载音乐完成: " + event); } //在存在可用于MP3声音的ID3数据时 private function id3Handler(event:Event):void { //trace("音乐的ID3信息如下:"); for (var s in soundFactory.id3) { //trace("\t", s, ":", soundFactory.id3[s]); } //trace("关于ID3信息介绍,请参见Sound类-->属性-->id3"); } //加载音乐错误时 private function ioErrorHandler(event:Event):void { //trace("加载音乐错误,错误信息如下:" + event); positionTimer.stop(); } //加载音乐时 private function progressHandler(eventrogressEvent):void { var yjz:int = event.bytesLoaded; var zcd:int = event.bytesTotal; var bfs:int = Math.floor(yjz/zcd*100); //trace("音乐总长度:"+zcd,"已加载: "+yjz, "加载进度为:"+bfs+"%"); } //音乐播放完成 private function soundCompleteHandler(event:Event):void { //trace("音乐播放完成: " + event); positionTimer.stop(); } //点击播放按钮事件 private function soundPlay(event:MouseEvent):void { if (bSoundStop) { bSoundStop = false; channel = soundFactory.play(channel.position.toFixed(0)); } } //点击停止按钮事件 private function soundStop(event:MouseEvent):void { if (!bSoundStop) { bSoundStop = true; channel.stop(); } } } }

上一篇:实例教学Flash鼠标跟随教程:制作馋嘴的兔兔

本文地址:软件教程 >> http://www.9xz.net/it/ruanjianjiaocheng/14586.html

下一篇:Photoshop选择技巧

  • 打印
推荐阅读
热门专题
推荐内容
热点内容