·英王子或因情色丑闻面临调查 不享刑事豁免权·京东发声明辟谣刘强东奶茶“3000万分手费”传闻
发新帖  新投票  回帖 
2114个阅读者,30条回复 | 打印 | 订阅 | 收藏
wu341

发表时间:2016-9-23 18:48

裸视频(练习)[分享]   



wu341 发表在 动漫学坊 华声论坛 http://bbs.voc.com.cn/forum-325-1.html


跟枳老思路学做一个裸视频




[全屏欣赏]




[全屏欣赏]


原文件下载:(目标另存为下载,下载后把后缀改为rar)

方便阅读,代码全在第一帧

http://image.hnol.net/c/swf/2016-09/23/19/201609231954044551-2768212.swf


http://www.lxeblog.cn/UploadFiles/2016-9/231941166670.swf?url=http://www.lxeblog.cn/UploadFiles/2016-9/231839268527.swf&.swf

http://www.lxeblog.cn/UploadFiles/2016-9/231839268527.swf其实是一个外挂 xml 文件,因为空间不支持xml类型文件上传,所以改了后缀上传的





[本帖最后由 wu341 于 2016-9-23 20:34 编辑]

 
wu341

回复时间:2016-9-23 18:51
配置文件:(special url 条目随便加)

保存为:xxx.xml

<?xml version="1.0" encoding="UTF-8" ?>
<data>


<stageWH w="640" h="360"/>

<menu txt="欢迎欣赏!"/>

<video videoPath="http://www.lxeblog.cn/UploadFiles/2016-9/142334578533.swf" isVolume="0"/>

<videoWH w="600" h="390"/>

<videoXY x="30" y="10"/>

<videoRotation rotation="0" />

<mp3 mp3Path="http://www.lxeblog.cn/UploadFiles/2016-9/121239432525.mp3" open="1"/>



<special url="http://webftp.bbs.hnol.net/dysr/201601/02S.swf" x="100" y="100" alpha="0.8" scal="0.7" rotation="0"/>

<special url="http://webftp.bbs.hnol.net/dysr/201601/03S.swf" x="300" y="0" alpha="0.5" scal="0.8" rotation="45"/>

<special url="http://webftp.bbs.hnol.net/dysr/201601/06S.swf" x="500" y="170" alpha="0.9" scal="0.8" rotation="180"/>

<special url="http://www.lxeblog.cn/UploadFiles/2016-9/231820405512.png" x="0" y="0" alpha="1" scal="1" rotation="0"/>




</data>

[本帖最后由 wu341 于 2016-9-23 19:12 编辑]

 
AMOS很费解

回复时间:2016-9-23 18:58
感谢分享, 支持赞赞赞!

 
向往2014

回复时间:2016-9-23 19:18
好听的歌曲 精美的画面 很漂亮 看上去播放板块是另外一种 不知道说的对不对 谢谢精彩分享

补充 刚刚看的时候 代码字样没有显示 原来是另外一种代码编辑方式制作喔 慢慢学习 辛苦了

[本帖最后由 向往2014 于 2016-9-23 19:47 编辑]




----------------------------------------------
学习好比骑单车 不进则倒

-----自勉
 
liangpin123

回复时间:2016-9-23 19:33
wu341老师:3.0好手法,把所有加载的数据都放在xml文件里!包括 X Y轴 缩放 旋转 亮度 赞一个!原文件太“轻薄”。

[本帖最后由 liangpin123 于 2016-9-23 19:36 编辑]




----------------------------------------------
☆☆谛听一阵紧似一阵灵魂的呼唤☆☆
◈◈还在等什么!!!◈◈
 
wu341

回复时间:2016-9-23 19:46

原帖由 liangpin123 于 2016-9-23 19:33 发表
wu341老师:3.0好手法,把所有加载的数据都放在xml文件里!包括 X Y轴 缩放 旋转 亮度 赞一个!原文件太“轻薄”。

[本帖最后由 liangpin123 于 2016-9-23 19:36 编辑]


原文件轻主要是因为没控制元件(图形),全代码~

问好!

 
wu341

回复时间:2016-9-23 19:48

原帖由 向往2014 于 2016-9-23 19:18 发表
好听的歌曲 精美的画面 很漂亮 看上去播放板块是另外一种 不知道说的对不对 谢谢精彩分享


