收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 21573|回复: 73

[AS1&2] 纯代码解析XML生成无限级菜单树视频播放器实例图文详解+源码下载(带滚动条/支持滚轮)

  [复制链接]
发表于 2012-7-26 15:27:12 | 显示全部楼层 |阅读模式
本帖最后由 yypz 于 2012-8-16 08:25 编辑

原创文章,转载请注明出处:

作者:一叶扁舟(梦回轻狂)
首发网址:http://dreamdesign.csrjgzs.com/Article/ShowArticle.asp?/2873-1.html


效果图:

纯AS根据XML自动生成无限级菜单的基本算法模型和视频播放器实例(附源码下载).jpg


实例:





  “解析XML,自动生成无限级菜单树”,这样的功能可以用Flash提供的tree组件来实现,但tree组件“重达”50K,且不便于自定义视觉效果!自己编写AS代码来实现虽然辛苦,功能也未必强大,但可使发布的SWF文件实现轻量化,而且视觉样式自定义自由度很大!



  不才通过两天的努力,编写出了这个《纯AS根据XML自动生成无限级菜单基本算法模型的视频播放器实例》。它界面控件简洁;视频播放支持任意定位和自动连播(同一末梢层级内);文件大小“极至纤薄”,仅5.7K。菜单树及其滚动条均由纯AS代码生成,支持鼠标滚轮。



  既然是FLASH-XML无级菜单的视频播放器实例,自然要解决视频文件来源和扩展应用的问题,因此代码的第三部分即为CNTV视频源解析和接收传入参数的接口,可以在播放器URL地址后传入pid参数来指定CNTV的视频节目(pid即VideoCenterId,可以在CNTV视频分享代码中找到),播放器会获取对应的JSON信息文本并转换为标准XML格式,进而生成树形播放列表菜单。



  具体的尾挂参数表及调用范例URL如下:

//本XML无限级菜单视频播放器可以接受4个尾挂参数:
//1、pid(CNTV视频中心VideoCenterId号,可在分享代码中找到)
//2、auto(如果其值为字符串"false"则手动开播)
//3、rid(视频码率,0为标清,1为高清);
//4、cap(视频标题);
//调用示例:http://dreamdesign.105.idcxin.com/bbs/menber/yypzmhqk/swfplayer/xmlmenu/xmlmenutree_adv_extend.swf?rid=0&auto=false&pid=0cc0da3aff87402065056b9f51bd6db7&cap=益气健脾的良方—归脾汤&.swf


全部代码(含详细的注释)共380行,分为以下四个部分:


