package com{
import flash.display.MovieClip;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.AsyncErrorEvent;
import flash.events.MouseEvent;
import flash.media.Video;
import flash.display.SimpleButton;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.system.fscommand;
import flash.media.SoundMixer;
import flash.media.SoundTransform;
import flash.display.Stage;
import flash.geom.Rectangle; public class MainLoader extends MovieClip { public static var nc:NetConnection;
public static var ns:NetStream;
public static var vid:Video;
public static var emptyMc:MovieClip;
public static var vidTotalTime:Number;
public static var vidNowTime:Number;
public static var obj:Object =new Object (); public static var videoPath:String;
public static var vidProgressNum:Number; public static var soundTF:SoundTransform; public static var loader:Loader;
public static var urlR:URLRequest;
public static var backBtn:SimpleButton;
public static var timer:Timer=new Timer(25);
public static var thisMc:MovieClip;
public static var stageMc:Stage; //视频====================================================================================================
public function MainLoader(_thisMc:MovieClip ,_stageMc:Stage) {
thisMc=_thisMc;
stageMc=_stageMc;
}
public function vidFun() {
nc= new NetConnection();
nc.connect(null);
ns=new NetStream(nc);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.close();
vid=new Video(1920,1080);
function asyncErrorHandler(event:AsyncErrorEvent ):void {
// 忽略错误
}
//vid.x=167.25;
//vid.y=92.45;
obj.onMetaData=onMetaData;
ns.client=obj;
function onMetaData(data:Object):void {
vidTotalTime=data.duration;
}
vid.attachNetStream(ns);
ns.pause();
vid.smoothing=true;
} //加载==================================================================================================== public static function addMP4(str:String,_emptyMc:MovieClip,num:Number ) {
emptyMc=_emptyMc; var string=stageMc.loaderInfo.url;
var str1:int=string.lastIndexOf("/");
var str2:String=string.slice(0,str1+1);
ns.play(str2+"vid/"+str+".mp4");
emptyMc.addChildAt(vid,num);
if (timer.hasEventListener(TimerEvent.TIMER)==false) {
timer.addEventListener(TimerEvent.TIMER,timerFun);
timer.start();
}
} public static function timerFun(e:TimerEvent) {
vidNowTime=ns.time;
dragMc.x=int(lineMc.width*vidNowTime/vidTotalTime)+lineMc.x;
var i:int=vidNowTime*lineMc.totalFrames/vidTotalTime;
lineMc.gotoAndStop(i);
if (vidTotalTime-vidNowTime<0.05||emptyMc.numChildren==0) {
timer.removeEventListener(TimerEvent.TIMER,timerFun);
ns.pause();
}
} //卸载====================================================================================================
public static function removeMP4() {
if (ns.time!=0) {
ns.close();
emptyMc.removeChild(vid);
timer.removeEventListener(TimerEvent.TIMER,timerFun);
}
} //加载swf====================================================================================================== public static function addSwf(swfStr:String,_emptyMc:MovieClip,num:Number ) {
emptyMc=_emptyMc;
removeMP4();
if (emptyMc.numChildren!=0) {
loader.unloadAndStop();
while (emptyMc.numChildren>0) {
emptyMc.removeChildAt(0);
}
}
if (emptyMc.numChildren==0) { var string=stageMc.loaderInfo.url;
var str1:int=string.lastIndexOf("/");
var str2:String=string.slice(0,str1+1); loader= new Loader();
urlR = new URLRequest(str2+swfStr+".swf");
loader.load(urlR);
emptyMc.addChildAt(loader,num); //var loaderContent=loader.content;
//trace(loaderContent.totalFrames)
//loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoader);
} } /* public static function onLoader(e:Event) {
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,onLoader);
emptyMc.addChildAt(loader,0);
}*/
public static function removeSwf() {
if (emptyMc.numChildren!=0) {
loader.unloadAndStop();
while (emptyMc.numChildren>0) {
emptyMc.removeChildAt(0);
}
}
} //清空emptyMc
public static function clearEmpty() {
if (ns.time!=0) {
ns.close();
emptyMc.removeChild(vid);
}
if (emptyMc.numChildren!=0) {
loader.unloadAndStop();
while (emptyMc.numChildren>0) {
emptyMc.removeChildAt(0);
}
}
} public static var lineMcWidth:Number;
public static var lineMcX:Number;
public static var mcN:uint;
public static var bounds:Rectangle; public static var dragMc:MovieClip;
public static var lineMc:MovieClip;
public static function FlvFun(_dragMc:MovieClip ,_lineMc:MovieClip ,_stageMc:Stage ) { dragMc=_dragMc;
lineMc=_lineMc;
stageMc=_stageMc;
lineMc.stop();
dragMc.x=lineMc.x;
dragMc.y=lineMc.y;
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); }
public static 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") {
dragMc.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=lineMc.totalFrames*(dragMc.x-lineMc.x)/lineMc.width;
lineMc.gotoAndStop(i);
}
} //================togglePause
public static var togglePause:MovieClip;
public static function togglePauseFun(_togglePause:MovieClip) {
togglePause=_togglePause;
togglePause.stop();
togglePause.addEventListener(MouseEvent.CLICK,ontogglePause);
}
public static function ontogglePause(e:MouseEvent) {
if (togglePause.currentFrame==1) {
togglePause.gotoAndStop(2);
} else {
togglePause.gotoAndStop(1);
}
ns.togglePause();
} //声音=========================
public static var voiceMc:MovieClip;
public static var rec:Rectangle;
public static function voiceFun(_voiceMc:MovieClip) {
voiceMc=_voiceMc;
voiceMc.stop();
voiceMc.addEventListener(MouseEvent.MOUSE_UP ,onVoice);
}
public static function onVoice(e:MouseEvent ) {
if (voiceMc.currentFrame==1) {
voiceMc.nextFrame();
soundTF=ns.soundTransform;//控制的目标
soundTF.volume=0;//设置目标的声音为0
ns.soundTransform=soundTF;
} else {
voiceMc.prevFrame();
soundTF=ns.soundTransform;//控制的目标
soundTF.volume=1;//设置目标的声音为0
ns.soundTransform=soundTF;
} } }
}
视频和swf的相对路径加载,卸载的更多相关文章
-
[Django] html 前端页面jQuery、图片等路径加载问题
严格的说这个话题应该属于一个html前端路径加载问题.为了实现一个局部更新页面的功能,简单了解了一下Ajax.Ajax是一个为了实现浏览器和服务器异步通信功能的模块.严格来说不是一个新的语言,只是JS ...
-
Oracle直接路径加载--append的深度解析
㈠ 直接路径加载和buffer cache 直接路径插入的数据不经过buffer cache,从PGA直接把数据格式化成Oracle块 然后由普通的Oracle ...
-
HttpRunner3源码阅读:4. loader项目路径加载,用例文件转换、方法字典生成
loader.py 这个文件中主要是对yaml,json用例加载转换成用例处理, 预置函数加载成方法字典,路径加载等 可用资料 [importlib]. https://docs.python.org ...
-
[转][osg]关于PagedLOD 加载卸载机制
你的PagedLOD 为什么没有卸载 转自:http://bbs.osgchina.org/forum.php?mod=viewthread&tid=7612&highlight=Pa ...
-
Linux设备驱动程序加载/卸载方法 insmod和modprobe命令
linux加载/卸载驱动有两种方法. 1.modprobe 注:在使用这个命令加载模块前先使用depmod -a命令生成modules.dep文件,该文件位于/lib/modules/$(uname ...
-
c#动态加载卸载DLL的方法
这篇文章介绍了c#动态加载卸载DLL的方法,有需要的朋友可以参考一下 c#中通过反射可以方便的动态加载dll程序集,但是如果你需要对dll进行更新,却发现.net类库没有提供卸载dll程序集的方法.在 ...
-
2018-2-13-C#-动态加载卸载-DLL
title author date CreateTime categories C# 动态加载卸载 DLL lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:2 ...
-
【requireJS路径加载】与程序员小卡的交流
这两天正好看到了程序员小卡同学的一篇博客,里面对requireJS路径的解析做了一些说明,里面有点问题待解决,我这里正好知道一点,所以整理成文,不知对小卡同学是否有帮助. http://www.cnb ...
-
Android根据文件路径加载指定文件
Android根据指定的文件路径加载指定文件格式(图片格式 png, gif,jpg jpeg)的文件相关信息的列表. 如图: 代码: public class Util { /**** * 计算文件 ...
随机推荐
-
关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误
用Cmake讲Qt.VTK和ITK整合后,打开解决方案后添加新类时运行会出现“n个无法解析的外部命令”的错误. 原因是新建的类未能生成moc文件,解决办法是: 1.右键 要生成moc文件的.h文件,打 ...
-
【 D3.js 入门系列 --- 7 】 理解 update, enter, exit 的使用
在前面几节中反复出现了如下代码: svg.selectAll("rect") .data(dataset) .enter() .append("rect") 当 ...
-
Android与PHP服务器交互
转自:http://blog.csdn.net/ab_ba/article/details/7912424 服务器端:server.php 1 <?php 2 include(' ...
-
linux学习过程中所需要看的一些书籍
入门类 一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用.鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这 ...
-
2.跑nodejs文件
1.安装nodejs的环境,这里不介绍了. app.js 'use strict'; //process.argv 接受变量 var command = process.argv[2]; var a ...
-
2733:判断闰年-poj
2733:判断闰年 总时间限制: 1000ms 内存限制: 65536kB 描述 判断某年是否是闰年. 输入 输入只有一行,包含一个整数a(0 < a < 3000) 输出 一行,如果 ...
-
db2 应用的最常见状态(转)
db2 的应用最常见的状态为UOW Executing, UOW Waiting, Connect Completed等,这里做一个简单的介绍. UOW全称是Unit Of Work, 可以认为是事 ...
-
每天进步一点点- 资源与URI(吐血精华总结)
1.资源(Resources) 每一个URI代表一种资源这句话的理解 ***************************************************************** ...
-
Linux用7zip解压缩分卷文件
背景:在服务器迁移过程中,有大量非结构化文件(主要是office文档和图片),目录结构太大,高达80-100G,传输耗时且容易受网络 等其他原因意外中断,以致于传输失败,于是采用分卷压缩,即使传输失败 ...
-
mysql配置文件my.ini优化详解
mysql 5.5.13参数说明:[client]character-set-server = utf8port = 3306socket = /data/mysql/3306/mysql.sock[ ...