向往版好!

道理和枳老的基本一样,我就把所有外挂参数打了包传入FLA内

 
枳橘吟

回复时间:2016-9-23 21:13
  问好 wu341君。
  “酒逢知己”,我就开饮了。

  最初,是网友的需求,配合做大图帖内嵌视频,做了“裸视频”。看过“彩云归”发的不少“便民”制作,于是折腾开了,弄成了现在的模样。
  另一个原因,大图帖中的gif图片(视频窗口),遮挡了视频对象,无法控制视频(此功能是自己出题自己做,也可不必)。也可将gif分割成四块(这样原“窗口”区就没有内容了),可解决控制,但又要麻烦“用户”,不见得乐意。

  弄出这类东东,本意是想如何方便、简单、不动软件、不上传(基本可以)、为所欲为,“不劳而获”出成果。彩云归还制作了“可视化”的制作界面,提供填表、点菜的制作过程,更甚一筹,更“雷锋”。
  即便这样,对于不玩脚本、没接触过编程的,恐怕还是不“简单”、不“方便”。
  就我的制作,弄一个最简单的,一张图片、一个音乐、一款透明swf,这应该简单吧。但如果是竖幅图片,1000×1500,需要按640×360的“基准”计算一下,恐怕还是“服务态度”不好。我发了几款移植“大图帖”的尝试,你是大虾,试试看,会不会挠头。
  如果仅是发个视频、选个框(内置),这应该不会为难人,因为视频的数据是直接的,不需要按比例计算,基准本就是16:9。但“图片”性质的外加载对象(图片、swf)是按比例值调整大小的,况且“自定义”制作所选对象的长宽尺寸不知会是什么情况。我在想,即算写几个典型的实例计算,恐怕不见得能讲明白。
  “几分耕耘几分收获”。又想简单、方便,又要兼顾多种多样的情况,难。

  你的制作、发帖总是有条有理,清清彻彻。我的可就有点乱。过后细细品味。
  你换了“信息”文件方式,外挂内容少多了。我的如果内容多,代码就成了一篇“文章”,吓人,昏头,花眼。
  xml是F中的一大块,不玩脚本的恐怕又是难题。
  比较一下你我的制作,最突出的地方,你的更改必须上传,我的可立竿见影。

  暂此。讨论交流为要,别无其他。
  握手。


[本帖最后由 枳橘吟 于 2016-9-23 22:01 编辑]

 
wu341

回复时间:2016-9-24 02:57

原帖由 枳橘吟 于 2016-9-23 21:13 发表
  问好 wu341君。
  “酒逢知己”,我就开饮了。

  最初,是网友的需求,配合做大图帖内嵌视频,做了“裸视频”。看过“彩云归”发的不少“便民”制作,于是折腾开了,弄成了现在的模样。
  另一个原因,大图帖中的gif图片(视频窗口),遮挡了视频对象,无法控制视频(此功能是自己出题自己做,也可不必)。也可将gif分割成四块(这样原“窗口”区就没有内容了),可解决控制,但又要麻烦“用户”,不见得乐意。

  弄出这类东东,本意是想如何方便、简单、不动软件、不上传(基本可以)、为所欲为,“不劳而获”出成果。彩云归还制作了“可视化”的制作界面,提供填表、点菜的制作过程,更甚一筹,更“雷锋”。
  即便这样,对于不玩脚本、没接触过编程的,恐怕还是不“简单”、不“方便”。
  就我的制作,弄一个最简单的,一张图片、一个音乐、一款透明swf,这应该简单吧。但如果是竖幅图片,1000×1500,需要按640×360的“基准”计算一下,恐怕还是“服务态度”不好。我发了几款移植“大图帖”的尝试,你是大虾,试试看,会不会挠头。
  如果仅是发个视频、选个框(内置),这应该不会为难人,因为视频的数据是直接的,不需要按比例计算,基准本就是16:9。但“图片”性质的外加载对象(图片、swf)是按比例值调整大小的,况且“自定义”制作所选对象的长宽尺寸不知会是什么情况。我在想,即算写几个典型的实例计算,恐怕不见得能讲明白。
  “几分耕耘几分收获”。又想简单、方便,又要兼顾多种多样的情况,难。

  你的制作、发帖总是有条有理,清清彻彻。我的可就有点乱。过后细细品味。
  你换了“信息”文件方式,外挂内容少多了。我的如果内容多,代码就成了一篇“文章”,吓人,昏头,花眼。
  xml是F中的一大块,不玩脚本的恐怕又是难题。
  比较一下你我的制作,最突出的地方,你的更改必须上传,我的可立竿见影。

  暂此。讨论交流为要,别无其他。
  握手。


