| Paket | flash.system |
| Klasse | public class LoaderContext |
| Vererbung | LoaderContext Object |
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
context-Parameter in den Methoden load() und loadBytes() der Loader-Klasse verwendet.
Beim Laden von SWF-Dateien mit der Loader.load()-Methode müssen zwei Entscheidungen getroffen werden: in welcher Sicherheitsdomäne wird eine geladene SWF-Datei abgelegt, und in welcher Anwendungsdomäne in dieser Sicherheitsdomäne. Weitere Informationen zu dieser Auswahl finden Sie in den Angaben zur applicationDomain- und zur securityDomain-Eigenschaft.
Beim Laden einer SWF-Datei mit der Loader.loadBytes()-Methode müssen Sie wie bei Loader.load() eine Anwendungsdomäne auswählen. Es muss jedoch keine Sicherheitsdomäne angegeben werden, da die geladene SWF-Datei von Loader.loadBytes() immer in der Sicherheitsdomäne der ladenden SWF-Datei abgelegt wird.
Beim Laden von Bildern (JPEG-, GIF- oder PNG-Dateien) anstelle von SWF-Dateien muss weder eine Sicherheitsdomäne noch eine Anwendungsdomäne angegeben werden, da dies nur für SWF-Dateien gilt. Stattdessen muss nur eine Entscheidung getroffen werden: Ist ein programmgesteuerter Zugriff auf die Pixel des geladenen Bilds erforderlich? Wenn dies der Fall ist, finden Sie entsprechende Hinweise im Abschnitt zur checkPolicyFile-Eigenschaft.
Siehe auch
| Eigenschaft | Definiert von | ||
|---|---|---|---|
| applicationDomain : ApplicationDomain = null
Gibt die Anwendungsdomäne an, die für die Loader.load()- oder Loader.loadBytes()-Methode verwendet werden soll.
| LoaderContext | ||
| checkPolicyFile : Boolean = false
Gibt an, ob in Flash Player vor dem Laden eines Objekts eine domänenübergreifende Richtliniendatei vom Server des geladenen Objekts heruntergeladen werden soll.
| LoaderContext | ||
![]() | constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
| Object | |
![]() | prototype : Object
[static]
Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
| Object | |
| securityDomain : SecurityDomain = null
Gibt die bei einem Loader.load()-Vorgang zu verwendende Sicherheitsdomäne an.
| LoaderContext | ||
| Methode | Definiert von | ||
|---|---|---|---|
|
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
Erstellt ein neues LoaderContext-Objekt mit den angegebenen Einstellungen.
| LoaderContext | ||
![]() |
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
| Object | |
![]() |
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
| Object | |
![]() |
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
| Object | |
![]() |
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
| Object | |
![]() |
Gibt das angegebene Objekt als String zurück.
| Object | |
![]() |
Gibt den Grundwert des angegebenen Objekts zurück.
| Object | |
| applicationDomain | Eigenschaft |
public var applicationDomain:ApplicationDomain = null
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Gibt die Anwendungsdomäne an, die für die Loader.load()- oder Loader.loadBytes()-Methode verwendet werden soll. Verwenden Sie diese Eigenschaft nur beim Laden einer SWF-Datei, die in ActionScript 3.0 geschrieben wurde (nicht beim Laden eines Bilds oder einer SWF-Datei, die in ActionScript 1.0 oder ActionScript 2.0 geschrieben wurde).
Jede Sicherheitsdomäne ist in eine oder mehrere Anwendungsdomänen unterteilt, die durch ApplicationDomain-Objekte angegeben werden. Anwendungsdomänen dienen keinen Sicherheitszwecken, sondern der Verwaltung kooperierender Einheiten des ActionScript-Codes. Wenn Sie eine SWF-Datei von einer anderen Domäne laden und festlegen, dass die SWF-Datei in einer anderen Sicherheitsdomäne abgelegt werden kann, können Sie die Anwendungsdomäne nicht auswählen, in der die geladene SWF-Datei abgelegt wird. Wenn Sie eine Anwendungsdomäne angegeben haben, wird diese Auswahl ignoriert. Wenn Sie jedoch eine SWF-Datei in Ihre eigene Sicherheitsdomäne laden, da die SWF-Datei aus Ihrer eigenen Domäne stammt oder Sie sie in Ihre Sicherheitsdomäne importieren, können Sie die Anwendungsdomäne für die geladene SWF-Datei auswählen.
Sie können eine Anwendungsdomäne für LoaderContext.applicationDomain nur über Ihre eigene Sicherheitsdomäne übergeben. Beim Versuch, eine Anwendungsdomäne über eine andere Sicherheitsdomäne zu übergeben, wird eine SecurityError-Ausnahme ausgelöst.
Für die ApplicationDomain-Eigenschaft können Sie vier verschiedene Optionen auswählen:
new ApplicationDomain(ApplicationDomain.currentDomain) angeben. Damit kann die geladene SWF-Datei direkt die Klassen der übergeordneten Domäne verwenden, beispielsweise durch Schreiben von new MyClassDefinedInParent(). Die übergeordnete Domäne kann diese Syntax jedoch nicht verwenden. Die übergeordnete Domäne kann die Klassen der untergeordneten Domäne nur verwenden, indem ApplicationDomain.getDefinition() aufgerufen wird, um die Klassen abzurufen. Der Vorteil dieser Auswahl liegt darin, dass kein Fehler ausgegeben wird, wenn die untergeordnete Domäne eine Klasse mit demselben Namen wie eine Klasse definiert, die bereits in der übergeordneten Domäne festgelegt ist. Die untergeordnete Klasse übernimmt einfach die Definition der übergeordneten Domäne für die entsprechende Klasse. Die widersprüchliche Definition der untergeordneten Domäne wird erst verwendet, wenn sie durch die untergeordnete oder übergeordnete Domäne durch Aufrufen der ApplicationDomain.getDefinition()-Methode abgerufen wird.ApplicationDomain.currentDomain verwenden. Nach Abschluss des Ladevorgangs können in der übergeordneten und der untergeordneten Domäne jeweils die Klassen der anderen Domäne verwendet werden. Wenn die untergeordnete Domäne eine Klasse mit demselben Namen wie eine bereits in der übergeordneten Domäne festgelegte Klasse definiert, wird die übergeordnete Klasse verwendet und die untergeordnete ignoriert.new ApplicationDomain(null) verwenden. Damit sind das ladende und das geladene Objekt vollkommen getrennt. Sie können gesonderte Versionen von Klassen mit demselben Namen erstellen, ohne dass Konflikte auftreten oder Prioritäten festgelegt werden. Die Klassen der jeweils anderen Seite werden nur durch Aufrufen der ApplicationDomain.getDefinition()-Methode angezeigt.new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) wird eine SWF-Datei beispielsweise in einer neuen untergeordneten Domäne der übergeordneten Domäne der übergeordneten Domäne der aktuellen Domäne geladen.Nach Abschluss eines Ladevorgangs muss auf beiden Seiten (ladendes Objekt und geladenes Objekt) möglicherweise die eigene ApplicationDomain oder die ApplicationDomain der anderen Seite gesucht werden, um ApplicationDomain.getDefinition() aufzurufen. Jede Seite kann mithilfe von ApplicationDomain.currentDomain einen Verweis auf die eigene Anwendungsdomäne abrufen. Die ladende SWF-Datei kann über Loader.contentLoaderInfo.applicationDomain einen Verweis auf die ApplicationDomain der geladenen SWF-Datei abrufen. Wenn in der geladenen SWF-Datei die Art und Weise des Ladevorgangs bekannt ist, kann das ApplicationDomain-Objekt der ladenden SWF-Datei aufgerufen werden. Wenn die untergeordnete Domäne beispielsweise standardmäßig geladen wurde, kann die Anwendungsdomäne der ladenden SWF-Datei über ApplicationDomain.currentDomain.parentDomain abgerufen werden.
Weitere Informationen finden Sie im Abschnitt "ApplicationDomain-Klasse" im Kapitel "Clientsystem-Umgebung" im Handbuch Programmieren mit ActionScript 3.0.
Siehe auch
| checkPolicyFile | Eigenschaft |
public var checkPolicyFile:Boolean = false
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Gibt an, ob in Flash Player vor dem Laden eines Objekts eine domänenübergreifende Richtliniendatei vom Server des geladenen Objekts heruntergeladen werden soll. Dieses Flag kann auf die Loader.load()-Methode, jedoch nicht auf die Loader.loadBytes()-Methode angewendet werden.
Setzen Sie dieses Flag auf true, wenn Sie ein Bild (JPEG-, GIF- oder PNG-Datei) von außerhalb der Domäne der aufrufenden SWF-Datei laden und davon ausgehen, dass Sie über ActionScript auf den Inhalt des Bilds zugreifen müssen. Beispiele für den Zugriff auf Bildinhalte sind u. a. Verweise auf die Loader.content-Eigenschaft zum Abrufen eines Bitmap-Objekts oder Aufrufe der BitmapData.draw()-Methode zum Abrufen einer Kopie der Pixel im geladenen Bild. Wenn Sie einen dieser Vorgänge starten, ohne während des Ladevorgangs einen Wert für checkPolicyFile angegeben zu haben, wird möglicherweise eine SecurityError-Ausnahme ausgegeben, da die erforderliche Richtliniendatei noch nicht heruntergeladen wurde.
Wenn Sie die Loader.load()-Methode aufrufen und LoaderContext.checkPolicyFile dabei auf true gesetzt ist, wird das angegebene Objekt in Flash Player erst dann in URLRequest.url heruntergeladen, nachdem zuvor eine entsprechende domänenübergreifende Richtliniendatei heruntergeladen oder keine entsprechende Richtliniendatei gefunden wurde. Flash Player überprüft zunächst Richtliniendateien, die bereits heruntergeladen wurden, versucht dann, ausstehende Richtliniendateien herunterzuladen, die in Aufrufen der Security.loadPolicyFile()-Methode angegeben wurden, und versucht schließlich, eine Richtliniendatei vom Standardspeicherort herunterzuladen, der URLRequest.url entspricht, d. h. /crossdomain.xml auf dem gleichen Server wie URLRequest.url. In allen Fällen muss die entsprechende Richtliniendatei auf dem Flash Player-Server vorhanden sein, über die anhand des Speicherorts der Richtliniendatei auf das Objekt unter URLRequest.url zugegriffen werden kann und über die der Zugriff durch die Domäne der aufrufenden SWF-Datei über mindestens ein <allow-access-from>-Tag ermöglicht wird.
Wenn Sie checkPolicyFile auf true setzen, wird in Flash Player zunächst die Richtliniendatei vollständig heruntergeladen und erst dann der in der Loader.load()-Methode angegebene Download gestartet. Wenn die erforderliche Richtliniendatei vorhanden ist und ProgressEvent.PROGRESS- oder Event.COMPLETE-Ereignisse von der contentLoaderInfo-Eigenschaft des Loader-Objekts zurückgegeben wurden, ist der Download der Richtliniendatei abgeschlossen. Sie können dann Vorgänge durchführen, bei denen die Richtliniendatei erforderlich ist.
Wenn Sie checkPolicyFile auf true setzen und keine entsprechende Richtliniendatei vorhanden ist, wird eine Fehlermeldung erst bei einem Vorgang ausgegeben, bei dem eine SecurityError-Ausnahme ausgelöst wird. Nachdem das LoaderInfo-Objekt ein ProgressEvent.PROGRESS- oder Event.COMPLETE-Ereignis ausgelöst hat, können Sie jedoch testen, ob eine entsprechende Richtliniendatei gefunden wurde, indem Sie den Wert der LoaderInfo.childAllowsParent-Eigenschaft überprüfen.
Wenn Sie keinen Zugriff auf Pixelebene auf das geladene Bild benötigen, setzen Sie die checkPolicyFile-Eigenschaft auf true. In diesem Fall ist es nicht erforderlich, nach einer Richtliniendatei zu suchen, da dies möglicherweise den Start des Downloads verzögert und unter Umständen unnötigerweise Netzwerkbandbreite beansprucht.
Setzen Sie checkPolicyFile zudem nicht auf true, wenn Sie eine SWF-Datei mit der Loader.load()-Methode herunterladen. Dies liegt darin begründet, dass SWF-zu-SWF-Berechtigungen nicht über Richtliniendateien sondern durch die Security.allowDomain()-Methode gesteuert werden. Daher hat checkPolicyFile beim Laden einer SWF-Datei keine Auswirkung. In diesem Fall ist es nicht erforderlich, nach einer Richtliniendatei zu suchen, da dies möglicherweise den Download der SWF-Datei verzögert und unter Umständen unnötigerweise Netzwerkbandbreite beansprucht. (In Flash Player kann nicht festgestellt werden, ob eine SWF-Datei oder ein Bild heruntergeladen wird, da die Richtliniendatei vor diesem Download heruntergeladen wird.)
Bei Verwendung von checkPolicyFile beim Herunterladen eines Objekts von einer URL, bei der möglicherweise serverseitige HTTP-Weiterleitungen verwendet werden, ist Folgendes zu beachten: Flash Player versucht immer, Richtliniendateien abzurufen, die der ursprünglichen in URLRequest.url angegebenen URL entsprechen. Wenn das endgültige Objekt aufgrund von HTTP-Weiterleitungen von einer anderen URL stammt, gelten die ursprünglich heruntergeladenen Richtliniendateien möglicherweise nicht für die endgültige URL des Objekts. Dies ist jedoch die URL, die bei Sicherheitsentscheidungen von Bedeutung ist. In diesem Fall können Sie den Wert von LoaderInfo.url nach dem Empfangen eines ProgressEvent.PROGRESS- oder Event.COMPLETE-Ereignisses überprüfen, in dem die endgültige URL des Objekts angegeben ist. Rufen Sie dann die Security.loadPolicyFile()-Methode mit der URL einer Richtliniendatei auf, die auf der endgültigen URL des Objekts beruht. Rufen Sie anschließend den Wert von LoaderInfo.childAllowsParent auf, bis er sich in true ändert.
Siehe auch
| securityDomain | Eigenschaft |
public var securityDomain:SecurityDomain = null
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Gibt die bei einem Loader.load()-Vorgang zu verwendende Sicherheitsdomäne an. Verwenden Sie diese Eigenschaft nur beim Laden einer SWF-Datei (und nicht beim Laden eines Bilds).
Die Auswahl der Sicherheitsdomäne ist nur beim Laden einer SWF-Datei von Bedeutung, die möglicherweise von einer anderen Domäne (einem anderen Server) als die ladende SWF-Datei stammt. Wenn Sie eine SWF-Datei von Ihrer eigenen Domäne laden, wird sie immer in Ihrer Sicherheitsdomäne abgelegt. Wenn Sie jedoch eine SWF-Datei von einer anderen Domäne laden, stehen Ihnen zwei Optionen zur Verfügung. Sie können festlegen, dass die geladene SWF-Datei in ihrer "natürlichen" Sicherheitsdomäne abgelegt wird, die sich von der der ladenden SWF-Datei unterscheidet. Dies ist die Standardeinstellung. Die andere Möglichkeit besteht darin, dass Sie festlegen, dass die geladene SWF-Datei in der gleichen Sicherheitsdomäne wie die ladende SWF-Datei abgelegt wird. Setzen Sie dazu myLoaderContext.securityDomain auf den gleichen Wert wie SecurityDomain.currentDomain. Dies wird als importiertes Laden bezeichnet und entspricht sicherheitstechnisch dem Kopieren der geladenen SWF-Datei auf Ihren Server und dem anschließenden Laden der Datei von diesem Server. Damit das importierte Laden erfolgreich durchgeführt wird, muss der Server der geladenen SWF-Datei über eine Richtliniendatei verfügen, die in der Domäne der ladenden SWF-Datei als vertrauenswürdig eingestuft ist.
Sie können für LoaderContext.securityDomain nur Ihre eigene Sicherheitsdomäne übergeben. Beim Versuch, andere Sicherheitsdomänen zu übergeben, wird eine SecurityError-Ausnahme ausgegeben.
Weitere Informationen finden Sie im Kapitel "Sicherheit" des Handbuchs Programmieren mit ActionScript 3.0.
Siehe auch
| LoaderContext | () | Konstruktor |
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Erstellt ein neues LoaderContext-Objekt mit den angegebenen Einstellungen. Ausführliche Informationen zu diesen Einstellungen finden Sie in den Beschreibungen der Eigenschaften für diese Klasse.
ParametercheckPolicyFile:Boolean (default = false) — Gibt an, ob in Flash Player vor dem Laden des Objekts nach einer domänenübergreifenden Richtliniendatei gesucht werden soll.
|
|
applicationDomain:ApplicationDomain (default = null) — Gibt das ApplicationDomain-Objekt zur Verwendung mit einem Loader-Objekt an.
|
|
securityDomain:SecurityDomain (default = null) — Gibt das SecurityDomain-Objekt an, das für ein Loader-Objekt verwendet werden soll.
|
Siehe auch
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/system/LoaderContext.html