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. angular.js前端分层开发(页面和js代码分离,并将js代码分层)

    一. 抽取模块成base.js文件// 定义模块: var app = angular.module("eshop",['pagination']); 二. 抽取服务成brandS ...

  2. Jmeter性能测试基础

    压力测试   压力测试分两种场景:一种是单场景,压一个接口的:第二种是混合场景,多个有关联的接口.压测时间,一般场景都运行10-15分钟.如果是疲劳测试,可以压一天或一周,根据实际情况来定. 压测任务 ...

  3. java接口的学习笔记

    1接口 接口是一个特殊的类,在JAVA中,接口是由抽象方法和全局敞亮组成. 在JAVA忠使用INTERFACE定义接口. public class InterfaceDemo { public sta ...

  4. idea 一款神一样的编辑器 IDEA,破解方式

    功能1,可以开发后端如 JAVA, PHP, PYTHON ,NODE 功能2,可以开发前端如 HTML +  CSS + JS 破解方式 1,编辑C:\Windows\System32\driver ...

  5. asp:Repeater控件使用

    Repeater控件和DataList控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行. Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式.D ...

  6. leetcode149

    /* * A line is determined by two factors,say y=ax+b * * If two points(x1,y1) (x2,y2) are on the same ...

  7. leetcode997

    class Solution: def findJudge(self, N: int, trust: 'List[List[int]]') -> int: if N==1 and len(tru ...

  8. php实现SSO单点登录实例

    1.点击登录跳转到SSO登录页面并带上当前应用的callback地址2.登录成功后生成COOKIE并将COOKIE传给callback地址3.callback地址接收SSO的COOKIE并设置在当前域 ...

  9. oracle 内连接(inner join)、外连接(outer join)、全连接(full join)

    转自:https://premier9527.iteye.com/blog/1659689 建表语句: create table EMPLOYEE(EID NUMBER,DEPTID NUMBER,E ...

  10. Mac安装Python3报错Permission denied @ dir_s_mkdir - /usr/local/Frameworks

    brew安装Python3时出现的问题: Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks /usr/local/Frame ...