[本帖最后由 枳橘吟 于 2016-9-23 22:01 编辑]


问候枳老!

我这制作基本是以你思路制作的。

首先规定帖子显示的宽高度,这样的目的让欣赏者看不见 “不该看的内容”(场景外的东西),我在每个对象上加了mask。

可以不动用软件在本地浏览效果:
if (stage.loaderInfo.parameters["url"])
{
/*如果有外挂配置参数*/
url = stage.loaderInfo.parameters["url"];
}
else
{
/*如果没有外挂配置参数就可以本地浏览了*/
url = "configure.xml";
}
这2个东西其实就是一个内容,一个在网上,一个在本地方便在电脑上浏览。本地浏览时读取的是configure.xml信息,发帖后才读取参数url(也就是传到网上的configure.xml),因在本地是不能读取外挂参数。

弄这个configure.xml的目的就是为了方便编辑,发帖时就用一个外挂参数。

播放器不用上传,每次发帖就多传一个修改好的configure.xml文件作为外挂参数。

说到做大图,只用F软件很难达到精准(个见)

做一个帖子发布,基本代码还是要懂一点才行(不管是HTML还是其它软件)

我这效果F文件也是匆忙之作,修改的地方还很多,configure.xml文件(包)里还可以增加很多简单东西用F读出来。

问好枳老!

 
wu341

回复时间:2016-9-24 03:00

修改了外挂参数url=http://www.lxeblog.cn/UploadFiles/2016-9/24344999447.swf关闭了所有声音

播放器http://www.lxeblog.cn/UploadFiles/2016-9/231941166670.swf没变



[全屏欣赏]


在本地修改好configure.xml内容,可以在本地打开bareVideo.html浏览效果。满意后把这个configure.xml上传后作为参数发布帖子



[本帖最后由 wu341 于 2016-9-24 03:45 编辑]

 
枳橘吟

回复时间:2016-9-24 03:31
  wu341君 这东东还是两用的信息方式,比我的更高级哦。F9制作。
  没了解透,乱发言了。

  有兴趣的话,看看“彩云归”的制作,花样不少。提供方便这一点可是下了大力气的。
  基本了解他的制作习惯,弄的有些复杂,判断语句特别多。

  原貌移植大图还是可以的,只是要有点数学细胞。这不过是玩玩自己的制作,做做测试,消遣消遣。这几天鼓捣这东东,顺带也多弄明白了一些东西。
  用这东东发点小制作,三五个对象,不用上传,还是蛮爽的。比如好的视频,几分钟(单文件、时间长点也可以),选个框;或者特别好听的曲,加张背景图发一个也不错。简单。
  用这东东发大图帖,还有一个作用:不能发代码的地方。

  总的讲,这只是个小玩意,自己用相当方便。有喜欢的坛友,也可就现。

  你也没睡啊?
  问好。


[本帖最后由 枳橘吟 于 2016-9-24 14:58 编辑]

 
wu341

回复时间:2016-9-24 03:32
刚发现F里代码 有个问题,视频的旋转代码写错了位置,应该是在视频缩放后在旋转
先删掉video.rotation = xml.videoRotation. @ rotation这句代码


/*视频对象的X、Y坐标*/
value.x = xml.videoXY. @ x
value.y = xml.videoXY. @ y

这句下面加上

video.rotation = xml.videoRotation. @ rotation


原文件从新打包下载:下载后修改后缀为rar解压
http://image.hnol.net/c/swf/2016-09/24/03/201609240351093911-2768212.swf

[本帖最后由 wu341 于 2016-9-24 03:52 编辑]

 
枳橘吟

回复时间:2016-9-24 04:26