/***************第一部分:根据载入XML文件结构用纯代码生成无限级菜单树及其滚动条**************/
  1. /***************第一部分:根据载入XML文件结构用纯代码生成无限级菜单树及其滚动条**************/
  2. //锁定根层级,以防被其它FLASH播放器截入时_root指向出错
  3. this._lockroot = true;
  4. //设置系统使用UTF-8字符编辑
  5. System.useCodepage = false;
  6. //声明菜单树及其滚动条的(显示)大小和位置
  7. var menutreewidth:Number = 192;
  8. var menutreeheight:Number = 270;
  9. var menutreeleft:Number = 20;
  10. var menutreetop:Number = 20;
  11. var treescrollwidth:Number = 8;
  12. //绘制色块元件的通用函数
  13. function createRectangle(l:Number, t:Number, w:Number, h:Number, bgColor:Number, name:String):MovieClip {
  14.     var mc:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth());
  15.     mc.beginFill(bgColor);
  16.     mc.lineTo(w,0);
  17.     mc.lineTo(w,h);
  18.     mc.lineTo(0,h);
  19.     mc.lineTo(0,0);
  20.     mc._x = l;
  21.     mc._y = t;
  22.     return mc;
  23. }
  24. //创建菜单树显示区域的遮罩色块元件
  25. createRectangle(menutreeleft,menutreetop,menutreewidth,menutreeheight,0x999999,"treecloth");
  26. //创建菜单树(菜单容器)元件并设置其位置
  27. createEmptyMovieClip("menutree",getNextHighestDepth());
  28. menutree._x = menutreeleft;
  29. menutree._y = menutreetop;
  30. //对菜单树(菜单容器)元件进行(应用)遮罩
  31. menutree.setMask(treecloth);
  32. //创建滚动条底槽色块元件
  33. createRectangle(menutreewidth+menutreeleft,menutreetop-1,treescrollwidth,menutreeheight+2,0x555555,"treescrollbase");
  34. //创建滚动条手柄色块元件
  35. createRectangle(menutreewidth+menutreeleft+1,menutreetop,treescrollwidth-2,menutreeheight,0x333333,"treescrollbar");
  36. //设置滚动条手柄被鼠标按下时可以拖动的位置范围
  37. treescrollbar.onPress = function() {
  38.     this.isdraging = true;
  39.     this.startDrag(false,this._x,menutreetop,this._x,menutreetop+menutreeheight-this._height);
  40. };
  41. //设置鼠标释放时滚动条手柄停止拖动
  42. treescrollbar.onRelease = treescrollbar.onReleaseOutside=function () {
  43.     this.isdraging = false;
  44.     this.stopDrag();
  45. };
  46. //滚动条手柄被拖动时根据其位置不断调整菜单树元件的对应位置,以实现滚动条的基本功能
  47. treescrollbar.onEnterFrame = function() {
  48.     var targetheight:Number = this._parent.menutree._height;
  49.     var scalerate:Number = menutreeheight/targetheight;
  50.     if (scalerate<1) {
  51.         this._height = menutreeheight*(scalerate);
  52.         this.isdraging == true ? this._parent.menutree._y=-(this._y-menutreetop)*((targetheight-menutreeheight)/(menutreeheight-this._height))+menutreetop : null;
  53.     } else {
  54.         this._height = menutreeheight;
  55.         this._top = menutreetop;
  56.     }
  57. };
  58. //鼠标滚轮在菜单区域进行滚动或者点击收展菜单树节点时,同步设置菜单树和滚动条的相应位置的功能函数
  59. function settreeboxandscrollbarpos(curtmpvalue_y:Number) {
  60.     curtmpvalue_y<menutreeheight+menutreetop-menutree._height ? curtmpvalue_y=menutreeheight+menutreetop-menutree._height : null;
  61.     curtmpvalue_y>menutreetop ? curtmpvalue_y=menutreetop : null;
  62.     menutree._y = curtmpvalue_y;
  63.     if (menutree._height>menutreeheight) {
  64.         treescrollbar._height = menutreeheight*(menutreeheight/menutree._height);
  65.         treescrollbar._y = -(curtmpvalue_y-menutreetop)/((menutree._height-menutreeheight)/(menutreeheight-treescrollbar._height))+menutreetop;
  66.     } else {
  67.         treescrollbar._height = menutreeheight;
  68.         treescrollbar._y = menutreetop;
  69.     }
  70. }
  71. //为鼠标添加侦听,实现拨动滚轮调节菜单位置的功能
  72. var mouseListener:Object = new Object();
  73. mouseListener.onMouseWheel = function(delta) {
  74.     if (_root._xmouse>=menutreeleft && _root._xmouse<=menutreeleft+menutreewidth+treescrollwidth && _root._ymouse>=menutreetop && _root._ymouse<=menutreetop+menutreeheight) {
  75.         settreeboxandscrollbarpos(menutree._y+(delta/6)*menuitemheight);
  76.     }
  77. };
  78. Mouse.removeListener(mouseListener);
  79. Mouse.addListener(mouseListener);
  80. //设置菜单项的高度、宽度、层级的缩进量(像素)、层级的最大极限数目
  81. var menuitemheight:Number = 20;
  82. var menuitemwidth:Number = 200;
  83. var menulevelindent:Number = 24;
  84. var maxlevelcount:Number = 999;
  85. //设置菜单标题的常态色、鼠标悬停色、和激活色
  86. var menutitlebasecolor:Number = 0xcccccc;
  87. var menutitlelightcolor:Number = 0xffdd00;
  88. var menutitlehovercolor:Number = 0xffee00;
  89. //设置菜单节点的标志字符(展开的节点、收起的节点、末梢实节点)
  90. var outspreadedsign:String = "-";
  91. var disoutspreadsign:String = "+";
  92. var twignodesign:String = "• ";
  93. //声明记录当前激活菜单项对象的变量
  94. var curactivemenu:MovieClip;
  95. //声明XML对象及设置其属性
  96. var xmlmenutree:XML = new XML();
  97. xmlmenutree.ignoreWhite = true;
  98. //XML对象加载完毕时(或解析XML字符串时)生成菜单树的根层
  99. xmlmenutree.onLoad = function(success) {
  100.     menutree.menulevel = 0;
  101.     menutree.treedata = xmlmenutree.firstChild.childNodes;
  102.     createmenu(menutree.treedata,menutree,menutree.menulevel);
  103.     //展开菜单树的第一个末梢实节点并激活(执行其上附着的命令)
  104.     var curexplodenode:MovieClip = menutree["menu_"+menutree.menulevel+"_"+0];
  105.     while (curexplodenode.treedata) {
  106.         disposenode(curexplodenode);
  107.         curexplodenode = curexplodenode["menu_"+curexplodenode.menulevel+"_"+0];
  108.     }
  109.     swmenuitem(curexplodenode);
  110. };
  111. //创建一个菜单层级的功能函数
  112. function createmenu(itemlist:Array, contentbox:MovieClip, menulevel:Number) {
  113.     for (var i = 0; i<itemlist.length; i++) {
  114.         var curmenuitem:MovieClip = contentbox.createEmptyMovieClip("menu_"+menulevel+"_"+i, contentbox.getNextHighestDepth());
  115.         curmenuitem._x = menulevelindent*Math.ceil(menulevel/maxlevelcount);
  116.         curmenuitem._y = menuitemheight*(i+Math.ceil(menulevel/maxlevelcount));
  117.         curmenuitem.createEmptyMovieClip("menutitle",curmenuitem.getNextHighestDepth());
  118.         curmenuitem.menutitle.createTextField("titletextbox",0,0,0,menuitemwidth-(menulevel*menulevelindent),menuitemheight);
  119.         curmenuitem.menutitle.titletextbox.autoSize = "Left";
  120.         curmenuitem.menutitle.titletextbox.textColor = menutitlebasecolor;
  121.         curmenuitem.cmdcapstr = itemlist[i].attributes.label;
  122.         curmenuitem.cmdactstr = itemlist[i].attributes.src;
  123.         curmenuitem.outspread = false;
  124.         //设置菜单标题元件的鼠标悬停样式
  125.         curmenuitem.menutitle.onRollOver = function() {
  126.             this.titletextbox.textColor = menutitlehovercolor;
  127.         };
  128.         curmenuitem.menutitle.onRollOut = function() {
  129.             curactivemenu != this._parent ? this.titletextbox.textColor=menutitlebasecolor : this.titletextbox.textColor=menutitlelightcolor;
  130.         };
  131.         if (!itemlist[i].hasChildNodes()) {
  132.             //当前菜单节点没有子节点时设置其标志字符及点击行为
  133.             curmenuitem.menutitle.titletextbox.text = twignodesign+curmenuitem.cmdcapstr;
  134.             curmenuitem.menutitle.onRelease = function() {
  135.                 swmenuitem(this._parent);
  136.             };
  137.         } else {
  138.             //当前菜单节点包含子节点时设置其标志字符及点击行为
  139.             curmenuitem.menutitle.titletextbox.text = disoutspreadsign+curmenuitem.cmdcapstr;
  140.             curmenuitem.menulevel = menulevel+1;
  141.             curmenuitem.treedata = itemlist[i].childNodes;
  142.             curmenuitem.menutitle.onRelease = function() {
  143.                 disposenode(this._parent);
  144.             };
  145.         }
  146.     }
  147. }
  148. //处理菜单树节点收起和展开的功能函数
  149. function disposenode(themenuitem:MovieClip) {
  150.     //带子节点的节点上如果有需要执行的命令,同样要调用相应的执行函数(判断有无需要执行的命令的代码在此函数之内)
  151.     swmenuitem(themenuitem);
  152.     if (themenuitem.outspread == false) {
  153.         //展开菜单(创建子层节点)
  154.         themenuitem.menutitle.titletextbox.text = outspreadedsign+themenuitem.cmdcapstr;
  155.         createmenu(themenuitem.treedata,themenuitem,themenuitem.menulevel);
  156.     } else {
  157.         //收起菜单,销毁全部子节点对象(这种处理方式十分粗暴,但简单!今后升级再使用不销毁子节点,而是隐藏起来的算法,这样有对已展开节点的缓存效果)
  158.         themenuitem.menutitle.titletextbox.text = disoutspreadsign+themenuitem.cmdcapstr;
  159.         for (var j = 0; j<themenuitem.treedata.length; j++) {
  160.             themenuitem["menu_"+themenuitem.menulevel+"_"+j].removeMovieClip();
  161.         }
  162.     }
  163.     themenuitem.outspread = !themenuitem.outspread;
  164.     //调整当前层级节点及所有父层节点的显示位置
  165.     var curbox:MovieClip = themenuitem._parent;
  166.     var curitem:MovieClip = themenuitem;
  167.     while (curbox && curbox.treedata) {
  168.         for (var m:Number = 0; m<curbox.treedata.length; m++) {
  169.             if (m>Number(curitem._name.split("_")[2])) {
  170.                 curbox["menu_"+curbox.menulevel+"_"+m]._y = curbox["menu_"+curbox.menulevel+"_"+String(m-1)]._y+curbox["menu_"+curbox.menulevel+"_"+String(m-1)]._height;
  171.             }
  172.         }
  173.         curitem = curbox;
  174.         curbox = curbox._parent;
  175.     }
  176.     //同步调整整个菜单树和滚动条的大小和位置
  177.     settreeboxandscrollbarpos(menutree._y);
  178. }
  179. //点击所有节点(不管有无子节点)都会调用的函数,此函数会判断当前节点是否有命令字符串属性,如果有则将此节点置为激活并执行其命令
  180. function swmenuitem(obj) {
  181.     if (obj.cmdactstr) {
  182.         curactivemenu ? curactivemenu.menutitle.titletextbox.textColor=menutitlebasecolor : null;
  183.         obj.menutitle.titletextbox.textColor = menutitlelightcolor;
  184.         vstartpos = 0;
  185.         curactivemenu = obj;
  186.         ns.play(obj.cmdactstr);
  187.     }
  188. }
