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. GPUImage中饱和度调整的实现——GPUImageSaturationFilter

    饱和度saturation,是指色彩的鲜艳程度,也称色彩的纯度.饱和度取决于该色中含色成分和消色成分(灰色)的比例.含色成分越大,饱和度越大:消色成分越大,饱和度越小.纯的颜色都是高度饱和的,如鲜红, ...

  2. 高程三 DOM对象

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  3. JavaScript实现图片裁剪预览效果~(第一个小玩具)

    感觉开始学习的前一个月真的太不珍惜慕课网的资源了  上面蛮多小玩意真的蛮适合我这样刚入门JavaScript的同学加深使用理解 大概收藏了百来门或大或小的课程  有一个感觉就是学这个真的比光是看书看概 ...

  4. 重置mysql5.7密码

    其实想要重置 5.7 的密码很简单,就一层窗户纸: 1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不 ...

  5. nginx压缩,缓存

    https://www.darrenfang.com/2015/01/setting-up-http-cache-and-gzip-with-nginx/ https://www.linuxdashe ...

  6. OC copy mutableCopy, 浅拷贝,深拷贝

    copy与mutableCopy都是深拷贝,区别是mutableCopy拷贝出的对象是可变的. OC对象基本都是通过指针访问,所以一般情况下,通过对指针的赋值都是浅拷贝,即只是拷贝了一份对象的指针,对 ...

  7. Mac 命令行,自定义命令

    例如自定义命令 gotoXFolder, 直接进入XFolder文件夹, XFolder地址为~/abc/def/Xfolder 步骤: 1. 在home文件夹下创建.profile文件 在.prof ...

  8. Java IO流学习总结七:Commons IO 2.5-FileUtils

    在上面的几篇文章中,介绍了IO的常规用法,今天介绍 Commons IO 框架的使用. Commons IO简介 Apache Commons IO是Apache基金会创建并维护的Java函数库.它提 ...

  9. 去除文件BOM头工具

    <?php /** * 用法:复制以下代码至新建的php文件中,将该php文件放置项目目录,运行即可.代码来源于网络. * chenwei 注. */ header('content-Type: ...

  10. 24 week 4 安装 docker

    安装docker 出现问题 解决办法https://blog.csdn.net/VOlsenBerg/article/details/70140211 发现链接超时,然后就https://blog.c ...