原帖由 wu341 于 2016-9-24 03:32 发表
刚发现F里代码 有个问题,视频的旋转代码写错了位置,应该是在视频缩放后在旋转
先删掉video.rotation = xml.videoRotation. @ rotation这句代码


/*视频对象的X、Y坐标*/
value.x = xml.videoXY. @ x
value.y = xml.videoXY. @ y

这句下面加上

video.rotation = xml.videoRotation. @ rotation


原文件从新打包下载:下载后修改后缀为rar解压
http://image.hnol.net/c/swf/2016-09/24/03/201609240351093911-2768212.swf

[本帖最后由 wu341 于 2016-9-24 03:52 编辑]

  精亦求精,为事的态度。

 
勤恳女神

回复时间:2016-9-24 04:37
裸视频(练习,不太懂,但能看到效果很美。欣赏了,谢谢精彩分享

 
@芙蓉阁主

回复时间:2016-9-24 13:52
欣赏wu341的祼视频练习。欣赏学坊交流讨论的学习氛围。问好!




----------------------------------------------
心中那自由的世界,如此的清澈高远,盛开着永不凋零蓝莲花!

** 莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。**

喜欢交流学习的朋友可加 华声F帝国群 QQ:252561900
 
涓涓流水3

回复时间:2016-9-24 21:16
欣赏wu341的祼视频练习,谢谢分享!问好。祝福周末快乐!

 
梦蝶88

回复时间:2016-9-25 13:34
欣赏朋友的精彩分享,问候!周末愉快!




----------------------------------------------
强动的自我!与您一路同行!

喜欢交流学习的朋友可加 华声F帝国群 QQ:252561900
 
枳橘吟

回复时间:2016-9-26 04:36
  吵扰 wu341君:
  1、没明白你的制作,若采用外挂参数的方式,参数项是怎么表示的;从信息文件中看不出来,所以吵扰;
    【xml中,一个节点一个对象,其属性参数跟在后面,可分对象读取;两个对象的相同属性可以同名;
     这在外挂中行不通,各项参数不能同名。
     好象还可这样表示一个对象:pic1=url|宽比|高比|X|Y|R ,这样,一项参数表示一个对象及其属性。(过后试试)【经测试可行,形如:&pic16=http://ftp6.oolove.com/ydmb/h/h01-.jpg|*|45.714|*|4.5|*|0|*|0|*|0&
     如果这样表示,恐怕更加为难广大群众了。】
    
  2、发布的大小是不是不能改变,要改就得动xml(外挂参数可以控制吗?)。
    如果是这样,针对性太强(欠随意)。“自助餐”有点不能尽兴。

  问好。


[本帖最后由 枳橘吟 于 2016-9-26 07:26 编辑]

 
wu341

回复时间:2016-9-26 06:00

原帖由 枳橘吟 于 2016-9-26 04:36 发表
  吵扰 wu341君:
  1、没明白你的制作,若采用外挂参数的方式,参数项是怎么表示的;从信息文件中看不出来,所以吵扰;
    【xml中,一个节点一个对象,其属性参数跟在后面,可分对象读取;两个对象的相同属性可以同名;
     这在外挂中行不通,各项参数不能同名。
     好象还可这样表示一个对象:pic1=url|宽比|高比|X|Y|R ,这样,一项参数表示一个对象及其属性。(过后试试)
     如果这样表示,恐怕更加为难广大群众了。】
    
  2、发布的大小是不是不能改变,要改就得动xml(外挂参数可以控制吗?)。
    如果是这样,针对性太强(欠随意)。“自助餐”有点不能尽兴。

  问好。


枳老好!
我这制作其实就是一个外置信息的播放器,以前通用的方法都是直接在F里加载这个XML文件,现在是通过外挂参数的形势把这个XML文件加载进F里进行读取。我的外挂参数就是这个XML文件。
这样做的目的就是为了在发布帖子的时候发布地址简单,就一个播放器地址加一个外挂参数,格式:player.swf?url=xxx.xml&.swf 我发布的时候player.swf?url=xxx.swf&.swf是因为空间不支持上传xml文件,所以改了后缀名xml-swf上传的。
其实整个制作就是把信息文件用外挂参数的形式加载进 F 里。前面我也说到,在F里首先加了判断,本地打开播放器的时候读取的是本地的XML文件信息,如果发布帖子后,读取的就是外挂的XML信息,这2个XML的内容是一样的。

if (stage.loaderInfo.parameters["url"])
{
/*如果播放器有外挂配置参数(播放发布后),就读取外挂参数*/
url = stage.loaderInfo.parameters["url"];
}else{
/*如果没有外挂配置参数(播放器还在本地),就可以本地浏览效果了*/
url = "configure.xml";
}。

回复第2点:

发布的时候,播放器地址不变,变就是后面跟的参数,先在本地修改好xml文件,xml里包括了播放器要修改的所有内容。然后可以在本地浏览效果,满意了再把这个xml文件传到网盘空间,把这xml连接地址作为播放器的外挂参数。 播放器发布后就依靠这个运行。

和你的制作相比,其实就是把所有外挂参数打包进xml里,然后在播放器里读取这些内容。所以每次发布帖子的时候都要修改xml内容,好比用你的方法发布帖子修改外挂参数一样。 相比你的制作就多了一道手足,要上传一次xml文件。

“发布的大小是不是不能改变,要改就得动xml(外挂参数可以控制吗?)”副部大小随意,我在信息文件里有一个发布大小设置,这样做的目的就是为了对所有对象使用mask,没其它用途。


说得罗嗦,也不知道枳老是否能看明白。 如果不尽明白,请对照FLA原文件(有简单注释)
望再交流!

问好!

 
wu341

回复时间:2016-9-26 06:21
整个 播放器的所有内容(F里无任何元件)

/****
* 匆忙习作,可能存在BUG,见者多提宝贵意见
* @ 疯子
****/

/*禁止缩放*/
stage.scaleMode = StageScaleMode.NO_SCALE;

/*左上对齐*/
stage.align = StageAlign.TOP_LEFT;

/*屏蔽鼠标右键选项*/
var menu:ContextMenu = new ContextMenu();
menu.hideBuiltInItems();
this.contextMenu = menu;

var url:String;//配置文件地址
var xml:XML;
var viodUrl:String;//视频地址
var mp3Url:String;//MP3地址
var isVolume:Number;//视频音量
var isMp3:Number;//判断是否外载MP3
var progressInterval:Number;//播放计时器
var hideInterval:Number;//鼠标移动计时器
var duration:Number;//视频总长度
var specialUrl:XMLList;//图片、特效(透明SWF)地址
var specialX:XMLList;//图片、特效(透明SWF)X坐标
var specialY:XMLList;//图片、特效(透明SWF)Y坐标
var specialAlpha:XMLList;//图片、特效(透明SWF)的透明度(alpha)
var specialScal:XMLList;//图片、特效(透明SWF)的缩放值(scale)
var specialRotation:XMLList;//图片、特效(透明SWF)的旋转值(rotation)
var loader:Loader;//加载的对象
var index:int = 0;//加载索引(加载图片、SWF~的顺序)



var video:Video=new Video();//装载视频对象

/*创建一个 NetConnection 对象*/
var nc:NetConnection=new NetConnection();

/*如连接到没有使用服务器的FLV文件,则通过向 connect() 方法传递值 null ,来播放流式 FLV 文件*/
nc.connect(null);

/*创建一个 NetStream 对象并 指定要加载的 FLV 文件*/
var ns:NetStream = new NetStream(nc);

/*回调方法*/
ns.client = new Object ;
ns.client.onMetaData = onMetaData;

/*创建声音*/
var sound:Sound = new Sound();

/*创建声音通道*/
var soundChannel:SoundChannel;
/*声音播放的位置*/
var _position:Number;

/*是否播放*/
var isPlay:Boolean;

var my_fmt:TextFormat=new TextFormat();
var my_txt:TextField=new TextField();

mytext();



/*首先读取外挂参数*/
if (stage.loaderInfo.parameters["url"])
{
/*如果有外挂配置参数(本地电脑不能用)*/
url = stage.loaderInfo.parameters["url"];
}
else
{
/*如果没有外挂配置参数(这个的作用是可以在本地电脑浏览)*/
url = "configure.xml";
}

/*开始 加载 外挂配置参数(就是发布帖子格式player.swf?url=xxx.xml&.swf 中的url=xxx.xml)*/
var xmlLoader:URLLoader = new URLLoader(new URLRequest(url));
xmlLoader.addEventListener(Event.COMPLETE,xmlLoaderCompleteHandler);
function xmlLoaderCompleteHandler(event:Event):void
{
/*加载完成后读取配置内容*/
xml = new XML(event.target.data);

/*信息文件中的视频地址*/
viodUrl = xml.video. @ videoPath;

/*信息文件中的MP3地址*/
mp3Url = xml.mp3. @ mp3Path;

/*所有图片、SWF~~~连接地址XMLList*/
specialUrl = xml.special. @ url;

/*所有图片、SWF~~~的X、Y坐标XMLList*/
specialX = xml.special. @ x;
specialY = xml.special. @ y;

/*所有图片、SWF~~~的透明度XMLList*/
specialAlpha = xml.special. @ alpha;

/*所有图片、SWF~~~缩放值(等比例)XMLList*/
specialScal = xml.special. @ scal;

/*所有图片、SWF~~~旋转值XMLList*/
specialRotation = xml.special. @ rotation;

/*XMLList在这里可以理解为一个简单数组()*/

/*开始加载图片、SWF对象*/
load(specialUrl[index]);

}

function load(url:String):void
{
loader=new Loader();
loader.load(new URLRequest(url));
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
}

function progressHandler(event:ProgressEvent):void
{
this.dispatchEvent(new Event(ProgressEvent.PROGRESS));

}
function ioErrorHandler(event:IOErrorEvent):void
{

loader.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
/*加载错误接着加载下一个*/
next();
}

function completeHandler(event:Event):void
{
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeHandler);
addChild(loader);

/*绘制一个Mask遮罩loader*/
var _mask:Sprite=new Sprite();
_mask.graphics.beginFill(0,1);
_mask.graphics.drawRect(0, 0, xml.stageWH. @ w, xml.stageWH. @ h);
_mask.graphics.endFill();
addChild(_mask);
_mask.cacheAsBitmap = true;
loader.cacheAsBitmap = true;
loader.mask = _mask;

/*加载完一个对象,定义一对象的属性*/
loader.rotation = specialRotation[index];
loader.scaleX = loader.scaleY = specialScal[index];
loader.x = specialX[index];
loader.y = specialY[index];
loader.alpha = specialAlpha[index];

/*加载完一个,接着加载下一个*/
next();
}

