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オブジェクトエラーが出た後、意味が分からないのですが、配列自体を渡せばOK、オブジェクト自体を渡せばOKなのですが、配列を渡すとオブジェクトのエラー NPO が表示されます。これを修正するにはどうすればよいですか?

4

1 に答える 1

2

ASから使いたいJSに渡すには

ExternalInterface.call("myJsFunction", myArray);

この例では、2 つの JS 関数が必要です。最初の関数はクリックを処理し、swf に要求を送信します。2 番目は、戻り値を使用して 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 に答える