as3.0视频的快进有拖动条
package com{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import fl.video.FLVPlayback;
import fl.video.MetadataEvent;
import flash.events.AsyncErrorEvent;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;
import flash.utils.Timer;
import flash.events.TimerEvent;
import fl.video.VideoPlayer;
import flash.media.SoundTransform;
import flash.display.SimpleButton;
import flash.geom.Rectangle;
public class MyFlv extends MovieClip {
private var dragMc:MovieClip;
private var lineMc:MovieClip;
private var backBtn:SimpleButton;
private var stageMc:Object;
private var emptyMc:MovieClip;
private var progressMc:MovieClip;
private var bounds:Rectangle;
private var lineMcWidth:Number;
private var lineMcX:Number;
private var mcN:uint;
//private var mm:MyMusic=new MyMusic();
public function MyFlv(_emptyMc:MovieClip) {
emptyMc=_emptyMc;
//MyMusic.initialSound("看一看");
}
public function FlvFun(_dragMc:MovieClip ,_lineMc:MovieClip ,_stageMc:Object ,_progressMc:MovieClip ){
progressMc=_progressMc;
dragMc=_dragMc;
lineMc=_lineMc;
stageMc=_stageMc;
lineMcX=lineMc.x;
bounds=new Rectangle(lineMc.x,lineMc.y,lineMc.width,0);
dragMc.buttonMode=true;
dragMc.addEventListener(MouseEvent.MOUSE_DOWN,dragFun);
dragMc.addEventListener(MouseEvent.MOUSE_UP,dragFun);
stageMc.addEventListener(MouseEvent.MOUSE_UP,dragFun);
}
private function dragFun(e:MouseEvent):void {
if (e.type=="mouseDown") {
e.target.startDrag(false,bounds);
dragMc.addEventListener(MouseEvent.MOUSE_MOVE,dragFun);
timer.stop();
} else if (e.type=="mouseUp") {
stopDrag();
timer.start();
dragMc.removeEventListener(MouseEvent.MOUSE_MOVE,dragFun);
} else if (e.type=="mouseMove") {
vidProgressNum=vidTotalTime*(dragMc.x-lineMc.x)/lineMc.width ;
ns.seek(vidProgressNum);
var i:int=progressMc.totalFrames*(dragMc.x-lineMc.x)/lineMc.width;
progressMc.gotoAndStop(i);
}
}
//video=====================================================
private var videoPath:String;
private var vid:VideoPlayer;
private var timer:Timer=new Timer(25);
private var vidNowTime:Number;
private var vidTotalTime:Number;
private var vidProgressNum:Number;
private var nc:NetConnection;
public var ns:NetStream;
private var soundTF:SoundTransform;
private var obj:Object =new Object ();
public function VideoFun() {
vid=new VideoPlayer(1435.55,808.4);
vid.x=241
vid.y=205.4
vid.smoothing=true;
nc= new NetConnection();
nc.connect(null);
ns=new NetStream(nc);
ns.play("sdfsd.mp4");
vidTotalTime=vid.totalTime;
vid.attachNetStream(ns);
//ns.pause();
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
function asyncErrorHandler(event:AsyncErrorEvent):void {
// 忽略错误
}
obj.onMetaData=onMetaData;
ns.client=obj;
function onMetaData(data:Object):void {
vidTotalTime=data.duration;
}
emptyMc.addChild(vid);
timer.addEventListener(TimerEvent.TIMER,tiemrFun);
//timer.start();
//声音=========================
//soundTF=ns.soundTransform;//控制的目标
//soundTF.volume=0;//设置目标的声音为0
//ns.soundTransform=soundTF;
}
private function tiemrFun(e:TimerEvent) {
vidNowTime=ns.time;
dragMc.x = (lineMc.width) * vidNowTime / vidTotalTime + (lineMc.x);
var i:int=progressMc.totalFrames*(dragMc.x-lineMc.x)/lineMc.width;
progressMc.gotoAndStop(i);
}
//================togglePause
private var togglePause:SimpleButton;
public function togglePauseFun(_togglePause:SimpleButton) {
togglePause=_togglePause;
togglePause.alpha=1;
togglePause.addEventListener(MouseEvent.CLICK,ontogglePause);
}
private function ontogglePause(e:MouseEvent) {
//MyMusic.pauseFuntion()
//MyMusic.isSoundPlay=false
if (togglePause.alpha==0) {
togglePause.alpha=1;
} else {
togglePause.alpha=0;
}
ns.togglePause();
}
//===============up.down
private var nextBtn:SimpleButton;
private var prevBtn:SimpleButton;
public function nextOrPrev(_nextBtn:SimpleButton,_prevBtn:SimpleButton) {
prevBtn=_prevBtn;
nextBtn=_nextBtn;
nextBtn.addEventListener(MouseEvent.CLICK,onBtn);
prevBtn.addEventListener(MouseEvent.CLICK,onBtn);
}
private function onBtn(e:MouseEvent) {
if (e.target.name=="nextBtn") {
ns.seek(vidNowTime+=5);
} else {
ns.seek(vidNowTime-=5);
}
}
public function backFun(_backBtn:SimpleButton ) {
backBtn=_backBtn;
backBtn.addEventListener(MouseEvent.CLICK ,backBtnFun);
}
public function backBtnFun(e:MouseEvent ) {
timer.removeEventListener(TimerEvent.TIMER,tiemrFun);
dragMc.removeEventListener(MouseEvent.MOUSE_MOVE,dragFun);
dragMc.removeEventListener(MouseEvent.MOUSE_DOWN,dragFun);
dragMc.removeEventListener(MouseEvent.MOUSE_UP,dragFun);
stageMc.removeEventListener(MouseEvent.MOUSE_UP,dragFun);
emptyMc.removeChild(vid);
}
}
}//ns.close();
as3.0视频的快进有拖动条的更多相关文章
- jwplayer 禁止视频的快进,但是可以后退(已实现)
一直在研究.net 的视频播放,最近做起了jwplayer,然后项目要求是视频不能快进,但是可以重复观看已经看过的视频资源. 很简单 在标签<script> 中定义两个变量 var max ...
- As3.0 视频缓冲、下载总结
来源:http://www.cuplayer.com/player/PlayerCodeAs/2012/0913404.html 利用NetStream的以下属性: bufferTime — 缓冲区大 ...
- 修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题
原文地址:https://www.cnblogs.com/jying/p/9642445.html,转载请说明出处. 最近项目需要播放视频且限制未观看部分的快进功能,找了两款js插件ckplayer和 ...
- MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量
/* ================================================= * Author: Micro * Date: 2016=03-25 ...
- 解决 Asp.Net5 在视频文件下载预览时无法快进的问题
前情提要 https://www.cnblogs.com/puzhiwei/p/15265005.html 在解决.Net5 如何修改Content-Disposition实现在线预览的功能后,我又遇 ...
- video字幕无法显示,video视频在google中无法控制快进
video字幕(track)无法显示: 直接用关闭同源策略的浏览器打开你的HTML文件可以请求到字幕文件并显示字幕: 从hbuilder中打开html文件,在从里面打开google浏览器去浏览HTML ...
- “AS3.0高级动画编程”学习:第一章高级碰撞检测
AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...
- 关于jwplayer 处理进度条禁止快进的处理方法。
今天在处理一个关于jwplayer 第一次播放禁止快进,但是可以后退的一个需求.开始在网上去查一些方法,有几个方法是换皮肤,禁止点击,但是和我的初衷不是很一致,还有一种方式是官网查看了API接口的方 ...
- android开发之GestureDetector手势识别(调节音量、亮度、快进和后退)
写UI布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...
随机推荐
- c#序列化Json和反序列化
1.首先确保程序集中添加了 System.Web.Extensions DLL引用 2.代码中添加命名空间:using System.Web.Script.Serialization; nam ...
- MySQL PID错误,Mysql server PID file could not be found!
https://blog.csdn.net/u010098331/article/details/50752667/
- windows系统安装
系统最新地址:https://www.microsoft.com/zh-cn/software-download/windows10
- Java并发:线程间数据传递和交换
转自:https://www.cnblogs.com/java-zzl/p/9741288.html 一.通过SynchronousQueue方式实现线程间数据传递: 线程A与线程B共同持有一个Syn ...
- 【技术文档】jeecg3.7.3-maven搭建环境入门
JEECG 微云快速开发平台(3.7.3)Eclipse-Maven版本手把手入门手册 官方标准开发工具:1. IDE Eclipse Java EE IDE for Web Devel ...
- css:调整placeholder样式
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #C5CACF; } input:-moz ...
- java-部分精选面试题
JVM的类加载机制是什么?有哪些实现方式? 类加载机制: 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法去内,然后在堆区创建一个java.lang.Clas ...
- Web安全颜色
Web安全色产生的原因 不同的平台(Mac.PC等)有不同的调色板,不同的浏览器也有自己的调色板.这就意味着对于一幅图,显示在Mac上的Web浏览器中的图像,与它在PC上相同浏览器中显示的效果可能差别 ...
- 吴裕雄 08-MySQL创建数据表
MySQL 创建数据表创建MySQL数据表需要以下信息:表名表字段名定义每个表字段 语法以下为创建MySQL数据表的SQL通用语法:CREATE TABLE table_name (column_na ...
- 吴裕雄 python神经网络 水果图片识别(5)
#-*- coding:utf-8 -*-### required libaraiedimport osimport matplotlib.image as imgimport matplotlib. ...