function next():void
{
/*逐个加载所有对象(图片、SWF等)*/
if (index<specialUrl.length()-1)
{
index++;
load(specialUrl[index]);
}
else
{
this.dispatchEvent(new Event(Event.COMPLETE));
}

}


/*全部加载完成(图片、SWF等)*/
this.addEventListener(Event.COMPLETE,thiscompleteHandler);

/*加载中(图片、SWF等)*/
this.addEventListener(ProgressEvent.PROGRESS,thisprogressHandler);
function thisprogressHandler(event:Event):void
{
my_txt.text = "稍等、加载中...";
}
function thiscompleteHandler(event:Event):void
{
/*全部加载完成(图片、SWF等)后 ,开始播放视频、MP3*/
my_txt.text = "";

/*视频开始播放*/
videoPlay();

/*显示视频对象*/
addChild(video);


/*对视频进行遮罩(主要用在视频旋转后)*/
var _mask:Sprite=new Sprite();
_mask.graphics.beginFill(0,1);
_mask.graphics.drawRect(0, 0, xml.stageWH. @ w, xml.stageWH. @ h);
_mask.graphics.endFill();
addChild(_mask);
_mask.cacheAsBitmap = true;
video.cacheAsBitmap = true;
video.mask = _mask;
setChildIndex(video,1);

/*播放MP3*/
mp3Play();

/*播放时间文本的层级(最上面)*/
setChildIndex(my_txt,numChildren-1);

/*启动播放进度记时器*/
progressInterval = setInterval(progressUpdate,30);

stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);

