此代码不起作用。 (将变量从AS3传递给Javascript)
AS3(声明变量并传递给Javascript)
var newHeight:Number = new Nubmer();
newHeight = 2;
goHeight();
function goHeight():void{
if (ExternalInterface.available){
ExternalInterface.call("funYa1()", newHeight);
}
}
在HTML文档中:
<script type="text/javascript">
function funYa1(nH) {
alert("newHeight " + nH);
}
</script>
警告说nH未定义。有什么想法吗?
答案 0 :(得分:3)
第一行中有拼写错误
var newHeight:Number = new Nubmer();
应该是
var newHeight:Number = new Number();
你使用swfObject嵌入swf吗? 如果是,请尝试添加:
<param name="allowscriptaccess" value="always">
您也可以尝试传递硬编码字符串而不是newHeight,以查看变量是否存在问题:
ExternalInterface.call("funYa1()", "test");
这是一篇关于as3和javascript通信的好文章:
http://circlecube.com/2010/12/actionscript-as3-javascript-call-flash-to-and-from-javascript/
答案 1 :(得分:2)
警告说nH
未定义,因为您在通话中有大括号。在这种情况下,参数不会传递。替换行
ExternalInterface.call("funYa1()", newHeight);
与
ExternalInterface.call("funYa1", newHeight);
和参数应该传递给Javascript。