Question

Je ne peux pas recevoir un appel de JSFL à un SWFPanel de travailler via l'API ExternalInterface. Je suis les instructions ici comme suit:

Dans le panneau SWF, dans une scène en une action 1, j'enregistrer une fonction de rappel de ExternalInterface:

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

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

Alors dans mon JSFL j'itérer à travers les panneaux de swf pour localiser le panneau swf puis appeler la méthode appendTrace comme suit:

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?");
}
}

La myPanel.call("appendTrace", traceString); ligne est appelée, mais rien est tracée, Concaténé et aucune erreur est lancée il semble donc que ExternalInterface ne demande pas la méthode appendTrace. Il semble que tout est configuré correctement, mais ont essayé plusieurs choses et cela ne fonctionne pas. Quels sont les pièges courants avec cette approche?

Était-ce utile?

La solution

La question était que j'utilisais AS2 AS3 au lieu de. Le SWFPanel ci-dessus <-> de communication JSFL nécessite panneaux SWF AS3. Une fois que je suis passé à AS3, il a travaillé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top