Flash JSFL ExternalInterface проблема - PullRequest
0 голосов
/ 04 февраля 2010

Я не могу позвонить из JSFL в SWFPanel для работы через API ExternalInterface. Я следую инструкциям здесь следующим образом:

На панели 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. Кажется, что все настроено правильно, но перепробовал несколько вещей, и это не работает. Каковы некоторые распространенные ошибки с этим подходом?

1 Ответ

0 голосов
/ 12 февраля 2010

Проблема заключалась в том, что я использовал AS2 вместо AS3.Для вышеуказанной связи SWFPanel <-> JSFL требуются панели AS3 SWF.Как только я переключился на AS3, это сработало.

...