复制代码
/***************第二部分:设置视频控件的功能、播放视频并显示其进度、段落播放完毕自动切换**************/
  1. /***************第二部分:设置视频控件的功能、播放视频并显示其进度、段落播放完毕自动切换**************/
  2. //格式化视频时间为“00:00”的函数
  3. function formattimestr(inputtime:Number) {
  4.     inputtime = Math.round(inputtime);
  5.     var thesecondstr:String = String(inputtime%60);
  6.     thesecondstr.length<2 ? thesecondstr="0"+thesecondstr : null;
  7.     var theminutestr:String = String(Math.floor(inputtime/60));
  8.     theminutestr.length<2 ? theminutestr="0"+theminutestr : null;
  9.     return theminutestr+":"+thesecondstr;
  10. }
  11. //声明视频播放功能参数
  12. var vduration:Number;
  13. var vcurduration:Number;
  14. var vstartpos:Number = 0;
  15. var vstateintervalid:Number;
  16. var vstateintervaltime:Number = 300;
  17. var vplaying:Boolean = false;
  18. var vsilentmode:Boolean = false;
  19. var vsound:Sound = new Sound();
  20. var nc:NetConnection = new NetConnection();
  21. nc.connect(null);
  22. var ns:NetStream = new NetStream(nc);
  23. videobox.video.attachVideo(ns);
  24. videobox.video.smoothing = true;
  25. //视频文件截入时执行的函数
  26. ns.onMetaData = function(vobj:Object) {
  27.     if ((_root.auto == "false" || xmlmenutree.firstChild.attributes.auto == "false") && vstartpos == 0) {
  28.         _root.auto = xmlmenutree.firstChild.attributes.auto="true";
  29.         vplaying = true;
  30.     } else {
  31.         vplaying = false;
  32.     }
  33.     swidthvideoplaypause();
  34.     vcurduration = vobj.duration;
  35.     vstartpos == 0 ? vduration=vobj.duration : null;
  36.     clearInterval(vstateintervalid);
  37.     vstateintervalid = setInterval(vstate, vstateintervaltime);
  38. };
  39. //不断更新视频播放控件显示状态的函数
  40. function vstate() {
  41.     var vdisplaytime:Number = ns.time+vstartpos;
  42.     vprogressbar.vplaybar._xscale = vdisplaytime/vduration*100;
  43.     vtimestatebox.text = formattimestr(vdisplaytime)+"-"+formattimestr(vduration);
  44.     //侦测当前视频文件是否播放完毕,完毕则自动查找当前层级的下一个节点,如果有的话,则进行切换并开始播放下一视频(仅限于同一层级)
  45.     if (ns.time>0 && vcurduration>0 & Math.abs(vcurduration-ns.time)<9 & ns.bufferLength<ns.bufferTime) {
  46.         clearInterval(vstateintervalid);
  47.         var nextmenunamelst:Array = curactivemenu._name.split("_");
  48.         nextmenunamelst[2] = String(Number(nextmenunamelst[2])+1);
  49.         if (nextmenuobj=curactivemenu._parent[nextmenunamelst.join("_")]) {
  50.             swmenuitem(nextmenuobj);
  51.         }
  52.     }
  53. }
  54. //设置视频进度底槽可以点击任意定位播放头(为了简化起见,没有判断和选用视频缓冲区,而是每次定位都用:ns.play(视频地址?start=定位秒数)重新加载视频)
  55. vprogressbar.vbasebar.onRelease = function() {
  56.     vprogressbar.vplaybar._width = vprogressbar.vpanhander._x=this._xmouse;
  57.     if (curactivemenu.cmdactstr) {
  58.         vstartpos = Math.floor(vduration*this._xmouse/this._width);
  59.         clearInterval(vstateintervalid);
  60.         ns.play(curactivemenu.cmdactstr+"?start="+vstartpos);
  61.     }
  62. };
  63. //设置视频显示元件(区域)可以点击切换视频的播放状态(播放/暂停)
  64. videobox.onRelease = btn_playpause.onRelease=swidthvideoplaypause;
  65. function swidthvideoplaypause() {
  66.     ns.pause(vplaying);
  67.     btn_playpause._visible = vplaying;
  68.     vplaying = !vplaying;
  69. }
  70. //设置静音按钮功能
  71. btn_volsw.onRelease = swidthvideosilentmode;
  72. function swidthvideosilentmode() {
  73.     vsound.setVolume(Number(vsilentmode)*100);
  74.     vsilentmode = !vsilentmode;
  75.     btn_volsw.gotoAndStop(Number(vsilentmode)+1);
  76. }
  77. //设置全屏按钮功能
  78. btn_fullscreensw.onRelease = swidthfullscreenmode;
  79. function swidthfullscreenmode() {
  80.     Stage["displayState"] == "normal" ? Stage["displayState"]="fullScreen" : Stage["displayState"]="normal";
  81. }
  82. //设置视频播放控件的初始状态
  83. btn_playpause._visible = false;
  84. btn_volsw.gotoAndStop(1);
