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

Schreibe einen Kommentar