Pregunta

No puedo recibir una llamada de JSFL a un SWFPanel a trabajar a través de la API ExternalInterface. Estoy siguiendo las instrucciones aquí como sigue:

En el Panel de SWF, en escena 1 acción 1, I registrar una función de devolución de llamada con ExternalInterface:

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

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

A continuación, en mi JSFL estoy iteración a través de los paneles SWF para localizar el panel SWF y después de invocar el método appendTrace de la siguiente manera:

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 línea se llama myPanel.call("appendTrace", traceString); pero nada se traza, anexa y se lanza ningún error por lo que parece que ExternalInterface no está llamando el método appendTrace. Parece que todo está configurado correctamente, pero han intentado varias cosas y que no está funcionando. ¿Cuáles son algunos errores comunes con este enfoque?

¿Fue útil?

Solución

El problema era que yo estaba usando AS2 en lugar de AS3. El SWFPanel anteriormente <-> comunicación JSFL requiere paneles SWF AS3. Una vez que me pasa a AS3 funcionó.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top