I Love China

技术·人生

技术服务生活
繁體
2月 2nd, 2008

[as2]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