| Package | flash.system |
| Classe | public class LoaderContext |
| Héritage | LoaderContext Object |
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
context dans les méthodes load() et loadBytes() de la classe Loader.
Lors du chargement des fichiers SWF avec la méthode Loader.load(), vous devez prendre deux décisions : dans quel domaine de sécurité le fichier SWF doit-il être placé et dans quel domaine d'application au sein de ce domaine de sécurité ? Pour plus de détails sur ces choix, consultez les sections des propriétés applicationDomain et securityDomain.
Lors du chargement d'un fichier SWF avec la méthode Loader.loadBytes(), vous devez effectuer le même choix de domaine d'application comme pour Loader.load(), mais il n'est pas nécessaire de spécifier un domaine de sécurité, dans la mesure où Loader.loadBytes() place toujours le fichier SWF qui est chargé dans le domaine de sécurité du fichier SWF en cours de chargement.
Lors du chargement des images (JPEG, GIF ou PNG) et non pas de fichiers SWF, il n'est pas nécessaire de spécifier un domaine de sécurité ou un domaine d'application, dans la mesure où ces concepts n'ont de sens que pour les fichiers SWF. Par contre, une seule décision est nécessaire : avez-vous besoin d'un accès programmé aux pixels de l'image chargée ? Dans l'affirmative, consultez la propriété checkPolicyFile.
Voir aussi
| Propriété | Défini par | ||
|---|---|---|---|
| applicationDomain : ApplicationDomain = null
Spécifie le domaine d'application à utiliser pour la méthode Loader.load() ou Loader.loadBytes().
| LoaderContext | ||
| checkPolicyFile : Boolean = false
Spécifie si Flash Player doit tenter de télécharger un fichier de régulation interdomaines à partir du serveur de l'objet chargé avant de commencer à charger ce dernier.
| LoaderContext | ||
![]() | constructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
| Object | |
![]() | prototype : Object
[static]
Référence à l’objet prototype d’un objet de classe ou fonction.
| Object | |
| securityDomain : SecurityDomain = null
Spécifie le domaine de sécurité à utiliser pour une opération Loader.load().
| LoaderContext | ||
| Méthode | Défini par | ||
|---|---|---|---|
|
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
Crée un objet LoaderContext avec les paramètres spécifiés.
| LoaderContext | ||
![]() |
Indique si la propriété spécifiée d'un objet est définie.
| Object | |
![]() |
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
| Object | |
![]() |
Indique si la propriété spécifiée existe et est énumérable.
| Object | |
![]() |
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
| Object | |
![]() |
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
| Object | |
![]() |
Renvoie la valeur primitive de l'objet spécifié.
| Object | |
| applicationDomain | propriété |
public var applicationDomain:ApplicationDomain = null
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Spécifie le domaine d'application à utiliser pour la méthode Loader.load() ou Loader.loadBytes(). Utilisez cette propriété uniquement lors du chargement d'un fichier SWF écrit dans ActionScript 3.0 (et non pas une image ou un fichier SWF écrit au format ActionScript 1.0 ou ActionScript 2.0).
Tout domaine de sécurité est divisé en un ou plusieurs domaines d'application, représentés par les objets ApplicationDomain. Les domaines d'application n'ont pas de rôle de sécurité ; ils servent à gérer les unités de code ActionScript qui doivent coopérer. Si vous chargez un fichier SWF provenant d'un autre domaine, puis autorisez son placement dans un domaine de sécurité distinct, vous ne pouvez pas contrôler le domaine d'application dans lequel le ficher SWF est placé. Si vous avez spécifié un domaine d'application, ce choix sera ignoré. Cependant, si vous chargez un fichier SWF dans votre propre domaine de sécurité, soit parce que le fichier SWF provient de votre domaine, soit parce que vous l'importez dans votre domaine de sécurité, puis vous pouvez contrôler le domaine d'application du fichier SWF chargé.
Vous devez transmettre le domaine d'application à partir de votre propre domaine de sécurité dans LoaderContext.applicationDomain. Toute tentative de transmission d'un domaine d'application à partir de tout autre domaine de sécurité renvoie une exception SecurityError.
Vous disposez de quatre choix concernant le type de propriété ApplicationDomain à utiliser :
new ApplicationDomain(ApplicationDomain.currentDomain). Ceci permet au fichier SWF d'utiliser les classes parent de façon directe, par exemple en écrivant new MyClassDefinedInParent(). Le parent, cependant, ne permet pas d'utiliser cette syntaxe. Si le parent souhaite utiliser les classes de l'enfant, il doit appeler ApplicationDomain.getDefinition() pour les extraire. L'avantage de ce choix est que, si l'enfant définit une classe du même nom que la classe qui est déjà définie par le parent, aucune erreur ne se produit ; l'enfant hérite simplement de la définition de cette classe à partir de son parent et toute définition de l'enfant qui entraîne un conflit reste inutilisée, sauf si l'enfant ou le parent appelle la méthode ApplicationDomain.getDefinition() pour l'extraire.ApplicationDomain.currentDomain. Une fois le chargement terminé, le parent et l'enfant peuvent exploiter leurs classes respectives de façon directe. Si l'enfant tente de définir une classe avec le même nom que celle déjà définie par le parent, la classe du parent est utilisée et celle de l'enfant est ignorée.new ApplicationDomain(null). Cette opération permet de distinguer les objets de chargement des objets chargés, afin de définir des versions distinctes des classes du même nom, sans conflit ou problèmes de priorité. Seule la méthode ApplicationDomain.getDefinition() permet aux deux parties de voir les classes de l'autre.new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) charge un fichier SWF dans un nouvel enfant du grand-parent du domaine actuel.Une fois le chargement terminé, les deux parties (en cours de chargement ou chargées) peuvent avoir à rechercher leur propre domaine d'application, ou le domaine d'application de l'autre partie, afin d'appeler ApplicationDomain.getDefinition(). Chaque partie peut extraire une référence vers son propre domaine d'application à l'aide de ApplicationDomain.currentDomain. Le fichier SWF de chargement peut extraire une référence au domaine d'application du fichier SWF à l'aide de Loader.contentLoaderInfo.applicationDomain. Si le fichier SWF a identifié son mode de chargement, il peut retrouver l'objet ApplicationDomain du fichier SWF en cours de chargement. Par exemple, si l'enfant a été chargé à l'aide de la méthode par défaut, il peut déterminer le domaine d'application du fichier SWF à l'aide de ApplicationDomain.currentDomain.parentDomain.
Pour plus d'informations, consultez la section « Classe ApplicationDomain » du chapitre « Environnement du système client » du guide Programmation d'ActionScript 3.0.
Voir aussi
| checkPolicyFile | propriété |
public var checkPolicyFile:Boolean = false
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Spécifie si Flash Player doit tenter de télécharger un fichier de régulation interdomaines à partir du serveur de l'objet chargé avant de commencer à charger ce dernier. Cet indicateur s'applique à la méthode Loader.load(), mais pas à la méthode Loader.loadBytes().
Définissez cet indicateur sur true lorsque vous chargez une image (JPEG, GIF ou PNG) en dehors du domaine du fichier SWF qui procède à l'appel et lorsque vous pensez avoir besoin d'accéder au contenu de cette image à partir d'ActionScript. Parmi les exemples d'accès au contenu de l'image, citons le référencement de la propriété Loader.content pour obtenir un objet Bitmap et l'appel à la méthode BitmapData.draw() pour obtenir une copie des pixels de l'image chargée. Si vous tentez l'une de ces opérations sans avoir spécifié checkPolicyFile lors du chargement, vous risquez de subir une exception SecurityError dans la mesure où le fichier de régulation requis n'a pas encore été téléchargé.
Lorsque vous appelez la méthode Loader.load() avec LoaderContext.checkPolicyFile défini sur true, Flash Player ne commence pas le téléchargement de l'objet spécifié dans URLRequest.url jusqu'à ce que ce dernier télécharge avec succès un fichier de régulation interdomaines adéquat ou détermine que ce fichier de régulation n'existe pas. Flash Player analyse en premier lieu les fichiers de régulation qui ont déjà été téléchargés, puis tente de télécharger tous les fichiers de stratégie en attente qui sont spécifiés lors des appels à la méthode Security.loadPolicyFile(), puis tente de télécharger un fichier de stratégie à l'emplacement par défaut, qui correspond à URLRequest.url, soit /crossdomain.xml sur le même serveur que URLRequest.url. Dans tous les cas, il est nécessaire que le serveur héberge un fichier de régulation approprié, que ce dernier autorise l’accès à l'objet à URLRequest.url sur la base de l’emplacement du fichier de régulation et qu’il permette au domaine du fichier SWF appelant d'accéder à l'objet, par le biais d’une ou plusieurs balises <allow-access-from>.
Si vous définissez checkPolicyFile sur true, Flash Player attend la fin du fichier de régulation avant de procéder au chargement principal que vous avez spécifié avec la méthode Loader.load(). Par conséquent, tant que le fichier de régulation requis existe, dès la réception des événements ProgressEvent.PROGRESS ou Event.COMPLETE à partir de la propriété contentLoaderInfo de votre objet Loader, le téléchargement du fichier de régulation se termine et vous pouvez procéder de façon sûre aux opérations qui nécessitent ce fichier de régulation.
Si vous définissez checkPolicyFile sur true, et si aucun fichier de régulation n'est trouvé, vous ne recevrez aucune indication d'erreur jusqu'à ce que vous tentiez une opération qui renvoie une exception SecurityError. Cependant, lorsque l'objet LoaderInfo distribue un événement ProgressEvent.PROGRESS ou Event.COMPLETE, vous pouvez déterminer si un fichier de régulation a été détecté en vérifiant la valeur de la propriété LoaderInfo.childAllowsParent.
Si l'accès au niveau des pixels de l'image en cours de chargement est requis, vous ne pouvez pas définir la propriété checkPolicyFile sur true. La vérification d'un fichier de stratégie dans ce cas est contre-productive, dans la mesure où elle risque de retarder le début de votre téléchargement et risque de consommer la bande passante du réseau de façon inutile.
Evitez également de définir checkPolicyFile sur true si vous utilisez la méthode Loader.load() pour télécharger un fichier SWF. Ceci est dû au fait que les autorisations SWF vers SWF ne sont pas contrôlées par les fichiers de stratégies, mais par la méthode Security.allowDomain(), ce qui a pour conséquence que checkPolicyFile n'a pas d'effet lorsque vous chargez le fichier SWF. La vérification d'un fichier de stratégie dans ce cas est contre-productive, dans la mesure où elle risque de retarder le téléchargement du fichier SWF et risque de consommer la bande passante du réseau de façon inutile. (Flash Player ne peut pas déterminer si votre téléchargement principal sera un fichier SWF ou une image, dans la mesure où le téléchargement du fichier de régulation se produit avant le téléchargement principal.)
Servez-vous de checkPolicyFile avec précaution si vous téléchargez un objet à partir d'une URL qui peut utiliser des redirections HTTP côté serveur. Flash Player tente systématiquement d’extraire les fichiers de régulation correspondant à l’URL spécifiée à l’origine dans URLRequest.url. Si l'objet final provient d'une URL différente en conséquence de redirections HTTP, les fichiers de régulation initialement téléchargés peuvent ne pas être applicables à l’URL finale de l'objet, autrement dit l’URL à prendre en compte dans les décisions relatives à la sécurité. Si vous vous trouvez dans cette situation, le code examine la valeur LoaderInfo.url après avoir reçu un événement ProgressEvent.PROGRESS ou Event.COMPLETE, ce qui permet d'obtenir l'URL finale de l'objet. La méthode Security.loadPolicyFile() est ensuite appelée avec une URL de fichier de régulation basée sur l’URL finale de l'objet. La valeur de LoaderInfo.childAllowsParent est ensuite vérifiée régulièrement jusqu'à ce qu'elle ait la valeur true.
Voir aussi
| securityDomain | propriété |
public var securityDomain:SecurityDomain = null
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Spécifie le domaine de sécurité à utiliser pour une opération Loader.load(). Utilisez cette propriété uniquement lors du chargement d'un fichier SWF (et non pas une image).
Le choix du domaine de sécurité n'a de sens que si vous chargez un fichier SWF pouvant provenir d'un autre domaine (un autre serveur) que le fichier SWF de chargement. Lorsque vous chargez un fichier SWF provenant de votre propre domaine, ce dernier est placé dans votre domaine de sécurité. Cependant, lorsque vous chargez un fichier SWF à partir d'un domaine différent, vous disposez de deux options. Vous pouvez autoriser le placement du fichier SWF chargé dans le domaine de sécurité « naturel », qui est différent de celui du fichier SWF de chargement. Il s'agit de la valeur par défaut. L'autre consiste à spécifier que vous souhaitez placer le fichier SWF chargé dans le même domaine de sécurité que le fichier SWF de chargement, en définissant myLoaderContext.securityDomain comme égal à SecurityDomain.currentDomain. Cette opération est appelée chargement en vue de l'importation et est équivalente, pour des raisons de sécurité, à la copie du fichier SWF chargé sur votre propre serveur et à son chargement à partir de cet endroit. Pour que le chargement en vue de l'importation réussisse, le serveur du fichier SWF doit disposer d'un fichier de régulation pour lequel le domaine de chargement du fichier SWF fait partie des domaines de confiance.
Vous pouvez transmettre votre propre domaine de sécurité uniquement dans LoaderContext.securityDomain. Toute tentative de transmission vers un autre domaine de sécurité renvoie une exception SecurityError.
Pour plus d’informations, consultez le chapitre « Sécurité » du manuel Programmation d’ActionScript 3.0.
Voir aussi
| LoaderContext | () | Constructeur |
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Crée un objet LoaderContext avec les paramètres spécifiés. Pour compléter les détails de ces paramètres, consultez les descriptions des propriétés de cette classe.
ParamètrescheckPolicyFile:Boolean (default = false) — Indique si Flash Player doit (true) ou non vérifier l’existence d’un fichier de régulation interdomaines avant le chargement de l’objet.
|
|
applicationDomain:ApplicationDomain (default = null) — Spécifie l'objet ApplicationDomain à utiliser pour un objet Loader.
|
|
securityDomain:SecurityDomain (default = null) — Spécifie l'objet SecurityDomain à utiliser pour un objet Loader.
|
Voir aussi
M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/system/LoaderContext.html