2010-02-21 18 views
5

Tengo un pequeño swf de prueba para probar la invocación de una función de ActionScript (3.0) desde JavaScript. Estoy utilizando la documentación de Flash como referencia: (http://www.adobe.ca/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000340.html) Cuando se carga la página se me presenta un error de Flash Player:Error de seguridad al intentar llamar a la función de ActionScript desde JS

SecurityError: Error #2060: Security sandbox violation: ExternalInterface caller file: c:/externalinterface.swf cannot access file: c:\myhtml.html 
at flash.external::ExternalInterface$/_initJS() 
    at flash.external::ExternalInterface$/addCallback() 
    at externalinterface_fla::MainTimeline/frame1() 

Este es el código ActionScript:

import flash.external.ExternalInterface 

function callMe(name:String):String{ 

    return "busy signal"; 

    } 

    ExternalInterface.addCallback("myFunction",callMe); 

Y la JS :

<script type="text/javascript" language="javascript"> 
    function callSwf() { 
     var callResult = flashObject.myFunction("Nick"); 
     alert(callResult); 
    } 

</script> 

Por último, el objeto HTML:

<object width="550" height="400"> 
<param name="movie" value="externalinterface.swf"> 
<embed src="externalinterface.swf" width="550" height="400"> 
</embed> 
</object> 

¿Cómo solucionamos esto?

+3

en su html ¿permite la ejecución de scripts? params.allowscriptaccess = "always" –

Respuesta

6

si prueba en línea o en localhost, debería funcionar si tuviera el parámetro allowcriptaccess = "true" como dijo el domo. Si está probando con el protocolo file: //, debe permitir que su unidad entre en las opciones de seguridad de Flash Player.

+0

Agregué la ruta swf local en mi configuración de seguridad global y el error desapareció. – Nick

+4

Para cualquier otra persona, la configuración de seguridad global se edita en http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html – Patrick

Cuestiones relacionadas