Laden von InhaltenFlash Player 9 und höher, Adobe AIR 1.0 und höher Flash Player- und AIR-Inhalte können zahlreiche andere Inhaltstypen laden, wie zum Beispiel:
Laden von SWF-Dateien und Bildern mit der Loader-KlasseMit der Loader-Klasse können Sie SWF-Dateien und Bilder (JPG-, GIF- oder PNG-Dateien) laden. Jede SWF-Datei, außer SWF-Dateien in der „local-with-filesystem“-Sandbox, kann SWF-Dateien und Bilder aus einer beliebigen Netzwerkdomäne laden. Nur SWF-Dateien in lokalen Sandboxen können SWF-Dateien und Bilder aus dem lokalen Dateisystem laden. Dateien in der „local-with-networking“-Sandbox können nur lokale SWF-Dateien laden, die sich in der „local-trusted“- oder der „local-with-networking“-Sandbox befinden. SWF-Dateien in der „local-with-networking“-Sandbox können neben SWF-Dateien auch andere lokale Inhalte (z. B. Bilder) laden, sie können jedoch nicht auf die Daten im geladenen Inhalt zugreifen. Wenn Sie eine SWF-Datei aus einer nicht vertrauenswürdigen Quelle laden (etwa einer Domäne, die nicht mit der SWF-Stammdatei des Loader-Objekts übereinstimmt), empfiehlt es sich, eine Maske für das Loader-Objekt zu definieren. Dadurch wird verhindert, dass der geladene Inhalt (der dem Loader-Objekt untergeordnet ist) in Bereichen der Bühne gezeichnet wird, die außerhalb dieser Maske liegen. Ein Beispiel hierfür finden Sie im folgenden Code: import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr); Wenn Sie die load()-Methode des Loader-Objekts aufrufen, können Sie einen context-Parameter angeben, bei dem es sich um ein LoaderContext-Objekt handelt. Die LoaderContext-Klasse umfasst drei Eigenschaften, mit denen Sie den Kontext definieren können, wie der geladene Inhalt verwendet werden kann:
Weitere Informationen finden Sie unter Festlegen des Ladekontexts. Eine wichtige Eigenschaft eines Loader-Objekts ist contentLoaderInfo, bei der es sich um ein LoaderInfo-Objekt handelt. Im Gegensatz zu den meisten anderen Objekten wird ein LoaderInfo-Objekte von der ladenden SWF-Datei und dem geladenen Inhalt gemeinsam genutzt und beide Parteien können immer darauf zugreifen. Handelt es sich bei dem geladenen Inhalt um eine SWF-Datei, kann sie über die Eigenschaft DisplayObject.loaderInfo auf das LoaderInfo-Objekt zugreifen. LoaderInfo-Objekte enthalten Informationen wie den Ladefortschritt, die URLs der ladenden und der geladenen Dateien, die Vertrauensbeziehungen zwischen ladender und geladener Datei und andere Daten. Weitere Informationen finden Sie unter Überwachen des Ladefortschritts. Laden von Sound und VideoJeglicher Inhalt, mit Ausnahme von Inhalt in der Sandbox „local-with-filesystem“, kann mit den Methoden Sound.load(), NetConnection.connect() und NetStream.play() Sound und Video aus dem Netzwerk laden. Nur Inhalt in der Sandbox „local-with-filesystem“ und in der AIR-Anwendungs-Sandbox kann Medien aus dem lokalen Dateisystem laden. Nur Inhalt in der Sandbox „local-with-filesystem“, der AIR-Anwendungs-Sandbox und der local-trusted-Sandbox kann auf Daten in diesen geladenen Dateien zugreifen. Es gelten noch weitere Einschränkungen für den Zugriff auf Daten in geladenen Medien. Weitere Informationen finden Sie unter Zugriff auf geladene Medien als Daten. Laden von SWF-Dateien und Bildern mit dem <img>-Tag in einem TextfeldMit dem <img>-Tag können Sie SWF-Dateien und Bitmaps in ein Textfeld laden. Dies wird im folgenden Beispielcode gezeigt: <img src = 'filename.jpg' id = 'instanceName' > Auf Inhalte, die auf diese Weise geladen wurden, können Sie mit der getImageReference()-Methode der TextField-Instanz zugreifen, wie im folgenden Code dargestellt: var loadedObject:DisplayObject = myTextField.getImageReference('instanceName');
Beachten Sie jedoch, dass SWF-Dateien und Bilder, die auf diese Weise geladen wurden, einer ihrem Ursprung entsprechenden Sandbox zugewiesen werden. Wenn Sie eine Bilddatei mit dem <img>-Tag in einem Textfeld laden, kann der Zugriff auf die Daten im Bild durch eine URL-Richtliniendatei gestattet sein. Sie können das Vorhandensein einer Richtliniendatei prüfen, indem Sie ein checkPolicyFile-Attribut zum <img>-Tag hinzufügen, wie im folgenden Code dargestellt: <img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' > Wenn Sie eine SWF-Datei mit einem <img>-Tag in einem Textfeld laden, können Sie den Zugriff auf die Daten dieser SWF-Datei über einen Aufruf der Methode Security.allowDomain() gewähren. Verwenden Sie jedoch ein <img>-Tag in einem Textfeld, um eine externe Datei zu laden (anstelle einer Bitmap-Klasse, die in Ihre SWF-Datei eingebettet ist), wird automatisch ein Loader-Objekt als untergeordnetes Element des TextField-Objekts erstellt. Die externe Datei wird in diesen Loader geladen, als ob Sie in ActionScript ein Loader-Objekt zum Laden der Datei verwendet hätten. In diesem Fall gibt die Methode getImageReference() den automatisch erstellten Loader zurück. Für den Zugriff auf dieses Loader-Objekt ist keine Sicherheitsprüfung erforderlich, da es sich in der gleichen Sicherheits-Sandbox wie der aufrufende Code befindet. Wenn Sie jedoch auf die content-Eigenschaft des Loader-Objekts verweisen, um auf die geladenen Medien zuzugreifen, kommen Sicherheitsregeln zum Einsatz. Handelt es sich bei dem Inhalt um ein Bild, müssen Sie eine URL-Richtliniendatei implementieren. Handelt es sich bei dem Inhalt um eine SWF-Datei, muss der Code in der SWF-Datei die Methode allowDomain() aufrufen. Adobe AIRIn der Anwendungs-Sandbox werden <img>-Tags in Textfeldern ignoriert, um Phishing-Angriffe zu verhindern. Außerdem darf Code, der in der Anwendungs-Sandbox ausgeführt wird, die allowDomain()-Methode der Security-Klasse nicht aufrufen. Über RTMP-Server bereitgestellte InhalteFlash Media Server verwendet zur Bereitstellung von Daten, Audio und Video das Real-Time Media Protocol (RTMP-Protokoll). Sie können diese Medien laden, indem Sie die connect()-Methode der NetConnection-Klasse verwenden und dabei eine RTMP-URL als Parameter übergeben. Flash Media Server kann basierend auf der Domäne der anfordernden Datei Verbindungen einschränken und verhindern, dass Inhalte heruntergeladen werden. Weitere Informationen finden Sie in der Onlinedokumentation zu Flash Media Server unter www.adobe.com/go/learn_fms_docs_de. Damit Grafik- und Sounddaten zur Laufzeit mithilfe der Methoden BitmapData.draw() und SoundMixer.computeSpectrum() aus RTMP-Streams extrahiert werden können, müssen Sie den Zugriff auf dem Server zulassen. Verwenden Sie die serverseitigen ActionScript-Eigenschaften Client.videoSampleAccess und Client.audioSampleAccess, um den Zugriff auf bestimmte Verzeichnisse auf dem Flash Media Server zu gewähren. Weitere Informationen finden Sie im Handbuch Server-Side ActionScript Language Reference. |
|