/*舞台点击控制播放暂停*/
this.addEventListener(MouseEvent.CLICK,isPlayButtonClickHandler);

}

function videoPlay():void
{
ns.play(viodUrl);
video.attachNetStream(ns);
ns.soundTransform = new SoundTransform(xml.video. @ isVolume);
video.smoothing = true;
ns.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);

}

function mp3Play():void
{
if (xml.mp3. @ open > 0)
{
/*配置参数里有MP3*/
/*开始加载声*/
sound.load(new URLRequest(xml.mp3. @ mp3Path));

/*声音从0的位置播放int.MAX_VALUE次*/
soundChannel = sound.play(0,int.MAX_VALUE);
}
}
function onMetaData(object:Object):void
{


duration = object.duration;

/*视频缩放与X、Y坐标控制*/
setSize(video,object.width,object.height,xml.videoWH. @ w,xml.videoWH. @ h);


}
function netStatusHandler(event:NetStatusEvent):void
{
switch (event.info.code)
{
case "NetStream.Play.Start" ://trace("视频开始播放")
trace("开始播放");
break;
case "NetStream.Buffer.Empty" ://trace("视频填充缓冲区");
break;
case "NetStream.Buffer.Full" ://trace("视频缓冲完毕");
break;
case "NetStream.Play.Stop" ://trace("视频播放完毕");
trace("播放完毕");

videoPlay();
break;
case "NetStream.Play.StreamNotFound" ://trace("加载失败");
break;
}

}



