Gewusst wie: ausführen einer externen SWF-innerhalb einer Flex-Anwendung?
EDIT: Aufgrund der Antwort, die ich ändern Sie den code gepostet. Ich habe die Security.allowDomain("*")
Zeile und diese Zeile wirft mir einen Fehler. Also, wie kann das gemacht werden?
Möchte ich ausführen einer Action Script 3.0-Anwendung in eine Flex-Anwendung. Dazu habe ich Folgendes getan:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication windowComplete="loadSwfApplication()" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function loadSwfApplication()
{
//The next line throws me an error.
Security.allowDomain("*");
var urlRequest:URLRequest = new URLRequest("path/to/the/application.swf");
swfLoader.addEventListener(Event.COMPLETE, loadComplete);
swfLoader.load(urlRequest);
}
private function loadComplete(completeEvent:Event)
{
var swfApplication:* = completeEvent.target.content;
swfApplication.init(); //this is a Function that I made it in the Root class of swfApplication
}
]]>
</mx:Script>
<mx:SWFLoader id="sfwLoader"/>
</mx:WindowedApplication>
Das problem ist, dass in der Berufung swfApplication.init();
den AIR Player wirft mir eine exception:
Sicherheits-sandbox-Verletzung: Aufrufer file:///Pfad/zu/den/Anwendung.swf kann nicht zugreifen Bühne, die im Besitz von app:/SWFApplicationLoader.swf.
Ist dies, weil irgendwo in application.swf
ich den Schritt wie folgt:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction);
root.stage.stageFocusRect = false;
Wie kann ich laden Sie diese swf-Anwendung und VERWENDEN Sie die Bühne ohne Probleme?
InformationsquelleAutor Lucas Gabriel Sánchez | 2010-04-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, laden Sie Ihre
SWF
vorübergehend in einByteArray
zu laden und dann mit IhremSWFLoader
.Vergessen Sie nicht die
allowCodeImport
zu wahren, da die SWF hat als code im inneren.Natürlich sicher sein, dass deine geladenen swf ist sicher genug für Ihre Anwendung, da es Zugriff auf alle Ihre Eigentum.
Keine Ahnung warum das funktioniert mit einem byte-array, aber nicht die swfloader-Komponente?
InformationsquelleAutor Patrick
Wenn Sie geladen werden von verschiedenen domains, die Sie gehen zu haben, um eine Sicherheits-Ausnahme - http://livedocs.adobe.com/flex/3/html/help.html?content=05B_Security_08.html
wenn es sich um ein lokal ausführen, sind Sie wahrscheinlich gehen zu müssen, fügen Sie Sie der Liste der vertrauenswürdigen Dateien oder Ordner in den settings-manager - http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html#117502
SecurityError: Error #3207: Application-sandbox content cannot access this feature. at flash.system::Security$/allowDomain()
Und Es ist bereits Hinzugefügt, um den vertrauenswürdigen Dateien im settings-manager.
InformationsquelleAutor greggreg
Unter der Annahme, dass die externe SWF-Datei auch in dem Verzeichnis der Anwendung, die Sie könnten versuchen, laden Sie es mit der
app:/
Schema:Dass es in dem gleichen Sicherheitskontext wie der Hauptanwendung.
InformationsquelleAutor Richard Szalay
Eine Sache, die Sie betrachten wünschen können, ist, dass, wenn Sie versuchen, eine SWF-Datei aus, in Ihrer Anwendung Verzeichnis, in LUFT, LUFT schränkt die Ausführung von Dateien. Wenn Sie kopieren Sie die Datei in eine temp Datei und führen Sie es (zusammen mit
allowLoadBytesCodeExecution
eingestellttrue
), dann funktioniert es.InformationsquelleAutor infomaniac
funktioniert es nicht für Flex-Projektoren.
Nur wir verwenden SWFLoader-und LocalConnection, weil Sie die Kommunikation zwischen externen swf-und swf-Hauptdatei. Danke für die Unterstützung!
Kann Sie Lesen, meine tutorial von Adobe ' s Forum
Es ist sehr besser als MovieClip oder Objekt-Anrufer
Danke für die Lösung Lösung 🙂
Beste Grüße, Jens
InformationsquelleAutor SourceSkyBoxer