似乎无法将变量从AS3传递给Javascript

时间:2014-03-29 03:07:10

标签: javascript actionscript-3 flash

此代码不起作用。 (将变量从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未定义。有什么想法吗?

2 个答案:

答案 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。