如何将一个对象数组从actionscript传递给javascript

时间:2012-12-14 01:15:48

标签: javascript actionscript-3 actionscript

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,如何解决这个问题?

1 个答案:

答案 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.");
}