문제

외부 인터페이스 API를 통해 작업하기 위해 JSFL에서 SWFPANEL로 전화를받을 수 없습니다. 나는 지시를 따르고있다 여기 다음과 같이 :

SWF 패널에서 Scen

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 메소드를 호출하지 않는 것으로 보입니다. 모든 것이 제대로 설정되어 있지만 몇 가지를 시도했지만 작동하지 않는 것 같습니다. 이 접근법을 가진 일반적인 gotchas는 무엇입니까?

도움이 되었습니까?

해결책

문제는 AS3 대신 AS2를 사용하고 있다는 것입니다. 위의 SWFPANEL <-> JSFL 통신에는 AS3 SWF 패널이 필요합니다. AS3로 전환하면 작동했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top