/*此方法来自WU2011老师*/
function setSize(value:Object, preferredWidth:Number, preferredHeight:Number, width:Number, height:Number):void
{
if (preferredWidth / preferredHeight > width / height)
{
value.width = width;
value.height = value.width / preferredWidth * preferredHeight;
}
else
{
value.height = height;
value.width = value.height / preferredHeight * preferredWidth;
}
/*视频对象的X、Y坐标*/
value.x = xml.videoXY. @ x;
value.y = xml.videoXY. @ y;

/*视频旋转值*/
value.rotation = xml.videoRotation. @ rotation;
}



function isPlayButtonClickHandler(event:MouseEvent):void
{
isPlay = ! isPlay;
if (xml.mp3. @ open > 0)
{
if (isPlay)
{
_position = soundChannel.position;
soundChannel.stop();
}
else
{
soundChannel = sound.play(_position);
}
}
if (isPlay)
{
ns.pause();
}
else
{
ns.resume();
}
}

function progressUpdate():void
{
/*不断更新播放时间*/
my_txt.text = millToTime(ns.time) + "/" + millToTime(duration);
}

function mouseMoveHandler(event:Event):void
{
if (hideInterval)
{
clearInterval(hideInterval);
}
/*鼠标移动显示播放时间*/
my_txt.visible = true;

/*开启记时器,6000耗秒(6秒)后鼠标没移动*/
hideInterval = setInterval(hideUpdate,6000);
}
function hideUpdate():void
{
/*鼠标没移动,删除记时器*/
clearInterval(hideInterval);

/*隐藏播放时间*/
my_txt.visible = false;
}

function mytext():void
{
my_fmt.color = 0xffffff;//文本颜色
my_fmt.font = "Verdana";
my_fmt.kerning = true;//字距调整
my_fmt.leading = 1;//行距
my_fmt.letterSpacing = 2;//字间距
my_fmt.size = 14;
my_txt.defaultTextFormat = my_fmt;
my_txt.background = true;//Boolean 指定文本字段是否具有背景填充
my_txt.backgroundColor = 0x333333;//填充颜色
my_txt.border = true;//Boolean 指定文本字段是否具有边框
my_txt.borderColor = 0xcccccc;//边框颜色
my_txt.autoSize = TextFieldAutoSize.LEFT;
my_txt.multiline = false;//Boolean 指示文本字段是否为多行文本字段。
my_txt.selectable = false//文本是否可选
addChild(my_txt);
my_txt.x = 10;
my_txt.y = 10;
}


/*返回字符串显示播放时间格式*/
function millToTime(mill:Number):String
{
mill = mill;
var minutes = int(mill / 60);
var seconds = int(mill % 60);
minutes < 10 ? minutes = "0" + minutes:null;
seconds < 10 ? seconds = "0" + seconds:null;
return minutes+ ":" + seconds;
}

[本帖最后由 wu341 于 2016-9-26 06:27 编辑]

 
发新帖 新投票
 回帖
查看积分策略说明快速回复主题
你的用户名: 密码:   免费注册(只要30秒)


使用个人签名
(请您文明上网理性发言!并遵守相关规定
   



Processed in 0.038297 s, 8 q - 无图精简版,sitemap,