复制代码
/***************第三部分:解析CNTV视频信息JSON,并生成XML格式播放列表,以供解析生成无限级菜单树**************/
  1. /***************第三部分:解析CNTV视频信息JSON,并生成XML格式播放列表,以供解析生成无限级菜单树**************/
  2. var xmldatastr:String = "";
  3. var cntvjsonloader:LoadVars = new LoadVars();
  4. var vrate:Number = 0;
  5. var vlistarray:Array;
  6. var vplaylistoristr:String = "";
  7. var vchapterendsign:String = "\"}]";
  8. var vpropertyendsign:String = "\"";
  9. var vfileextendname:String = ".mp4";
  10. var vurlheadstr:String = "url\":\"";
  11. var vdurationheadstr:String = "duration\":\"";
  12. cntvjsonloader.onData = function(jsonstr:String) {
  13.     vplaylistoristr = jsonstr;
  14.     var temp_vurllist:Array = new Array();
  15.     var temp_vdurationlist:Array = new Array();
  16.     vlistarray = jsonstr.slice(0, jsonstr.lastIndexOf(vchapterendsign, jsonstr.length)).split("chapters");
  17.     isNaN(_root.rid) != true ? vrate=Number(_root.rid) : null;
  18.     vrate>1 ? vrate=1 : null;
  19.     vrate<0 ? vrate=0 : null;
  20.     vlistarray = vlistarray[vrate+1].split(vfileextendname);
  21.     xmldatastr += "<?xml version='1.0' encoding='GBK'?>\r\n";
  22.     xmldatastr += "\t<node auto=''>\r\n";
  23.     xmldatastr += "\t\t<node label='"+unescape(_root.cap)+"'>\r\n";
  24.     for (var i:Number = 0; i<vlistarray.length-1; i++) {
  25.         vlistarray[i] = vlistarray[i].slice(vlistarray[i].indexOf(vdurationheadstr)+vdurationheadstr.length);
  26.         temp_vdurationlist.push(Number(vlistarray[i].slice(0, vlistarray[i].indexOf(vpropertyendsign))));
  27.         vlistarray[i] = vlistarray[i].slice(vlistarray[i].indexOf(vurlheadstr)+vurlheadstr.length);
  28.         temp_vurllist.push(vlistarray[i]+vfileextendname);
  29.         xmldatastr += "\t\t\t<node label='第"+String(i+1)+"段' src='"+temp_vurllist[i]+"' />\r\n";
  30.     }
  31.     xmldatastr += "\t\t</node>\r\n";
  32.     xmldatastr += "\t</node>\r\n";
  33.     //调用“xmlmenutree.onLoad”解析转换好的XML字符串
  34.     xmlmenutree.parseXML(xmldatastr);
  35.     var parsexmlfunc:Function = xmlmenutree.onLoad;
  36.     parsexmlfunc.call();
  37. };
  38. //本XML无限级菜单视频播放器可以接受4个尾挂参数:
  39. //1、pid(CNTV视频中心VideoCenterId号,可在分享代码中找到)
  40. //2、auto(如果其值为字符串"false"则手动开播)
  41. //3、rid(视频码率,0为标清,1为高清);
  42. //4、cap(视频标题);
  43. //调用示例:http://dreamdesign.105.idcxin.com/bbs/menber/yypzmhqk/swfplayer/xmlmenu/xmlmenutree_adv_extend.swf?rid=0&auto=false&pid=0cc0da3aff87402065056b9f51bd6db7&cap=益气健脾的良方—归脾汤
  44. //取消对下面4行代码的注释可用于本地调试时模拟尾挂参数
  45. //_root.rid = 1;
  46. //_root.auto = "false";
  47. //_root.cap = "金太狼的幸福生活 第一集";
  48. //_root.pid = "549e2082eccf414a9a10e13bd83e558b";
  49. if (_root.pid) {
  50.     //本XML无限级菜单视频播放器如果接收到尾挂参数pid,则自动获取CNTV对应视频的JSON信息并转换成标准格式的XML字符串(播放列表):
  51.     cntvjsonloader.load("http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid="+_root.pid);
  52. } else {
  53.     //没有接收到尾挂参数pid时,加载播放器自身所在(同一)路径下面的默认播放列表XML文件“xmlmenutree.xml”:
  54.     xmlmenutree.load(_root._url.slice(0, _root._url.lastIndexOf("/", _root._url.length)+1)+"xmlmenutree.xml");
  55. }
