質問

私はExternalInterfaceのAPIを介して動作するようにSWFPanelにJSFLからのコールを取得することはできません。私はこちら次のように:

SWFパネルで、シーン1アクション1で、私はExternalInterfaceのでコールバック関数を登録します:

ExternalInterface.addCallback("appendTrace", this, appendTrace);

function appendTrace(traceString:String):Void {
    trace("appendTrace");
    traceBox.text = traceBox.text + traceString;
}

その後、私のJSFLに私はswfファイルパネルを配置するために、SWFパネルを反復処理し、その後、次のようにappendTraceメソッドを呼び出しています:

appendTrace("Received trace");
fl.trace("got here");
function appendTrace(traceString) {
var panels = fl.swfPanels;
var myPanel;
for (var i = 0; i < panels.length; i++) {
    if (panels[i].name == 'MyPanel') {
        myPanel = panels[i];
        break;
    }
}
if (myPanel) {
    myPanel.call("appendTrace", traceString);
} else {
    fl.trace("Can't find Panel.  Is it installed?");
}
}

ラインmyPanel.call("appendTrace", traceString);が呼び出されますが、何も、トレースされていない追加され、ExternalInterfaceのはappendTraceメソッドを呼び出していないことが表示されますので、エラーがスローされません。すべてが正しくセットアップですが、いくつかのことを試してみました、それが働いていないようです。このアプローチにはいくつかの一般的な落とし穴は何ですか?

役に立ちましたか?

解決

問題は、私はAS3の代わりにAS2を使用していたということでした。上記SWFPanel < - > JSFL通信がAS3のSWFパネルが必要です。私はAS3に切り替えたら、それが働いています。

scroll top