外门弟子
阅读权限 1
积分 395
侠名
UID 272
主题
帖子
精华
好友
银子
金子
贡献
威望
推广
活跃
荣耀
注册时间 2017-11-27
最后登录 1970-1-1
在线时间 小时
个人主页
|
【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
- package com.lzxt{
- //导入包
- import flash.display.Sprite;
- import flash.events.*;
- import flash.media.Sound;
- import flash.media.SoundChannel;
- import flash.net.URLRequest;
- import flash.text.TextField
- //创建文档类
- public class SoundPro extends Sprite {
- //定义属性
- private var len:Number;
- private var po:Number;
- private var song:SoundChannel;
- private var sp1:Sprite
- private var sp2:Sprite
- private var txt:TextField
- //定义要加载的文件路径,注意,此路径要相对于SWF文件的目录
- private var url:String="献给爱丽丝.mp3";
- //创建Sound类实例
- private var mysound:Sound=new Sound();
- //构造函数
- public function SoundPro() {
- //创建URL连接
- var request:URLRequest=new URLRequest(url);
- //注册加载完成事件
- mysound.addEventListener(Event.COMPLETE,completeHandler);
- //加载文件
- mysound.load(request);
- //创建一个背景显示对象
- sp1=new Sprite();
- sp1.graphics.beginFill(0xff0000);
- sp1.graphics.drawRect(0,0,300,20);
- sp1.graphics.endFill();
- addChild(sp1);
- sp1.x=50;
- sp1.y=100;
- //创建一个用于缩放的显示对象,通过缩放表示进度值
- sp2=new Sprite();
- sp2.graphics.beginFill(0xffff00);
- sp2.graphics.drawRect(0,0,298,18);
- sp2.graphics.endFill();
- addChild(sp2);
- sp2.x=51;
- sp2.y=101;
- //创建一个动态文本,用于在其中不断显示当前的进度
- txt=new TextField()
- txt.text="当前播放进度为:"
- txt.x=50
- txt.y=120
- txt.width=300
- addChild(txt)
- }
- //创建加载完成事件侦听函数
- private function completeHandler(event:Event):void {
- //加载完成,开始播放
- song=mysound.play();
- //获取当前声音文件的长度
- len=mysound.length;
- //加入帧循环事件,逐帧计算播放进度
- addEventListener(Event.ENTER_FRAME,onenterframe);
- }
- //创建逐帧计算和显示进度事件处理函数
- private function onenterframe(evt:Event):void {
- //获取当前播放头所对应的音频文件长度
- po=song.position;
- //计算进度比值
- var per=po/len;
- //缩放显示对象sp2,实现进度显示
- sp2.scaleX=per
- //计算进度百分比
- var percent=Math.floor(per*10000)/100
- //文本显示进度
- txt.text="当前播放进度为:"+percent+"%"
- }
- }
- }
|
评分
-
查看全部评分
|