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视频的快进有拖动条的更多相关文章

  1. jwplayer 禁止视频的快进,但是可以后退(已实现)

    一直在研究.net 的视频播放,最近做起了jwplayer,然后项目要求是视频不能快进,但是可以重复观看已经看过的视频资源. 很简单 在标签<script> 中定义两个变量 var max ...

  2. As3.0 视频缓冲、下载总结

    来源:http://www.cuplayer.com/player/PlayerCodeAs/2012/0913404.html 利用NetStream的以下属性: bufferTime — 缓冲区大 ...

  3. 修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题

    原文地址:https://www.cnblogs.com/jying/p/9642445.html,转载请说明出处. 最近项目需要播放视频且限制未观看部分的快进功能,找了两款js插件ckplayer和 ...

  4. MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量

    /* =================================================  * Author:     Micro  * Date:       2016=03-25 ...

  5. 解决 Asp.Net5 在视频文件下载预览时无法快进的问题

    前情提要 https://www.cnblogs.com/puzhiwei/p/15265005.html 在解决.Net5 如何修改Content-Disposition实现在线预览的功能后,我又遇 ...

  6. video字幕无法显示,video视频在google中无法控制快进

    video字幕(track)无法显示: 直接用关闭同源策略的浏览器打开你的HTML文件可以请求到字幕文件并显示字幕: 从hbuilder中打开html文件,在从里面打开google浏览器去浏览HTML ...

  7. “AS3.0高级动画编程”学习:第一章高级碰撞检测

    AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...

  8. 关于jwplayer 处理进度条禁止快进的处理方法。

    今天在处理一个关于jwplayer  第一次播放禁止快进,但是可以后退的一个需求.开始在网上去查一些方法,有几个方法是换皮肤,禁止点击,但是和我的初衷不是很一致,还有一种方式是官网查看了API接口的方 ...

  9. android开发之GestureDetector手势识别(调节音量、亮度、快进和后退)

    写UI布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...

随机推荐

  1. C#并口热敏小票打印机打印位图包括芯片的写入

    下面是打印所需要调用的代码: class LptControl { private string LptStr = "lpt1"; public LptControl(string ...

  2. Python基础3 函数、递归、内置函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...

  3. PHP + Nginx 在 Linux(centos7)系统下的环境搭建

    ( 选用的操作系统为 centos7 ) 01,安装 nginx => 请移步 https://www.cnblogs.com/lovling/p/9197572.html 02,下载 php  ...

  4. div的全屏与退出全屏

    div的全屏与退出全屏 作用:将div全屏与退出全屏,一般播放器使用较多. html按钮: <button onclick="showFull();"> 全屏 < ...

  5. django 使用mysql 数据库

    在 django 创建项目中 默认使用的是  splite3 数据库,不是mysql 数据库,要使用mysql ,要做一些配置: 在 settings.py 中修改如下: DATABASES = { ...

  6. QT,QT SDK, QT Creator 区别

    Qt是一个跨平台的C++图形用户界面应用程序框架.(不仅仅是C++,还包括QML,Qquick,html5)它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt是完全面向对象的,很容易扩 ...

  7. clientdataset.open 报错 Name not unique in this context

    clientdataset.open 报错  Name not unique in this context clientdataset有一些自定义字段,clientdataset绑定了adoquer ...

  8. 机器学习入门-数值特征-对数据进行log变化

    对于一些标签和特征来说,分布不一定符合正态分布,而在实际的运算过程中则需要数据能够符合正态分布 因此我们需要对特征进行log变化,使得数据在一定程度上可以符合正态分布 进行log变化,就是对数据使用n ...

  9. js ajax 数据获取

    在js中应用ajax 获取数据的方法,也写一个出来供复习所用 1.建议一个user.json 文件如下,保存名字为 user.json { "name": "huanyi ...

  10. vue:再vue-cli项目中使用window以及调用window上的方法

    一: 1:在main.js中 Vue.prototype.myfunction = function() {/*你的自定义Vue方法*/} 2:在mounted(或其他生命周期中) 或者 method ...