加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex swf访问资源的路径问题

发布时间:2020-12-15 04:50:19 所属栏目:百科 来源:网络整理
导读:在做项目时,经常要将flex写的swf文件嵌入到jsp/html页面中,实践过程中比较头痛的就是路径问题了。 经常会遇到路径配置不对,而导致主swf文件无法加载资源的问题。下面笔者谈谈自己的解决方法: 思路:在swf中我们通常写的是资源的相对路径,但是将swf嵌入

在做项目时,经常要将flex写的swf文件嵌入到jsp/html页面中,实践过程中比较头痛的就是路径问题了。

经常会遇到路径配置不对,而导致主swf文件无法加载资源的问题。下面笔者谈谈自己的解决方法:

思路:在swf中我们通常写的是资源的相对路径,但是将swf嵌入到页面后由于页面跳转等原因导致加载

资源时路径不正确,这时候可以在主swf初始化时获取主swf的绝对路径(可以是网络路径)然后将主

swf要访问的资源前加上绝对路径,这时候访问的就是资源的绝对路径了,就不会出现上述问题了。

? ? ? ?具体方法:

? ? ? ?1、在主应用(mx:Application)的initialize事件(init)中,获取该应用的路径,代码如下:

? ? ? ? public var currSwfUrl:String; ?//在Application中声明的当前swf的路径

? ? ? private function init():void
? ? ? ?{?
? ? ? ? ? ? var swfPath:String = this.parent.stage.loaderInfo.url;//获取当前swf的路径
? ? ? ? ? ? var swfPathArray:Array = swfPath.split("/"); ?
??
? ? ? ? ? ? if (swfPathArray[0] == "file:") { ?//本地路径
? ? ? ? ? ? ? ? if(swfPathArray.length<=3){ ?
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?currSwfUrl = swfPathArray[2]; ?
? ? ? ? ? ? ? ?currSwfUrl = currSwfUrl.substring(0,currSwfUrl.lastIndexOf(currSwfUrl.charAt(2))); ?
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else{ ?
? ? ? ? ? ? ? ?currSwfUrl = swfPath; ?

? ? ? ? ? ? ? ?} ?
? ? ? ? ? ? ? ? }else{ ?//网络路径
? ? ? ? ? ?} ?
? ? ? ? ? ??
? ? ? ? ? ? currSwfUrl += "/"; ??
}

? ? ? 2、在其他地方可以通过Application.application.currSwfUrl获取到主swf的路径,

? ? ? ? ? ?然后就可以给资源加上绝对路径了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读