【发布时间】:2013-07-25 19:53:31
【问题描述】:
我在 Flash 中有这个功能:
public function checkFile(file:String):Boolean{
var b:Boolean;
var responder:Responder = new Responder(function(reply:Boolean):void{
b=reply;
msg("vid_"+file+".flv "+ "exists? " + reply);
setState("ready");
status = "ready";
},
function(res:Object):void{
trace("checkFile call failed");
});
mync.call("checkFile",responder,"vid_"+file);
return b;
}
我可以确认reply 变量为真,但return b 最终为假:
这是我用来调用 flash 函数的 javascript:
function checkFile(){
alert(thisMovie("vidRecorder").checkFile(currentVid));
}
这会打开一个消息框,上面写着false,而闪存文件显示true
发生了什么事?如何修复它以使我的函数返回与 reply 相同的值?
【问题讨论】:
-
这是一个异步操作
-
@Pointy 哦不!这听起来很不祥,特别是因为你把它加粗了。让我查一下。
-
异步和回调的概念在this thread中有很好的解释。
标签: javascript actionscript-3 flash