0

javascriptからactionscriptを呼び出す方法を見つけましたが、いくつかの引数も渡す必要があります(動的)、どうすればこれを行うことができますか?

TIA。

4

2 に答える 2

0

私の経験では、フラッシュオブジェクトで関数を呼び出す必要があります。

次のjavascript関数を使用してフラッシュオブジェクトを取得します

function GetSWF(id) {
    if (window.document[id] != null)
        if (window.document[id].length == null)
            return window.document[id];
    else
        return window.document[id][1];
    else
    if  (typeof(document[id]) == 'undefined')
        return $('#'+id)[0];
    else
    if (document[id].length == null)
        return document[id];
    else
        return document[id][1];
}

次に、次のように関数を呼び出します

var flash = GetSWF('idOfSWF');
if (typeof flash.sendToActionScript === 'function'){
    flash.sendToActionScript(yourObject,orParameter);
}

AS3は次のようになります

if (ExternalInterface.available){
    ExternalInterface.addCallback("sendToActionScript",receivedFromJavascript);
}
function receivedFromJavascript(myObject:Object,myParameter:String):void{
    // Do something
}

お役に立てれば。

編集:

GetSWF関数でjQueryを少し使用していることに気づきました。見て、それを削除してみます。(その行ですreturn $('#'+id)[0];

于 2012-08-09T22:41:11.207 に答える
0

これを試してください:

ExternalInterface.addCallback("sendMsg", generateMsg);

function generateMsg(str):void {
    trace(str);
}

JS:

msg = "";
function setMsg(myMsg) {
    msg = myMsg;
    SendDataToFlashMovie(myMsg);
}
于 2012-08-09T18:32:01.870 に答える