Chargement d'un fichier SWF externe

En ActionScript 3.0, les fichiers SWF sont chargés avec la classe Loader. Pour charger un fichier SWF externe, vous devez définir quatre étapes en ActionScript :

  1. Créer un objet URLRequest avec l'adresse URL du fichier.
  2. Créer un objet Loader.
  3. Appeler la méthode load() de l'objet Loader en lui passant en paramètre l'instance de l'objet URLRequest.
  4. Appeler la méthode addChild() pour un conteneur d'objet d'affichage (par exemple le scénario principal d'un document Flash) afin d'ajouter l'instance de Loader à la liste d'affichage

Le code final se présente ainsi  :

var request:URLRequest = new URLRequest("http://www.[yourdomain].com/externalSwf.swf");
var loader:Loader = new Loader()
loader.load(request);
addChild(loader);

Le même code peut être utilisé pour charger un fichier image externe (image JPEG, GIF ou PNG) en spécifiant l'adresse URL de ce fichier à la place de celle d'un fichier SWF. Contrairement à un fichier image, un fichier SWF peut contenir du code ActionScript. Ainsi, bien que le processus de chargement d'un fichier SWF soit identique à celui d'une image, le fichier SWF à l'origine du chargement et le fichier SWF chargé doivent se trouver dans le même sandbox de sécurité si vous souhaitez utiliser ActionScript pour communiquer avec le fichier SWF externe. En outre, si ce fichier externe contient des classes qui partagent le même espace de nom que les classes du fichier SWF qui le charge, il peut s'avérer nécessaire de créer un nouveau domaine d'application pour le fichier chargé afin d'éviter d'éventuels conflits d'espace de nom. Pour plus d'informations sur la sécurité et le domaine d'application, reportez-vous aux sections Utilisation de la classe ApplicationDomain et Chargement de fichiers SWF et d'images.

Une fois que le fichier SWF externe est chargé, il devient accessible via la propriété Loader.content. Si ce fichier est publié en ActionScript 3.0, il s'agira soit d'un clip, soit d'un sprite, selon la classe qu'il étend.

Considérations relatives au chargement de fichiers SWF de version ancienne

Si un fichier SWF externe a été publié dans une version antérieure d'ActionScript, d'importantes restrictions doivent être prises en compte. Contrairement à un fichier SWF ActionScript 3.0 qui s'exécute dans AVM2 (ActionScript Virtual Machine 2), un fichier SWF publié en ActionScript 1.0 ou 2.0 s'exécute dans AVM1 (ActionScript Virtual Machine 1).

Lorsque le chargement d'un fichier SWF AVM1 réussit, l'objet chargé (la propriété Loader.content) sera un objet AVM1Movie. Une instance d'AVM1Movie n'est pas identique à une instance de MovieClip. C'est un objet d'affichage qui, contrairement à un clip, ne comporte pas de méthodes ni de propriétés liées au scénario. Le fichier SWF AVM2 parent ne pourra pas accéder à ses propriétés, méthodes ou objets.

D'autres restrictions s'appliquent à un fichier SWF AVM1 chargé par un fichier SWF AVM2 : Pour plus d'informations, reportez-vous à la description de la classe AVM1Movie dans la Référence du langage et des composants ActionScript 3.0.


Flash CS3

 

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/main/00000216.html