2

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

4

1 回答 1

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.");
}
于 2012-12-14T01:35:46.993 回答