[AS3]如何处理让播放器加载XML等文件时支持相对路径(代码示例)
[AS3]如何处理让播放器加载XML等文件时支持相对路径,想让你的FLASH播放器加载XML等文件时支持相对路径吗?
有人说“某某论坛不支持播放器加载XML文件”,
其实,几乎所有的DISCUZ论坛和QQ空间都“不支持”
FLASH播放器加载用相对路径格式书写的XML等文件。
原因可能是自动禁止了以下两个参数造成的:
invokeURLs="false"
allowNetworking="internal"
想让你的FLASH播放器加载XML等文件时支持相对路径吗?
使用我写的deurl("相对路径")函数吧。
它还支持向上回逆目录哦(../../)
- //通用代码段,获取播放器自身所在的路径 + 补全URL路径字符串以支持相对路径
- var playerrealurl;
- var playervarsstr;
- var playerrootpath;
- //AS2:
- var rootfullurlstr=_root._url;
- //AS3:
- loaderInfo.url?rootfullurlstr=loaderInfo.url:null;
- rootfullurlstr.indexOf("?", 0)>=0 ? playerrealurl=rootfullurlstr.slice(0, rootfullurlstr.indexOf("?", 0)) : playerrealurl=rootfullurlstr;
- rootfullurlstr.indexOf("?", 0)>=0 ? playervarsstr=rootfullurlstr.slice(rootfullurlstr.indexOf("?", 0)+1) : playervarsstr="";
- playerrootpath = rootfullurlstr.slice(0, rootfullurlstr.indexOf("?", 0));
- playerrealurl.lastIndexOf("/", playerrealurl.length)>=0 ? playerrootpath=playerrealurl.slice(0, playerrealurl.lastIndexOf("/", playerrealurl.length)) : null;
- function deurl(theurl) {
- cur_playerrootpath = playerrootpath;
- if (theurl.toLowerCase().indexOf("http:")<0 && theurl.toLowerCase().indexOf("https:")<0 && theurl.toLowerCase().indexOf("ftp:")<0 && theurl.toLowerCase().indexOf("file:")<0) {
- while (theurl.slice(0, 3) == "../") {
- cur_playerrootpath.lastIndexOf("/", cur_playerrootpath.length)>=0 ? cur_playerrootpathcur_playerrootpath=cur_playerrootpath.slice(0, cur_playerrootpath.lastIndexOf("/", cur_playerrootpath.length)) : null;
- theurltheurl = theurl.slice(3);
- }
- theurl = cur_playerrootpath+"/"+theurl;
- }
- return theurl;
- }
- trace(deurl("xml.xml"))
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...