javascript flash actionscript actionscript-2 externalinterface

javascript - ExternalInterface.call no funciona



flash actionscript (1)

¿Puedes verificar que allowScriptAccess se establezca en verdadero en el código de inserción?

Prueba esto:

var isAvailable:Boolean = ExternalInterface.available; trace(isAvailable);

También desea utilizar ExternalInterface de esta manera, con sus argumentos pasados ​​como la segunda variable:

ExternalInterface.call("player_DoFSCommand",args);

o

ExternalInterface.call("console.log","testing...");

Estoy intentando ExternalInterface.call() desde dentro de mi SWF.

Tenga en cuenta que la llamada proviene de un SWF que he incrustado en otro SWF (el SWF _root que no tengo control).

Aquí está mi JavaScript:

function player_DoFSCommand(command, args) { args = String(args); command = String(command); var arrArgs = args.split(g_strDelim); switch (command) { case "CC_ClosePlayer": console.log("yo"); break; default: // alert(command); break; } }

Aquí está mi código AS2:

import flash.external.ExternalInterface; var quiz = _root; quiz.g_mcFrame.mcFinish.swapDepths(quiz.getNextHighestDepth()); quiz.g_mcFrame.mcFinish._visible = false; quiz.oSlide.m_oInteraction.m_oVariableMgr.m_arrBoolResumeData = false; var arrVars:Object = quiz.oSlide.m_oActionHandler.m_oFrame.m_oVariableMgr.m_arrVariables; var args:Array = [ arrVars[2].m_nNumber, // Points awarded arrVars[3].m_nNumber, // Max points arrVars[5].m_nNumber, // Pass percentage arrVars[6].m_nNumber, // Pass points arrVars[7].m_nNumber, // Score percent arrVars[10].m_strString // Result ]; ExternalInterface.call(''player_DoFSCommand("CC_ClosePlayer", args)''); ExternalInterface.call(''console.log("hello")'');

El problema es ExternalInterface.call(''player_DoFSCommand("CC_ClosePlayer", args)'') no funciona, o al menos "yo" no aparece en la consola como se esperaba.

La secuencia de comandos definitivamente se carga cuando se llama ExternalInterface. La segunda llamada funciona y "hola" aparece en la consola, sin embargo, la primera función no se activa.

Puedo verificar que la función funciona tecleando directamente en la consola player_DoFSCommand("CC_ClosePlayer", args) y se registra exitosamente.