博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AS3 音乐播放进度条
阅读量:5750 次
发布时间:2019-06-18

本文共 2646 字,大约阅读时间需要 8 分钟。

1 package{  2     //导入包  3     import flash.display.Sprite; 4     import flash.events.Event; 5     import flash.media.Sound; 6     import flash.media.SoundChannel; 7     import flash.net.URLRequest; 8     import flash.text.TextField;  9     //创建文档类 10     public class ABC1008 extends Sprite { 11         //定义属性 12         private var len:Number; 13         private var po:Number; 14         private var song:SoundChannel; 15         private var sp1:Sprite 16         private var sp2:Sprite 17         private var txt:TextField 18         //定义要加载的文件路径,注意,此路径要相对于SWF文件的目录 19         private var url:String="zbc.mp3"; 20         //创建Sound类实例 21         private var mysound:Sound=new Sound(); 22         //构造函数 23         public function ABC1008() { 24             //创建URL连接 25             var request:URLRequest=new URLRequest(url); 26             //注册加载完成事件 27             mysound.addEventListener(Event.COMPLETE,completeHandler); 28             //加载文件 29             mysound.load(request); 30             //创建一个背景显示对象 31             sp1=new Sprite(); 32             sp1.graphics.beginFill(0xff0000); 33             sp1.graphics.drawRect(0,0,300,20); 34             sp1.graphics.endFill(); 35             addChild(sp1); 36             sp1.x=50; 37             sp1.y=100; 38             //创建一个用于缩放的显示对象,通过缩放表示进度值 39             sp2=new Sprite(); 40             sp2.graphics.beginFill(0xffff00); 41             sp2.graphics.drawRect(0,0,298,18); 42             sp2.graphics.endFill(); 43             addChild(sp2); 44             sp2.x=51; 45             sp2.y=101; 46             //创建一个动态文本,用于在其中不断显示当前的进度 47             txt=new TextField() 48             txt.text="当前播放进度为:" 49             txt.x=50 50             txt.y=120 51             txt.width=300 52             addChild(txt) 53         } 54         //创建加载完成事件侦听函数 55         private function completeHandler(event:Event):void { 56             //加载完成,开始播放 57             song=mysound.play(); 58             //获取当前声音文件的长度 59             len=mysound.length; 60             //加入帧循环事件,逐帧计算播放进度 61             addEventListener(Event.ENTER_FRAME,onenterframe); 62         } 63         //创建逐帧计算和显示进度事件处理函数 64         private function onenterframe(evt:Event):void { 65             //获取当前播放头所对应的音频文件长度 66             po=song.position; 67             //计算进度比值 68             var per:Number=po/len; 69             //缩放显示对象sp2,实现进度显示 70             sp2.scaleX=per 71             //计算进度百分比 72             var percent:Number=Math.floor(per*10000)/100 73             //文本显示进度 74             txt.text="当前播放进度为:"+percent+"%" 75         } 76     } 77 }

 

转载于:https://www.cnblogs.com/Hunter-541695/p/9753874.html

你可能感兴趣的文章
tomcat 安装
查看>>
AIX:物理卷及有关概念
查看>>
我的友情链接
查看>>
Centos6.6安装选包及基础场景说明
查看>>
《从零开始学Swift》学习笔记(Day 61)——Core Foundation框架之内存管理
查看>>
java基础面试题-1
查看>>
深克隆与序列化效率的比较
查看>>
C++入门篇01
查看>>
3.python开发语言的特点
查看>>
Nginx使用Proxy_cache实现服务器端静态文件缓存
查看>>
lamp+nginx代理+discuz+wordpress+phpmyadmin搭建一
查看>>
nagios监控使用139邮箱报警
查看>>
Windows Phone 7 中各种Task解说(启动器与选择器)
查看>>
ArcGIS网络分析之Silverlight客户端最近设施点分析(四)
查看>>
罗森伯格助力2011年中国智能建筑技术发展应用论坛哈尔滨站
查看>>
网络割接
查看>>
mysql主从复制及失败切换
查看>>
windows server 2016 活动目录(二)
查看>>
openstack G版 修改vm的flavor级别
查看>>
python_控制台输出带颜色的文字方法
查看>>