Paket | flash.display |
Klasse | public class Loader |
Vererbung | Loader DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
Unterklassen | AVLoader, FlexLoader |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
-Methode, um den Ladevorgang einzuleiten. Das geladene Anzeigeobjekt wird dem Loader-Objekt untergeordnet.
Verwenden Sie die URLLoader-Klasse, um Text oder Binärdaten zu laden.
Die Loader-Klasse setzt die folgenden übernommenen Methoden außer Kraft, da ein Loader-Objekt nur ein untergeordnetes Anzeigeobjekt besitzen kann, nämlich das Anzeigeobjekt, das geladen wird. Durch das Aufrufen der folgenden Methoden wird eine Ausnahme ausgelöst: addChild()
, addChildAt()
, removeChild()
, removeChildAt()
und setChildIndex()
. Um ein geladenes Anzeigeobjekt zu entfernen, müssen Sie das Loader-Objekt aus seinem übergeordneten DisplayObjectContainer-Child-Array entfernen.
iOS-Hinweise
In AIR-Anwendungen unter iOS können Sie nur eine SWF-Datei, die ActionScript enthält, aus dem Anwendungspaket laden. Diese Beschränkung schließt alle ActionScripts ein (z. B. Elemente mit Klassennamen, die für ActionScript exportiert wurden). Zum Laden einer SWF-Datei müssen Sie die SWF-Datei über dieselbe Anwendungsdomäne wie die übergeordnete SWF-Datei laden. Dieser Vorgang wird im folgenden Beispiel gezeigt:
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
Des Weiteren können Sie eine SWF-Datei, die ActionScript-ByteCode (ABC) enthält, nicht auf iOS laden, entfernen und erneut laden. Bei einem derartigen Vorgang wird ein Laufzeitfehler 3764 zurückgegeben.
Vor AIR 3.6 können nur SWF-Dateien, die keinen ActionScript-Bytecode enthalten, geladen werden, unabhängig davon, ob sie aus dem Anwendungspaket oder über ein Netzwerk geladen werden. Anstatt eine externe SWF-Datei mit ActionScript zu laden, können Sie alternativ dazu eine SWC-Bibliothek erstellen und diese mit Ihrer SWF-Hauptdatei verknüpfen.
AIR 3,7 und höher unterstützen das Laden des extern gehosteten sekundären SWF. Die ausführliche Beschreibung über diese Funktion kann hier gefunden werden.
Diese iOS-Beschränkungen gelten nicht, wenn eine Anwendung im iOS-Simulator (ipa-test-interpreter-simulator oder ipa-debug-interpreter-simulator) oder im Interpreter-Modus (ipa-test-interpreter oder ipa-debug-interpreter) ausgeführt wird.
Loader-Sicherheit
Beachten Sie bei Verwendung der Loader-Klasse das Sicherheitsmodell von Flash Player und Adobe AIR:
- Sie können Inhalte von jeder Quelle laden, zu der Sie Zugang haben.
- Das Laden ist nicht erlaubt, wenn sich die aufrufende SWF-Datei in einer Netzwerk-Sandbox befindet und die zu ladende Datei lokal gespeichert ist.
- Handelt es sich bei dem geladenen Inhalt um eine in ActionScript 3.0 geschriebene SWF-Datei, kann eine SWF-Datei in einer anderen Sicherheits-Sandbox in ihrem Code nicht darauf verweisen, es sei denn, dieses „Cross-Scripting-Arrangement“ wurde durch einen Aufruf der Methode
System.allowDomain()
oderSystem.allowInsecureDomain()
in der geladenen Inhaltsdatei genehmigt. - Handelt es sich bei dem geladenen Inhalt um eine AVM1-SWF-Datei (die in ActionScript 1.0 oder 2.0 geschrieben wurde), kann eine AVM2-SWF-Datei (in ActionScript 3.0 geschrieben) in ihrem Code nicht darauf verweisen. Dennoch kann eine Kommunikation zwischen den beiden SWF-Dateien stattfinden, und zwar durch Verwendung der LocalConnection-Klasse.
- Handelt es sich beim geladenen Inhalt um eine Grafik, so kann eine SWF-Datei außerhalb der Sicherheitssandbox nicht darauf zugreifen, es sein denn, in der Ursprungsdomäne der Grafik wurde die Domäne dieser SWF-Datei in eine URL-Richtliniendatei aufgenommen.
- Movieclips in der lokalen Sandbox des Dateisystems können keine Skripten auf Movieclips in der lokalen Netzwerk-Sandbox anwenden (auch umgekehrt ist dies nicht möglich).
- Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.
In AIR unterliegt Inhalt in der Sicherheits-Sandbox der Anwendung
(Inhalt, der mit der AIR-Anwendung installiert wird) nicht diesen Sicherheitseinschränkungen.
Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.
Wenn Sie eine SWF-Datei aus einer nicht vertrauenswürdigen Quelle laden (etwa einer Domäne, die nicht mit der Stamm-SWF-Datei 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 nachfolgenden Code:
import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); 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);
Hinweis: App-Transportsicherheit wird von Apple in iOS9 eingeführt, was nicht sichere Verbindungen zwischen Apps und Web-Diensten zulässt. Aufgrund dieser Änderung werden alle Verbindungen, die mit nicht sicheren Websites über Loader bzw. URLLoader hergestellt werden, abgebrochen und funktionieren aufgrund der App-Transportsicherheit nicht. Legen Sie Ausnahmen für das Standardverhalten fest, indem Sie Schlüssel zu Info.plist in Ihrer App hinzufügen.
Um die Funktion vollständig zu deaktivieren, können Sie Folgendes in Ihre Info.plist hinzufügen und sie funktioniert wie zuvor.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>
Geben Sie Ausnahmen zum Standardverhalten an, indem Sie Schlüssel zum InfoAdditions-Tag des Anwendungsdeskriptors Ihrer App hinzufügen.
<iPhone> <InfoAdditions> <![CDATA[ <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>www.example.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict> ]]> </InfoAdditions> </iPhone>
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
Die aktuelle Eingabehilfenimplementierung (AccessibilityImplementation) für diese InteractiveObject-Instanz. | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
Die aktuellen Optionen für Eingabehilfen zur Barrierefreiheit dieses Anzeigeobjekts. | DisplayObject | ||
alpha : Number
Gibt den Alphatransparenzwert des angegebenen Objekts an. | DisplayObject | ||
blendMode : String
Ein Wert aus der BlendMode-Klasse, mit dem angegeben wird, welcher Mischmodus verwendet werden soll. | DisplayObject | ||
blendShader : Shader [Nur Schreiben]
Legt einen Shader fest, der für das Mischen von Vordergrund und Hintergrund verwendet wird. | DisplayObject | ||
cacheAsBitmap : Boolean
Wird diese Eigenschaft auf „true“ gesetzt, speichern Flash-Laufzeitumgebungen eine interne Bitmap-Darstellung des Anzeigeobjekts im Cache. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
Bei einem Nicht-Null-Wert definiert dieses Matrix-Objekt, wie ein Anzeigeobjekt dargestellt wird, wenn cacheAsBitmap auf „true“ gesetzt ist. | DisplayObject | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
content : DisplayObject [schreibgeschützt]
Enthält das Stamm-Anzeigeobjekt der SWF- oder Bilddatei (JPG, PNG oder GIF), die mit der load()- oder loadBytes()-Methode geladen wurde. | Loader | ||
contentLoaderInfo : LoaderInfo [schreibgeschützt]
Gibt ein LoaderInfo-Objekt zurück, das dem zu ladenden Objekt entspricht. | Loader | ||
contextMenu : NativeMenu
Gibt das diesem Objekt zugeordnete Kontextmenü an. | InteractiveObject | ||
doubleClickEnabled : Boolean
Gibt an, ob das Objekt doubleClick-Ereignisse empfängt. | InteractiveObject | ||
filters : Array
Ein indiziertes Array, das alle dem Anzeigeobjekt derzeit zugeordneten filter-Objekte enthält. | DisplayObject | ||
focusRect : Object
Gibt an, ob für dieses Objekt ein Fokusrechteck angezeigt wird. | InteractiveObject | ||
height : Number
Gibt die Höhe des Anzeigeobjekts in Pixeln an. | DisplayObject | ||
loaderInfo : LoaderInfo [schreibgeschützt]
Gibt ein LoaderInfo-Objekt mit Informationen zum Laden der Datei zurück, zu der dieses Anzeigeobjekt gehört. | DisplayObject | ||
mask : DisplayObject
Das aufrufende Anzeigeobjekt wird durch das angegebene mask-Objekt maskiert. | DisplayObject | ||
metaData : Object
Bezieht das Metadatenobjekt der DisplayObject-Instanz, wenn Metadaten neben der Instanz dieses DisplayObject in der SWF-Datei durch ein PlaceObject4-Tag gespeichert wurden. | DisplayObject | ||
mouseChildren : Boolean
Bestimmt, ob die untergeordneten Elemente des Objekts maus- oder benutzereingabegerätfähig sind oder nicht. | DisplayObjectContainer | ||
mouseEnabled : Boolean
Gibt an, ob dieses Objekt Meldungen von der Maus oder einem anderen Benutzereingabegerät empfängt. | InteractiveObject | ||
mouseX : Number [schreibgeschützt]
Gibt die x-Koordinate der Position der Maus oder des Benutzereingabegeräts in Pixeln an. | DisplayObject | ||
mouseY : Number [schreibgeschützt]
Gibt die y-Koordinate der Position der Maus oder des Benutzereingabegeräts in Pixeln an. | DisplayObject | ||
name : String
Gibt den Instanznamen des Anzeigeobjekts an. | DisplayObject | ||
needsSoftKeyboard : Boolean
Gibt an, ob eine virtuelle Tastatur (Bildschirmtastatur) angezeigt wird, wenn diese InteractiveObject-Instanz den Fokus erhält. | InteractiveObject | ||
numChildren : int [schreibgeschützt]
Liefert die Anzahl der Objekte, die diesem Objekt untergeordnet sind. | DisplayObjectContainer | ||
opaqueBackground : Object
Legt fest, ob das Anzeigeobjekt bei einer bestimmten Hintergrundfarbe undurchsichtig ist. | DisplayObject | ||
parent : DisplayObjectContainer [schreibgeschützt]
Gibt das DisplayObjectContainer-Objekt an, das dieses Anzeigeobjekt enthält. | DisplayObject | ||
root : DisplayObject [schreibgeschützt]
Bei einem Anzeigeobjekt in einer geladenen SWF-Datei ist die root-Eigenschaft das oberste Anzeigeobjekt in dem Teil der Baumstruktur der Anzeigeliste, der diese SWF-Datei repräsentiert. | DisplayObject | ||
rotation : Number
Gibt die Drehung der DisplayObject-Instanz ausgehend von der ursprünglichen Ausrichtung in Grad an. | DisplayObject | ||
rotationX : Number
Gibt die x-Achsendrehung der DisplayObject-Instanz in Grad an, und zwar bezogen auf die ursprüngliche Ausrichtung zum übergeordneten 3D-Container. | DisplayObject | ||
rotationY : Number
Gibt die y-Achsendrehung der DisplayObject-Instanz in Grad an, und zwar bezogen auf die ursprüngliche Ausrichtung zum übergeordneten 3D-Container. | DisplayObject | ||
rotationZ : Number
Gibt die Drehung der z-Achse der DisplayObject-Instanz in Grad an, ausgehend von ihrer ursprünglichen Ausrichtung relativ zum übergeordneten 3D-Container. | DisplayObject | ||
scale9Grid : Rectangle
Das aktuell verwendete Skalierungsraster. | DisplayObject | ||
scaleX : Number
Gibt die horizontale Skalierung (Prozentwert) des Objekts ausgehend vom Registrierungspunkt an. | DisplayObject | ||
scaleY : Number
Gibt die vertikale Skalierung (Prozentwert) eines Objekts ausgehend vom Registrierungspunkt an. | DisplayObject | ||
scaleZ : Number
Gibt die Tiefenskalierung (Prozentwert) eines Objekts ausgehend vom Registrierungspunkt an. | DisplayObject | ||
scrollRect : Rectangle
Die Begrenzungen des Bildlaufrechtecks für das Anzeigeobjekt. | DisplayObject | ||
softKeyboard : String
Steuert das Erscheinungsbild der Bildschirmtastatur. | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
Definiert einen Bereich, der auf dem Bildschirm sichtbar bleiben soll, wenn eine virtuelle Tastatur angezeigt wird (nicht unter iOS verfügbar). | InteractiveObject | ||
stage : Stage [schreibgeschützt]
Die Bühne des Anzeigeobjekts. | DisplayObject | ||
tabChildren : Boolean
Bestimmt, ob die dem Objekt untergeordneten Objekte per Tabulatortaste aktivierbar sind. | DisplayObjectContainer | ||
tabEnabled : Boolean
Gibt an, ob sich dieses Objekt in der Tabulatorreihenfolge befindet. | InteractiveObject | ||
tabIndex : int
Gibt die Tabulatorreihenfolge von Objekten in einer SWF-Datei an. | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [schreibgeschützt]
Liefert ein TextSnapshot-Objekt für diese DisplayObjectContainer-Instanz. | DisplayObjectContainer | ||
transform : flash.geom:Transform
Ein Objekt mit Eigenschaften, die zur Matrix, Farbtransformation und Pixelbegrenzung eines Anzeigeobjekts gehören. | DisplayObject | ||
uncaughtErrorEvents : UncaughtErrorEvents [schreibgeschützt]
Ein Objekt, das ein uncaughtError-Ereignis absetzt, wenn ein nicht verarbeiteter Fehler in der SWF-Datei auftritt, die von diesem Loader-Objekt geladen wird. | Loader | ||
visible : Boolean
Gibt an, ob das Anzeigeobjekt sichtbar ist oder nicht. | DisplayObject | ||
width : Number
Gibt die Breite des Anzeigeobjekts in Pixeln an. | DisplayObject | ||
x : Number
Gibt die x-Koordinate der DisplayObject-Instanz relativ zu den lokalen Koordinaten des übergeordneten DisplayObjectContainer-Objekts an. | DisplayObject | ||
y : Number
Gibt die y-Koordinate der DisplayObject-Instanz relativ zu den lokalen Koordinaten des übergeordneten DisplayObjectContainer-Objekts an. | DisplayObject | ||
z : Number
Gibt die z-Koordinatenposition an der z-Achse der DisplayObject-Instanz relativ zum übergeordneten 3D-Container an. | DisplayObject |
Methode | Definiert von | ||
---|---|---|---|
Loader()
Erstellt ein Loader-Objekt, das Sie zum Laden von Dateien wie SWF-, JPEG-, GIF- oder PNG-Dateien verwenden können. | Loader | ||
Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. | DisplayObjectContainer | ||
Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. | EventDispatcher | ||
Gibt an, ob aufgrund der Sicherheitseinschränkungen irgendwelche Anzeigeobjekte aus der Liste ausgeschlossen werden, die beim Aufrufen der DisplayObjectContainer.getObjectsUnderPoint()-Methode mit dem angegebenen point-Punkt zurückgegeben wird. | DisplayObjectContainer | ||
Bricht eine für die Loader-Instanz in Ausführung befindliche Operation der load()-Methode ab. | Loader | ||
Ermittelt, ob das angegebene Anzeigeobjekt der DisplayObjectContainer-Instanz oder der Instanz selbst untergeordnet ist. | DisplayObjectContainer | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Gibt ein Rechteck zurück, das den Bereich des Anzeigeobjekts in Bezug auf das Koordinatensystem des targetCoordinateSpace-Objekts definiert. | DisplayObject | ||
Gibt die untergeordnete Anzeigeobjektinstanz zurück, die sich an der angegebenen Indexposition befindet. | DisplayObjectContainer | ||
Gibt das untergeordnete Anzeigeobjekt für den angegebenen Namen zurück. | DisplayObjectContainer | ||
Gibt die Indexposition einer untergeordneten DisplayObject-Instanz zurück. | DisplayObjectContainer | ||
Gibt ein Array an Objekten zurück, die unter dem angegebenen Punkt liegen und dieser DisplayObjectContainer-Instanz untergeordnet sind (auch über mehrere Unterordnungsstufen hinweg). | DisplayObjectContainer | ||
Gibt ein Rechteck zurück, das die Begrenzung des Anzeigeobjekts (ohne etwaige Striche oder Formen) definiert, und zwar aufgrund des vom Parameter „targetCoordinateSpace“ definierten Koordinatensystems. | DisplayObject | ||
Konvertiert das point-Objekt von den (globalen) Bühnenkoordinaten in die (lokalen) Koordinaten des Anzeigeobjekts. | DisplayObject | ||
Konvertiert einen zweidimensionale Punkt von den (globalen) Bühnenkoordinaten in die dreidimensionalen (lokalen) Koordinaten des Anzeigeobjekts. | DisplayObject | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Untersucht den Begrenzungsrahmen des Anzeigeobjekts, um festzustellen, ob er sich mit dem Begrenzungsrahmen des obj-Anzeigeobjekts überschneidet. | DisplayObject | ||
Wertet das Anzeigeobjekt aus, um festzustellen, ob es den durch die Parameter „x“ und „y“ festgelegten Punkt überdeckt oder schneidet. | DisplayObject | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Lädt eine SWF-, JPEG-, progressive JPEG-, nicht animierte GIF- oder PNG-Datei in ein Objekt, das dem Loader-Objekt untergeordnet ist. | Loader | ||
Lädt in einem ByteArray-Objekt gespeicherte Binärdaten. | Loader | ||
Lädt eine IFilePromise-Instanz. | Loader | ||
Konvertiert einen dreidimensionalen Punkt der dreidimensionalen (lokalen) Koordinaten des Anzeigeobjekts in einen zweidimensionalen Punkt der (globalen) Bühnenkoordinaten. | DisplayObject | ||
Konvertiert das point-Objekt von den (lokalen) Koordinaten des Anzeigeobjekts in die (globalen) Bühnenkoordinaten. | DisplayObject | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt die angegebene untergeordnete DisplayObject-Instanz aus der Child-Liste der DisplayObjectContainer-Instanz. | DisplayObjectContainer | ||
Entfernt ein untergeordnetes Anzeigeobjekt aus der angegebenen Indexposition in der Child-Liste des Anzeigeobjekt-Containers. | DisplayObjectContainer | ||
Entfernt alle untergeordneten DisplayObject-Instanzen aus der Liste der untergeordneten Elemente der DisplayObjectContainer-Instanz. | DisplayObjectContainer | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Blendet eine virtuelle Tastatur ein. | InteractiveObject | ||
Ändert die Position eines vorhandenen untergeordneten Objekts im Anzeigeobjekt-Container. | DisplayObjectContainer | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Stoppt rekursiv die Ausführung von allen Movieclips, die auf diesem Objekt gerootet sind. | DisplayObjectContainer | ||
Kehrt die z-Reihenfolge (von vorne nach hinten) der beiden angegebenen untergeordneten Objekte um. | DisplayObjectContainer | ||
Kehrt die z-Reihenfolge (von vorne nach hinten) der untergeordneten Objekte an den beiden angegebenen Indexpositionen in der Child-Liste um. | DisplayObjectContainer | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Entfernt ein untergeordnetes Objekt dieses Loader-Objekts, das mit der load()-Methode geladen wurde. | Loader | ||
Versucht, die Inhalte der untergeordneten SWF-Datei zu entladen und beendet die Ausführung der Befehle geladener SWF-Dateien. | Loader | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
content | Eigenschaft |
content:DisplayObject
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Enthält das Stamm-Anzeigeobjekt der SWF- oder Bilddatei (JPG, PNG oder GIF), die anhand der Methode load()
oder loadBytes()
geladen worden ist.
Implementierung
public function get content():DisplayObject
Auslöser
SecurityError — Die geladene SWF- oder Bilddatei ist Teil einer Sicherheits-Sandbox, auf die Sie keinen Zugriff haben. Sie können diese Situation für eine geladene SWF-Datei vermeiden, indem Sie die Datei die Security.allowDomain() -Methode aufrufen lassen oder die ladende Datei einen Parameter loaderContext laden lassen (für den die securityDomain -Eigenschaft auf SecurityDomain.currentDomain gesetzt ist), wenn Sie die Methode load() oder loadBytes() aufrufen.
|
Verwandte API-Elemente
contentLoaderInfo | Eigenschaft |
contentLoaderInfo:LoaderInfo
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt ein LoaderInfo-Objekt zurück, das dem zu ladenden Objekt entspricht. LoaderInfo-Objekte werden sowohl vom Loader-Objekt als auch von geladenen Inhaltsobjekten genutzt. Das LoaderInfo-Objekt stellt Informationen und Statistiken zum Ladefortschritt der geladenen Datei bereit.
Ereignisse, die sich auf das Laden beziehen, werden durch das LoaderInfo-Objekt ausgelöst, auf das über die contentLoaderInfo
-Eigenschaft des Loader-Objekts verwiesen wird. Die contentLoaderInfo
-Eigenschaft wird bereits auf ein gültiges LoaderInfo-Objekt gesetzt, bevor der Inhalt geladen wird, damit Sie dem Objekt vor dem Laden Ereignis-Listener hinzufügen können.
Um nicht erfasste Fehler zu erkennen, die in einer geladenen SWF-Datei auftreten, verwenden Sie die Loader.uncaughtErrorEvents
-Eigenschaft, nicht die Loader.contentLoaderInfo.uncaughtErrorEvents
-Eigenschaft.
Implementierung
public function get contentLoaderInfo():LoaderInfo
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); loader.load(urlRequest); addChild(loader); function loader_complete(evt:Event):void { var target_mc:Loader = evt.currentTarget.loader as Loader; target_mc.x = (stage.stageWidth - target_mc.width) / 2; target_mc.y = (stage.stageHeight - target_mc.height) / 2; }
uncaughtErrorEvents | Eigenschaft |
uncaughtErrorEvents:UncaughtErrorEvents
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Ein Objekt, das ein uncaughtError
-Ereignis absetzt, wenn ein nicht verarbeiteter Fehler in der SWF-Datei auftritt, die von diesem Loader-Objekt geladen wird. Fehler werden nicht erfasst, wenn sie außerhalb von try..catch
-Blöcken ausgegeben werden, oder wenn ein ErrorEvent-Objekt ausgelöst wird, aber keine registrierten Listener vorhanden sind.
Beachten Sie, dass die uncaughtErrorEvents
-Eigenschaft eines Loader-Objekts Ereignisse absetzt, die durch das Objekt aufsteigen, keine Ereignisse, die direkt abgesetzt werden. Sie setzt nie ein uncaughtErrorEvent
in der Zielphase ab. Sie setzt das Ereignis nur in den Erfassungs- und Bubblingphasen ab. Um einen nicht erfassten Fehler in der aktuellen SWF-Datei (die SWF-Datei, in der das Loader-Objekt definiert ist) zu erkennen, verwenden Sie stattdessen die LoaderInfo.uncaughtErrorEvents
-Eigenschaft.
Wenn es sich bei dem vom Loader-Objekt geladenen Inhalt um eine AVM1 (ActionScript 2)-SWF-Datei handelt, führen nicht erfasste Fehler in der AVM1-SWF-Datei nicht zu einem uncaughtError
-Ereignis.
Implementierung
public function get uncaughtErrorEvents():UncaughtErrorEvents
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
uncaughtError
-Ereignisprozedur definiert, um nicht erfasste Fehler zu erkennen.
Im Konstruktor erstellt der Code ein Loader-Objekt und registriert einen Listener für das uncaughtError
-Ereignis, das von der uncaughtErrorEvents
-Eigenschaft des Loader-Objekts abgesetzt wird.
In der uncaughtErrorHandler()
-Methode überprüft der Code den Datentyp der error
-Eigenschaft und reagiert entsprechend.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
Loader | () | Konstruktor |
public function Loader()
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Erstellt ein Loader-Objekt, das Sie zum Laden von Dateien wie SWF-, JPEG-, GIF- oder PNG-Dateien verwenden können. Rufen Sie die load()
-Methode auf, um den Bestandsartikel als Child-Objekt der Loader-Instanz zu laden. Anschließend können Sie das Loader-Objekt in die Anzeigeliste aufnehmen (z. B. indem Sie die addChild()
-Methode einer DisplayObjectContainer-Instanz verwenden). Der Bestandsartikel erscheint auf der Bühne, noch während er geladen wird.
Sie können eine Loader-Instanz auch außerhalb der Liste verwenden, also ohne sie in einen Anzeigeobjekt-Container in der Anzeigeliste einzufügen. In diesem Modus kann die Loader-Instanz zum Laden einer SWF-Datei verwendet werden, die zusätzliche Module einer Anwendung enthält.
Um festzustellen, wann die SWF-Datei vollständig geladen ist, können Sie die Ereignisse des LoaderInfo-Objekts verwenden, das der contentLoaderInfo
-Eigenschaft des Loader-Objekts zugeordnet ist. An diesem Punkt kann der Code in der Modul-SWF-Datei ausgeführt werden, um das Modul zu initialisieren und zu starten. Außerhalb der Liste kann eine Loader-Instanz auch verwendet werden, um eine SWF-Datei zu laden, die Komponenten oder Medienbestände enthält. Wiederum können Sie die Ereignisbenachrichtigungen des LoaderInfo-Objekts verwenden, um festzustellen, wann die Komponenten vollständig geladen sind. An diesem Punkt kann die Anwendung beginnen, mit den Komponenten und Medienbeständen in der Bibliothek der SWF-Datei zu arbeiten, indem die ActionScript 3.0-Klassen, die diese Komponenten und Medienbestände repräsentieren, instanziiert werden.
Um den Status eines Loader-Objekts zu ermitteln, überwachen Sie die folgenden Ereignisse, die das LoaderInfo-Objekt der contentLoaderInfo
-Eigenschaft des Loader-Objekts zugeordnet hat:
- Das
open
-Ereignis wird ausgelöst, wenn der Ladevorgang beginnt. - Die Ereignisse
ioError
bzw.securityError
werden ausgelöst, wenn die Datei nicht geladen werden kann oder wenn während des Ladevorgangs ein Fehler aufgetreten ist. - Das
progress
-Ereignis wird fortlaufend ausgelöst, während die Datei geladen wird. - Das
complete
-Ereignis wird ausgelöst, nachdem eine Datei vollständig heruntergeladen wurde, jedoch noch bevor die Methoden und Eigenschaften des geladenen Movieclips verfügbar sind. - Das
init
-Ereignis wird ausgelöst, sobald die Eigenschaften und Methoden der geladenen SWF-Datei verfügbar sind, sodass Sie mit der Bearbeitung der geladenen SWF-Datei beginnen können. Dieses Ereignis wird vor der Prozedurcomplete
ausgelöst. In gestreamten SWF-Dateien kann dasinit
-Ereignis um einiges früher eintreten als dascomplete
-Ereignis. Für die meisten Zwecke ist dieinit
-Prozedur geeignet.
Hinweise (nur iOS): In AIR-Anwendungen unter iOS können Sie nur eine SWF-Datei, die ActionScript enthält, aus dem Anwendungspaket laden. Diese Beschränkung schließt alle ActionScripts ein (z. B. Elemente mit Klassennamen, die für ActionScript exportiert wurden). Zum Laden einer SWF-Datei müssen Sie die SWF-Datei über dieselbe Anwendungsdomäne wie die übergeordnete SWF-Datei laden.
Vor AIR 3.6 können nur SWF-Dateien, die keinen ActionScript-Bytecode enthalten, geladen werden, unabhängig davon, ob sie aus dem Anwendungspaket oder über ein Netzwerk geladen werden. Anstatt eine externe SWF-Datei mit ActionScript zu laden, können Sie alternativ dazu eine SWC-Bibliothek erstellen und diese mit Ihrer SWF-Hauptdatei verknüpfen.
Diese Beschränkungen gelten nicht, wenn eine Anwendung im iOS-Simulator (ipa-test-interpreter-simulator oder ipa-debug-interpreter-simulator) oder im Interpreter-Modus (ipa-test-interpreter oder ipa-debug-interpreter) ausgeführt wird.
Verwandte API-Elemente
close | () | Methode |
public function close():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bricht einen aktuell für die Loader-Instanz ausgeführten Vorgang der load()
-Methode ab.
Verwandte API-Elemente
load | () | Methode |
public function load(request:URLRequest, context:LoaderContext = null):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lädt eine SWF-, JPEG-, progressive JPEG-, nicht animierte GIF- oder PNG-Datei in ein Objekt, das dem Loader-Objekt untergeordnet ist. Wenn Sie eine animierte GIF-Datei laden, wird nur das erste Bild angezeigt. Da das Loader-Objekt nur ein einziges untergeordnetes Objekt besitzen darf, beendet eine nachfolgende load()
-Anforderung eine ggf. noch aktive vorherige Anforderung und beginnt einen neuen Ladevorgang.
Hinweis: In AIR 1.5 und Flash Player 10 ist die maximale Höhe oder Breite eines geladenen Bilds 8.191 Pixel, die Pixelzahl darf insgesamt 16.777.215 nicht übersteigen. (Wenn ein geladenes Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite.
Eine in ein Loader-Objekt geladene SWF- oder Bilddatei übernimmt die Positions-, Drehungs- und Skalierungseigenschaften der dem Loader-Objekt übergeordneten Anzeigeobjekte.
Mit der unload()
-Methode können Sie mit dieser Methode geladene Filme oder Bilder entfernen oder einen laufenden Ladevorgang abbrechen.
Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie auf der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking
der Tags object
und embed
festlegen.
iOS-Hinweise
In AIR-Anwendungen unter iOS können Sie nur eine SWF-Datei, die ActionScript enthält, aus dem Anwendungspaket laden. Diese Beschränkung schließt alle ActionScripts ein (z. B. Elemente mit Klassennamen, die für ActionScript exportiert wurden). Zum Laden einer SWF-Datei müssen Sie die SWF-Datei über dieselbe Anwendungsdomäne wie die übergeordnete SWF-Datei laden. Dieser Vorgang wird im folgenden Beispiel gezeigt:
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
Des Weiteren können Sie eine SWF-Datei, die ActionScript-ByteCode (ABC) enthält, nicht auf iOS laden, entfernen und erneut laden. Bei einem derartigen Vorgang wird ein Laufzeitfehler 3764 zurückgegeben.
Vor AIR 3.6 können nur SWF-Dateien, die keinen ActionScript-Bytecode enthalten, geladen werden, unabhängig davon, ob sie aus dem Anwendungspaket oder über ein Netzwerk geladen werden. Anstatt eine externe SWF-Datei mit ActionScript zu laden, können Sie alternativ dazu eine SWC-Bibliothek erstellen und diese mit Ihrer SWF-Hauptdatei verknüpfen.
Diese Beschränkungen gelten nicht, wenn eine Anwendung im iOS-Simulator (ipa-test-interpreter-simulator oder ipa-debug-interpreter-simulator) oder im Interpreter-Modus (ipa-test-interpreter oder ipa-debug-interpreter) ausgeführt wird.
Loader-Sicherheit
Wenn Sie diese Methode verwenden, beachten Sie das Flash Player-Sicherheitsmodell, das in der Beschreibung der Loader-Klasse erklärt wird.
Wenn Sie in Flash Player 10 oder höher einen Multipart-Content-Type verwenden (z. B. „multipart/form-data“), der einen Upload enthält (gekennzeichnet durch einen „filename“-Parameter in einem „content-disposition“-Header innerhalb des POST-Body), so unterliegt die POST-Methode den Sicherheitsregeln für Uploads:
- Der POST-Vorgang muss als Reaktion auf eine durch den Benutzer initiierte Aktion, z. B. Mausklick oder Tastendruck, erfolgen.
- Ist die POST-Methode domänenübergreifend (das POST-Ziel befindet sich auf einem anderen Server als die SWF-Datei, die die POST-Anforderung sendet), so muss der Zielserver eine URL-Richtliniendatei bereitstellen, die den domänenübergreifenden Zugriff erlaubt.
Bei mehrteiligen Inhaltstypen muss zudem auch die Syntax gemäß Standard RFC2046 gültig sein. Scheint die Syntax ungültig zu sein, so unterliegt die POST-Methode den Sicherheitsregeln für Uploads.
Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.
Parameter
request:URLRequest — Die absolute oder relative URL für die zu ladende SWF-, JPEG-, GIF- oder PNG-Datei. Ein relativer Pfad muss relativ zur Haupt-SWF-Datei angegeben werden. Absolute URLs müssen eine Protokollreferenz wie „http://“ oder „file:///“ enthalten. Dateinamen können keine Laufwerkangaben enthalten.
| |
context:LoaderContext (default = null ) — Ein LoaderContext-Objekt mit Eigenschaften, die folgende Punkte definieren:
Wenn der Nur iOS: Wenn die Vollständige Angaben finden Sie in der Beschreibung der Eigenschaften in der Klasse LoaderContext. |
Ereignisse
asyncError: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn die LoaderContext.requestedContentParent -Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen. Dazu kann es kommen, wenn der geladene Inhalt ein flash.display.AVM1Movie ist oder wenn der addChild() -Aufruf an requestedContentParent einen Fehler ausgibt.
| |
complete: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn die Datei vollständig geladen ist. Das Ereignis complete wird immer nach dem Ereignis init ausgelöst.
| |
httpStatus: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn eine Netzwerkanfrage über HTTP gestellt wird und Flash Player den HTTP-Statuscode ermittelt hat.
| |
init: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen SWF-Datei zugänglich sind. Das Ereignis init wird immer vor dem Ereignis complete ausgelöst.
| |
ioError: — Wird vom contentLoaderInfo -Objekt beim Auftreten eines Eingabe- oder Ausgabefehlers, durch den der Ladevorgang fehlschlägt, ausgelöst.
| |
open: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn das Laden der Datei beginnt.
| |
progress: — Wird vom contentLoaderInfo Objekt während des Empfangs von Daten im Zuge des Ladevorgangs ausgelöst.
| |
securityError: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn eine SWF-Datei in der
„local-with-filesystem“-Sandbox versucht, Inhalte in der „local-with-networking“-Sandbox zu laden, oder umgekehrt.
| |
securityError: — Wird vom contentLoaderInfo -Objekts abgesetzt, wenn die LoaderContext.requestedContentParent -Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat.
| |
unload: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird.
|
Auslöser
IOError — Die digest -Eigenschaft des request -Objekts ist nicht null . Sie sollten die digest -Eigenschaft eines URLRequest-Objekts nur setzen, wenn Sie beim Laden einer SWZ-Datei (einer Adobe-Plattformkomponente) die URLLoader.load() -Methode aufrufen.
| |
SecurityError — Der Wert von LoaderContext.securityDomain muss entweder null oder SecurityDomain.currentDomain lauten. Dadurch wird die Tatsache widergespiegelt, dass Sie die geladenen Medien nur in deren „natürlicher“ Sicherheits-Sandbox oder in Ihrer eigenen Sandbox platzieren können (wobei die letztere eine Richtliniendatei erfordert).
| |
SecurityError — Lokale SWF-Dateien dürfen LoaderContext.securityDomain auf keinen anderen Wert als null setzen. Es ist nicht zulässig, nicht lokale Medien in eine lokale Sandbox zu importieren oder andere lokale Medien an einem anderen Ort als in ihrer natürlichen Sandbox zu platzieren.
| |
SecurityError — Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.
| |
SecurityError — Wenn die Eigenschaft applicationDomain oder securityDomain des Parameters context aus einer nicht zulässigen Domäne stammt.
| |
SecurityError — Wenn eine lokale SWF-Datei versucht, die securityDomain -Eigenschaft des Parameters context zu verwenden.
| |
IllegalOperationError — Wenn die requestedContentParent -Eigenschaft des context -Parameters ein Loader ist.
| |
IllegalOperationError — Wenn der LoaderContext.parameters -Parameter nicht null ist und einige Werte aufweist, die keine Strings sind.
| |
IllegalOperationError — Wenn die Anwendung auf iOS versucht, eine SWF-Datei in einer Anwendungsdomäne zu laden, die nicht die Domäne für die Hauptanwendung ist.
| |
IllegalOperationError — Wenn die Anwendung auf iOS versucht, eine SWF-Datei erneut zu laden, die geladen und wieder entfernt wurde und die SWF-Datei ABC-Code enthält.
| |
Error — Wenn die Anwendung auf iOS versucht, eine SWF-Datei von außerhalb des Anwendungspakets zu laden, das ActionScript-Code enthält. Dieser Fehler kann nicht abgefangen werden. Es wird ein Dialogfeld auf dem App-Bildschirm mit folgender Meldung angezeigt: „Nicht kompiliertes ActionScript.“ Vor AIR 3.6 tritt dieser Fehler auf, wenn Sie eine SWF-Datei extern oder im Anwendungspaket mit ActionScript laden wollen.
|
Verwandte API-Elemente
loadBytes | () | Methode |
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lädt in einem ByteArray-Objekt gespeicherte Binärdaten.
Die loadBytes()
-Methode ist eine asynchrone Methode. Sie müssen auf das "init"-Ereignis warten, bevor Sie auf die Eigenschaften eines geladenen Objekts zugreifen können.
Wenn Sie diese Methode verwenden, beachten Sie das Flash Player-Sicherheitsmodell, das in der Beschreibung der Loader-Klasse erklärt wird.
Hinweis (nur iOS): In AIR-Anwendungen unter iOS können Sie nur eine SWF-Datei, die ActionScript enthält, aus dem Anwendungspaket laden. Diese Beschränkung schließt alle ActionScripts ein (z. B. Elemente mit Klassennamen, die für ActionScript exportiert wurden). Zum Laden einer SWF-Datei müssen Sie die SWF-Datei über dieselbe Anwendungsdomäne wie die übergeordnete SWF-Datei laden.
Vor AIR 3.6 hat das Aufrufen dieser Methode unter iOS keine Auswirkungen.
Parameter
bytes:ByteArray — Ein ByteArray-Objekt. Als Format des ByteArray-Inhalts ist jedes von der Loader-Klasse unterstützte Dateiformat zulässig: SWF, GIF, JPEG oder PNG.
| |
context:LoaderContext (default = null ) — Ein LoaderContext-Objekt. Nur die applicationDomain -Eigenschaft des LoaderContext-Objekts kann angewendet werden, nicht jedoch die Eigenschaften checkPolicyFile und securityDomain des LoaderContext-Objekts.
Wenn der Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit. |
Ereignisse
asyncError: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn die LoaderContext.requestedContentParent -Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen. Dazu kann es kommen, wenn der geladene Inhalt ein flash.display.AVM1Movie ist oder wenn der addChild() -Aufruf an requestedContentParent einen Fehler ausgibt.
| |
complete: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn die Operation abgeschlossen ist. Das Ereignis complete wird immer nach dem Ereignis init ausgelöst.
| |
init: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen Daten zugänglich sind. Das Ereignis init wird immer vor dem Ereignis complete ausgelöst.
| |
ioError: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn die Laufzeitumgebung die Daten in einem Byte-Array nicht analysieren kann.
| |
open: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn die Operation beginnt.
| |
progress: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn Daten in den Arbeitsspeicher übertragen werden.
| |
securityError: — Wird vom contentLoaderInfo -Objekts abgesetzt, wenn die LoaderContext.requestedContentParent -Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat.
| |
unload: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird.
|
Auslöser
ArgumentError — Wenn der Wert der length -Eigenschaft des ByteArray-Objekts nicht größer als 0 ist.
| |
IllegalOperationError — Wenn die Eigenschaft checkPolicyFile bzw. securityDomain des Parameters context nicht null ist.
| |
IllegalOperationError — Wenn die requestedContentParent -Eigenschaft des context -Parameters ein Loader ist.
| |
IllegalOperationError — Wenn der LoaderContext.parameters -Parameter nicht null ist und einige Werte aufweist, die keine Strings sind.
| |
IllegalOperationError — Wenn die Anwendung auf iOS versucht, eine SWF-Datei in einer Anwendungsdomäne zu laden, die nicht die Domäne für die Hauptanwendung ist.
| |
IllegalOperationError — Wenn die Anwendung auf iOS versucht, eine SWF-Datei erneut zu laden, die geladen und wieder entfernt wurde und die ABC-Code enthält.
| |
Error — Wenn die Anwendung auf iOS versucht, eine SWF-Datei von außerhalb des Anwendungspakets zu laden, das ActionScript-Code enthält. Dieser Fehler kann nicht abgefangen werden. Es wird ein Dialogfeld auf dem App-Bildschirm mit folgender Meldung angezeigt: „Nicht kompiliertes ActionScript.“ Vor AIR 3.6 tritt dieser Fehler auf, wenn Sie eine SWF-Datei extern oder im Anwendungspaket mit ActionScript laden wollen.
| |
SecurityError — Wenn die bereitgestellte applicationDomain -Eigenschaft der context -Eigenschaft aus einer nicht zulässigen Domäne stammt.
| |
SecurityError — Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.
|
Verwandte API-Elemente
loadFilePromise | () | Methode |
public function loadFilePromise(promise:IFilePromise, context:LoaderContext = null):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2.5 |
Lädt eine IFilePromise-Instanz.
Die loadFilePromise
-Methode verwendet ein IFilePromise
-Objekt und lädt die Binärdaten. Wenn es sich bei den Daten um einen progressiven Stream handelt, zum Beispiel ein Video, warten Sie auf die „init“- oder Fortschrittsereignisse, bevor Sie auf die Eigenschaften des geladenen Objekts zugreifen. Warten Sie andernfalls auf das complete-Ereignis, um sicherzustellen, dass die Daten vollständig geladen wurden.
Wenn Sie diese Methode verwenden, beachten Sie das Flash Player-Sicherheitsmodell, das in der Beschreibung der Loader-Klasse erklärt wird.
Parameter
promise:IFilePromise — Ein IFilePromise-Objekt. Als Datenquelle des Objekts ist jedes von der Loader-Klasse unterstützte Dateiformat zulässig: SWF, GIF, JPEG oder PNG.
| |
context:LoaderContext (default = null ) — Ein LoaderContext-Objekt. Nur die applicationDomain -Eigenschaft des LoaderContext-Objekts kann angewendet werden, nicht jedoch die Eigenschaften checkPolicyFile und securityDomain des LoaderContext-Objekts.
Wenn der Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit. |
Ereignisse
asyncError: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn die LoaderContext.requestedContentParent -Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen. Dazu kann es kommen, wenn der geladene Inhalt ein flash.display.AVM1Movie ist oder wenn der addChild() -Aufruf an requestedContentParent einen Fehler ausgibt.
| |
complete: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn die Operation abgeschlossen ist. Das Ereignis complete wird immer nach dem Ereignis init ausgelöst.
| |
init: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen Daten zugänglich sind. Das Ereignis init wird immer vor dem Ereignis complete ausgelöst.
| |
ioError: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn die Laufzeitumgebung die Daten in der Datenquelle nicht analysieren kann oder wenn der Datenquellenstream nicht lesbar ist.
| |
open: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn die Operation beginnt.
| |
progress: — Wird vom contentLoaderInfo -Objekt abgesetzt, wenn Daten in den Arbeitsspeicher übertragen werden.
| |
securityError: — Wird vom contentLoaderInfo -Objekts abgesetzt, wenn die LoaderContext.requestedContentParent -Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat.
| |
unload: — Wird vom contentLoaderInfo -Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird.
|
Auslöser
IllegalOperationError — Wenn die requestedContentParent -Eigenschaft des context -Parameters ein Loader ist.
| |
IllegalOperationError — Wenn der LoaderContext.parameters -Parameter nicht null ist und einige Werte aufweist, die keine Strings sind.
| |
ArgumentError — Wenn das als Parameter übergebenen IFilePromise -Objekt null ist.
|
Verwandte API-Elemente
unload | () | Methode |
public function unload():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Entfernt ein untergeordnetes Objekt dieses Loader-Objekts, das mit der Methode load()
geladen wurde. Die property
(Eigenschaft) des zugeordneten LoaderInfo-Objekts wird auf null
zurückgesetzt. Das untergeordnete Objekt wird nicht unbedingt gelöscht, da andere Objekte möglicherweise Verweise darauf enthalten. Allerdings ist es dem Loader-Objekt nicht mehr untergeordnet.
Wenn Sie die unload()
-Methode aufrufen, wird die contentLoaderInfo
-Eigenschaft des Loader-Objekts auf null
gesetzt. Alle sichtbaren Elemente, die mit der SWF geladen wurden, werden aus dem Speicher entfernt. ActionScript-Klassendefinitionen in der geladenen SWF-Datei bleiben im Speicher und der Code in derselben Anwendungsdomäne wie die geladene SWF-Datei kann auf Instanzen dieser Klassen zugreifen und neue Instanzen erstellen.
Hinweis (nur iOS): Vor AIR 3.6 hat diese Methode unter iOS keine Auswirkungen.
Es ist ratsam, vor dem Entladen einer untergeordneten SWF-Datei alle Streams in deren Objekten, z. B. LocalConnection-, NetConnection-, NetStream- oder Sound-Objekte, ausdrücklich zu schließen. Andernfalls kann es passieren, dass Audiodaten in der untergeordneten SWF-Datei unaufhörlich abgespielt werden, obwohl die SWF-Datei selbst bereits entladen worden ist. Um Streams in der untergeordneten SWF-Datei zu schließen, fügen Sie dem untergeordneten Objekt, das auf das unload
-Ereignis wartet, einen Ereignis-Listener hinzu. Wenn das übergeordnete Objekt die Loader.unload()
-Methode aufruft, wird für das untergeordnete Objekt das unload
-Ereignis ausgelöst. Im folgenden Code wird gezeigt, wie Sie dies realisieren können:
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Verwandte API-Elemente
unloadAndStop | () | Methode |
public function unloadAndStop(gc:Boolean = true):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Versucht, die Inhalte der untergeordneten SWF-Datei zu entladen und beendet die Ausführung der Befehle geladener SWF-Dateien. Diese Methode versucht, SWF-Dateien zu entladen, die mithilfe von Loader.load()
oder Loader.loadBytes()
erstellt wurden, indem sie Verweise auf EventDispatcher-, NetConnection-, Timer-, Sound- oder Video-Objekte der untergeordneten SWF-Datei entfernt. Als Ergebnis tritt Folgendes für die untergeordnete SWF-Datei und die Anzeigeliste der untergeordneten SWF-Datei ein:
- Sounds werden gestoppt.
- Stage-Ereignis-Listener werden entfernt.
- Ereignis-Listener für
enterFrame
,frameConstructed
,exitFrame
,activate
unddeactivate
werden entfernt. - Timer werden gestoppt.
- Kamera- und Mikrofoninstanzen werden getrennt.
- Movieclips werden gestoppt.
Wenn Sie die unloadAndStop()
-Methode aufrufen, wird die contentLoaderInfo
-Eigenschaft des Loader-Objekts auf null
gesetzt. Alle sichtbaren Elemente, die mit der SWF geladen wurden, werden aus dem Speicher entfernt. ActionScript-Klassendefinitionen in der geladenen SWF-Datei bleiben im Speicher und der Code in derselben Anwendungsdomäne wie die geladene SWF-Datei kann auf Instanzen dieser Klassen zugreifen und neue Instanzen erstellen.
Hinweis (nur iOS): Vor AIR 3.6 hat diese Methode unter iOS keine Auswirkungen.
Parameter
gc:Boolean (default = true ) — Stellt einen Hinweis für den Garbagekollektor bereit, ob er für die untergeordneten SWF-Objekte ausgeführt werden soll (true ) oder nicht (false ). Wenn Sie viele Objekte asynchron entladen, kann das Setzen des gc -Parameters auf false die Leistung der Anwendung verbessern. Allerdings kann das Setzen von false dazu führen, dass Medien und Anzeigeobjekte der untergeordneten SWF-Datei nach dem Ausführen des unloadAndStop() -Befehls weiterhin im Speicher verbleiben.
|
Verwandte API-Elemente
- Es wird eine
url
-Eigenschaft erstellt, die den Speicherort und Namen der Grafikdatei angibt. - Im Konstruktor
LoaderExample
wird ein neues Loader-Objekt mit dem Namenloader
erstellt, das dann an dieconfigureListeners()
-Methode übergeben wird. Dies ist in Schritt 3 beschrieben. - Der Konstruktor erstellt eine neue Instanz eines URLRequest-Objekts,
request
, mit Übergabe vonurl
, damit der Dateiname und -speicherort bekannt sind. - Das
request
-Objekt wird imloader
-Objekt an dieload()
-Methode übergeben, die das Bild in die Anzeigeliste lädt. - Im Loader wird ein
clickHandler
-Ereignis-Listener für dasclick
-Ereignis registriert. Nach einem Klick mit der Maus wird das geladene Bild entfernt. - Die
configureListeners()
-Methode fügt mithilfe der folgenden Methoden sieben Ereignis-Listener hinzu:- Die
completeHandler()
-Methode wird ausgeführt, nachdem das Laden des Bilds beendet ist. - Die
httpStatusHandler()
-Methode wird ausgeführt, wenn das Bild nicht lokal geladen wird und nur wenn die Netzwerkanforderung verfügbar ist und der Flash Player diese erkennen kann. - Die
initHandler()
-Methode wird vor dercompleteHandler()
-Methode und nach derprogressHandler()
-Methode ausgeführt. Dasinit
-Ereignis ist in der Regel nützlicher, wenn SWF-Dateien geladen werden. - Die
ioErrorHandler()
-Methode wird ausgeführt, wenn die Bilddatei nicht verfügbar oder nicht zugänglich ist. - Die
openHandler()
-Methode wird ausgeführt, nachdem die Bilddatei zum ersten Mal geöffnet wurde. - Die
progressHandler()
-Methode wird ausgeführt, wenn das Laden der Bilddatei beginnt, und wird erneut ausgeführt, wenn das Laden der Bilddatei abgeschlossen ist. - Die
unLoadHandler()
-Methode wird ausgeführt, wenn das Bild entfernt wird, indem dieunload()
-Methode verwendet wird, wenn Benutzer auf das Bild klicken.
- Die
Beachten Sie folgende Bedingungen:
- Zur Ausführung dieses Beispiels müssen Sie eine Datei mit dem Namen „Image.gif“ in dem Ordner ablegen, in dem sich auch die kompilierte SWF-Datei befindet. Verwenden Sie ein Bild mit einem Bereich, der in die Abmessungen der SWF-Hauptdatei passt.
- Obwohl in diesem Beispiel alle verfügbaren Ereignisse des LoaderInfo-Objekts verwendet werden, ist in den meisten Situationen nur ein Teil davon erforderlich. Beim einfachen Laden einer Bilddatei reicht z. B. das
complete
-Ereignis (und ggf. dasioError
-Ereignis) aus, sofern ein lokales Bild geladen wird.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
Tue Jun 12 2018, 10:04 AM Z