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的相对路径加载,卸载的更多相关文章

  1. [Django] html 前端页面jQuery、图片等路径加载问题

    严格的说这个话题应该属于一个html前端路径加载问题.为了实现一个局部更新页面的功能,简单了解了一下Ajax.Ajax是一个为了实现浏览器和服务器异步通信功能的模块.严格来说不是一个新的语言,只是JS ...

  2. Oracle直接路径加载--append的深度解析

    ㈠ 直接路径加载和buffer cache              直接路径插入的数据不经过buffer cache,从PGA直接把数据格式化成Oracle块       然后由普通的Oracle ...

  3. HttpRunner3源码阅读:4. loader项目路径加载,用例文件转换、方法字典生成

    loader.py 这个文件中主要是对yaml,json用例加载转换成用例处理, 预置函数加载成方法字典,路径加载等 可用资料 [importlib]. https://docs.python.org ...

  4. [转][osg]关于PagedLOD 加载卸载机制

    你的PagedLOD 为什么没有卸载 转自:http://bbs.osgchina.org/forum.php?mod=viewthread&tid=7612&highlight=Pa ...

  5. Linux设备驱动程序加载/卸载方法 insmod和modprobe命令

    linux加载/卸载驱动有两种方法. 1.modprobe 注:在使用这个命令加载模块前先使用depmod -a命令生成modules.dep文件,该文件位于/lib/modules/$(uname ...

  6. c#动态加载卸载DLL的方法

    这篇文章介绍了c#动态加载卸载DLL的方法,有需要的朋友可以参考一下 c#中通过反射可以方便的动态加载dll程序集,但是如果你需要对dll进行更新,却发现.net类库没有提供卸载dll程序集的方法.在 ...

  7. 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 ...

  8. 【requireJS路径加载】与程序员小卡的交流

    这两天正好看到了程序员小卡同学的一篇博客,里面对requireJS路径的解析做了一些说明,里面有点问题待解决,我这里正好知道一点,所以整理成文,不知对小卡同学是否有帮助. http://www.cnb ...

  9. Android根据文件路径加载指定文件

    Android根据指定的文件路径加载指定文件格式(图片格式 png, gif,jpg jpeg)的文件相关信息的列表. 如图: 代码: public class Util { /**** * 计算文件 ...

随机推荐

  1. linux自启动tomcat

    第一种方式 1.修改脚本文件rc.local:vim /etc/rc.d/rc.local 这个脚本是使用者自定的开机启动程序,可以在里面添加想在系统启动之后执行的脚本或者脚本执行命令 2.添加如下内 ...

  2. java.io.EOFException ValueOperations.increment()操作后,获取值时有的bug

    ---恢复内容开始--- 今天使用spring-data-redis包操作redis,就是简单的使用redis的计数功能,在redis中的操作命令如:incr key;get key; 这两步操作使用 ...

  3. Java_集合_ArrayLish Comparator比较排序 小笔记

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; class Teacher ...

  4. Golang 之 interface接口全面理解

    什么是interface 在面向对象编程中,可以这么说:“接口定义了对象的行为”, 那么具体的实现行为就取决于对象了. 在Go中,接口是一组方法签名(声明的是一组方法的集合).当一个类型为接口中的所有 ...

  5. Ubuntu 16.04出现:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'

    错误: Reading package lists... Done E: Problem executing scripts APT::Update::Post-Invoke-Success 'if ...

  6. hadoop完全分步式搭建

    实验环境介绍 4台机器,规划如下: 计算机名 IP地址 角色 master 192.168.138.200 NameNode,SecondaryNameNode,ResourceManager sla ...

  7. Excel技巧--巧用分列功能整理日期格式

    遇到这样混乱的日期列表,可以使用“分列”功能来整理: 1.选择该列,点击“数据”-->“分列”功能: 2.在对话框中的第1.2步都不用设置,到第3步选择“日期”格式: 4.完成后,再使用单元格格 ...

  8. Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...

  9. 红米note3发热严重,小米真垃圾!

    红米note3全网通高配版,高通处理器骁龙650(MSM8956),夏天在有空调的房间,上网几分钟手机发烫,真垃圾! ROM已经是官方最新稳定版.MIUI8.5.2.0(LHNCNED) 红米NOTE ...

  10. springMVC配置文件web.xml与spring-servlet.xml与spring-jdbc.xml与logback.xml与redis.properties与pom.xml

    springMVC注解:@Controller @Service @Repository 分别标注于web层,service层,dao层. web.xml <?xml version=" ...