2010-12-29 16 views
0

Hier ist meine Situation - Ich habe eine 3D-Engine in C++ und DirectX geschrieben. Es verwendet Awesomium für GUI-Fenster.Entspannte Flash-Sicherheit für lokale swf Zugriff auf lokale Dateien

Dies ermöglicht mir, HTML und Javascript für die GUI zu verwenden, dann rendern Sie es in einer 3D-Umgebung. Awesomium umschließt den Chromium-Browser, um die HMTL zu rendern. Alles funktioniert gut einschließlich SWF-Wiedergabe.

Mein Problem kommt, wenn ich versuche, mit dem SWF-Film mit Javascript (Awesomium erlaubt mir, Javascript aus meiner C++ - Anwendung aufrufen) und Actionscripts ExternalInterface. Ich bekomme den gefürchteten Sicherheitsfehler. Wenn Sie der SWF-Datei verschiedene Anweisungen hinzufügen und den Pfad zur SWF-Datei zur Liste der globalen Sicherheitseinstellungen des Flash-Players hinzufügen, funktioniert sie.

Jetzt kann ich nicht genau erwarten, dass meine Endbenutzer ihren Flash Player Global Security entsprechend ändern, also hoffe ich, dass es einen Workaround gibt.

Ich habe eine lokale Anwendung, die eine lokale HTML-Datei aufruft, die eine lokale SWF-Datei lädt. Meine lokale Anwendung kommuniziert lokal mit dieser lokalen SWF-Datei. Keine Netzwerktransaktion

Warum also das Sandboxing? Kann ich dem SWF-Film nicht sagen, dass er einem bestimmten Absender, meiner Anwendung, vertrauen soll? Ich bin übrigens auf Flash 8/AS2.

Danke für Ihre Hilfe

Simon

Antwort

0

Ich bin nicht sicher, dass diese Einstellungen in Ihrem Fall anwendbar sind, oder wenn Sie bereits sie verwenden, aber zwei Dinge, die Sie tun können, die Sicherheit zu „entspannen“ für die Kommunikation zwischen Actionscript und JavaScript sind:

in Actionscript: System.security.allowDomain("*")

im <object> und/oder <embed>-Tag für die swf in HTML, stellen Sie den allowScriptAccess Parameter auf "immer".

+0

Leider habe ich beide ohne Wirkung ausprobiert. Von den Dokumenten scheint es, dass die allowDomain ("*") funktionieren sollte, aber ich sehe nicht, warum es nicht funktioniert. – sipi