Javascript:从flash调用Javascript函数(swfObject)?

Javascript:从flash调用Javascript函数(swfObject)?,javascript,actionscript-3,flash,function-calls,Javascript,Actionscript 3,Flash,Function Calls,假设我有一个名为“data”的对象,它有一个名为“closeItem”的回调函数,该函数执行一些操作 所以我有一个flash文件,它有一个关闭按钮。单击该按钮,我将调用此函数以关闭此项 问题是什么 如果我将这个“closeItemFunction”作为全局函数传递,它就可以正常工作 但是,如果一个用户将此函数作为“data.closeItem”传递,则不会传递;我不想犯些错误 所以我只想问这个 “flash是否只调用gobal范围的javascript函数”??简短回答(iirc);“是的”

假设我有一个名为“data”的对象,它有一个名为“closeItem”的回调函数,该函数执行一些操作

所以我有一个flash文件,它有一个关闭按钮。单击该按钮,我将调用此函数以关闭此项

问题是什么

如果我将这个“closeItemFunction”作为全局函数传递,它就可以正常工作

但是,如果一个用户将此函数作为“data.closeItem”传递,则不会传递;我不想犯些错误

所以我只想问这个


“flash是否只调用gobal范围的javascript函数”??

简短回答(iirc);“是的”

也许可以打电话四处走动

ExternalInterface.call("eval", "data.closeItem()")
简短回答(iirc);“是的”

也许可以打电话四处走动

ExternalInterface.call("eval", "data.closeItem()")

您可以将要执行的JavaScript封装在您声明并从ActionScript调用的匿名函数中,如下所示:

ExternalInterface.call("function() { data.closeItem(); }");
ExternalInterface.call("(function() { data.closeItem(); })()");
使用上述语法调用和执行函数似乎有点奇怪,但如果您愿意,可以使声明和单独调用更加明确,如下所示:

ExternalInterface.call("function() { data.closeItem(); }");
ExternalInterface.call("(function() { data.closeItem(); })()");

您可以将要执行的JavaScript封装在您声明并从ActionScript调用的匿名函数中,如下所示:

ExternalInterface.call("function() { data.closeItem(); }");
ExternalInterface.call("(function() { data.closeItem(); })()");
使用上述语法调用和执行函数似乎有点奇怪,但如果您愿意,可以使声明和单独调用更加明确,如下所示:

ExternalInterface.call("function() { data.closeItem(); }");
ExternalInterface.call("(function() { data.closeItem(); })()");

为我们提供一些代码怎么样?那个“一些flash错误”是什么?我的问题实际上是“flash是否只调用gobal范围的javascript函数”?它没有调用我的JavaScript函数,所以“我猜想可能是一些flash错误:)”给我们提供一些代码怎么样,以及“一些flash错误”是什么?我的问题实际上是“flash是否只调用gobal范围的JavaScript函数”?它没有调用我的JavaScript函数,所以“我猜想可能是一些flash错误:)”