复制代码
实例FLASH源文件源码包下载地址:

游客,如果您要查看本帖隐藏内容请回复
 楼主| 发表于 2012-7-26 15:27:49 | 显示全部楼层
本帖最后由 yypz 于 2012-8-8 08:28 编辑


/***************第四部分:声明此源码的名称、版本、作者、版权,并生成右键实用菜单**************/
  1. /***************第四部分:声明此源码的名称、版本、作者、版权,并生成右键实用菜单**************/
  2. var playername:String = "XML无限级菜单视频播放器";
  3. var playerver:String = "1.0.0.0";
  4. var lastupdatetime:String = "(测试版)Build_2012.07.22";
  5. var authorname:String = "一叶扁舟(梦回轻狂)";
  6. var authorqqnumber:String = "744123372";
  7. var authorwebsiteurl1:String = "http://www.csrjgzs.com";
  8. var authorwebsitename1:String = "《梦之舟建站网》 至力于FLASH全屏自适应网站、ASP动态网站,WEB前端及后台开发:www.csrjgzs.com!";
  9. var authorwebsiteurl2:String = "http://player.csrjgzs.com";
  10. var authorwebsitename2:String = "《梦回播放器》专业制作高清婚纱艺术相册及各种FLASH影音播放器:player.csrjgzs.com!";
  11. var authorwebsiteurl3:String = "http://dreamdesign.csrjgzs.com";
  12. var authorwebsitename3:String = "《梦艺论坛》点亮人生的梦想,品味休闲的艺术:dreamdesign.csrjgzs.com!";
  13. rightMenu = new ContextMenu();
  14. rightMenu.hideBuiltInItems();
  15. rightMenu.customItems.push(new ContextMenuItem("★"+authorwebsitename1, menu_website1, false));
  16. rightMenu.customItems.push(new ContextMenuItem("★"+authorwebsitename2, menu_website2, false));
  17. rightMenu.customItems.push(new ContextMenuItem("★"+authorwebsitename3, menu_website3, false));
  18. rightMenu.customItems.push(new ContextMenuItem("●【"+playername+"_"+playerver+lastupdatetime+"】"+authorname+"开发 QQ:"+authorqqnumber+" 点击发起会话!", menu_qqcall, true));
  19. rightMenu.customItems.push(new ContextMenuItem("○ 拷贝当前视频播放列表的XML文本!", mymenu_copycurvlst, true));
  20. rightMenu.customItems.push(new ContextMenuItem("○ 拷贝正在播放的视频文件的地址!", mymenu_copycurvurl, false));
  21. rightMenu.customItems.push(new ContextMenuItem("◇ 拷贝播放器引用代码<EMBED>!", mymenu_copyplayercode, true));
  22. rightMenu.customItems.push(new ContextMenuItem("◇ 拷贝播放器地址(640*310)!", mymenu_copyplayerurl, false));
  23. _root.menu = rightMenu;
  24. //○●△▲◎☆★◇◆□■▽▼㊣⊙{}︻︼【】『』
  25. function menu_website1() {
  26.     System.setClipboard(authorwebsiteurl1);
  27.     getURL(authorwebsiteurl1);
  28. }
  29. function menu_website2() {
  30.     System.setClipboard(authorwebsiteurl2);
  31.     getURL(authorwebsiteurl2);
  32. }
  33. function menu_website3() {
  34.     System.setClipboard(authorwebsiteurl3);
  35.     getURL(authorwebsiteurl3);
  36. }
  37. function menu_qqcall() {
  38.     var qqcallurl:String = "http://wpa.qq.com/msgrd?v=3&uin="+authorqqnumber+"&site=qq&menu=yes";
  39.     System.setClipboard(qqcallurl);
  40.     getURL(qqcallurl);
  41. }
  42. function mymenu_copycurvlst() {
  43.     xmldatastr ? System.setClipboard(xmldatastr) : System.setClipboard(xmlmenutree.toString().split(">").join(">\r\n"));
  44. }
  45. function mymenu_copycurvurl() {
  46.     System.setClipboard(curactivemenu.cmdactstr);
  47. }
  48. function mymenu_copyplayercode() {
  49.     System.setClipboard("<br /><center><embed style='position:relative;left:0px;top:0px;margin-top:0px;margin-left:0px' width='720' height='560' src='"+_root._url+"' FlashVars='' type='application/x-shockwave-flash' wmode='Opaque' quality='high' allowfullscreen='true' invokeURLs='true' allowNetworking='all' allowScriptAccess='always' swLiveConnect='true'></embed></center><br />");
  50. }
  51. function mymenu_copyplayerurl() {
  52.     System.setClipboard(_root._url);
  53. }
