我不能从JSFL调用一个SWFPanel通过ExternalInterface的API工作。我下面的说明这里如下:

在SWF面板,在场景1动作1,I注册回调函数与ExternalInterface的:

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

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

然后在我JSFL我迭代通过瑞士法郎板以定位该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方法。似乎一切都设置正确,但尝试了好几种东西,它不工作。什么是这种方法的一些常见的问题?

有帮助吗?

解决方案

的问题是,我用AS2 AS3代替的。上述SWFPanel < - > JSFL通信需要AS3 SWF面板。一旦我切换到AS3它的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top