2014-03-29 50 views
2

此代码无效。 (从AS3传递变量为Javascript)似乎无法将AS3的变量传递给Javascript

AS3(声明变量,并传递到JavaScript)的

var newHeight:Number = new Nubmer(); 
newHeight = 2; 

goHeight(); 

function goHeight():void{ 
if (ExternalInterface.available){ 
ExternalInterface.call("funYa1()", newHeight); 
} 

} 

在HTML的Docment:

<script type="text/javascript"> 

function funYa1(nH) {  
alert("newHeight " + nH); 
}   

</script> 

警报说nH的是不确定的。有任何想法吗?

回答

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/

2

警报说nH是不确定的,因为你在呼叫中有大括号。在这种情况下,参数不被传递。替换该行

ExternalInterface.call("funYa1()", newHeight); 

ExternalInterface.call("funYa1", newHeight); 

和参数应交付为JavaScript。

+0

!!谢谢 !! – user2268083

+0

+1斑点 –