当跟踪从flash as2中的文本文件加载的变量时,我得到了未定义的值



我使用的是Swishmax 4,我想从flash的外部txt文件中加载一个变量
我已经创建了一个动态文本来加载我的变量。它运行得很好,但当我想跟踪变量时,我会得到一个未定义的值。这是我的代码:

file.txt

&cont=data

代码

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

我该怎么办?

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

onSelfEvent (load) {
    this.loadVariables("file.txt");
}
onFrame (3) {
    trace(cont);
}

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

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

文件txt

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

swi代码:

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文件将陷入无休止的循环。因此,您最好尝试加载Vars类,或者为此目的使用XML。

问候,取消

最新更新