指令在函数外部工作,但不在ActionScript 2 Flash内部工作

时间:2010-06-03 16:35:24

标签: flash actionscript

我不知道为什么当我用这种方式编写时,这个工具会起作用:

lv = new LoadVars();
lv.sVar1 = "value1";
lv.sVar2 = "value2";
lv.onLoad = onLoadCallBack;
lv.sendAndLoad("http://localhost/tiempo/flash/rsstoflash.php?" + new Date(), lv, "POST");

但是如果以这种方式将此代码放入函数中:

function carga() {
lv = new LoadVars();
lv.sVar1 = "value1";
lv.sVar2 = "value2";
lv.onLoad = onLoadCallBack;
lv.sendAndLoad("http://localhost/tiempo/flash/rsstoflash.php?" + new Date(), lv, "POST");
}
carga();

编译告诉我:

  

打开网址时出错   '文件:/// C | / Web服务器/网络/蒂恩波/闪光灯/未定义'   打开URL时出错   '文件:/// C | / Web服务器/网络/蒂恩波/闪光灯/未定义'   打开URL时出错   '文件:/// C | /网络服务器/网络/蒂恩波/闪光/未定义'

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一个问题可能是范围。

当你在函数内声明你的var lv时,它是一个局部变量。因此,一旦调用它的函数完成就不存在。

因此,这可以防止lv的回调函数被触发。

假设您在代码中的其他位置声明了onLoadCallBack函数,那么解决此问题的方法可能是全局声明var lv = new LoadVars();(即在函数外部),或者生成数组或其他全局数据用于容纳加载器实例的容器(如果你想一次运行多个,比如说)。

这样的事情看起来像:

var lv_array = new Array();

function carga() {
var lv = new LoadVars();
lv.sVar1 = "value1";
lv.sVar2 = "value2";
lv.onLoad = onLoadCallBack;
lv.sendAndLoad("http://localhost/tiempo/flash/rsstoflash.php?" + new Date(), lv, "POST");
}
carga();