[as2]AS2中不支持../
在使用loadMovieNum加载文件时,有时需要相对路径来写,比如用到../指向当前文件的上一级,当在Flash创作环境下测试的时候是有效的,但是离开这个环境就无效了。为此,我们用处理一下这个路径:
AS Code
// 以下是从Command命令中添加的代码 // ++++++++++++++++++++++ 加载替代函数 ++++++++++++++++++++++++ // @param str:String 加载的文件名 // @param depth:Number 加载的深度 // @return Void function loadFile (str:String, depth:Number):Void { depth == undefined ? depth = 0 : null; var _URI:String = this._url; var catalog:String = _URI.substr (0, _URI.lastIndexOf ("/")); while (str.substr (0, 3) == "../") { str = str.substr (3); catalog = catalog.substr (0, catalog.lastIndexOf ("/")); } catalog += "/"; if (true == _global.loader) { this._parent.loadSWF (catalog + str); } else { loadMovieNum (catalog + str, depth); } }
使用如下代码测试
AS Code
loadFile("../../d.swf") loadFile("../d.swf") loadFile("d.swf")
输出如下信息
Error opening URL "file:///C|/DOCUME%7E1/s520/d.swf"
Error opening URL "file:///C|/DOCUME%7E1/s520/LOCALS%7E1/d.swf"
Error opening URL "file:///C|/DOCUME%7E1/s520/LOCALS%7E1/Temp/d.swf"
说明这个函数是有效的。

Leave a Reply