0

我正在使用 Swishmax 4,我想从 flash 的外部 txt 文件中加载一个变量。
我创建了一个动态文本来加载我的变量。它运行良好,但是当我想跟踪变量时,我得到一个undefined value。这是我的代码:

文件.txt

&cont=data

代码

onFrame (1) {
    this.loadVariables("file.txt");
    trace(cont); // i get an undefined value here
}

我该怎么办?

4

2 回答 2

0

您不指定该 file.txt 的内容是什么,也不指定它是否与 swf 本身位于同一文件夹中。但是,您应该始终考虑到,加载过程需要一些时间,因此您不应该期望该代码可以在远程服务器上工作(至少,不是第一次运行 swf 文件时)。如何确定文件在第 0 帧(onLoad 事件)之前加载?事实上你不能。在第二个脚本中,您稍后尝试访问数据,因此很可能数据已被加载。

因此,您必须找到一种方法来确保文件加载正常,并且您有两种方法可以做到这一点:使用 loadVars 类(推荐)或使用 file.txt 本身中的另一个变量并检查其值是否已定义或不。第二种方法的一个例子可能是:

文件 txt

&myVar=Hello World!!&
&yourVar=finally there!!&
&yourAge=24&
&loadedDone=1&

sw码:

onSelfEvent(load){
  this.loadVariables("file.txt");
}
onFrame(2){
  if(loadedDone!= 1)prevFrameAndPlay(); // Wait till the file is loaded
}
onFrame(3){!!
  // Once the data is loaded, display variable values!!
  trace(myVar);
  trace(yourVar);
  trace(yourAge);
}

但是这个方法有个问题,如果没有定义变量loadeDone或者file.txt不存在,你的swi文件就会陷入死循环。因此,您最好尝试 loadVars 类或为此目的使用 XML。

问候, cancrexo

于 2012-10-10T08:13:12.640 回答
0

我真的不知道为什么,但我将脚本修改为此并正确调试

onSelfEvent (load) {
    this.loadVariables("file.txt");
}
onFrame (3) {
    trace(cont);
}
于 2012-10-09T10:14:11.157 回答