フラッシュJSFLのExternalInterfaceの問題
-
18-09-2019 - |
質問
私は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に切り替えたら、それが働いています。
所属していません StackOverflow