当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > 多层级加载相对路径遇到的问题解决方法

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript 中的 多层级加载相对路径遇到的问题解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-01   浏览: 191 ::
收藏到网摘: n/a

今天刚好在做多层级加载时发现了这个问题.就把解决方法贴出来了
问题描术:
路径结构是:根级:A.swf  data(文件夹)     data文件夹中有 B.swf   c.swf
在B的代码中有加载C.swf 单独运行B时正常。  用A加载B的时候,问题就出现B不会加载c.swf了。
得把c.swf移到和A.swf同级别。

问题原因:
所有加载的swf都是以最外层swf所在目录为根目录
被网页加载的swf都是以网页所在目录为根目录

解决方法:
function 计算文件目录() {
    var 目录索引 = _url.lastIndexOf("/");
    var 目录 = _url.substring(0, 目录索引);
    var 文件名 = _url.substring(目录索引+1);
    return [目录, 文件名];
}
trace(_url)
trace(计算文件目录())

//*****重点. 以上函数并把目录和文件名分离了. 所以返回值的[0]是目录 [1]是文件名.这样用起来就更方便了

利用上面的函数,先分析得到主加载器的绝对目录.  这时候不论下级载体 或下下级载体. 再调用一次该函数
得到下下级载体的绝对目录.

这样就能得到2个绝对地址  然后用字符串分析方法(IndexOf) 找出相同的部分.去掉, 剩下的就是需要的相对路径了. 这样在加载时把这个路径追加上.就能正常的加载N级关系的文件了.

本教程为本人原创,只供学习

//再把对比方法也补充上吧. 比较简单.
//========计算自己的相对路径=========
var 目录索引=文件目录[0].indexOf(_root.文件目录[0])
var 相对路径=文件目录[0].substring(目录索引+_root.文件目录[0].length+1)
trace("相对路径="+相对路径)


//=====trace环境===解析成功.
主文件目录=file:///F|/制作/A
子文件目录=file:///F|/制作/A/data
相对路径=data