flex swf访问资源的路径问题

本文介绍了一种解决SWF文件在嵌入网页时路径问题的方法。通过在初始化阶段获取SWF的绝对路径,并将其用于资源加载,确保资源路径的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做项目时,经常要将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;  
               currSwfUrl = currSwfUrl.substring(0,currSwfUrl.lastIndexOf("/"));  
               }  
                }else{  //网络路径
               currSwfUrl = swfPath;  
               currSwfUrl = currSwfUrl.substring(0,currSwfUrl.lastIndexOf("/"));  
           }  
            
            currSwfUrl += "/";   
}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值