2010-02-21 2 views
5

Ich habe ein kleines Test-SWF, um den Aufruf einer ActionScript (3.0) -Funktion von JavaScript zu testen. Ich bin mit der Flash-Dokumentation als Referenz: (http://www.adobe.ca/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000340.html) Beim Laden der Seite I mit einem Flash Player Fehlern präsentierten am:Sicherheitsfehler beim Aufruf der ActionScript-Funktion von 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() 

Dies ist das Actionscript ist:

import flash.external.ExternalInterface 

function callMe(name:String):String{ 

    return "busy signal"; 

    } 

    ExternalInterface.addCallback("myFunction",callMe); 

Und die JS :

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

</script> 

Schließlich wird das HTML-Objekt:

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

Wie arbeiten wir das?

+3

in Ihrem HTML erlauben Sie Skriptausführung? params.allowscriptaccess = "immer" –

Antwort

6

Wenn Sie online oder localhost testen, sollte es funktionieren, wenn Sie den Parameter allowscriptaccess = "true" wie Dome sagte hatte. Wenn Sie mit dem Protokoll file: // testen, müssen Sie Ihr Laufwerk in den Flash Player-Sicherheitsoptionen zulassen.

+0

Ich habe den lokalen swf-Pfad in meinen globalen Sicherheitseinstellungen hinzugefügt und der Fehler ist verschwunden. – Nick

+4

Für alle anderen Benutzer werden Ihre globalen Sicherheitseinstellungen unter http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html bearbeitet – Patrick