我有以下调用文本文件的脚本:
/* first create a new instance of the LoadVars object */
myVariables = new LoadVars();
myVariables.load("myFile.txt");
myVariables.onLoad = function(getreading):String{
var ODOMETER2:String=myVariables.ACADEMICWATER;
return ODOMETER2;
trace (ODOMETER2);
}
trace(getreading());
文本文件包含以下内容:
ACADEMICWATER=3002&elec=89
我可以将3002的值导入到函数中,我可以跟踪它。但是,我应该能够使用trace(getreading())在函数外部跟踪它;如最后一行所示。这只返回“UNDEFINED”值。我很难过。
答案 0 :(得分:1)
您正在声明匿名函数(请参阅AS3 Syntax and language / Functions),该名称无法引用。 getreading
在您的代码中声明为此函数的无类型参数。
如果你想trace
这个函数的结果,那么你应该像这样声明一个命名函数:
function getReading(): String {
var ODOMETER2:String=myVariables.ACADEMICWATER;
return ODOMETER2;
}
myVariables.onLoad = getReading;
trace(getReading());
答案 1 :(得分:0)
getreading
不是函数的名称,而是在myVariables
对象的onLoad事件上运行的匿名函数的参数名称。
将变量ODOMETER2
放在函数外部,并在匿名函数内设置它的值。然后您也可以在函数外部访问它。
/* first create a new instance of the LoadVars object */
var ODOMETER2:String;
myVariables = new LoadVars();
myVariables.load("myFile.txt");
myVariables.onLoad = function(){
ODOMETER2=myVariables.ACADEMICWATER;
}
trace(ODOMETER2);
答案 2 :(得分:0)
LoadVars.onLoad
是一个事件处理程序。一旦完成异步加载操作,它就会被LoadVars
调用。它采用布尔参数,表示操作成功或失败。它没有返回任何东西。
在该功能中,您通常会根据收到的数据进行操作,例如存储和处理数据。这是一个非常简单的示例,显示了一些基本用例:
var ODOMETER2:String;
var myVariables = new LoadVars();
myVariables.load("myFile.txt");
myVariables.onLoad = function(success) {
trace(success);
ODOMETER2 = myVariables.ACADEMICWATER;
processResults();
}
function processResults() {
trace(ODOMETER2);
trace(myVariables.ACADEMICWATER);
}
// traces:
// true
// 3002
// 3002