【发布时间】:2010-09-19 15:30:15
【问题描述】:
我正在开发的一个网站(使用 AS2,因为它是老式的)有一个更大的索引 .swf 文件,它使用 loadMovie("foo1.swf", placeToShowSwf) 加载子 swfs。 foo1.swf 到 4,这很愚蠢,因为它们之间唯一不同的是 xml 文件地址中的单个数字,它告诉它要加载什么内容。因此,我想将其简化为一个文件,并使用索引文件调用以加载 xml 文件的简单函数,如此处所示。
function setFooNum(i:Number) {
fooNum = i;
//my_xml = new XML(); edit: this line has since been removed and is kept for historical purposes
my_xml.load("foo"+fooNum+".xml");
};
但是,由于某种原因,xml 文件无法加载。它在函数之外正确加载,但这对我没有多大好处。它会正确更改 fooNum,但是如果已经加载了错误的 xml 文件,那对我没有任何好处。据我所知,代码的行为就好像my_xml.load("foo"+fooNum+".xml") 根本不存在。
这是某种我不知道的安全措施吗?有什么办法可以解决吗?
编辑
正如一些人指出的那样,my_xml = new XML() 行是罪魁祸首。不幸的是,我现在遇到了一个新的令人兴奋的错误。当在索引文件中的 loadMove() 之后立即调用 setFooNum(i) 时,setFooNum() 函数内的 trace(fooNum) 打印出 fooNum 设置正确,但 onLoad() 内的 trace(fooNum)显然没有加载,顺便说一句)表明 fooNum 是未定义的!此外,我在索引 swf 中创建了一个按钮,调用 setFooNum(3)(用于调试目的),出于某种原因,它可以正常工作。所以等待几秒钟文件加载似乎可以解决问题,但这是一个非常丑陋的解决方案。
那么在调用setFooNum() 之前,我该如何等到所有内容都加载完毕?
【问题讨论】:
-
提供您在编辑中提到的所有来源,没有它很难提供帮助。
-
你能发布你的 onLoad 是什么样的吗? fooNum 不是全局变量,因此在您的 onLoad fooNum 内部将无法识别。这是一个变量范围问题。
标签: xml flash actionscript-2