复制代码
XML播放列表(四层数据结构)文本内容:
  1. <?xml version='1.0' encoding='UTF-8'?>
  2.     <tree label='无限级纯代码XML树形菜单基础模型'>
  3.         <node label='人文专辑视频'>
  4.             <node label="《品读》精选2集)">
  5.                     <node label="品读李清照《声声慢》">
  6.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-1.mp4" />
  7.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-2.mp4" />
  8.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-3.mp4" />
  9.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-4.mp4" />
  10.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-5.mp4" />
  11.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-6.mp4" />
  12.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-7.mp4" />
  13.                         <node label="第8段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/07/13/07f8d7bb5ad04a7c18e2f28d9cf27a8a_h264818000nero_aac32-8.mp4" />
  14.                     </node>
  15.                     <node label="苏州园林-叶圣陶">
  16.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video16/TMS/2011/11/21/4BB4CD35D6C249e9954A8AA553530626_h264818000nero_aac32-1.mp4" />
  17.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video16/TMS/2011/11/21/4BB4CD35D6C249e9954A8AA553530626_h264818000nero_aac32-2.mp4" />
  18.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video16/TMS/2011/11/21/4BB4CD35D6C249e9954A8AA553530626_h264818000nero_aac32-3.mp4" />
  19.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video16/TMS/2011/11/21/4BB4CD35D6C249e9954A8AA553530626_h264818000nero_aac32-4.mp4" />
  20.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video16/TMS/2011/11/21/4BB4CD35D6C249e9954A8AA553530626_h264818000nero_aac32-5.mp4" />
  21.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video16/TMS/2011/11/21/4BB4CD35D6C249e9954A8AA553530626_h264818000nero_aac32-6.mp4" />
  22.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video16/TMS/2011/11/21/4BB4CD35D6C249e9954A8AA553530626_h264818000nero_aac32-7.mp4" />
  23.                     </node>
  24.             </node>
  25.             <node label="解密黄帝内经(4集)">
  26.                     <node label="身世之迷(1)">
  27.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-1.mp4" />
  28.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-2.mp4" />
  29.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-3.mp4" />
  30.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-4.mp4" />
  31.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-5.mp4" />
  32.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-6.mp4" />
  33.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-7.mp4" />
  34.                         <node label="第8段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-8.mp4" />
  35.                         <node label="第9段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-9.mp4" />
  36.                         <node label="第10段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-10.mp4" />
  37.                         <node label="第11段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-11.mp4" />
  38.                         <node label="第12段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-12.mp4" />
  39.                         <node label="第13段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/12/827322161cb1420d28e0fb8efb254c61_h264818000nero_aac32-13.mp4" />
  40.                     </node>
  41.                     <node label="银针传奇(2)">
  42.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-1.mp4" />
  43.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-2.mp4" />
  44.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-3.mp4" />
  45.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-4.mp4" />
  46.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-5.mp4" />
  47.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-6.mp4" />
  48.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-7.mp4" />
  49.                         <node label="第8段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-8.mp4" />
  50.                         <node label="第9段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-9.mp4" />
  51.                         <node label="第10段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-10.mp4" />
  52.                         <node label="第11段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-11.mp4" />
  53.                         <node label="第12段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-12.mp4" />
  54.                         <node label="第13段" src="http://v.cctv.com/flash/mp4video7/TMS/2011/02/13/097667b6e3014e9f862d0b849e7ce15a_h264818000nero_aac32-13.mp4" />
  55.                     </node>
  56.                     <node label="经络迷踪(3)">
  57.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-1.mp4" />
  58.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-2.mp4" />
  59.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-3.mp4" />
  60.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-4.mp4" />
  61.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-5.mp4" />
  62.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-6.mp4" />
  63.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-7.mp4" />
  64.                         <node label="第8段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-8.mp4" />
  65.                         <node label="第9段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-9.mp4" />
  66.                         <node label="第10段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-10.mp4" />
  67.                         <node label="第11段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-11.mp4" />
  68.                         <node label="第12段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-12.mp4" />
  69.                         <node label="第13段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/14/733be17097e54e8b6da3e5934c340f8a_h264818000nero_aac32-13.mp4" />
  70.                     </node>
  71.                     <node label="经络起源之迷(4)">
  72.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-1.mp4" />
  73.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-2.mp4" />
  74.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-3.mp4" />
  75.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-4.mp4" />
  76.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-5.mp4" />
  77.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-6.mp4" />
  78.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-7.mp4" />
  79.                         <node label="第8段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-8.mp4" />
  80.                         <node label="第9段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-9.mp4" />
  81.                         <node label="第10段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-10.mp4" />
  82.                         <node label="第11段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-11.mp4" />
  83.                         <node label="第12段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-12.mp4" />
  84.                         <node label="第13段" src="http://v.cctv.com/flash/mp4video8/TMS/2011/02/15/b81527b7dac9474c992cf3bee233783c_h264818000nero_aac32-13.mp4" />
  85.                     </node>
  86.             </node>
  87.         </node>
  88.         <node label='科普专辑视频'>
  89.             <node label="宇宙大爆炸(4集)">
  90.                     <node label="何处是中心(1)">
  91.                         <node label="整段" src="http://v.cctv.com/flash/media/qgds/2009/06/qgds_null_20090618_345.mp4" />
  92.                     </node>
  93.                     <node label="给我证据(2)">
  94.                         <node label="整段" src="http://v.cctv.com/flash/media/qgds/2009/06/qgds_null_20090619_341.mp4" />
  95.                     </node>
  96.                     <node label="宇宙的密码(3)">
  97.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-1.mp4" />
  98.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-2.mp4" />
  99.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-3.mp4" />
  100.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-4.mp4" />
  101.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-5.mp4" />
  102.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-6.mp4" />
  103.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-7.mp4" />
  104.                         <node label="第8段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/03/31/tansuofaxian_h264418000nero_aac32_20100331_1270000257861-8.mp4" />
  105.                     </node>
  106.                     <node label="宇宙的模样(4)">
  107.                         <node label="第1段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-1.mp4" />
  108.                         <node label="第2段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-2.mp4" />
  109.                         <node label="第3段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-3.mp4" />
  110.                         <node label="第4段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-4.mp4" />
  111.                         <node label="第5段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-5.mp4" />
  112.                         <node label="第6段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-6.mp4" />
  113.                         <node label="第7段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-7.mp4" />
  114.                         <node label="第8段" src="http://v.cctv.com/flash/mp4video3/tansuofaxian/2010/04/21/tansuofaxian_h264418000nero_aac32000_20100421_1271803695503-8.mp4" />
  115.                     </node>
  116.             </node>
  117.             <node label="太阳系的诞生(上下集)">
  118.                     <node label="上集">
  119.                         <node label="第1段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-1.mp4" />
  120.                         <node label="第2段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-2.mp4" />
  121.                         <node label="第3段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-3.mp4" />
  122.                         <node label="第4段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-4.mp4" />
  123.                         <node label="第5段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-5.mp4" />
  124.                         <node label="第6段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-6.mp4" />
  125.                         <node label="第7段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-7.mp4" />
  126.                         <node label="第8段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-8.mp4" />
  127.                         <node label="第9段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/27/kejizhiguang_h264818000nero_aac32_20090927_1254033830493-9.mp4" />
  128.                     </node>
  129.                     <node label="下集">
  130.                         <node label="第1段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-1.mp4" />
  131.                         <node label="第2段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-2.mp4" />
  132.                         <node label="第3段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-3.mp4" />
  133.                         <node label="第4段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-4.mp4" />
  134.                         <node label="第5段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-5.mp4" />
  135.                         <node label="第6段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-6.mp4" />
  136.                         <node label="第7段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-7.mp4" />
  137.                         <node label="第8段" src="http://v.cctv.com/flash/2009/kejizhiguang/2009/09/28/kejizhiguang_h264818000nero_aac32_20090928_1254119733822-8.mp4" />
  138.                     </node>
  139.             </node>
  140.         </node>
  141.         <node label='影视节目视频'>
  142.             <node label="《狄仁杰之通天帝国》" >
  143.                     <node label="第1段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-1.mp4" />
  144.                     <node label="第2段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-2.mp4" />
  145.                     <node label="第3段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-3.mp4" />
  146.                     <node label="第4段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-4.mp4" />
  147.                     <node label="第5段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-5.mp4" />
  148.                     <node label="第6段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-6.mp4" />
  149.                     <node label="第7段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-7.mp4" />
  150.                     <node label="第8段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-8.mp4" />
  151.                     <node label="第9段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-9.mp4" />
  152.                     <node label="第10段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-10.mp4" />
  153.                     <node label="第11段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-11.mp4" />
  154.                     <node label="第12段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-12.mp4" />
  155.                     <node label="第13段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-13.mp4" />
  156.                     <node label="第14段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-14.mp4" />
  157.                     <node label="第15段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-15.mp4" />
  158.                     <node label="第16段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-16.mp4" />
  159.                     <node label="第17段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-17.mp4" />
  160.                     <node label="第18段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-18.mp4" />
  161.                     <node label="第19段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-19.mp4" />
  162.                     <node label="第20段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-20.mp4" />
  163.                     <node label="第21段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-21.mp4" />
  164.                     <node label="第22段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-22.mp4" />
  165.                     <node label="第23段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-23.mp4" />
  166.                     <node label="第24段" src="http://v.cctv.com/flash/mp4video12/TMS/2011/06/23/0b9022c05cf64750b9537a17a6e8cf3b_ccut__4cb3774f-24.mp4" />
  167.             </node>
  168.         </node>
  169.     </tree>
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-26 15:28:51 | 显示全部楼层
《多级菜单树节点高度计算图文详解》.jpg
回复 支持 反对

