flash AS3.0实现进度条与播放暂停按钮的同步
来源:互联网 发布:淘宝田径精英 编辑:程序博客网 时间:2024/05/17 23:40
前面我分别介绍过如何实现播放和暂停按钮以及进度条的实现,不过一般情况下需要把两者结合起来使用,因此今天在这里我就来介绍实现两者统一的方法。
以下的代码实现了通常所见的进度条和播放暂停按钮同步响应的功能,在拖拉进度条滑块时主场景不播放,在进度条上点击时则继续播放,与此同时播放暂停按钮会根据目前视频的状况表现出该有的一面。
import flash.events.MouseEvent;
import fl.motion.MotionEvent;
//progressBar是进度条的名称,slider是滑块的名称
//滑块的状态
var drag:Boolean= false;
//动态获取滑块的x坐标
var sliderX:Number;
//滑块的滑动范围,前面两个参数分别是滑块和进度条重合的x和y坐标,
//后面两个参数是横向偏移量和纵向偏移量
var rect:Rectangle = new Rectangle(0, -27.25,progressBar.width, 0);
//ENTER_FRAME事件,即时更新滑块的位置
addEventListener(Event.ENTER_FRAME,EnterFrameHandler);
function EnterFrameHandler(e:Event):void
{
//自然播放的结果
if (drag == false)
{
//获取主场景中的currentFrame和totalFrames,并算出滑块的x坐标
sliderX = root["currentFm"]/(root["totalFm"]/progressBar.width);
slider.x = sliderX;
}
//认为滑块拖动之后的结果
if (drag == true)
{
MovieClip(root).gotoAndStop(Math.floor((Math.abs(slider.x)+1)*(root["totalFm"]/progressBar.width)));
}
if (slider.x<=0 && drag == true)
{
slider.x = 0;
MovieClip(root).gotoAndStop(1);
}
if (slider.x>=progressBar.width)
{
drag = true;
}
//安上进度条后从最后一帧跳到第一帧,这边1673是我的flash最后一帧的前一帧方便侦听,
//需要的自行更改
if(root["currentFm"]==1673)
MovieClip(root).gotoAndPlay(1);
}
//注册事件侦听
//鼠标左键在滑块上按下
//鼠标左键在滑块上抬起
//鼠标左键在进度条上按下
//鼠标左键在进度条上抬起
slider.addEventListener(MouseEvent.MOUSE_DOWN,slider_DOWN);
slider.addEventListener(MouseEvent.MOUSE_UP,slider_UP);
progressBar.addEventListener(MouseEvent.MOUSE_DOWN,progressBar_DOWN);
progressBar.addEventListener(MouseEvent.MOUSE_UP,progressBar_UP);
//事件侦听函数
function slider_DOWN(evt:MouseEvent):void{
evt.target.startDrag(false,rect); //按住滑块,滑块随鼠标拖动
drag=true;
stage.addEventListener(MouseEvent.MOUSE_UP, slider_UP); //在舞台上添加一个监听器
//防止出现在滑块上按下在其他位置抬起的情况
}
function slider_UP(evt:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_UP, slider_UP); //移除在舞台上抬起左键时的监听器
stopDrag();
drag=false;
MovieClip(root).stop();
MovieClip(root).a_btn.visible=true;
MovieClip(root).b_btn.visible=false;//鼠标左键抬起后主场景继续播放,需要暂停的写stop()
}
function progressBar_DOWN(evt:MouseEvent):void{
drag=true;
slider.x=mouseX;
stage.addEventListener(MouseEvent.MOUSE_UP, progressBar_UP);
}
function progressBar_UP(evt:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_UP, progressBar_UP);
drag=false;
MovieClip(root).play();
MovieClip(root).a_btn.visible=false;//这边就是播放暂停按钮随播放状态的变化而变化的代码
MovieClip(root).b_btn.visible=true;
}
另外在主场景第一帧加入以下代码即构成完整的同步功能
import flash.events.MouseEvent;
stop();
var totalFm:Number=totalFrames;
var currentFm:Number;
addEventListener(Event.ENTER_FRAME,reflash);
function reflash(e:Event):void{
currentFm=currentFrame;
}
- flash AS3.0实现进度条与播放暂停按钮的同步
- flash中如何制作播放和暂停按钮(as3.0)
- as3菜鸟教程if-else语句实现按钮的控制播放和暂停
- flash AS3.0中有关于播放控制进度条控制声音的两种模式
- Flash AS3.0实现音乐播放器
- AS3.0实现音乐的播放,停止,暂停,和音量的控制
- 断点续传 进度条 开 始 暂停 继续的简单按钮实现
- 简单实现Aandroid视频中播放暂停按钮的效果
- FLASH与密码学-常用加密算法的AS3.0实现
- CSS实现播放暂停按钮样式
- flash上制作一个按钮,控制动画播放、暂停
- 安卓学习笔记---实现简易播放器(带有进度条,开始与结束时间,暂停与播放)
- Axure 播放/暂停按钮的切换
- 自创播放暂停按钮
- 背景音乐的暂停与播放
- 如何实现平移动画的暂停与播放?
- 纯 CSS 方式实现 CSS 动画的暂停与播放
- VS2008下VLC播放器,实现播放、暂停、停止、快进、截图、进度条显示、进度条控制功能
- 解决搭建LAMP时编译php :cant' find libmysqlclient_r
- Android曲线图
- 别人的 App 不好用?自己改了便是。嘿嘿嘿 篇
- 别人的 App 不好用?自己改了便是。嘿嘿嘿 篇
- 各种技能树
- flash AS3.0实现进度条与播放暂停按钮的同步
- 别人的 App 不好用?自己改了便是。嘿嘿嘿 篇
- Windows环境下搭建SVN服务器
- Marlin-1.1.3固件Configuration.h文件解析
- 浙江省第八届微型党课大赛圆满落幕
- 51Nod-1467-旋转绳
- 史上最全的架构师图谱
- cmd命令登录mysql
- MVC与单元测试实践之健身网站(六)-计划的添加与重置