Package | flash.display |
Classe | public class Loader |
Héritage | Loader DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
Sous-classes | AVLoader, FlexLoader |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
pour lancer le chargement. L’objet d’affichage chargé est intégré en tant qu’enfant à l’objet Loader.
Utilisez la classe URLLoader pour charger du texte ou des données binaires.
La classe Loader bloque les méthodes indiquées ci-dessous dont elle hérite, car un objet Loader ne peut disposer que d’un seul objet d’affichage enfant, celui qu’il charge. L’appel des méthodes suivantes renvoie une exception : addChild()
, addChildAt()
, removeChild()
, removeChildAt()
et setChildIndex()
. Pour supprimer un objet d’affichage chargé, vous devez supprimer l’objet Loader du tableau des enfants de l’occurrence de DisplayObjectContainer parent.
Remarques iOS
Dans les applications AIR sur iOS, vous ne pouvez charger un fichier SWF contenant du code ActionScript qu’à partir du package de l’application. Cette restriction inclut tous les scripts ActionScript, tels que les actifs comportant des noms de classe exportés pour ActionScript. Pour charger un fichier SWF, vous devez utiliser le même domaine d’application que le fichier SWF parent, comme illustré dans l’exemple suivant :
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);
En outre, iOS ne vous permet pas de charger un fichier SWF contenant du code ActionScript ByteCode (ABC), puis de le décharger et le recharger. Si vous essayez cette opération, le moteur d’exécution renvoie une erreur 3764.
Dans les versions antérieures à AIR 3.6, seuls les fichiers ne contenant aucun bytecode ActionScript peuvent être chargés, que ce soit à partir d’un package d’application ou d’un réseau. Pour éviter l’utilisation d’un fichier SWF externe avec ActionScript, créez une bibliothèque SWC et associez-la à votre SWF principal.
AIR 3.7 et versions ultérieures prennent en charge le chargement des fichiers SWF secondaires hébergés en externe. Cliquez ici pour consulter la description détaillée de cette fonctionnalité.
Ces restrictions spécifiques à iOS ne s’appliquent pas lorsqu’une application est en cours d’exécution dans le simulateur iOS (ipa-test-interpreter-simulator ou ipa-debug-interpreter-simulator) ou en mode interpréteur (ipa-test-interpreter ou ipa-debug-interpreter).
Sécurité de l’objet Loader
Pour utiliser la classe Loader, tenez compte du modèle de sécurité de Flash Player et d’Adobe AIR :
- Vous pouvez charger du contenu à partir de toute source accessible.
- Le chargement n’est pas autorisé si le fichier SWF appelant est sur un sandbox réseau et que le fichier à charger est local.
- If the loaded content is a SWF file written with ActionScript 3.0, it cannot be cross-scripted by a SWF file in another security sandbox unless that cross-scripting arrangement was approved through a call to the
System.allowDomain()
or theSystem.allowInsecureDomain()
method in the loaded content file. - Si le contenu chargé est un fichier SWF AVM1 (écrit en langage ActionScript 1.0 ou 2.0), il ne peut pas être intercodé par un fichier SWF AVM2 (écrit en langage ActionScript 3.0). La classe LocalConnection permet cependant aux deux fichiers SWF de communiquer entre eux.
- Si le contenu chargé est une image, un fichier SWF situé en dehors du sandbox de sécurité ne peut pas accéder aux données correspondantes, à moins que le domaine de ce fichier n’ait été inclus dans un fichier de régulation d’URL dans le domaine d’origine de l’image.
- Les clips situés dans le sandbox local avec système de fichier ne peuvent pas inscrire des clips dans le sandbox local avec accès au réseau (l’inverse est également impossible).
- Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Néanmoins, dans AIR, le contenu du sandbox de sécurité de l’application
(contenu installé avec l’application AIR) n’est pas soumis à ces restrictions de sécurité.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Lorsque vous chargez un fichier SWF d’une source non approuvée (telle qu’un domaine autre que celui du fichier SWF racine de l’objet Loader), il peut s’avérer utile de définir un masque pour ce dernier, afin d’empêcher le contenu chargé, qui est un enfant de l’objet Loader, d’apparaître dans des parties de la scène qui ne relèvent pas de ce masque, comme illustré par le code suivant :
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);
Remarque : Apple ajoute App Transport Security à iOS9 qui n’autorise pas les connexions non sécurisées entre l’application et les services Web. En raison de cette modification, toutes les connexions basées sur des sites Web non sécurisés via Loader, App Transport Security arrêtera URLLoader et l’empêchera de fonctionner. Spécifiez les exceptions au comportement par défaut en ajoutant des clés au fichier Info.plist de votre application.
Pour désactiver la fonction complètement, vous pouvez ajouter ce qui suit dans votre fichier Info.plist et elle fonctionnera comme précédemment.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>
Spécifiez les exceptions au comportement par défaut en ajoutant des clés à la balise InfoAdditions du descripteur d'application de votre application.
<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>
Plus d’exemples
Informations complémentaires
Concepts fondamentaux de la programmation de l’affichage
Classes d’affichage de base
Chargement dynamique du contenu d’affichage
Utilisation du mipmapping
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
Implémentation d’accessibilité (AccessibilityImplementation) actuelle pour cette occurrence d’InteractiveObject. | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
Options d’accessibilité actuelles de l’objet d’affichage. | DisplayObject | ||
alpha : Number
Indique la valeur de transparence alpha de l’objet spécifié. | DisplayObject | ||
blendMode : String
Valeur de la classe BlendMode qui spécifie le mode de fusion à utiliser. | DisplayObject | ||
blendShader : Shader [écriture seule]
Définit un shader utilisé pour la fusion de l’arrière-plan et du premier plan. | DisplayObject | ||
cacheAsBitmap : Boolean
Si la valeur true est définie, les moteurs d’exécution de Flash placent en mémoire cache une version bitmap interne de l’objet d’affichage. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
S’il n’est pas nul, cet objet Matrix définit le mode de rendu d’un objet d’affichage lorsque cacheAsBitmap est définie sur true. | DisplayObject | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
content : DisplayObject [lecture seule]
Contient l’objet d’affichage racine du fichier SWF ou du fichier d’image (JPG, PNG ou GIF) qui a été chargé à l’aide de la méthode load() ou loadBytes(). | Loader | ||
contentLoaderInfo : LoaderInfo [lecture seule]
Renvoie un objet LoaderInfo qui correspond à l’objet en cours de chargement. | Loader | ||
contextMenu : NativeMenu
Spécifie le menu contextuel associé à l’objet. | InteractiveObject | ||
doubleClickEnabled : Boolean
Spécifie si l’objet reçoit les événements doubleClick. | InteractiveObject | ||
filters : Array
Tableau indexé contenant tous les objets filtre actuellement associés à l’objet d’affichage. | DisplayObject | ||
focusRect : Object
Spécifie si l’objet affiche un rectangle de focus. | InteractiveObject | ||
height : Number
Indique la hauteur de l’objet d’affichage, en pixels. | DisplayObject | ||
loaderInfo : LoaderInfo [lecture seule]
Renvoie un objet LoaderInfo qui contient des informations relatives au chargement du fichier auquel appartient cet objet d’affichage. | DisplayObject | ||
mask : DisplayObject
L’objet d’affichage appelant est masqué par l’objet mask spécifié. | DisplayObject | ||
metaData : Object
Obtient les données d’objet de métadonnées de l’occurrence DisplayObject si les données d’meta a été stockée près de la l’occurrence de cette DisplayObject dans le fichier SWF à l’aide d’une balise de4 PlaceObject. | DisplayObject | ||
mouseChildren : Boolean
Détermine si les enfants de l’objet prennent en charge la souris ou les périphériques de saisie utilisateur. | DisplayObjectContainer | ||
mouseEnabled : Boolean
Spécifie si l’objet reçoit des messages de la souris ou d’un autre périphérique de saisie utilisateur. | InteractiveObject | ||
mouseX : Number [lecture seule]
Indique la coordonnée x de la souris ou ou la position du périphérique de saisie utilisateur, en pixels. | DisplayObject | ||
mouseY : Number [lecture seule]
Indique la coordonnée y de la souris ou la position du périphérique de saisie utilisateur, en pixels. | DisplayObject | ||
name : String
Indique le nom d’occurrence de DisplayObject. | DisplayObject | ||
needsSoftKeyboard : Boolean
Indique si un clavier virtuel (clavier logiciel à l’écran) doit s’afficher lorsque cette occurrence d’InteractiveObject reçoit le focus. | InteractiveObject | ||
numChildren : int [lecture seule]
Renvoie le nombre d’enfants de l’objet. | DisplayObjectContainer | ||
opaqueBackground : Object
Indique si l’objet d’affichage est opaque avec une couleur d’arrière-plan spécifique. | DisplayObject | ||
parent : DisplayObjectContainer [lecture seule]
Indique l’objet DisplayObjectContainer qui contient l’objet d’affichage. | DisplayObject | ||
root : DisplayObject [lecture seule]
Pour un objet d’affichage résidant dans un fichier SWF chargé, la propriété root correspond à l’objet d’affichage de premier niveau dans la partie de la structure arborescente de la liste d’affichage représentée par ce fichier. | DisplayObject | ||
rotation : Number
Indique la rotation de l’occurrence de DisplayObject, en degrés, à partir de son orientation d’origine. | DisplayObject | ||
rotationX : Number
Indique la rotation de l’axe des x de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent. | DisplayObject | ||
rotationY : Number
Indique la rotation de l’axe des y de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent. | DisplayObject | ||
rotationZ : Number
Indique la rotation de l’axe des z de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent. | DisplayObject | ||
scale9Grid : Rectangle
Grille de mise à l’échelle en vigueur. | DisplayObject | ||
scaleX : Number
Indique l’échelle horizontale (pourcentage) de l’objet telle qu’elle est appliquée à partir du point d’alignement. | DisplayObject | ||
scaleY : Number
Indique l’échelle verticale (pourcentage) de l’objet telle qu’elle est appliquée à partir du point d’alignement. | DisplayObject | ||
scaleZ : Number
Indique l’échelle de profondeur (pourcentage) de l’objet tel qu’elle est appliquée à partir du point d’alignement. | DisplayObject | ||
scrollRect : Rectangle
Cadre de sélection du défilement de l’objet d’affichage. | DisplayObject | ||
softKeyboard : String
Contrôle l’aspect du clavier logiciel. | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
Définit la zone qui doit rester à l’écran lorsqu’un clavier logiciel s’affiche (non disponible sur iOS) | InteractiveObject | ||
stage : Stage [lecture seule]
Scène de l’objet d’affichage. | DisplayObject | ||
tabChildren : Boolean
Détermine si les enfants de l’objet prennent ou non en charge la tabulation. | DisplayObjectContainer | ||
tabEnabled : Boolean
Indique si cet objet est spécifié dans l’ordre de tabulation. | InteractiveObject | ||
tabIndex : int
Spécifie l’ordre de tabulation des objets dans un fichier SWF. | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [lecture seule]
Renvoie un objet TextSnapshot pour l’occurrence de DisplayObjectContainer. | DisplayObjectContainer | ||
transform : flash.geom:Transform
Objet dont les propriétés se rapportent à la matrice, à la transformation des couleurs et aux limites des pixels d’un objet d’affichage. | DisplayObject | ||
uncaughtErrorEvents : UncaughtErrorEvents [lecture seule]
Objet qui distribue un événement uncaughtError lorsqu’une erreur non interceptée se produit dans le fichier SWF chargé par cet objet Loader. | Loader | ||
visible : Boolean
Indique si l’objet d’affichage est visible ou non. | DisplayObject | ||
width : Number
Indique la largeur de l’objet d’affichage, en pixels. | DisplayObject | ||
x : Number
Indique la coordonnée x de l’occurrence de DisplayObject par rapport aux coordonnées locales de l’objet DisplayObjectContainer parent. | DisplayObject | ||
y : Number
Indique la coordonnée y de l’occurrence de DisplayObject par rapport aux coordonnées locales de l’objet DisplayObjectContainer parent. | DisplayObject | ||
z : Number
Indique la position de coordonnée z le long de l’axe des z de l’occurrence DisplayObject par rapport au conteneur 3D parent. | DisplayObject |
Méthode | Défini par | ||
---|---|---|---|
Loader()
Crée un objet Loader qui permet de charger des fichiers (SWF, JPEG, GIF ou PNG). | Loader | ||
Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer. | DisplayObjectContainer | ||
Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer. | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. | EventDispatcher | ||
Indique si les restrictions de sécurité entraîneraient l’omission des objets d’affichage de la liste renvoyée en appelant la méthode DisplayObjectContainer.getObjectsUnderPoint() avec le point « point » spécifié. | DisplayObjectContainer | ||
Annule une opération associée à la méthode load() actuellement en cours d’exécution pour l’occurrence de Loader. | Loader | ||
Détermine si l’objet d’affichage spécifié est un enfant de l’occurrence de DisplayObjectContainer ou l’occurrence en tant que telle. | DisplayObjectContainer | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Renvoie un rectangle qui définit la zone de l’objet d’affichage relativement au système de coordonnées de l’objet targetCoordinateSpace. | DisplayObject | ||
Renvoie l’occurrence enfant de l’objet d’affichage associée à l’index spécifié. | DisplayObjectContainer | ||
Renvoie l’objet d’affichage enfant portant le nom spécifié. | DisplayObjectContainer | ||
Renvoie la position d’index d’une occurrence enfant de DisplayObject. | DisplayObjectContainer | ||
Renvoie un tableau d’objets de niveau inférieur au point spécifié et qui sont les enfants (ou les petits-enfants, etc.) de l’occurrence de DisplayObjectContainer. | DisplayObjectContainer | ||
Renvoie un rectangle qui définit les limites de l’objet d’affichage, en se basant sur le système de coordonnées défini par le paramètre targetCoordinateSpace, moins tout trait appliqué aux formes. | DisplayObject | ||
Convertit l’objet point des coordonnées de scène (globales) vers les coordonnées de l’objet d’affichage (locales). | DisplayObject | ||
Convertit un point bidimensionnel à partir des coordonnées de scène (globales) vers les coordonnées d’un objet d’affichage tridimensionnel (locales). | DisplayObject | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Evalue le cadre de sélection de l’objet d’affichage pour savoir s’il recouvre ou recoupe le cadre de sélection de l’objet d’affichage obj. | DisplayObject | ||
Evalue l’objet d’affichage pour savoir s’il recouvre ou recoupe le point spécifié par les paramètres x et y. | DisplayObject | ||
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 | ||
Charge un fichier SWF, JPEG, JPEG progressif, GIF non animé ou PNG dans un objet enfant de l’objet Loader. | Loader | ||
Charge des données binaires stockées dans un objet ByteArray. | Loader | ||
Charge une occurrence d’IFilePromise. | Loader | ||
Convertit un point tridimensionnel des coordonnées de l’objet d’affichage tridimensionnel (locales) vers un point bidimensionnel dans les coordonnées de scène (globales). | DisplayObject | ||
Convertit l’objet point des coordonnées de l’objet d’affichage (locales) vers les coordonnées de la scène (globales). | DisplayObject | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Supprime l’occurrence enfant de DisplayObject spécifiée de la liste d’enfants de l’occurrence de DisplayObjectContainer. | DisplayObjectContainer | ||
Supprime une occurrence enfant de DisplayObject de la position d’index spécifiée dans la liste d’enfants de DisplayObjectContainer. | DisplayObjectContainer | ||
Supprime toutes les occurrences enfants de DisplayObject de la liste d’enfants de l’occurrence de DisplayObjectContainer. | DisplayObjectContainer | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
Affiche un clavier virtuel. | InteractiveObject | ||
Modifie la position d’un enfant existant dans le conteneur d’objet d’affichage. | DisplayObjectContainer | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Interrompt de façon récursive l’exécution du scénario de tous les clips ayant cet objet comme racine. | DisplayObjectContainer | ||
Intervertit l’ordre de plan (ordre d’empilement du premier plan vers l’arrière-plan) des deux objets enfant spécifiés. | DisplayObjectContainer | ||
Intervertit l’ordre de plan (ordre d’empilement du premier plan vers l’arrière-plan) des objets enfant aux deux positions d’index spécifiées dans la liste d’enfants. | DisplayObjectContainer | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Supprime un enfant de l’objet Loader chargé à l’aide de la méthode load(). | Loader | ||
Tente de décharger le contenu du fichier SWF enfant et interrompt l’exécution des commandes des fichiers SWF chargés. | Loader | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. | EventDispatcher |
content | propriété |
content:DisplayObject
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Contient l’objet d’affichage racine du fichier SWF ou du fichier d’image (JPG, PNG ou GIF) qui a été chargé à l’aide de la méthode load()
ou loadBytes()
.
Implémentation
public function get content():DisplayObject
Valeur émise
SecurityError — Le fichier SWF ou le fichier d’image chargé appartient à un sandbox de sécurité auquel vous n’avez pas accès. Pour un fichier SWF chargé, vous pouvez éviter ce problème en forçant le fichier à appeler la méthode Security.allowDomain() ou en imposant au fichier en cours de chargement de spécifier un paramètre loaderContext , la propriété securityDomain correspondante étant réglée sur SecurityDomain.currentDomain lorsque vous appelez la méthode load() ou loadBytes() .
|
Eléments de l’API associés
contentLoaderInfo | propriété |
contentLoaderInfo:LoaderInfo
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Renvoie un objet LoaderInfo qui correspond à l’objet en cours de chargement. Les objets LoaderInfo sont partagés entre l’objet Loader et l’objet chargé. L’objet LoaderInfo fournit des informations relatives à la progression du déroulement du chargement et des statistiques sur le fichier chargé.
Les événements liés au chargement sont distribués par l’objet LoaderInfo qui est référencé par la propriété contentLoaderInfo
de l’objet Loader. La propriété contentLoaderInfo
est définie sur un objet LoaderInfo valide, y compris avant le chargement du contenu, ce qui permet d’ajouter des écouteurs d’événement à l’objet avant l’opération de chargement.
Pour détecter les erreurs non interceptées qui se produisent dans un fichier SWF, utilisez la propriété Loader.uncaughtErrorEvents
et non la propriété Loader.contentLoaderInfo.uncaughtErrorEvents
.
Implémentation
public function get contentLoaderInfo():LoaderInfo
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 | propriété |
uncaughtErrorEvents:UncaughtErrorEvents
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Objet qui distribue un événement uncaughtError
lorsqu’une erreur non interceptée se produit dans le fichier SWF chargé par cet objet Loader. Une erreur non interceptée se produit lorsqu’une erreur est renvoyée en dehors de tout bloc try..catch
ou lorsqu’un objet ErrorEvent est distribué avec aucun écouteur enregistré.
Notez que la propriété uncaughtErrorEvents
d’un objet Loader distribue les événements qui se propagent vers le haut au sein de celle-ci et non les événements qu’elle distribue directement. Elle ne distribue jamais d’événement uncaughtErrorEvent
dans la phase cible. Elle distribue l’événement uniquement dans les phases de capture et de propagation. Pour détecter une erreur non interceptée dans le fichier SWF actuel (fichier SWF dans lequel l’objet Loader est défini), utilisez plutôt la propriété LoaderInfo.uncaughtErrorEvents
.
Si le contenu chargé par l’objet Loader est un fichier SWF AVM1 (ActionScript 2), les erreurs non interceptées dans le fichier SWF AVM1 n’entraînent pas un événement uncaughtError
.
Implémentation
public function get uncaughtErrorEvents():UncaughtErrorEvents
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
uncaughtError
pour détecter les erreurs non interceptées.
Dans le constructeur, le code crée un objet Loader et enregistre un écouteur pour l’événement uncaughtError
distribué par la propriété uncaughtErrorEvents
de l’objet Loader.
Dans la méthode uncaughtErrorHandler()
, le code vérifie le type de données de la propriété error
et répond en conséquence.
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 | () | Constructeur |
public function Loader()
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crée un objet Loader qui permet de charger des fichiers (SWF, JPEG, GIF ou PNG). Appelez la méthode load()
pour charger l’actif en tant qu’enfant de l’occurrence de Loader. Vous pouvez alors ajouter l’objet Loader à la liste d’affichage (par le biais de la méthode addChild()
d’une occurrence de DisplayObjectContainer, par exemple). L’actif apparaît sur la scène au fur et à mesure de son chargement.
Vous pouvez également utiliser une occurrence de Loader sans l’intégrer à un conteneur d’objet d’affichage de la liste d’affichage. Si ce mode est activé, l’occurrence de Loader peut être utilisée pour charger un fichier SWF contenant d’autres modules d’une application.
Pour détecter la fin du chargement du fichier SWF, vous disposez des événements de l’objet LoaderInfo associés à la propriété contentLoaderInfo
de l’objet Loader. A ce stade, vous pouvez exécuter le code du fichier SWF du module pour initialiser et démarrer ce dernier. En mode hors liste, l’occurrence de Loader peut également être utilisée pour charger un fichier SWF contenant des composants ou des actifs multimédias. Il est également possible d’utiliser les notifications d’événement associées à l’objet LoaderInfo pour détecter la fin du chargement des composants. L’application peut alors commencer à utiliser les composants et les actifs multimédias intégrés à la bibliothèque du fichier SWF en instanciant les classes ActionScript 3.0 qui représentent ces composants et ces actifs.
Pour déterminer le statut d’un objet Loader, supervisez les événements suivants que l’objet LoaderInfo a associé à la propriété contentLoaderInfo
de l’objet Loader :
- L’événement
open
est distribué lorsque le chargement commence. - L’événement
ioError
ousecurityError
est distribué s’il est impossible de charger le fichier ou s’il se produit une erreur lors du processus de chargement. - L’événement
progress
est déclenché continuellement lors du chargement du fichier. - L’événement
complete
est distribué lorsque le chargement d’un fichier est terminé, mais avant la mise à disposition des méthodes et des propriétés du clip qui vient d’être chargé. - L’événement
init
est distribué après la mise à disposition des méthodes et des propriétés du fichier SWF chargé, afin de vous permettre de commencer à manipuler ce dernier. Cet événement est distribué avant le gestionnairecomplete
. Dans les fichiers SWF en diffusion continue, l’événementinit
risque de se produire bien avant l’événementcomplete
. Dans la plupart des cas, utilisez le gestionnaireinit
.
Remarques (pour iOS uniquement) : dans les applications AIR sur iOS, vous ne pouvez charger un fichier SWF contenant du code ActionScript qu’à partir du package de l’application. Cette restriction inclut tous les scripts ActionScript, tels que les actifs comportant des noms de classe exportés pour ActionScript. Pour charger un fichier SWF, vous devez utiliser le même domaine d’application que le fichier SWF parent.
Dans les versions antérieures à AIR 3.6, seuls les fichiers ne contenant aucun bytecode ActionScript peuvent être chargés, que ce soit à partir d’un package d’application ou d’un réseau. Pour éviter l’utilisation d’un fichier SWF externe avec ActionScript, créez une bibliothèque SWC et associez-la à votre SWF principal.
Ces restrictions ne s’appliquent pas lorsqu’une application est en cours d’exécution dans le simulateur iOS (ipa-test-interpreter-simulator ou ipa-debug-interpreter-simulator) ou en mode interpréteur (ipa-test-interpreter ou ipa-debug-interpreter).
Eléments de l’API associés
close | () | méthode |
public function close():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Annule une opération associée à la méthode load()
qui est en cours d’exécution pour l’occurrence de Loader.
Eléments de l’API associés
load | () | méthode |
public function load(request:URLRequest, context:LoaderContext = null):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Charge un fichier SWF, JPEG, JPEG progressif, GIF non animé ou PNG dans un objet enfant de l’objet Loader. Si vous chargez un fichier GIF animé, seule la première image est affichée. Puisque l’objet Loader ne peut contenir qu’un seul enfant, générer une nouvelle requête load()
met fin à la requête précédente si elle est en attente et démarre un autre chargement.
Remarque : dans AIR 1.5 et Flash Player 10, la taille maximale d’une image chargée est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image chargée est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large.
Un fichier SWF ou une image chargé(e) dans un objet Loader hérite des propriétés position, rotation et scale (échelle) des objets d’affichage parent de l’objet Loader.
Utilisez unload()
pour supprimer des animations ou des images chargées à l’aide de cette méthode ou pour annuler une opération de chargement en cours.
Vous pouvez empêcher un fichier SWF d’utiliser cette méthode en définissant le paramètre allowNetworking
des balises object
et embed
dans la page HTML qui comporte le contenu SWF.
Remarques iOS
Dans les applications AIR sur iOS, vous ne pouvez charger un fichier SWF contenant du code ActionScript qu’à partir du package de l’application. Cette restriction inclut tous les scripts ActionScript, tels que les actifs comportant des noms de classe exportés pour ActionScript. Pour charger un fichier SWF, vous devez utiliser le même domaine d’application que le fichier SWF parent, comme illustré dans l’exemple suivant :
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);
En outre, iOS ne vous permet pas de charger un fichier SWF contenant du code ActionScript ByteCode (ABC), puis de le décharger et le recharger. Si vous essayez cette opération, le moteur d’exécution renvoie une erreur 3764.
Dans les versions antérieures à AIR 3.6, seuls les fichiers ne contenant aucun bytecode ActionScript peuvent être chargés, que ce soit à partir d’un package d’application ou d’un réseau. Pour éviter l’utilisation d’un fichier SWF externe avec ActionScript, créez une bibliothèque SWC et associez-la à votre SWF principal.
Ces restrictions ne s’appliquent pas lorsqu’une application est en cours d’exécution dans le simulateur iOS (ipa-test-interpreter-simulator ou ipa-debug-interpreter-simulator) ou en mode interpréteur (ipa-test-interpreter ou ipa-debug-interpreter).
Sécurité de l’objet Loader
Si vous utilisez cette méthode, tenez compte du modèle de sécurité de Flash Player, expliqué dans la description de la classe Loader.
Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête « content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :
- L’opération POST doit être effectuée en réponse à l’action d’un utilisateur, comme un clic de souris ou la pression d’une touche.
- Si l’opération POST se fait entre plusieurs domaines (la cible POST ne se trouve pas sur le même serveur que le fichier SWF qui envoie la demande POST), le serveur cible doit fournir un fichier de régulation d’URL qui permette l’accès interdomaines.
Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Paramètres
request:URLRequest — URL absolue ou relative du fichier SWF, JPEG, GIF ou PNG à charger. Un chemin relatif doit être relatif par rapport au fichier SWF principal. Une URL absolue doit inclure la référence de protocole, telle que http:// ou file:///. Les noms de fichier ne doivent pas inclure les spécifications de lecteur de disque.
| |
context:LoaderContext (default = null ) — Objet LoaderContext, dont les propriétés :
Si le paramètre iOS uniquement : lorsque la méthode Pour obtenir des informations détaillées, veuillez consulter la description des propriétés de la classe LoaderContext. |
Evénements
asyncError: — Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié. C’est notamment le cas si le contenu chargé est un flash.display.AVM1Movie ou si l’appel de addChild() sur requestedContentParent renvoie une erreur.
| |
complete: — Distribué par l’objet contentLoaderInfo associé lorsque le fichier a terminé son chargement. L’événement complete est toujours distribué après l’événement init .
| |
httpStatus: — Distribué par l’objet contentLoaderInfo associé lorsqu’une requête réseau est envoyée via HTTP et que Flash Player peut détecter le code d’état HTTP.
| |
init: — Distribué par l’objet contentLoaderInfo associé lorsque les propriétés et les méthodes du fichier SWF chargé sont accessibles. L’événement init précède toujours l’événement complete .
| |
ioError: — Distribué par l’objet contentLoaderInfo associé lorsqu’il se produit une erreur d’entrée ou de sortie entraînant l’échec d’une opération de chargement.
| |
open: — Distribué par l’objet contentLoaderInfo associé lorsque l’opération de chargement commence.
| |
progress: — Distribué par l’objet contentLoaderInfo associé en tant que données et reçu pendant la progression de l’opération de chargement.
| |
securityError: — Distribué par l’objet contentLoaderInfo si un fichier SWF du sandbox local avec système de fichiers tente de charger du contenu dans un sandbox local avec accès au réseau, ou vice versa.
| |
securityError: — Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé.
| |
unload: — Distribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé.
|
Valeur émise
IOError — La propriété digest de l’objet request n’est pas définie sur null . Vous devez définir la propriété digest d’un objet URLRequest uniquement lorsque vous appelez la méthode URLLoader.load() en vue de charger un fichier SWZ (un composant de la plateforme Adobe).
| |
SecurityError — La valeur de LoaderContext.securityDomain doit être réglée sur null ou SecurityDomain.currentDomain . En effet, vous ne pouvez placer le média chargé que dans son sandbox de sécurité naturel ou dans le vôtre, auquel cas l’utilisation d’un fichier de régulation s’impose.
| |
SecurityError — Les fichiers SWF locaux sont susceptibles de ne définir LoaderContext.securityDomain que sur la valeur null . Il est interdit d’importer des médias non locaux dans un sandbox local ou de placer d’autres médias locaux dans un environnement autre que son sandbox naturel.
| |
SecurityError — Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
| |
SecurityError — Si les propriétés applicationDomain or securityDomain du paramètre context proviennent d’un domaine interdit.
| |
SecurityError — Si un fichier SWF local tente d’utiliser la propriété securityDomain du paramètre context .
| |
IllegalOperationError — Si la propriété requestedContentParent du paramètre context est un Loader .
| |
IllegalOperationError — Si le paramètre LoaderContext.parameters est défini sur une valeur non nulle et possède certaines valeurs qui ne sont pas des chaînes.
| |
IllegalOperationError — Sous iOS, si l’application tente de charger un fichier SWF dans un autre domaine d’application que le domaine d’application principal.
| |
IllegalOperationError — Sous iOS, si l’application tente de charger à nouveau un fichier SWF qui a été chargé, puis déchargé, et qui contient du code ABC.
| |
Error — Sous iOS, si l’application tente de charger un fichier SWF se trouvant hors du package d’application contenant le code ActionScript. Cette erreur ne peut pas être détectée. Elle apparaît sur l’écran de l’application sous la forme d’une boîte de dialogue Uncompiled ActionScript (code ActionScript non compilé). Dans les versions antérieures à AIR 3.6, cette erreur se produit lorsque vous tentez de charger un fichier SWF contenant du code ActionScript, qu’il soit externe ou inclus dans le package de l’application.
|
Plus d’exemples
Informations complémentaires
Eléments de l’API associés
loadBytes | () | méthode |
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Charge des données binaires stockées dans un objet ByteArray.
La méthode loadBytes()
est asynchrone. Vous devez attendre l’événement « init » avant d’accéder aux propriétés d’un objet chargé.
Si vous utilisez cette méthode, tenez compte du modèle de sécurité de Flash Player, expliqué dans la description de la classe Loader.
Remarque (pour iOS uniquement) : dans les applications AIR sur iOS, vous ne pouvez charger un fichier SWF contenant du code ActionScript qu’à partir du package de l’application. Cette restriction inclut tous les scripts ActionScript, tels que les actifs comportant des noms de classe exportés pour ActionScript. Pour charger un fichier SWF, vous devez utiliser le même domaine d’application que le fichier SWF parent.
Dans les versions antérieures à AIR 3.6, l’appel de cette méthode n’a aucun effet sur iOS.
Paramètres
bytes:ByteArray — Objet ByteArray. Le format du contenu de cet objet peut correspondre à n’importe quel type de fichier géré par la classe Loader : SWF, GIF, JPEG ou PNG.
| |
context:LoaderContext (default = null ) — Objet LoaderContext. Seule la propriété applicationDomain de cet objet entre en vigueur. Les propriétés checkPolicyFile et securityDomain sont exclues.
Si le paramètre Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement). |
Evénements
asyncError: — Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié. C’est notamment le cas si le contenu chargé est un flash.display.AVM1Movie ou si l’appel de addChild() sur requestedContentParent renvoie une erreur.
| |
complete: — Distribué par l’objet contentLoaderInfo lorsque l’opération est terminée. L’événement complete est toujours distribué après l’événement init .
| |
init: — Distribué par l’objet contentLoaderInfo lorsque les propriétés et les méthodes des données chargées sont accessibles. L’événement init précède toujours l’événement complete .
| |
ioError: — Distribué par l’objet contentLoaderInfo lorsque le moteur d’exécution ne parvient pas à analyser les données dans le tableau d’octets.
| |
open: — Distribué par l’objet contentLoaderInfo lorsque l’opération commence.
| |
progress: — Distribué par l’objet contentLoaderInfo lors du transfert des données dans la mémoire.
| |
securityError: — Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé.
| |
unload: — Distribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé.
|
Valeur émise
ArgumentError — Si la propriété length de l’objet ByteArray n’est pas supérieure à 0.
| |
IllegalOperationError — Si la propriété checkPolicyFile ou securityDomain du paramètre context n’est pas réglée sur la valeur null.
| |
IllegalOperationError — Si la propriété requestedContentParent du paramètre context est un Loader .
| |
IllegalOperationError — Si le paramètre LoaderContext.parameters est défini sur une valeur non nulle et possède certaines valeurs qui ne sont pas des chaînes.
| |
IllegalOperationError — Sous iOS, si l’application tente de charger un fichier SWF dans un autre domaine d’application que le domaine d’application principal.
| |
IllegalOperationError — Sous iOS, si l’application tente de charger à nouveau un fichier SWF qui a été chargé, puis déchargé, et qui contient du code ABC.
| |
Error — Sous iOS, si l’application tente de charger un fichier SWF se trouvant hors du package d’application contenant le code ActionScript. Cette erreur ne peut pas être détectée. Elle apparaît sur l’écran de l’application sous la forme d’une boîte de dialogue avec le message « Code ActionScript non compilé ». Dans les versions antérieures à AIR 3.6, cette erreur se produit lorsque vous tentez de charger un fichier SWF contenant du code ActionScript, qu’il soit externe ou inclus dans le package de l’application.
| |
SecurityError — Si la propriété applicationDomain proposée de la propriété context provient d’un domaine interdit.
| |
SecurityError — Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
|
Informations complémentaires
Eléments de l’API associés
loadFilePromise | () | méthode |
public function loadFilePromise(promise:IFilePromise, context:LoaderContext = null):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2.5 |
Charge une occurrence d’IFilePromise.
La méthode loadFilePromise
prend un objet IFilePromise
et charge les données binaires. Si les données sont un flux progressif, par exemple une vidéo, attendez les événements "init" ou progress avant d’accéder aux propriétés de l’objet chargé. Dans le cas contraire, attendez l’événement complete pour vous assurer que les données sont entièrement chargées.
Si vous utilisez cette méthode, tenez compte du modèle de sécurité de Flash Player, expliqué dans la description de la classe Loader.
Paramètres
promise:IFilePromise — Un objet IFilePromise. La source de données de cet objet peut correspondre à n’importe quel type de format de fichier pris en charge par la classe Loader : SWF, GIF, JPEG ou PNG.
| |
context:LoaderContext (default = null ) — Objet LoaderContext. Seule la propriété applicationDomain de cet objet entre en vigueur. Les propriétés checkPolicyFile et securityDomain sont exclues.
Si le paramètre Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement). |
Evénements
asyncError: — Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié. C’est notamment le cas si le contenu chargé est un flash.display.AVM1Movie ou si l’appel de addChild() sur requestedContentParent renvoie une erreur.
| |
complete: — Distribué par l’objet contentLoaderInfo lorsque l’opération est terminée. L’événement complete est toujours distribué après l’événement init .
| |
init: — Distribué par l’objet contentLoaderInfo lorsque les propriétés et les méthodes des données chargées sont accessibles. L’événement init précède toujours l’événement complete .
| |
ioError: — Distribué par l’objet contentLoaderInfo lorsque le moteur d’exécution ne parvient pas à analyser les données dans la source de données ou si le flux de la source de données n’est plus lisible.
| |
open: — Distribué par l’objet contentLoaderInfo lorsque l’opération commence.
| |
progress: — Distribué par l’objet contentLoaderInfo lors du transfert des données dans la mémoire.
| |
securityError: — Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé.
| |
unload: — Distribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé.
|
Valeur émise
IllegalOperationError — Si la propriété requestedContentParent du paramètre context est un Loader .
| |
IllegalOperationError — Si le paramètre LoaderContext.parameters est défini sur une valeur non nulle et possède certaines valeurs qui ne sont pas des chaînes.
| |
ArgumentError — Si l’objet IFilePromise transmis en tant que paramètre est nul.
|
Eléments de l’API associés
unload | () | méthode |
public function unload():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Supprime un enfant de l’objet Loader chargé à l’aide de la méthode load()
. La valeur property
de la propriéténull
de l’objet LoaderInfo associé est réinitialisée. L’enfant n’est pas nécessairement détruit, car d’autres objets risquent de s’y référer. Il n’est cependant plus un enfant de l’objet Loader.
Lorsque vous appelez la méthode unload()
, la propriété contentLoaderInfo
de l’objet Loader est définie sur null
. Tous les actifs visuels qui ont été chargés avec le fichier SWF ont été déchargés de la mémoire. Les définitions de classe ActionScript dans le fichier SWF chargé restent en mémoire et le code se trouvant dans le même domaine d’application que le SWF chargé peut accéder aux occurrences de ces classes et créer de nouvelles occurrences.
Remarque (iOS uniquement) : dans les versions antérieures à AIR 3.6, cette méthode n’a aucun effet sur iOS.
Avant de décharger un fichier SWF enfant, il est recommandé de fermer explicitement tout flux continu dans les objets enfant du fichier SWF, tels que les objets LocalConnection, NetConnection, NetStream et Sound. Si vous n’effectuez pas cette opération, la lecture de l’audio risque de continuer dans le fichier SWF enfant, bien que ce dernier soit déchargé. Pour fermer les flux continus dans le fichier SWF enfant, ajoutez un écouteur d’événement à l’enfant qui écoute l’événement unload
. Lorsque le parent appelle Loader.unload()
, l’événement unload
est distribué à l’enfant. L’exemple suivant illustre cette opération :
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Eléments de l’API associés
unloadAndStop | () | méthode |
public function unloadAndStop(gc:Boolean = true):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Tente de décharger le contenu du fichier SWF enfant et interrompt l’exécution des commandes des fichiers SWF chargés. Cette méthode tente de décharger les fichiers SWF qui ont été chargés à l’aide de la méthode Loader.load()
ou Loader.loadBytes()
en supprimant les références aux objets EventDispatcher, NetConnection, Timer, Sound ou Video du fichier SWF enfant. Par conséquent, les actions suivantes sont effectuées dans le fichier SWF enfant et la liste d’affichage du fichier SWF enfant :
- Les sons sont arrêtés.
- Les écouteurs d’événement sont supprimés de la scène.
- Les écouteurs d’événement des événements
enterFrame
,frameConstructed
,exitFrame
,activate
etdeactivate
sont supprimés. - Les horloges sont arrêtées.
- Les occurrences Camera et Microphone sont détachées.
- Les clips sont arrêtés.
Lorsque vous appelez la méthode unloadAndStop()
, la propriété contentLoaderInfo
de l’objet Loader est définie sur null
. Tous les actifs visuels qui ont été chargés avec le fichier SWF ont été déchargés de la mémoire. Les définitions de classe ActionScript dans le fichier SWF chargé restent en mémoire et le code se trouvant dans le même domaine d’application que le SWF chargé peut accéder aux occurrences de ces classes et créer de nouvelles occurrences.
Remarque (pour iOS uniquement) : dans les versions antérieures à AIR 3.6, cette méthode n’a aucun effet sur iOS.
Paramètres
gc:Boolean (default = true ) — Indique au nettoyeur de mémoire de s’exécuter sur les objets SWF enfant (true ) ou pas (false ). Si vous déchargez plusieurs objets de façon asynchrone, définissez le paramètre gc sur false afin d’améliorer les performances de l’application. Toutefois, si ce paramètre est défini sur false , les objets multimédia et les objets d’affichage du fichier SWF enfant peuvent rester en mémoire après l’exécution de la commande unloadAndStop() .
|
Eléments de l’API associés
- Une propriété
url
est créée pour désigner l’emplacement et le nom du fichier d’image. - Dans le constructeur
LoaderExample
, un nouvel objet Loader appeléloader
est créé, qui est ensuite transmis à la méthodeconfigureListeners()
, décrite à l’étape 3. - Le constructeur crée une occurrence d’objet URLRequest,
request
, et transmet le paramètreurl
de façon à identifier le nom de fichier et son emplacement. - L’objet
request
est ensuite transmis à la méthodeload()
de l’objetloader
, qui charge l’image dans la liste d’affichage. - Un écouteur d’événement
clickHandler
est enregistré pour l’événementclick
sur l’objet loader. Lorsque l’utilisateur clique avec la souris, l’image chargée est déchargée. - La méthode
configureListeners()
ajoute sept écouteurs d’événement à l’aide des méthodes suivantes :- La méthode
completeHandler()
s’exécute lorsque l’image termine son chargement. - La méthode
httpStatusHandler()
s’exécute lorsque l’image n’est pas chargée de façon locale et uniquement lorsque la requête réseau est rendue disponible et lorsque Flash Player peut la détecter. - La méthode
initHandler()
s’exécute avant la méthodecompleteHandler()
et après la méthodeprogressHandler()
. En général, l’événementinit
est plus utile lors du chargement des fichiers SWF. - La méthode
ioErrorHandler()
s’exécute si le fichier d’image n’est pas disponible ou n’est pas accessible. - La méthode
openHandler()
s’exécute lorsque le fichier d’image est ouvert en premier. - La méthode
progressHandler()
s’exécute lorsque le fichier d’image commence son chargement et s’exécute de nouveau à la fin de cette procédure. - La méthode
unLoadHandler()
s’exécute lorsque l’image est déchargée à l’aide de la méthodeunload()
lorsque l’utilisateur clique sur l’image.
- La méthode
N’oubliez pas les spécifications suivantes :
- Cet exemple implique le placement d’un fichier appelé Image.gif dans le même répertoire que le fichier SWF compilé. Utilisez une image dont la zone corresponde aux dimensions du fichier SWF principal.
- Cet exemple couvre tous les événements disponibles pour l’objet LoaderInfo. Cependant, la plupart des situations n’en nécessite qu’un sous-ensemble. En particulier, lors du chargement d’un fichier d’image unique, l’événement
complete
(voire l’événementioError
) suffisent lors du chargement d’une image locale.
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, 09:30 AM Z