使用道具 举报

发表于 2012-8-2 16:40:50 | 显示全部楼层
这么强大,怎么没人顶呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-2 19:54:37 | 显示全部楼层
wcg8904 发表于 2012-8-2 16:40
这么强大,怎么没人顶呢?

天下熙熙,皆为利来;天下攘攘,皆为利往!

和有需求才发帖一样,顶帖也是要有需求的!

1、成就感的需要(顶求助帖)

2、下载资源的需要(顶回复可见帖)

3、求学的需要(顶技术探讨帖)

4、交流的需要(顶闲聊灌水帖)

等等……

放心吧,这帖自会有人顶的,在有需要的人有需要的时候
回复 支持 反对

使用道具 举报

发表于 2012-8-3 09:48:39 | 显示全部楼层
相当不错。顶楼主。楼主这个是AS2写的,想学AS3的,为什么不用AS3呢
回复 支持 反对

使用道具 举报

发表于 2012-8-3 09:51:28 | 显示全部楼层
不知能不能把这个flash播放器美化一下,比如可以填logo、文字等。
回复 支持 反对

使用道具 举报

发表于 2012-8-3 09:52:05 | 显示全部楼层
还有背景的黑色可不可以更换?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-3 12:15:25 | 显示全部楼层
wslt521 发表于 2012-8-3 09:48
相当不错。顶楼主。楼主这个是AS2写的,想学AS3的,为什么不用AS3呢

呵呵,因为我不会AS3啊

