网页加载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为准,不会被网页加载而改变。

评论

0条评论

发表评论

电子邮件地址不会被公开。