AS3:
ExternalInterface.addCallback('getParams', getParams);
function getParams()
{
var params:Array = new Array();
for(i = 0; i < images.length; i++)
{
params.push(picWin.getChildAt(i));
}
return params;
}
JS:
$('#button').click(function(){
var res = document.getElementById("swfobject").getParams();
alert(res);
})
所以在我得到一些NPO对象错误的错误后,无法弄明白它意味着什么,但是如果我传递一个数组本身就可以了,如果我传递一个对象本身就可以了,但是当我传递一个对象数组,它给我一个错误NPO,如何解决这个问题?
答案 0 :(得分:2)
要从AS传递给JS,您想使用
ExternalInterface.call("myJsFunction", myArray);
对于此示例,您需要2个JS函数:第一个处理单击并向swf发送请求。第二个是swf用你的返回值调用的:
AS3:
ExternalInterface.addCallback('getParams', getParams); // listens for JS to getParams
function getParams()
{
var params:Array = new Array();
for(i = 0; i < images.length; i++)
{
params.push(picWin.getChildAt(i));
}
ExternalInterface.call("handleParams", params); // calls a js function and passes params
}
JS:
$('#button').click(handleClick)
function handleClick(event){
document.getElementById("swfobject").getParams(); //sends request to swf
}
function handleParams(params){ // handles response from swf
alert("You got an array with " + params.length + " elements back from flash.");
}