我AS3的水平远不足以写出这样的东东来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-3 12:16:06 | 显示全部楼层
wcg8904 发表于 2012-8-3 09:51
不知能不能把这个flash播放器美化一下,比如可以填logo、文字等。

源文件都发上来了,大家可以自己美化啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-3 12:17:18 | 显示全部楼层
wcg8904 发表于 2012-8-3 09:52
还有背景的黑色可不可以更换?

可以,这个非常简单,你用FLASH软件打开源文件,修改一下背景色,或者在主时间轴上代码层下面添加一个图层,画一个色块就可以了啊
回复 支持 反对

使用道具 举报

发表于 2012-8-7 10:42:54 | 显示全部楼层
yypz 发表于 2012-8-3 12:16
源文件都发上来了,大家可以自己美化啊

大部分人对flash修改还是有难度的!
回复 支持 反对

使用道具 举报

发表于 2012-8-7 11:55:29 | 显示全部楼层
我也不会AS3,谢谢楼主了。
正是我需要的!
回复 支持 反对

使用道具 举报

发表于 2012-8-7 13:20:51 | 显示全部楼层
有个问题请教下,为什么本地FLV视频播放时,点进度槽视频就停止不动了。
这是怎么回事呀?望能给与解答,谢谢了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-7 21:16:02 | 显示全部楼层
xiayuye123 发表于 2012-8-7 13:20
有个问题请教下,为什么本地FLV视频播放时,点进度槽视频就停止不动了。
这是怎么回事呀?望能给与解答,谢 ...

本来这个实例主要是展示AS纯代码生成XML菜单树的,

所以视频播放器仅支持MP4的播放和任意定位(需要服务器支持)



鉴于不少朋友需要用作普通FLV视频播放器使用,因此特添加了对FLV文件播放的支持

普通FLV(缓冲区内可定位)、任意定位FLV(需服务器支持)

普通FLV播放器有加载进度指示!



源码包附件已经更新,需要的朋友可以重新下载一次!


普通FLV(缓冲区内可定位).jpg

任意定位FLV(需服务器支持).jpg

回复 支持 反对

使用道具 举报

发表于 2012-8-7 22:25:51 | 显示全部楼层
太感谢了,楼主好强大呀!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-8 08:29:53 | 显示全部楼层
xiayuye123 发表于 2012-8-7 22:25
太感谢了,楼主好强大呀!

原帖由 [i]冰点十字绣 于 2012-8-8 00:09 发表
无法显示 XML 页。
使用 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。


--------------------------------------------------------------------------------

不支持从当前编码到指定编码的切换。处理资源 'file:///E:/播放器制作/源文件/新建文件夹 (5)/xmlmenutree/xmlmenutree.XML' 时出错。第 1 行,位置: 37

<?xml version="1.0" encoding="GBK"?>


老师这是什么意思



这是我在写XML编码的时候的一个小错误,所以用IE打开XML文件会报错,
但并不影响FLASH播放器,也就是视频播放器实例可以正常使用这个带错的XML文件。


XML文件的编码是UTF-8,因此用文本编辑器编辑之后应保存为此格式,播放器才能正常读取

将我写错的头文件编码声明由“<?xml version="1.0" encoding="GBK"?>”改为“<?xml version="1.0" encoding="UTF-8"?>”
格式就完全正确了,用IE可以直接打开,正常查看!!!

XML文件的编码是UTF-8.jpg


用IE浏览器能检查XML文件格式及编码是否正确.jpg
回复 支持 反对

使用道具 举报

发表于 2012-8-15 14:24:17 | 显示全部楼层
高手在此呀 真不错
回复 支持 反对

使用道具 举报

发表于 2012-8-15 23:30:40 | 显示全部楼层
强大,学习学习!
回复 支持 反对

使用道具 举报

发表于 2012-8-16 17:38:44 | 显示全部楼层
我以为是as3写的原来是as2写的。
回复 支持 反对

使用道具 举报

发表于 2012-8-18 12:59:12 | 显示全部楼层
很不错啊,支持一下
回复 支持 反对

使用道具 举报

发表于 2012-8-23 11:21:35 | 显示全部楼层
这个视频播放器在不断完善、强大,支持啊!
回复 支持 反对

使用道具 举报

发表于 2012-8-25 10:54:19 | 显示全部楼层
也下载一个试试看
回复 支持 反对

使用道具 举报

发表于 2012-9-23 10:42:30 | 显示全部楼层
非常非常好,感谢楼主
回复 支持 反对

使用道具 举报

发表于 2012-10-1 02:58:17 | 显示全部楼层
太感谢了,楼主好强大呀!
回复 支持 反对

使用道具 举报

发表于 2012-10-1 12:23:27 | 显示全部楼层
下载 一个看看
回复 支持 反对

使用道具 举报

发表于 2012-10-13 17:27:43 | 显示全部楼层
谢谢分享,确实很强大!

另请教个问题:
为什么我做了flv视频,在flash文件中播放时本地是正常的,但上传到ftp以后就无法播放了呐?楼主是怎么解决的啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-13 20:20:07 | 显示全部楼层
漠塬 发表于 2012-10-13 17:27
谢谢分享,确实很强大!

另请教个问题:

FTP要有匿名权限才能在线下载播放吧。

如果是HTTP不能链接上,可以使用绝对路径书写FLV地址试试!

此外,很可能是你的空间服务商禁止了FLV文件的外链,你不妨将扩展名改成SWF试试!
回复 支持 反对

使用道具 举报

发表于 2012-10-14 15:16:03 | 显示全部楼层
不错,功能很强大,支持楼主。
回复 支持 反对

使用道具 举报

发表于 2012-10-16 15:28:34 | 显示全部楼层
不错,很强大学习了,顶楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2020-2-21 21:41 , Processed in 0.124683 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表