EDIT: Durch die Antwort, die ich den Code geschrieben ändern. Ich habe dieSecurity.allowDomain("*")
Zeile hinzugefügt und diese Linie wirft mir einen Fehler. Also, wie kann das gemacht werden?Wie führe ich eine externe SWF in einer Flex-Anwendung aus?
Ich will ein Action Script 3.0-Anwendung in eine Flex-Anwendung auszuführen. Um dies zu tun 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();
der AIR-Spieler wirft mich eine Ausnahme:
Sicherheits-Sandbox-Verletzung: Aufrufer file: /// Pfad /to/the/application.swf kann nicht auf die Stage im Besitz der App: /SWFApplicationLoader.swf zugreifen.
Dies liegt daran, irgendwo in application.swf
ich die Bühne wie folgt verwenden:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction);
root.stage.stageFocusRect = false;
Wie kann ich diese swf-Anwendung geladen werden und die Bühne nutzen, ohne Probleme?
Funktioniert das auch auf mobilen Plattformen? Wenn ja, können Sie einen Flash Player für iOS schreiben. – sydd
Eine Idee, warum dies mit einem Byte-Array funktioniert, aber nicht mit der swfloader-Komponente? – buddyp450