鉴于我的网页上有一个名为 myVar 的全局 javascript 变量,我如何使用 javascript 从我的 flash 电影中访问变量 myVar 的值?
我看到很多使用外部接口从 actionscript 执行 javascript 的示例,但我无法找到使用 actionscript 将值返回到 Flash 电影的示例。
提前致谢。我希望我的问题足够清楚。
鉴于我的网页上有一个名为 myVar 的全局 javascript 变量,我如何使用 javascript 从我的 flash 电影中访问变量 myVar 的值?
我看到很多使用外部接口从 actionscript 执行 javascript 的示例,但我无法找到使用 actionscript 将值返回到 Flash 电影的示例。
提前致谢。我希望我的问题足够清楚。
ExternalInterface 的工作原理是允许 JavaScript 调用电影中的 ActionScript 函数,反之亦然。您可以选择从调用的函数接收返回值。这是一个非常简单的例子:
JavaScript:
<script language="JavaScript">
function getMyVar()
{
return myVar;
}
</script>
闪存/AS:
import flash.external.ExternalInterface;
var result:string = ExternalInterface.call("getMyVar");
您还可以提供一个匿名函数,将您的全局变量值返回给ExternalInterface.call
方法,如下所示:
ExternalInterface.call("function(){ return myGlobalVariable; }");
我注意到 Rex M 的回答有点不完整。
他是正确的使用...
import flash.external.ExternalInterface;
var result:string = ExternalInterface.call("getMyVar");
然后在你的javascript中你可以使用
<script language="JavaScript">
function getMyVar() {
return myVar;
}
</script>
然而,为了使用它,flash 电影必须在通过 http 访问的 html 中。不使用文件://
这是一个从 actionscript 到 javascript 的通信教程,反之亦然。 http://www.youtube.com/watch?v=_1a6CPPG-Og&feature=plcp
你也可以这样做:
ExternalInterface.call("eval","getVar=function(obj){return obj}");
var yourVar:String = ExternalInterface.call("eval","getVar(JSvar)");