网页加载flash后flash的加载目录被改变解决办法
之前都分享的是createjs的技术,今天就来分享一篇flash的吧,毕竟flash也是我的专长。
做过flash项目的人都知道,你在flash里加载文件写相对目录,但是当你的flash被网页加载的时候,目录就会变成相对于网页的,这个问题直接导致了,要不就是flash要与网页同一目录,不方便集中管理;要不就是flash在放到网页之前就要变成网页上的加载目录,这样的话本地调试就非常麻烦。
不过其实用工具类就可以解决了,这里分享下工具类的代码。
先获取主flash的目录 catalogue = getCatalogue(stage.loaderInfo.url) 保存起来
/** * 获取根目录地址 * @param source 地址 * @return 目录地址 * */ public static function getCatalogue(source:String):String { if(!source) return source; var str:String = source.split("?")[0]; var index:int = str.lastIndexOf("\\"); if(index == -1) { index = str.lastIndexOf("/"); } var contents:String = str.substring(0,index); return contents; } |
然后每次加载文件的时候目录上都加一个字符来代替这个目录,我是用...来代替
/** * 地址转换 加上“.../”后会对地址加上目录 * @param source 地址 * @return 转化后的地址 * */ public static function sourceTransition(source:String):String { return source.replace("...",catalogue); } |
然后我举例加载一个文件
loader.load(new URLRequest(sourceTransition(".../xx.swf")));
这样子,flash的加载目录,永远是以主flash为准,不会被网页加载而改变。
发表评论