Forums d'entraide informatique - Astuces - Conseils

Des experts à votre écoute pour tous vos dysfonctionnements

Vous n'êtes pas identifié.


#1 20-08-2008 15:59:46

Admin
Administrateur
Date d'inscription: 30-07-2008
Messages: 683

Guide de référence sur l'action script de flash (2)

Pour une meilleur lisibilité vous pouvez télécharger ce document au format pdf en cliquant ici :

http://www.parisdepannage.fr/dossiers/cours-as.pdf

Classe Description
Camera La classe Camera vous permet d’accéder à la caméra de l’utilisateur, s’il en a
installé une. Utilisé de concert avec Flash Communication Server MX, votre
fichier SWF peut capturer, diffuser et enregistrer les images et les données
vidéo de la caméra d’un utilisateur. Consultez l’entrée Classe Camera dans le
Chapitre 12, Dictionnaire ActionScript Présentation, page 211.
Microphone La classe Microphone vous permet d’accéder au microphone de l’utilisateur,
s’il en a installé un. Utilisé de concert avec Flash Communication ServerMX,
votre fichier SWF peut diffuser et enregistrer les sons du microphone d’un
utilisateur. Consultez l’entrée Classe Microphone dans le
Chapitre 12, Dictionnaire ActionScript Présentation, page 211.
NetConnection La classe NetConnection vous permet d’établir une connexion locale en flux
continu pour la lecture de fichiers Flash Video (FLV) à partir d’une adresse
HTTP ou du système de fichiers local. Pour plus d’informations, consultez
l’entrée Classe NetConnection dans le Chapitre 12, Dictionnaire ActionScript
Présentation, page 211. Pour plus d’informations sur la lecture de fichiers FLV
sur Internet, consultez Lecture dynamique des fichiers FLV externes,
page 205.
Classe DescriptionAperçu des classes intégrées 123
Classes Client-server
Le tableau suivant répertorie les classes vous permettant d’envoyer et de recevoir des données
provenant de sources externes, ou de communiquer avec des serveurs d’applications via FTP,
HTTP ou HTTPS.
Remarque : Dans Flash Player 7, un fichier SWF ne peut charger des données qu’à partir du
domaine qui l’a servi. Pour plus d’informations, consultez Fonctions de sécurité de Flash Player,
page 196, et A propos de l’autorisation de chargement de données inter-domaines, page 198.
Ces classes résident dans le sous-dossier Classes intégrées > Client/Serveur de la boîte à outils
Actions.
NetStream La classe NetStream vous permet de contrôler la lecture des fichiers FLV.
Pour plus d’informations, consultez l’entrée Classe NetStream dans le
Chapitre 12, Dictionnaire ActionScript Présentation, page 211. Pour plus
d’informations sur la lecture de fichiers FLV sur Internet, consultez Lecture
dynamique des fichiers FLV externes, page 205.
Sound La classe Sound vous permet de contrôler les sons dans un fichier SWF.
Pour plus d’informations, consultez l’entrée Classe Sound dans le
Chapitre 12, Dictionnaire ActionScript Présentation, page 211. Vous trouverez
un exemple d’utilisation de la classe Sound pour créer des commandes de
balance et de réglage du volume à la section Création de commandes audio,
page 105.
Video La classe Video vous permet d’afficher les objets vidéo d’un fichier SWF.
Consultez l’entrée Classe Video dans le Chapitre 12, Dictionnaire ActionScript
Présentation, page 211.
Classe Description
LoadVars La classe LoadVars peut se substituer à l’action loadVariables() pour le
transfert de variables entre un fichier SWF et un serveur en paires nom-
valeur. Consultez Utilisation de la classe LoadVars, page 188 et l’entrée Classe
LoadVars dans le Chapitre 12, Dictionnaire ActionScript Présentation,
page 211.
XML La classe XML étend la classe XMLNode et fournit des méthodes, des
propriétés et des gestionnaires d’événement pour l’utilisation de données au
format XML, y compris pour le chargement et l’analyse de code XML externe,
la création de documents XML et la navigation dans les arborescences de
documents XML. Consultez Utilisation de la classe XML, page 189 et l’entrée
Classe XML dans le Chapitre 12, Dictionnaire ActionScript Présentation,
page 211.
Classe Description124 Chapitre 6 :  Utilisation des classes intégrées
Classes Authoring
Les classes Authoring sont uniquement disponibles dans l’environnement de programmation
Flash. Ces classes résident dans le sous-dossier Classes intégrées > Programmation de la boîte à
outils Actions.
XMLNode La classe XMLNode représente un nœud unique dans une arborescence de
documents XML. Elle constitue la superclasse de la classe XML. Consultez
l’entrée Classe XMLNode dans le Chapitre 12, Dictionnaire ActionScript
Présentation, page 211.
XMLSocket La classe XMLSocket vous permet de créer une connexion socket durable
avec un autre ordinateur pour des transferts de données à faible temps
d’attente, comme ceux que requièrent les applications de dialogue en ligne en
temps réel. Consultez Utilisation de la classe XMLSocket, page 192 et l’entrée
Classe XMLSocket dans le Chapitre 12, Dictionnaire ActionScript
Présentation, page 211.
Classe Description
CustomActionsg La classe CustomActions vous permet de gérer toute action personnalisée
enregistrée dans l’outil de programmation. Consultez l’entrée Classe
CustomActions dans le Chapitre 12, Dictionnaire ActionScript Présentation,
page 211.
Aperçu en direct La fonction Aperçu en direct (qui, bien qu’elle ne soit pas une classe, est
répertoriée dans la catégorie Classes intégrées de la boîte d’outils Actions)
propose une fonction unique, onUpdate, réservée aux développeurs de
composants. Consultez onUpdate dans le Chapitre 12, Dictionnaire
ActionScript Présentation, page 211.
Classe Description125
CHAPITRE 7
Utilisation des clips
Les clips sont des fichiers SWF miniatures autonomes exécutées indépendamment les uns des
autres et du scénario les contenant. Par exemple, si le scénario principal contient une seule image
et qu’un clip contenu dans cette image comporte 10 images, chaque image du clip est lue lorsque
vous lisez le fichier SWF principal. Un clip peut lui-même contenir d’autres clips, ou clips
imbriqués. Les clips imbriqués de cette manière sont organisés hiérarchiquement : le clip parent
contient un ou plusieurs clips enfants.     
Chaque occurrence de clip a un nom, appelé nom d’occurrence, qui l’identifie de façon unique en
tant qu’objet pouvant être contrôlé à l’aide d’ActionScript. De façon plus spécifique, le nom
d’occurrence identifie l’occurrence comme un objet du type de classe MovieClip. Utilisez les
propriétés et méthodes de la classe MovieClip pour contrôler l’apparence et le comportement des
clips à l’exécution.
Vous pouvez considérer les clips comme des objets autonomes qui répondent à des événements,
envoient des messages à d’autres objets de clip, conservent leur état et gèrent leurs clips enfants.
Les clips constituent ainsi la base de l’architecture basée sur les composants de Macromedia Flash
MX 2004 et Macromedia Flash MX Professionnel 2004. Les composants disponibles dans le
panneau Composants (Fenêtre > Panneaux de développement > Composants) sont en fait des
clips sophistiqués qui ont été conçus et programmés pour apparaître et se comporter d’une
certaine manière. Pour plus d’informations sur la création de composants, consultez Utilisation des
composants.
A propos du contrôle des clips à l’aide d’ActionScript
Vous pouvez utiliser les fonctions ActionScript globales ou les méthodes de la classe MovieClip
pour accomplir des tâches sur les clips. Certaines méthodes de MovieClip accomplissent les
mêmes tâches que les fonctions du même nom, alors que d’autres méthodes MovieClip, comme
hitTest() et swapDepths(), ne possèdent pas de noms de fonction correspondants.
L’exemple suivant illustre la différence entre l’emploi d’une méthode et d’une fonction. Les deux
instructions dupliquent l’occurrence mon_mc, nomment le nouveau clip nouveauClip et le
placent à une profondeur de 5.
mon_mc.duplicateMovieClip("nouveauClip", 5);
duplicateMovieClip("mon_mc", "nouveauClip", 5);126 Chapitre 7 :  Utilisation des clips
Lorsqu’une fonction et une méthode présentent des comportements similaires, vous pouvez
choisir l’une ou l’autre pour contrôler des clips. Le choix dépend de vos préférences et de votre
familiarité avec la rédaction de scripts dans ActionScript. Que vous utilisiez une fonction ou une
méthode, le scénario cible doit être chargé dans Flash Player lorsque la fonction ou la méthode est
appelée.
Pour utiliser une méthode, vous l’invoquez en utilisant le chemin cible du nom d’occurrence,
suivi d’un point, puis du nom et des paramètres de la méthode, comme dans l’exemple suivant :
monClip.play();
clipParent.clipEnfant.gotoAndPlay(3);
Dans la première instruction, la méthode play() place la tête de lecture dans l’occurrence
monClip. Dans la deuxième instruction, la méthode gotoAndPlay() envoie la tête de lecture dans
clipEnfant (qui est un enfant de l’occurrence clipParent) à l’image 3 et continue à déplacer la
tête de lecture.
Les fonctions globales qui contrôlent un scénario possèdent un paramètre cible qui permet de
définir le chemin cible de l’occurrence que vous voulez contrôler. Par exemple, dans le script
suivant, startDrag() cible l’occurrence curseurPerso et la rend déplaçable :
on (press) {
startDrag("curseurPerso");
}
Les fonctions suivantes ciblent des clips : loadMovie(), unloadMovie(), loadVariables(),
setProperty(), startDrag(), duplicateMovieClip() et removeMovieClip(). Pour utiliser
ces fonctions, vous devez entrer un chemin cible dans le paramètre cible de la fonction pour
indiquer la cible de la fonction. 
Les méthodes MovieClip suivantes peuvent contrôler des clips ou des niveaux chargés et n’ont pas
de fonctions équivalentes : MovieClip.attachMovie(),
MovieClip.createEmptyMovieClip(), MovieClip.createTextField(),
MovieClip.getBounds, MovieClip.getBytesLoaded(), MovieClip.getBytesTotal(),
MovieClip.getDepth(), MovieClip.getInstanceAtDepth(),
MovieClip.getNextHighestDepth(), MovieClip.globalToLocal(),
MovieClip.localToGlobal(), MovieClip.hitTest(), MovieClip.setMask(),
MovieClip.swapDepths(). 
Pour plus d’informations sur ces fonctions et méthodes, consultez le Chapitre 12, Dictionnaire
ActionScript Présentation, page 211.
Appel de plusieurs méthodes sur un seul clip
Vous pouvez utiliser l’instruction with pour appeler un clip une seule fois, puis exécuter une série
de méthodes sur ce clip. L’instruction with fonctionne sur tous les objets ActionScript (tels que
Array, Color et Sound), et non seulement sur les clips.
L’instruction with prend un objet comme paramètre. L’objet que vous spécifiez est ajouté à la fin
du chemin cible courant. Toutes les actions imbriquées dans une instruction with sont exécutées
à l’intérieur du nouveau chemin cible. Par exemple, dans le script suivant, l’instruction with est
transmise à l’objet beignet.confiture pour changer les propriétés de confiture :
with (beignet.confiture){
_alpha = 20;
_xscale = 150;Spécification d’un scénario racine pour les fichiers SWF chargés 127
_yscale = 150;
}
Le script se comporte comme si les instructions dans l’instruction with étaient appelées depuis le
scénario de l’occurrence confiture. Le code ci-dessus est équivalent au code suivant :
beignet.confiture._alpha = 20;
beignet.confiture._xscale = 150;
beignet.confiture._yscale = 150;
Le code ci-dessus est également équivalent au code suivant :
with (beignet){
confiture._alpha = 20;
confiture._xscale = 150;
confiture._yscale = 150;
}
Chargement et déchargement de fichiers SWF supplémentaires
Pour lire d’autres fichiers SWF sans fermer Flash Player, ou pour passer d’un fichier SWF à l’autre
sans charger une autre page HTML, vous pouvez utiliser la fonction globale loadMovie() ou la
méthode loadMovie() de la classe MovieClip. Vous pouvez également utiliser loadMovie() pour
envoyer des variables à un script CGI, qui génère un fichier SWF en tant que fichier CGI.
Lorsque vous chargez un fichier SWF, vous pouvez spécifier comme cible un niveau ou un clip,
dans lequel sera chargé le fichier SWF. Si vous chargez un fichier SWF dans une cible, le
fichier SWF chargé hérite des propriétés du clip ciblé. Une fois l’animation chargée, vous pouvez
modifier les propriétés.     
La méthode unloadMovie() supprime un fichier SWF précédemment chargé par loadMovie().
En purgeant explicitement les fichiers SWF avec unloadMovie(), vous assurez une transition
fluide entre les fichiers SWF et vous pouvez alléger la quantité de mémoire requise par Flash
Player.
Utilisez loadMovie() pour effectuer les opérations suivantes :
• Lire une séquence de bandeaux publicitaires sous forme de fichiers SWF, en plaçant une
fonction loadMovie() à la fin de chaque fichier SWF pour charger le fichier SWF suivant.
• Développer une interface arborescente permettant à l’utilisateur de choisir parmi différents
fichiers SWF.
• Construire une interface de navigation avec des contrôles de navigation dans le niveau 0
chargeant d’autres niveaux. Le chargement de niveaux produit une transition plus douce que le
chargement de nouvelles pages HTML dans un navigateur.
Pour plus d’informations sur le chargement d’animations, consultez Chargement de fichiers SWF et
JPEG externes, page 202.
Spécification d’un scénario racine pour les fichiers SWF chargés
La propriété ActionScript _root spécifie ou renvoie une référence au scénario racine d’un
fichier SWF. Si un fichier SWF possède plusieurs niveaux, le scénario racine se situe dans le
niveau contenant le script en cours d’exécution. Par exemple, si un script de niveau 1 est évalué
comme _root, _level1 est renvoyé. Cependant, le scénario spécifié par _root peut changer si le
fichier SWF est exécuté de façon indépendante (à son propre niveau) ou s’il a été chargé dans une
occurrence de clip par un appel loadMovie().  128 Chapitre 7 :  Utilisation des clips
Prenez par exemple un fichier nommé conteneur.swf qui possède une occurrence de clip nommée
cible_mc dans son scénario principal. Le fichier conteneur.swf déclare une variable nommée
nomDutilisateur dans son scénario principal. Le même script charge ensuite un autre fichier
nommé contenu.swf dans l’occurrence de clip cible_mc.
// Dans conteneur.swf:
_root.nomDutilisateur = "Tom";
cible_mc.loadMovie("contenu.swf");
Le fichier SWF chargé, contenu.swf, déclare également une variable nommée nomDutilisateur
dans son scénario racine.
// Dans contenu.swf:
_root.nomDutilisateur = "Marie";
Lorsque contenu.swf est chargé dans le clip dans conteneur.swf, la valeur de nomDutilisateur
associée au scénario racine du fichier SWF hôte (conteneur.swf ) prend la valeur « Marie ». Ceci
peut entraîner le mauvais fonctionnement du code dans conteneur.swf (ainsi que dans
contenu.swf ).
Pour obliger _root à évaluer systématiquement le scénario du fichier SWF chargé, et non le
scénario racine réel, utilisez la propriété _lockroot. Cette propriété peut être définie par le fichier
SWF en cours de chargement ou par le fichier SWF chargé. Lorsque _lockroot est défini sur
true sur une occurrence de clip, le clip agira comme _root pour tout fichier SWF qui y sera
chargé. Lorsque _lockroot est défini sur true au sein d’un fichier SWF, le fichier SWF en
question agira comme sa propre racine, quel que soit l’autre fichier SWF effectuant le
chargement. N’importe quel clip, et n’importe quel nombre de clips, peut définir _lockroot sur
true. Cette propriété est false par défaut.
L’auteur de conteneur.swf peut par exemple associer le code suivant au clip cible_mc :
// Associé au clip cible_mc :
onClipEvent(load) {
this._lockroot = true;
}
Ceci garantit que les références à _root dans contenu.swf (ou dans n’importe quel fichier SWF
chargé dans cible_mc) feront référence à leur propre scénario, non au scénario racine réel de
conteneur.swf.
De la même façon, l’auteur de contenu.swf peut ajouter le code suivant à son scénario principal.
// Dans contenu.swf :
this._lockroot = true;
Ceci garantit que, quel que soit l’endroit où contenu.swf est chargé, toute référence à _root fera
référence à son propre scénario principal et non à celui du fichier SWF hôte.
Pour plus d’informations, consultez MovieClip._lockroot, page 512.
Chargement de fichiers JPEG dans des clips
Vous pouvez utiliser la fonction loadMovie() ou la méthode MovieClip sur un même nom pour
charger des fichiers image JPEG dans une occurrence de clip. Vous pouvez également utiliser la
fonction loadMovieNum() pour charger un fichier JPEG dans un niveau.  Modification de la position et de l’apparence d’un clip 129
Lorsque vous chargez une image dans un clip, son coin supérieur gauche est placé au point
d’alignement du clip. Ce point se trouvant souvent au centre du clip, il se peut que l’image
chargée ne soit pas centrée. De même, lorsque vous chargez une image dans un scénario principal,
son coin supérieur gauche est placé dans le coin supérieur gauche de la scène. L’image chargée
hérite de la rotation et de l’échelle du clip, mais le contenu initial du clip est supprimé.
Pour plus d’informations, consultez Chargement de fichiers SWF et JPEG externes, page 202,
loadMovie(), page 420, MovieClip.loadMovie, page 509 et loadMovieNum(), page 421.
Modification de la position et de l’apparence d’un clip
Pour modifier les propriétés d’un clip pendant sa lecture, vous pouvez rédiger une instruction
affectant une valeur à la propriété ou utiliser la fonction setProperty(). Par exemple, le code
suivant fixe la rotation de l’occurrence mc à 45 : 
mc._rotation = 45;
Cela équivaut au code suivant, qui utilise la fonction setProperty() :
setProperty("mc", _rotation, 45);
Certaines propriétés, appelées propriétés en lecture seule, ont des valeurs que vous pouvez lire mais
pas définir. Ces propriétés sont identifiées comme telles dans le dictionnaire ActionScript. Les
propriétés suivantes sont en lecture seule : _currentframe, _droptarget, _framesloaded,
_parent, _target, _totalframes, _url, _xmouse et _ymouse.
Vous pouvez rédiger des instructions pour définir des propriétés qui ne sont pas en lecture seule.
L’instruction suivante définit la propriété _alpha de l’occurrence de clip roue, qui est un enfant
de l’occurrence voiture :
voiture.roue._alpha = 50;
En outre, vous pouvez rédiger des instructions qui récupèrent la valeur d’une propriété de clip. Par
exemple, l’instruction suivante récupère la valeur de la propriété _xmouse dans le scénario du
niveau actuel et donne cette valeur à la propriété x de l’occurrence curseurPerso :
onClipEvent(enterFrame){
curseurPerso._x = _root._xmouse;
}
Cela équivaut au code suivant, qui utilise la fonction getProperty() :
onClipEvent(enterFrame){
curseurPerso._x = getProperty(_root, _xmouse);
}
Les propriétés _x, _y, _rotation, _xscale, _yscale, _height, _width, _alpha et _visible
sont affectées par les transformations effectuées sur le parent du clip et transforment le clip et tous
ses enfants. Les propriétés _focusrect, _highquality, _quality et _soundbuftime sont
globales et appartiennent uniquement au scénario de niveau 0. Toutes les autres propriétés
appartiennent à chaque clip ou niveau chargé.
Pour obtenir la liste des propriétés de clips, consultez Résumé des propriétés de la classe MovieClip,
page 483.130 Chapitre 7 :  Utilisation des clips
Déplacement des clips
Vous pouvez utiliser la fonction globale startDrag() ou la méthode MovieClip.startDrag()
pour rendre un clip déplaçable. Par exemple, vous pouvez créer un clip pouvant être déplacé pour
les jeux, les fonctions glisser-déposer, les interfaces personnalisables, les barres de défilement et les
curseurs de défilement. 
Un clip reste déplaçable jusqu’à sont arrêt explicite par stopDrag() ou jusqu’à ce qu’un autre clip
soit ciblé avec startDrag(). Vous ne pouvez déplacer qu’un seul clip à la fois.
Pour créer des comportements plus complexes avec les opérations glisser-déposer, vous pouvez
évaluer la propriété _droptarget du clip en cours de déplacement. Par exemple, vous pouvez
examiner la propriété _droptarget pour voir si le clip a été déplacé vers un clip spécifique (tel
qu’un clip « poubelle »), puis déclencher une autre action. Pour plus d’informations, consultez
startDrag(), page 639 ou MovieClip.startDrag(), page 530.
Création de clips à l’exécution
Vous pouvez créer des occurrences de clip dans l’environnement auteur de Flash, mais également
à l’exécution. ActionScript propose trois manières de créer des clips à l’exécution :
• en créant une nouvelle occurrence de clip vide ;
• en dupliquant une occurrence de clip existante ;
• en associant une occurrence de symbole de bibliothèque de clip à la scène.
Chaque occurrence de clip créée à l’exécution doit avoir un nom d’occurrence et une valeur de
profondeur (ordre d’empilement ou ordre z). La profondeur que vous spécifiez détermine la façon
dont le nouveau clip recouvre les autres clips sur le même scénario. Pour plus d’informations,
consultez Gestion des profondeurs de clip, page 133.
Création d’un clip vide
Pour créer un clip vide sur la scène, utilisez la méthode createEmptyMovieClip() de la classe
MovieClip. Cette méthode crée un clip en tant qu’enfant du clip qui l’a appelée. Le point
d’alignement d’un clip vide nouvellement créé se situe dans le coin supérieur gauche.
Par exemple, le code suivant permet de créer un nouveau clip enfant nommé nouveau_mc à une
profondeur de 10 dans le clip nommé parent_mc.
parent_mc.createEmptyMovieClip("nouveau_mc", 10);
Le code suivant permet de créer un nouveau clip nommé image_mc sur le scénario racine du
fichier SWF dans lequel le script est exécuté, puis d’appeler loadMovie() pour y charger un
fichier JPEG externe.
_root.createEmptyMovieClip("canevas_mc", 10);
canevas_mc.loadMovie("fleurs.jpg");
Pour plus d’informations, consultez MovieClip.createEmptyMovieClip(), page 492.Création de clips à l’exécution 131
Duplication ou suppression d’un clip
Pour dupliquer ou supprimer des occurrences de clip, utilisez les fonctions globales
duplicateMovieClip() ou removeMovieClip(), ou encore les méthodes de la classe MovieClip
du même nom. La méthode duplicateMovieClip() crée une nouvelle occurrence d’une
occurrence de clip existante, lui affecte un nouveau nom d’occurrence et lui donne une
profondeur, ou ordre z. Un clip dupliqué commence toujours à l’image 1 même si le clip initial se
trouvait dans une autre image lors de la duplication, et il se situe toujours à la tête de tous les clips
prédéfinis placés dans le scénario.     
Pour supprimer un clip que vous avez créé avec duplicateMovieClip(), utilisez
removeMovieClip(). Un clip dupliqué est également supprimé si le clip parent est supprimé.
Pour plus d’informations, consultez duplicateMovieClip(), page 374, et removeMovieClip(),
page 599.
Association d’un symbole de clip à la scène
La dernière manière de créer des occurrences de clip à l’exécution est d’utiliser attachMovie().
La méthode attachMovie() associe une occurrence de symbole de clip comprise dans la
bibliothèque du fichier SWF à la scène. Le nouveau clip devient un clip enfant du clip l’ayant
associé.
Pour utiliser ActionScript pour associer un symbole de clip à partir de la bibliothèque, vous devez
exporter le symbole pour ActionScript et lui affecter un identifiant de liaison unique. Pour ce
faire, utilisez la boîte de dialogue Propriétés de liaison. 
Par défaut, tous les clips exportés pour être utilisés avec ActionScript sont chargés avant la
première image du fichier SWF les contenant. Ce chargement peut entraîner un retard avant la
lecture de la première image. Lorsque vous affectez un identifiant de liaison à un élément, vous
pouvez également spécifier si cet élément doit être ajouté avant la première image. S’il ne l’est pas,
vous devez en inclure une occurrence sur une autre image du fichier SWF, sinon l’élément ne sera
pas exporté dans le fichier SWF.   
Pour affecter un identifiant de liaison à un clip :
1 Choisissez Fenêtre > Bibliothèque pour ouvrir le panneau Bibliothèque.
2 Sélectionnez un clip dans le panneau Bibliothèque.
3 Dans le panneau Bibliothèque, choisissez Liaison dans le menu d’options.
La boîte de dialogue Propriétés de liaison apparaît.
4 Pour Liaison, activez l’option Exporter pour ActionScript.
5 Pour Identifiant, entrez l’identifiant du clip.
Par défaut, l’identifiant est identique au nom du symbole.
6 Vous pouvez également affecter une classe ActionScript 2.0 au symbole de clip. Pour plus
d’informations, consultez Affectation d’une classe à un symbole de clip, page 136.
7 Si  vous ne voulez pas que le cl ip soit chargé avant la première image, désactivez l’option Exporter
dans la première image.
Si vous désactivez cette option, placez une occurrence du clip sur l’image du scénario où vous
souhaitez qu’elle soit disponible. Par exemple, si le script que vous écrivez ne fait pas référence
au clip avant l’image 10, placez une occurrence du symbole à cette image ou juste avant celle-ci
dans le scénario.132 Chapitre 7 :  Utilisation des clips
8 Cliquez sur OK.
Une fois que vous avez affecté un identifiant de liaison à un clip, vous pouvez associer une
occurrence du symbole à la scène au moment de l’exécution à l’aide de la méthode
attachMovie().
Pour associer un clip à un autre clip :
1 Affectez un identifiant de liaison à un symbole de bibliothèque de clip comme décrit ci-dessus.
2 Le panneau Actions étant ouvert (Fenêtre > Panneaux de développement > Actions),
sélectionnez une image dans le scénario.
3 Dans la fenêtre de script du panneau Actions, tapez le nom du clip ou du niveau auquel vous
souhaitez associer le nouveau clip. Par exemple, pour associer le clip au scénario principal, tapez
_root.
4 Dans la boîte à outils Actions (du côté gauche du panneau Actions), cliquez sur la catégorie
Classes intégrées, puis sur Animation, puis sur MovieClip, puis sur Méthodes et double-cliquez
sur attachMovie().
5 A l’aide des conseils de code qui apparaissent comme un guide, entrez les valeurs des paramètres
suivants :
■ Pour nomID, spécifiez l’identifiant que vous avez saisi dans la boîte de dialogue Propriétés de
liaison.
■ Pour nouveauNom, entrez un nom d’occurrence pour le clip associé afin de pouvoir le cibler.
■ Pour profondeur, entrez le niveau dans lequel l’animation dupliquée sera associée au clip.
Chaque animation associée a un ordre d’empilement qui lui est propre, le niveau 0 étant le
niveau de l’animation d’origine. Les clips associés sont toujours au-dessus du clip d’origine.
Voici un exemple :
monClip.attachMovie("calif", "california", 10);
Pour plus d’informations, consultez MovieClip.attachMovie(), page 487.
Ajout de paramètres aux clips créés dynamiquement
Lorsque vous créez ou dupliquez dynamiquement un clip à l’aide de MovieClip.attachMovie()
et MovieClip.duplicateMovie(), vous pouvez remplir le clip avec des paramètres provenant
d’un autre objet. Le paramètre objetInit de attachMovie() et duplicateMovie() permet aux
clips créés dynamiquement de recevoir des paramètres de clip. Le paramètre objetInit est
facultatif.
Pour plus d’informations, consultez MovieClip.attachMovie(), page 487, et
MovieClip.duplicateMovieClip, page 496.
Pour remplir un clip créé dynamiquement avec des paramètres provenant d’un objet
spécifié, effectuez l’une des opérations suivantes :
• Utilisez la syntaxe suivante avec attachMovie() :
monClip.attachMovie(nomIdentifiant, nouveauNom, profondeur [, objetInit])
• Utilisez la syntaxe suivante avec duplicateMovie() :
monClip.duplicateMovie(nomIdentifiant, nouveauNom, profondeur [, objetInit])
Le paramètre objetInit spécifie le nom de l’objet dont vous souhaitez utiliser les paramètres
pour remplir le clip créé dynamiquement.Gestion des profondeurs de clip 133
Pour remplir un clip avec des paramètres en utilisant attachMovie() :
1 Dans un nouveau document Flash,  créez un symbole de clip en choisissant Insertion > Nouveau
symbole. Tapez dynamique dans la zone de texte Nom du symbole et sélectionnez le
comportement de clip.
2 A l’intérieur du symbole, créez une zone de texte dynamique sur la scène avec nom_txt comme
nom d’occurrence.
3 Sélectionnez la première image du scénario du clip et ouvrez le panneau Actions (Fenêtre >
Panneaux de développement > Actions).
4 Créez une nouvelle variable nommée nom et affectez sa valeur à la propriété text de nom_txt,
comme suit :
var nom:String;
nom_txt.text = nom;
5 Choisissez Edition > Modifier le document pour revenir au scénario principal.
6 Sélectionnez le symbole de clip dans la bibliothèque et choisissez Propriétés de liaison dans le
menu d’options du panneau Bibliothèque.
La boîte de dialogue Propriétés de liaison apparaît.
7 Choisissez l’option Exporter pour ActionScript et cliquez sur OK.
8 Sélectionnez la première image du scénario principal et ajoutez le code suivant à la fenêtre de
script du panneau Actions :
_root.attachMovie("dynamique", "nomNouveauClip", 10, {name:"Eric"});
9 Testez l’animation (Contrôle > Tester l’animation). Le nom que vous avez spécifié dans l’appel
attachMovie() apparaît dans le champ de texte du nouveau clip.
Gestion des profondeurs de clip
Chaque clip possède son propre ordre z qui détermine la façon dont les objets se recouvrent à
l’intérieur du fichier SWF parent ou du clip. A chaque clip est associée une valeur de profondeur,
qui détermine s’il sera rendu devant ou derrière les autres clips dans le même scénario de clip.
Lorsque vous créez un clip à l’exécution à l’aide de MovieClip.attachMovie(),
MovieClip.duplicateMovieClipou MovieClip.createEmptyMovieClip(), vous devez
systématiquement spécifier une profondeur pour le nouveau clip comme paramètre de méthode.
Par exemple, le code suivant associe un nouveau clip au scénario d’un clip nommé conteneur_mc
avec une valeur de profondeur de 10.
conteneur_mc.attachMovie("symbolID", "clip_1", 10);
Ceci crée un nouveau clip avec une profondeur de 10 dans l’ordre z de conteneur_mc.
Par exemple, le code suivant associe deux nouveaux clips à conteneur_mc. Le premier clip,
nommé clip_1, sera rendu derrière clip_2, car une valeur de profondeur inférieure lui a été
attribuée.
conteneur_mc.attachMovie("symbolID", "clip_1", 10);
container_mc.attachMovie("symbolID", "clip_2", 15);
La valeur de profondeur pour les clips peut aller de -16384 à 1048575.
La classe MovieClip fournit plusieurs méthodes permettant de gérer les profondeurs de clip :
consultez MovieClip.getNextHighestDepth(), page 501,
MovieClip.getInstanceAtDepth(), page 501, MovieClip.swapDepths(), page 531 et
MovieClip.getDepth(), page 500.134 Chapitre 7 :  Utilisation des clips
Définition de la prochaine profondeur maximale disponible
Pour déterminer quelle est la prochaine profondeur maximale disponible dans un clip, utilisez
MovieClip.getNextHighestDepth(). La valeur entière renvoyée par cette méthode indique la
prochaine profondeur disponible qui sera rendue devant tous les autres objets dans le clip.
Le code suivant crée un nouveau clip, avec une valeur de profondeur de 10, sur le scénario du clip
nommé menus_mc. Il détermine ensuite la prochaine profondeur maximale disponible dans le
même clip, puis crée un nouveau clip à cette profondeur.
menus_mc.attachMovie("menuClip","file_menu", 10);
var prochaineProfondeur = menus_mc.getNextHighestDepth();
menus_mc.attachMovie("menuClip", "edit_menu", prochaineProfondeur);
Dans ce cas, la variable nommée prochaineProfondeur contient la valeur 11, étant donné qu’il
s’agit de la prochaine profondeur maximale disponible pour le clip menus_mc.
Pour obtenir la profondeur maximale actuellement occupée, soustrayez 1 à la valeur renvoyée par
getNextHighestDepth(), comme illustré dans la section suivante (consultez Définition de
l’occurrence à une profondeur spécifique, page 134).
Définition de l’occurrence à une profondeur spécifique
Pour définir l’occurrence à une profondeur spécifique, utilisez
MovieClip.getInstanceAtDepth(). Cette méthode renvoie une référence à l’occurrence se
trouvant à la profondeur indiquée.
Le code suivant combine getNextHighestDepth() et getInstanceAtDepth() pour déterminer
le clip se trouvant à la plus grande profondeur occupée du scénario racine.
var profMaxOccupée = _root.getNextHighestDepth() - 1;
var occurrenceAProfMax = _root.getInstanceAtDepth(profMaxOccupée);
Pour plus d’informations, consultez MovieClip.getInstanceAtDepth(), page 501.
Définition de la profondeur d’une occurrence
Pour déterminer la profondeur d’une occurrence de clip, utilisez MovieClip.getDepth(). 
Le code suivant itère sur tous les clips du scénario principal d’un fichier SWF et affiche le nom
d’occurrence et la valeur de profondeur de chaque clip dans le panneau de sortie.
for(each in _root) {
var obj = _root[each];
if(obj instanceof MovieClip) {
var profObjet = obj.getDepth();
trace(obj._name + ":" + profObjet)
}
}
Pour plus d’informations, consultez MovieClip.getDepth(), page 500.
Permutation de profondeurs de clips
Pour permuter les profondeurs de deux clips sur un même scénario, utilisez
MovieClip.swapDepths(). Pour plus d’informations, consultez MovieClip.swapDepths(),
page 531.Utilisation de clips comme masques 135
Dessin de formes avec ActionScript
Vous pouvez utiliser des méthodes de la classe MovieClip pour dessiner des lignes et les
remplissages sur la scène. Vous pouvez ainsi créer des outils de dessin pour les utilisateurs et tracer
des formes dans l’animation en réponse à des événements. Les méthodes de dessin sont
beginFill(), beginGradientFill(), clear(), curveTo(), endFill(), lineTo(),
lineStyle() et moveTo().
Vous pouvez utiliser les méthodes de dessin avec n’importe quel clip. Toutefois, si vous les utilisez
dans un clip créé en mode auteur, les méthodes de dessin sont exécutées avant que le clip ne soit
dessiné. En d’autres termes, le contenu créé en mode auteur est dessiné au-dessus du contenu
dessiné à l’aide des méthodes de dessin.
Vous pouvez utiliser des clips comportant des méthodes de dessin en tant que masques. Toutefois,
comme pour tous les masques de clips, les traits seront ignorés.
Pour dessiner une forme :
1 Utilisez createEmptyMovieClip() pour créer un clip vide sur la scène.
Le nouveau clip est l’enfant d’un clip existant ou du scénario principal, comme dans l’exemple
suivant :
_root.createEmptyMovieClip ("triangle", 1);
2 Utilisez le clip vide pour appeler les méthodes de dessin.
L’exemple suivant trace un triangle comportant des lignes magenta d’une épaisseur de 5 points
et aucun remplissage :
with (_root.triangle) {
lineStyle (5, 0xff00ff, 100);
moveTo (200, 200);
lineTo (300, 300);
lineTo (100, 300);
lineTo (200, 200);
}
Pour plus d’informations sur ces méthodes, consultez les entrées correspondantes dans le
Chapitre 12, Dictionnaire ActionScript Présentation, page 211.
Utilisation de clips comme masques
Vous pouvez utiliser un clip comme masque pour créer un trou qui laisse apparaître le contenu
d’un autre clip. Le clip utilisé comme masque lit toutes les images de son scénario, comme un clip
ordinaire. Vous pouvez rendre le clip déplaçable, l’animer le long d’un guide de mouvement,
utiliser des formes distinctes dans un même masque, ou redimensionner un masque de façon
dynamique. Vous pouvez également utiliser ActionScript pour activer et désactiver un masque. 
Il est impossible d’utiliser un masque pour en masquer un autre. Il est impossible de définir la
propriété _alpha d’un clip utilisé comme masque. Seuls les remplissages sont utilisés dans un clip
utilisé comme masque, les traits étant ignorés.
Pour créer un masque :
1 Sur la scène, sélectionnez un clip à masquer.
2 Dans l’inspecteur des propriétés, entrez un nom d’occurrence pour le clip, tel que image.
3 Créez un clip devant être un masque. Donnez-lui un nom d’occurrence dans l’inspecteur des
propriétés, tel que masque.136 Chapitre 7 :  Utilisation des clips
Le clip masqué sera révélé en dessous de chaque zone opaque (non transparente) du clip
agissant comme masque.
4 Sélectionnez l’image 1 dans le scénario.
5 Ouvrez le panneau Actions (Fenêtre > Panneaux de développement > Actions) si ce dernier n’est
pas déjà ouvert.
6 Dans le panneau Actions, entrez le code suivant :
image.setMask(masque);
Pour plus d’informations, consultez MovieClip.setMask(), page 529.
A propos du masquage des polices de périphérique
Vous pouvez utiliser un clip pour masquer le texte défini dans une police de périphérique. Pour
qu’un masque de clip fonctionne sur une police de périphérique, l’utilisateur doit disposer de
Flash Player 6 version 40 ou ultérieure.
Lorsque vous utilisez un clip pour masquer le texte défini dans une police de périphérique, le
cadre de délimitation rectangulaire du masque est utilisé comme forme de masque. Ainsi, si vous
créez un masque de clip non rectangulaire pour du texte de police de périphérique dans un
environnement auteur Flash, le masque qui apparaît dans le fichier SWF prend la forme du cadre
de délimitation rectangulaire et non la forme du masque lui-même.
Vous pouvez uniquement masquer des polices de périphérique en utilisant un clip comme
masque. Vous ne pouvez pas masquer des polices de périphérique en utilisant un calque de
masque sur la scène.
Gestion d’événements de clip
Les clips peuvent répondre à des événements utilisateur, tels que des clics de souris ou des
pressions sur des touches, ainsi qu’à des événements de niveau système, tel que le chargement
initial d’un clip sur la scène. ActionScript fournit deux façons de gérer les événements de clip : via
les méthodes de gestionnaire d’événement et via les gestionnaires d’événement onClipEvent() et
on(). Pour plus d’informations, consultez le Chapitre 4, Gestion d’événements, page 87.
Affectation d’une classe à un symbole de clip
ActionScript 2.0 vous permet de créer votre propre classe qui étend le comportement de la classe
intégrée MovieClip puis affecte cette classe à un symbole de bibliothèque de clip à l’aide de la
boîte de dialogue Propriétés de liaison. Lorsque vous créez une occurrence du clip auquel la classe
est affectée, elle assume les propriétés et comportements définis par la classe qui lui est affectée.
(Pour plus d’informations sur ActionScript 2,0, consultez le Chapitre 9, Création de classes avec
ActionScript 2.0, page 161.)   
Dans une sous-classe de la classe MovieClip, vous pouvez fournir les définitions des méthodes et
gestionnaires d’événements intégrés MovieClip, tels que onEnterFrame et onRelease. Dans la
procédure suivante, vous créez une classe intitulée MoveRight qui étend la classe MovieClip et
définit un gestionnaire onPress qui déplace le clip de 20 pixels vers la droite chaque fois que
l’utilisateur clique sur le clip. Dans la deuxième procédure, vous créez un symbole de clip dans un
nouveau document Flash (FLA) et affectez la classe MoveRight à ce symbole.
Pour créer une sous-classe de clip :
1 Créez un nouveau répertoire nommé TestBalle.Initialisation de propriétés de classe 137
2 Créez un nouveau fichier ActionScript en effectuant l’une des opérations suivantes :
■ (Flash MX Professionnel 2004) Choisissez Fichier > Nouveau et sélectionnez Fichier
ActionScript dans la liste des types de documents.
■ (Flash MX 2004) Créez une nouveau fichier texte dans l’éditeur de texte de votre choix.
3 Entrez le code suivant dans votre script :
// Classe MoveRight -- déplace le clip de cinq pixels vers la droite à chaque
image
la classe MoveRight étend MovieClip {
function onPress() {
this._x += 20;
}
}
4 Enregistrez le document sous MoveRight.as dans le répertoire TestBalle.
Pour affecter la classe à un symbole de clip :
1 Dans Flash, choisissez Fichier > Nouveau, sélectionnez Document Flash dans la liste des types
de fichiers et cliquez sur OK.
2 A l’aide de l’outil Ovale, dessinez un cercle sur la scène.
3 Sélectionnez le cercle puis choisissez Modification > Convertir en symbole. Dans la boîte de
dialogue Convertir en symbole, choisissez le comportement de symbole Clip et entrez Balle
dans le champ Nom.
4 Ouvrez le panneau Bibliothèque (Fenêtre > Bibliothèque) et sélectionnez le symbole Balle.
5 Sélectionnez Liaison dans le menu d’options du panneau Bibliothèque pour ouvrir la boîte de
dialogue Propriétés de liaison.
6 Dans la boîte de dialogue Propriétés de liaison, sélectionnez l’option Exporter pour ActionScript
et tapez MoveRight dans le champ Classe AS 2.0. Cliquez sur OK.
7 Enregistrez le fichier sous Balle.fla dans le répertoire TestBalle (le répertoire contenant le fichier
MoveRight.as).
8 Testez l’animation (Contrôle > Tester l’animation).
Chaque fois que vous cliquez sur le clip balle, il se déplace de 20 pixels sur la droite.
Initialisation de propriétés de classe
Dans l’exemple présenté précédemment, vous avez ajouté l’occurrence du symbole Balle
manuellement, c’est-à-dire lors de la programmation. Comme expliqué précédemment (consultez
Ajout de paramètres aux clips créés dynamiquement, page 132), vous pouvez affecter des paramètres
à des clips que vous créez lors de l’exécution en utilisant le paramètre objetInit de
attachMovie() et duplicateMovie(). Vous pouvez utiliser cette fonction pour initialiser des
propriétés de la classe que vous affectez à un clip.   
Par exemple, la classe suivante nommée MoveRightDistance est une variante de la classe
MoveRight présentée plus tôt (consultez Affectation d’une classe à un symbole de clip, page 136). La
différence est une nouvelle propriété nommée distance, dont la valeur détermine le nombre de
pixels dont un clip se déplace chaque fois que vous cliquez dessus.
// Classe MoveRightDistance -- déplace le clip de cinq pixels vers la droite à
chaque image
la classe MoveRightDistance étend MovieClip {
// la propriété distance détermine le nombre de
// pixels dont doit être déplacé le clip à chaque clic de souris138 Chapitre 7 :  Utilisation des clips
var distance:Number;
function onPress() {
this._x += distance;
}
}
En considérant que cette classe est affectée à un symbole avec un identifiant de liaison de Balle, le
code suivant crée deux nouvelles occurrences du symbole sur le scénario racine du fichier SWF. La
première occurrence, nommée balle_50, se déplace de 50 pixels chaque fois que vous cliquez
dessus, la deuxième, nommée balle_125, se déplace de 125 pixels chaque fois que vous cliquez
dessus.
_root.attachMovie("Balle", "balle_50", 10, {distance:50});
_root.attachMovie("Balle", "balle_125", 20, {distance:125});139
CHAPITRE 8
Utilisation du texte
Un champ de texte dynamique ou de saisie est un objet TextField (une occurrence de la classe
TextField). Lorsque vous créez un champ de texte, vous pouvez lui affecter un nom d’occurrence
dans l’inspecteur des propriétés. Vous pouvez utiliser ce nom d’occurrence dans les instructions
ActionScript pour définir, modifier et formater le champ de texte et son contenu à l’aide des
classes TextField et TextFormat.
Les méthodes de la classe TextField vous permettent de définir, sélectionner et manipuler du texte
dans un champ de texte dynamique ou de saisie que vous créez en cours de programmation ou à
l’exécution. Pour plus d’informations, consultez Utilisation de la classe TextField, page 140. Pour
plus d’informations sur les champs de texte de débogage lors de l’exécution, consultez Affichage
des propriétés de champ de texte pour le débogage, page 82.
ActionScript propose également différentes manières de formater vos textes à l’exécution. La classe
TextFormat vous permet de définir le formatage des caractères et des paragraphes pour les objets
TextField (consultez Utilisation de la classe TextFormat, page 141). Flash Player prend également
en charge un sous-ensemble de balises HTML à utiliser pour formater le texte (consultez
Utilisation de texte au format HTML, page 151). Flash Player 7 et les versions ultérieures prennent
en charge la balise HTML <img>, qui permet non seulement d’intégrer des images externes, mais
également des fichiers SWF externes, ainsi que les clips qui résident dans la bibliothèque
(consultez balise image (<img>), page 153).
Dans Flash Player 7 et versions ultérieures, vous pouvez appliquer des styles de feuilles de style en
cascade (CSS) aux champs de texte à l’aide de la classe TextField.StyleSheet. Vous pouvez utiliser
le style CSS pour l’appliquer aux balises HTML intégrées, définir de nouvelles balises de format
ou appliquer des styles. Pour plus d’informations sur l’utilisation de CSS, consultez Formatage de
texte avec les feuilles de style en cascade, page 143.
Vous pouvez également directement affecter du texte au format HTML, pouvant éventuellement
utiliser des styles CSS, à un champ de texte. Dans Flash Player 7 et les versions ultérieures, le texte
HTML que vous assignez à un champ de texte peut contenir des supports intégrés (clips vidéos,
fichiers SWF et fichiers JPEG). Le texte enveloppe le média intégré, exactement comme un
navigateur web enveloppe le texte autour d’un média intégré dans un document HTML. Pour
plus d’informations, consultez balise image (<img>), page 153.140 Chapitre 8 :  Utilisation du texte
Utilisation de la classe TextField
La classe TextField représente tout champ de texte dynamique ou sélectionnable (modifiable) que
vous créez à l’aide de l’outil Texte dans Flash. Utilisez les méthodes et les propriétés de cette classe
pour contrôler les champs de texte à l’exécution. Les objets TextField supportent les mêmes
propriétés que les objets MovieClip à l’exception des propriétés _currentframe, _droptarget,
_framesloaded et _totalframes. Vous pouvez obtenir et définir des propriétés et invoquer des
méthodes pour les champs de texte de façon dynamique. 
Pour contrôler un champ de texte dynamique ou de saisie en utilisant ActionScript, vous devez lui
affecter un nom d’occurrence dans l’inspecteur des propriétés. Vous pouvez ensuite faire référence
au champ de texte avec le nom de l’occurrence et utiliser les méthodes et les propriétés de la classe
TextField pour contrôler le contenu ou l’apparence générale du champ de texte. Vous pouvez
également créer des objets TextField à l’exécution et leur affecter des noms d’occurrence à l’aide de
la méthode MovieClip.createTextField(). Pour plus d’informations, consultez Création de
champs de texte à l’exécution, page 141.
Affectation de texte à un champ de texte à l’exécution
Pour affecter du texte à un champ de texte, utilisez la propriété TextField.text.
Pour affecter du texte à un champ de texte à l’exécution :
1 En utilisant l’outil Texte, créez un champ de texte sur la scène.
2 Le champ de texte étant sélectionné, dans l’inspecteur des propriétés (Fenêtre > Propriétés),
entrez titre_txt dans la zone de texte Nom de l’occurrence, située au-dessous du menu
contextuel Type de texte sur le côté gauche de l’inspecteur.
Les noms d’occurrence peuvent uniquement comporter des lettres, des traits de soulignement
(_) et des dollars ($).
3 Dans le scénario, sélectionnez la première image dans le calque 1 et ouvrez le panneau Actions
(Fenêtre > Panneaux de développement > Actions).
4 Tapez le code suivant dans le panneau Actions :
titre_txt.text = "Le Brésil remporte la Coupe du monde";
5 Choisissez Contrôle > Tester l’animation pour tester l’animation.
A propos des noms d’occurrence et de variable de champ de texte
Dans l’inspecteur des propriétés, vous pouvez également affecter un nom de variable à un champ
de texte dynamique ou de saisie, ainsi qu’un nom d’occurrence. Vous pouvez ensuite faire
référence au nom de variable du champ de texte dans ActionScript, dont la valeur détermine le
contenu du champ de texte. Cependant, il est important de ne pas confondre le nom d’occurrence
et le nom de variable d’un champ de texte. 
Utilisez le nom d’occurrence affecté à un champ de texte pour invoquer des méthodes, obtenir et
définir les propriétés de l’objet champ de texte. Le nom de variable d’un champ de texte est tout
simplement une référence de variable au texte contenu dans ce champ de texte, il ne s’agit pas
d’une référence à un objet.
Par exemple, si vous affectez à un champ de texte le nom de variable montexteVar, vous pouvez
ensuite définir le contenu du champ de texte en utilisant le code suivant :
var montexteVar = "Ceci apparaîtra dans le champ de texte";Utilisation de la classe TextFormat 141
Cependant, vous ne pouvez pas utiliser la variable montexteVar pour définir la même propriété
de texte de champ de texte à un autre texte.
//Cela ne fonctionnera pas
monTexteVar.text = "Une variable de champ de texte n’est pas une référence à un
objet";
En général, utilisez la propriété TextField.text pour contrôler le contenu d’un champ de texte,
sauf si vous ciblez une version de Flash Player qui ne supporte pas la classe TextField. Ceci réduira
l’éventualité d’un conflit de noms de variables, qui pourrait engendrer un comportement
inattendu à l’exécution.
Création de champs de texte à l’exécution
Vous pouvez utiliser la méthode createTextField() de la classe MovieClip pour créer un
champ de texte vide sur la scène à l’exécution. Ce nouveau champ est associé au scénario du clip
qui appelle la méthode. La méthode createTextField() utilise la syntaxe suivante :
movieClip.createTextField(nomDoccurrence, profondeur, x, y, largeur, hauteur)
Par exemple, le code suivant crée un champ de texte de 300 x 100 pixels nommé test_txt au
point (0,0) et à une profondeur (ordre z) de 10.
_root.createTextField("test_txt", 10, 0, 0, 300, 100);
Utilisez le nom d’occurrence spécifié dans l’appel createTextField() pour accéder aux
méthodes et aux propriétés de la classe TextField. Par exemple, le code suivant crée un nouveau
champ de texte nommé test_txt, puis modifie ses propriétés pour en faire un champ de texte
multiligne avec retour automatique à la ligne, qui se développe pour s’ajuster à la taille du texte
inséré. Enfin, il affecte du texte à la propriété text du champ de texte.
_root.createTextField("test_txt", 10, 0, 0, 100, 50);
test_txt.multiline = true;
test_txt.wordWrap = true;
test_txt.autoSize = true;
test_txt.text = "Créez de nouveaux champs de texte à l’aide de la méthode
MovieClip.createTextField.";
Vous pouvez utiliser la méthode TextField.removeTextField() pour supprimer un champ de
texte créé avec createTextField(). La méthode removeTextField() ne fonctionne pas pour
les champs de texte placés par le scénario au cours de la programmation.
Pour plus d’informations, consultez MovieClip.createTextField(), page 492, et
TextField.removeTextField(), page 690.
Utilisation de la classe TextFormat
Vous pouvez utiliser la classe TextFormat d’ActionScript pour définir les propriétés de formatage
d’un champ de texte. Cette classe intègre des informations sur le formatage des caractères et des
paragraphes. Les informations sur le formatage des caractères décrivent l’apparence des différents
caractères : nom de police, taille, couleur et URL associée. Les informations sur le formatage des
paragraphes décrivent l’apparence d’un paragraphe : marge de gauche, marge de droite,
indentation de la première ligne, ainsi qu’alignement à gauche, droite ou au centre. 142 Chapitre 8 :  Utilisation du texte
Pour utiliser la classe TextFormat, vous devez d’abord créer un objet TextFormat et définir ses
styles de formatage de caractères et de paragraphes. Appliquez ensuite l’objet TextFormat à un
champ de texte à l’aide des méthodes TextField.setTextFormat() ou
TextField.setNewTextFormat().
La méthode setTextFormat() modifie le format de texte appliqué à chaque caractère, à des
groupes de caractères ou à l’ensemble du corps de texte d’un champ de texte. Cependant, le texte
nouvellement inséré (tel que celui entré par l’utilisateur ou inséré avec ActionScript) n’adopte pas
le formatage spécifié par un appel setTextFormat(). Pour spécifier le formatage par défaut pour
d’un texte nouvellement inséré, utilisez TextField.setNewTextFormat(). Pour plus
d’informations, consultez TextField.setTextFormat, page 694, et
TextField.setNewTextFormat, page 694.
Pour formater un champ de texte avec la classe TextFormat :
1 Dans un nouveau document Flash, créez un champ de texte sur la scène à l’aide de l’outil Texte.
Tapez du texte dans le champ de texte sur la scène; par exemple « Texte gras, italique, 24
points ».
2 Dans l’inspecteur des propriétés, tapez monTexte_txt dans la zone de texte Nom de
l’occurrence, sélectionnez Dynamique dans le menu contextuel Type de texte et sélectionnez
Multiligne dans le menu contextuel Type de ligne.
3 Dans le scénario, sélectionnez la première image dans le calque 1 et ouvrez le panneau Actions
(Fenêtre > Panneaux de développement > Actions).
4 Entrez le code suivant dans le panneau Actions pour créer un objet TextFormat et définissez ses
propriétés bold et italic sur la valeur true et sa propriété size sur 24.
// Créez un objet TextFormat
var txtfmt_fmt = new TextFormat();
// Spécifiez le formatage des paragraphes et des caractères
txtfmt_fmt.bold = "true";
txtfmt_fmt.italic = "true";
txtfmt_fmt.size = "24"
5 Appliquez l’objet TextFormat au champ de texte que vous avez créé à l’étape 1 en utilisant
TextField.setTextFormat().
monTexte_txt.setTextFormat(txtfmt_fmt);
Cette version de setTextFormat() applique le formatage spécifié à l’intégralité du champ de
texte. Deux autres versions de cette méthode vous permettent d’appliquer le formatage à des
caractères individuels ou à des groupes de caractères. Par exemple, le code suivant applique le
formatage gras, italique, 24 points aux quatre premiers caractères que vous avez entrés dans le
champ de texte.
monTexte_txt.setTextFormat(txtfmt_fmt, 0, 3);
Pour plus d’informations, consultez TextField.setTextFormat, page 694.
6 Choisissez Contrôle > Tester l’animation pour tester l’animation.
Propriétés par défaut des nouveaux champs de texte
Les champs de texte créés à l’exécution à l’aide de createTextField() reçoivent un objet
TextFormat par défaut avec les propriétés suivantes :
font = "Times New Roman"
size = 12
textColor = 0x000000
bold = falseFormatage de texte avec les feuilles de style en cascade 143
italic = false
underline = false
url = ""
target = ""
align = "left"
leftMargin = 0
rightMargin = 0
indent = 0
leading = 0
bullet = false
tabStops = [] (tableau vide)
Pour obtenir la liste complète des méthodes TextFormat et leur description, consultez l’entrée
Classe TextFormat dans le Chapitre 12, Dictionnaire ActionScript Présentation, page 211.
Obtention des informations métriques du texte
Vous pouvez utiliser la méthode TextFormat.getTextExtent() pour obtenir les mesures de
texte détaillées d’une chaîne de texte à laquelle est appliquée un formatage spécifique. Supposons,
par exemple, que vous deviez créer, à l’exécution, un objet TextField contenant une quantité de
texte aléatoire formaté en 24 points, gras, police Arial, avec un retrait de 5 pixels. Vous devez
déterminer la largeur et la hauteur du nouvel objet TextField pour afficher tout le texte. La
méthode getTextExtent() fournit des mesures telles que les mesures ascendantes, descendantes,
de la largeur et de la hauteur.
Pour plus d’informations, consultez TextFormat.getTextExtent(), page 712.
Formatage de texte avec les feuilles de style en cascade
Les feuilles de style en cascade sont un mécanisme permettant de créer des styles de textes qui
peuvent être appliqués aux documents HTML ou XML. Une feuille de style est un ensemble de
règles de formatage qui spécifie comment formater des éléments HTML ou XML. Chaque règle
associe un nom de style, ou sélecteur, à une ou plusieurs propriétés de style ainsi qu’à leurs valeurs.
Par exemple, le style suivant définit un sélecteur nommé bodyText.   
bodyText { text-align: left}
Vous pouvez créer des styles qui redéfinissent les balises HTML de formatage intégrées utilisées
par Flash Player (telles que <p> et <li>), créer des « classes » de style pouvant être appliquées à
des éléments HTML spécifiques à l’aide de l’attribut de classe des balises <p> ou <span> ou
définir de nouvelles balises.
Utilisez la classe TextField.StyleSheet pour utiliser les feuilles de style de texte. Vous pouvez
charger des styles à partir d’un fichier CSS externe ou les créer de façon native en utilisant
ActionScript. Pour appliquer une feuille de style à un champ de texte contenant du texte au
format HTML ou XML, utilisez la propriété TextField.styleSheet. Les styles définis dans la
feuille de style sont automatiquement mappés aux balises définies dans le document HTML ou
XML.
Pour utiliser des feuilles de style, vous devez suivre trois étapes basiques :
• Créez un objet feuille de style à partir de la classe TextField.StyleSheet. Pour plus
d’informations, consultez Création d’un objet feuille de style, page 145.
• Ajoutez des styles à l’objet feuille de style, soit en les important d’un fichier CSS externe, soit
en les définissant avec ActionScript. Consultez Chargement de fichiers CSS externes, page 145, et
Création de nouveaux styles avec ActionScript, page 146.144 Chapitre 8 :  Utilisation du texte
• Affectez l’objet feuille de style à un champ de texte contenant du texte au format XML ou
HTML. Consultez Application de styles à un objet TextField, page 146, Exemple d’utilisation de
styles avec HTML, page 148, et Exemple d’utilisation de styles avec XML, page 150.
Propriétés CSS supportées
Flash Player supporte un sous-ensemble de propriétés dans la spécification CSS1 d’origine
(www.w3.org/TR/REC-CSS1). Le tableau suivant présente les propriétés et les valeurs CSS
supportées et les noms de propriétés ActionScript correspondants. (Chaque nom de propriété
ActionScript est tiré du nom de propriété CSS correspondant. Le trait d’union est omis et le
caractère suivant est une majuscule.)
Propriété CSS Propriété ActionScript Utilisation et valeurs supportées
text-align textAlign Les valeurs reconnues sont left, center et right.
font-size fontSize Seule la partie numérique de la valeur est utilisée ; les
unités (px, pt) ne sont pas analysées ; les pixels et les
points sont équivalents.
text-decoration textDecoration Les valeurs reconnues sont none et underline.
margin-left marginLeft Seule la partie numérique de la valeur est utilisée. Les
unités (px, pt) ne sont pas analysées ; les pixels et les
points sont équivalents.
margin-right marginRight Seule la partie numérique de la valeur est utilisée. Les
unités (px, pt) ne sont pas analysées ; les pixels et les
points sont équivalents.
font-weight fontWeight Les valeurs reconnues sont normal et bold.
font-style fontStyle Les valeurs reconnues sont normal et italic.
text-indent textIndent Seule la partie numérique de la valeur est utilisée. Les
unités (px, pt) ne sont pas analysées ; les pixels et les
points sont équivalents.
font-family fontFamily Liste des polices à utiliser, séparées par des virgules,
classées par ordre de choix décroissant. Tous les noms
de familles de polices peuvent être utilisés. Si vous
spécifiez un nom de police générique, il sera converti
dans la police de périphérique appropriée. Les
conversions de police suivantes sont disponibles : mono
est converti en _typewriter, sans-serif est converti
en_sans et serif est converti en _serif.
color color Seules les valeurs hexadécimales de couleur sont
supportées. Les couleurs nommées (comme blue) ne
sont pas supportées.
display display Les valeurs supportées sont inline, block et none.Formatage de texte avec les feuilles de style en cascade 145
Création d’un objet feuille de style
Les feuilles de style CSS sont représentées dans ActionScript par la classe
TextField.StyleSheet. Cette classe est uniquement disponible pour les fichiers SWF conçus
pour Flash Player 7 et les versions ultérieures. Pour créer un objet feuille de style, appelez la
fonction de constructeur de la classe TextField.StyleSheet.
var nouveauStyle = new TextField.StyleSheet();
Pour ajouter des styles à un objet feuille de style, chargez un fichier CSS externe dans l’objet ou
définissez les styles dans ActionScript. Consultez Chargement de fichiers CSS externes, page 145, et
Création de nouveaux styles avec ActionScript, page 146.
Chargement de fichiers CSS externes
Vous pouvez définir des styles dans un fichier CSS externe puis charger ce fichier dans un objet
feuille de style. Les styles définis dans le fichier CSS sont ajoutés à l’objet feuille de style. Pour
charger un fichier CSS externe, utilisez la méthode load() de la classe TextField.StyleSheet. Pour
déterminer le moment où le chargement du fichier CSS est terminé, utilisez le gestionnaire
d’événement onLoad de l’objet feuille de style.
Dans l’exemple suivant, créez et chargez un fichier CSS externe et utilisez la méthode
TextField.StyleSheet.getStyleNames() pour récupérer les noms des styles chargés.
Pour charger une feuille de style externe :
1 Créez un nouveau fichier dans l’éditeur de texte ou l’éditeur XML de votre choix.
2 Ajoutez les définitions de style suivantes au fichier :
// Nom de fichier : styles.css
bodyText {
font-family: Arial,Helvetica,sans-serif;
  font-size 12px;
}
headline {
font-family: Arial,Helvetica,sans-serif;
  font-size 24px;
}
3 Enregistrez le fichier CSS sous styles.css.
4 Dans Flash, créez un document FLA.
5 Dans le scénario (Fenêtre > Scénario), sélectionnez le calque 1.
6 Ouvrez le panneau Actions (Fenêtre > Panneaux de développement > Actions).
7 Ajoutez le code suivant au panneau Actions
var css_styles = new TextField.StyleSheet();
css_styles.load("styles.css");
css_styles.onLoad = function(ok) {
if(ok) {
// afficher les noms de style
trace(this.getStyleNames());
} else {
trace(“Erreur lors du chargement du fichier CSS.”);
}
}
8 Enregistrez le fichier dans le même répertoire que celui contenant styles.css.146 Chapitre 8 :  Utilisation du texte
9 Testez l’animation (Contrôle > Tester l’animation).
Les noms des deux styles devraient s’afficher dans le panneau de sortie :
body
title
Si « Erreur lors du chargement du fichier CSS » s’affiche dans le panneau de sortie, vérifiez que
le fichier FLA et le fichier CSS se trouvent bien dans le même répertoire et que vous avez
correctement saisi le nom du fichier CSS.
Comme pour les autres méthodes ActionScript qui chargent des données via le réseau, le fichier
CSS doit résider dans le même domaine que le fichier SWF qui effectue le chargement du fichier.
Pour plus d’informations, consultez A propos de l’autorisation de chargement de données inter-
domaines, page 198.


Cordialement

L'équipe Parisdepannage.fr

Hors ligne

 

#2 20-08-2008 16:00:07

Admin
Administrateur
Date d'inscription: 30-07-2008
Messages: 683

Re: Guide de référence sur l'action script de flash (2)

Création de nouveaux styles avec ActionScript
Vous pouvez créer de nouveaux styles de texte avec ActionScript en utilisant la méthode
setStyle() de la classe TextField.StyleSheet. Cette méthode prend deux paramètres : le nom du
style et un objet qui définit les propriétés de ce style. 
Par exemple, le code suivant crée un objet feuille de style nommé styles qui définit deux styles
identiques à ceux que vous avez importés (consultez Chargement de fichiers CSS externes,
page 145).
var styles = new TextField.StyleSheet();
styles.setStyle("bodyText",
{fontFamily: ’Arial,Helvetica,sans-serif’,
fontSize: ’12px’}
);
styles.setStyle("titre",
{fontFamily: ’Arial,Helvetica,sans-serif’,
fontSize: ’24px’}
);
Application de styles à un objet TextField
Pour appliquer un objet feuille de style à un champ de texte, affectez cet objet à la propriété
styleSheet de l’objet champ de texte.
textObj_txt.styleSheet = styleSheetObj;
Remarque : Evitez de confondre la propriété TextField.styleSheet avec la classe
TextField.StyleSheet. Les majuscules les distinguent.
Lorsque vous affectez un objet feuille style à un objet TextField, le comportement normal du
champ de texte est modifié de la manière suivante :
• Les propriétés text et htmlText du champ de texte et toute variable associée au champ de
texte, contiennent toujours la même valeur et se comportent toujours de la même façon.
• Le champ de texte est en lecture seule et ne peut plus être modifié par l’utilisateur.
• Les méthodes setTextFormat() et replaceSel() de la classe TextField ne fonctionnent plus
avec le champ de texte. La seule façon de modifier le champ consiste à changer les propriétés
text ou htmlText du champ de texte ou à modifier les variables associées au champ de texte.
• Tout texte affecté à la propriété text, à la propriété htmlText ou aux variables associées du
champ de texte est stocké textuellement. Tout ce qui est écrit dans l’une de ces propriétés peut
être récupéré dans la forme originale du texte.Formatage de texte avec les feuilles de style en cascade 147
Association de styles
Les styles CSS dans Flash Player sont additionnels, c’est-à-dire que lorsque les styles sont
imbriqués, chaque niveau d’imbrication peut fournir des informations de style supplémentaires,
qui sont ajoutées les unes aux autres pour donner le formatage final.
Par exemple, voici des données XML affectées à un champ de texte :
<sectionHeading>Ceci est une section</sectionHeading>
<mainBody>Ceci est le corps principal du texte, avec un
<emphasized>mot</emphasized> emphatique.</mainBody>
Pour le mot emphatique du texte ci-dessus, le style emphasized est imbriqué dans le style
mainBody. Le style mainBody fournit les règles de couleur, de taille de police et de décoration. Le
style emphasized ajoute une règle d’épaisseur de police à ces règles. Le mot emphatique sera
formaté en associant les règles spécifiées par mainBody et emphasized.
Utilisation des classes de style
Vous pouvez créer des classes de style que vous pouvez appliquer à une balise <p> ou <span> en
utilisant l’attribut de classe de l’une des balises. Lorsqu’une balise <p> est appliquée, le style affecte
tout le paragraphe. Vous pouvez également appliquer un style à une plage de texte qui utilise une
classe de style à l’aide de la balise <span>.
Par exemple, la feuille de style suivante définit deux classes de style : mainBody et emphasis.
.mainBody {
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
}
.emphasis {
color: #666666;
font-style: italic;
}
A l’intérieur du texte HTML que vous affectez à un champ de texte, vous pouvez appliquer ces
styles aux balises <p> et <span> comme expliqué ci-dessous :
<p class="mainBody">C’est <span class="emphasis">très motivant !</span></p>
Définition du style de balises HTML intégrées
Flash Player supporte un sous-ensemble de balises HTML. Pour plus d’informations, consultez
Utilisation de texte au format HTML, page 151. Vous pouvez affecter un style CSS à chaque
occurrence d’une balise HTML intégrée qui apparaît dans un champ de texte. Par exemple, le
code suivant définit un style pour la balise HTML intégrée <p>. Toutes les occurrences de cette
balise verront leur style défini de la manière spécifiée par la règle de style :
p {
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
display: inline;
}148 Chapitre 8 :  Utilisation du texte
Le tableau suivant indique les balises HTML intégrées dont le style peut être défini, et la façon
dont chaque style est appliqué :
Exemple d’utilisation de styles avec HTML
Cette section présente un exemple de l’utilisation des styles avec des balises HTML. Vous créez
une feuille de style qui définit le style de certaines balises intégrées ainsi que certaines classes de
style. Vous appliquez ensuite cette feuille de style à un objet TextField qui contient du texte au
format HTML.
Pour formater un HTML à l’aide d’une feuille de style, effectuez les opérations suivantes :
1 Créez un fichier dans l’éditeur de texte de votre choix.
2 Ajoutez la définition de feuille de style suivante dans le fichier :
p {
color: #000000;
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
display: inline;
}
a:link {
color: #FF0000;
}
a:hover{
text-decoration: underline;
}
.headline {
color: #000000;
font-family: Arial,Helvetica,sans-serif;
font-size: 18px;
font-weight: bold;
display: block;
}
Nom de style Comment le style est appliqué
p Affecte toutes les balises <p>.
body Affecte toutes les balises <body>. S’il est spécifié, le style p est prioritaire par rapport
au style body.
li Affecte toutes les balises à puce <li>.
a Affecte toutes les balises d’ancrage <a>.
a:link Affecte toutes les balises d’ancrage <a>. Ce style est appliqué après tout style a.
a:hover Appliqué à une balise d’ancrage <a> lorsque la souris se déplace sur le lien. Ce style
est appliqué après tout style a et a:link.
Une fois que la souris s’éloigne du lien, le style a:hover est supprimé du lien.
a:active Appliqué à une balise d’ancrage <a> lorsque l’utilisateur clique avec la souris sur le
lien. Ce style est appliqué après tout style a et a:link.
Une fois que le bouton de la souris est relâché, le style a:active est supprimé du
lien.Formatage de texte avec les feuilles de style en cascade 149
.byline {
color: #666600;
font-style: italic;
font-weight: bold;
display: inline;
}
Cette feuille de style définit des styles pour deux balises HTML intégrées (<p> et <a>) qui
seront appliqués à toutes les occurrences de ces balises. Elle définit également deux classes de
style (.headline et .byline) qui seront appliquées à des paragraphes et à des plages de texte
spécifiques.
3 Enregistrez le fichier sous html_styles.css.
4 Dans Flash, créez un fichier FLA.
5 A l’aide de l’outil Texte, créez un champ de texte d’environ 400 pixels de large et 300 pixels de
haut.
6 Ouvrez l’inspecteur des propriétés (Fenêtre > Propriétés) et sélectionnez le champ de texte.
7 Dans l’inspecteur des propriétés, sélectionnez Texte dynamique dans le menu Type de texte,
sélectionnez Multiligne dans le menu Type de ligne, sélectionnez l’option Rendre le texte au
format HTML et tapez news_txt dans la zone de texte Nom de l’occurrence.
8 Sélectionnez la première image dans le calque 1 du scénario (Fenêtre > Scénario).
9 Ouvrez le panneau Actions (Fenêtre > Panneaux de développement > Actions) et ajoutez-lui le
code suivant :
// Créez un objet feuille de style
var feuille_style = new TextField.StyleSheet();
// Emplacement du fichier CSS qui définit les styles
var css_url = "html_styles.css";
// Créez du texte HTML à afficher
var storyText:String = "<p class=’headline’>Flash Player supporte désormais
les feuilles de style en cascade !</p><p><span class=’byline’>San
Francisco, Californie</span>--Macromedia Inc. annonce aujourd’hui une
nouvelle version de Flash Player qui supporte les styles de texte de
feuilles de style en cascade (CSS). Pour plus d’informations, visitez le
<a href=’http://www.macromedia.com’>site web Macromedia Flash.</a></p>";
// Chargez le fichier CSS et définissez le gestionnaire onLoad :
feuille_style.load(css_url);
feuille_style.onLoad = function(ok) {
if (ok) {
// Si la feuille de style a été chargée sans erreur,
// affectez-la à l’objet texte,
// et affectez le texte HTML au champ de texte.
news_txt.styleSheet = style_sheet;
news_txt.text = storyText;
}
};
Remarque : Pour plus de simplicité, le texte HTML dont le style doit être défini est « codé en dur »
dans le script. Dans une application réelle, vous chargeriez le texte à partir d’un fichier externe. Pour
plus d’informations sur le chargement de données externes, consultez le Chapitre 10, Utilisation de
données externes, page 185.
10 Enregistrez le fichier sous news_html.fla dans le même répertoire que celui contenant le fichier
CSS que vous avez créé précédemment.
11 Exécutez l’animation (Contrôle > Tester l’animation) pour voir les styles appliqués au texte
HTML automatiquement.150 Chapitre 8 :  Utilisation du texte
Utilisation de styles pour définir de nouvelles balises
Si vous définissez un nouveau style dans une feuille de style, ce style peut être utilisé comme
balise, comme vous utiliseriez une balise HTML intégrée. Par exemple, si une feuille de style
définit un style CSS nommé sectionHeading, vous pouvez utiliser <sectionHeading> comme
élément dans tout champ de texte associé à la feuille de style. Cette fonction vous permet
d’affecter directement du texte aléatoire au format XML dans un champ de texte, afin que le texte
soit automatiquement formaté en utilisant les règles de la feuille de style.
Par exemple, la feuille de style suivante crée les nouveaux styles sectionHeading, mainBody et
emphasized.
sectionHeading {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 18px; display: block
}
mainBody {
color: #000099;
text-decoration: underline;
font-size: 12px; display: block
}
emphasized {
font-weight: bold; display: inline
}
Vous pouvez ensuite remplir un champ de texte associé à cette feuille de style avec le texte au
format XML suivant :
<sectionHeading>Ceci est une section</sectionHeading>
<mainBody>Ceci est le corps principal du texte,
avec un <emphasized>mot</emphasized> emphatique.
</mainBody>
Exemple d’utilisation de styles avec XML
Dans cette section, vous créez le même fichier FLA que précédemment (consultez Exemple
d’utilisation de styles avec HTML, page 148), mais avec du texte au format XML. Dans cet
exemple, cependant, vous créez la feuille de style en utilisant ActionScript au lieu d’importer des
styles à partir d’un fichier CSS.
Pour formater du XML avec une feuille de style :
1 Dans Flash, créez un fichier FLA.
2 A l’aide de l’outil Texte, créez un champ de texte d’environ 400 pixels de large et 300 pixels de
haut.
3 Ouvrez l’inspecteur des propriétés (Fenêtre > Propriétés) et sélectionnez le champ de texte.
4 Dans l’inspecteur des propriétés, sélectionnez Texte dynamique dans le menu Type de texte,
sélectionnez Multiligne dans le menu Type de ligne, sélectionnez l’option Rendre le texte au
format HTML et tapez news_txt dans la zone de texte Nom de l’occurrence.
5 Dans le calque 1 du scénario (Fenêtre > Scénario), sélectionnez la première image.
6 Pour créer l’objet feuille de style, ouvrez le panneau Actions (Fenêtre > Panneaux de
développement > Actions) et ajoutez le code suivant au panneau Actions :
var xml_styles = new TextField.StyleSheet();
xml_styles.setStyle("mainBody", {
color:’#000000’,
fontFamily:’Arial,Helvetica,sans-serif’, Utilisation de texte au format HTML 151
fontSize:’12’,
display:’block’
});
xml_styles.setStyle("title", {
color:’#000000’,
fontFamily:’Arial,Helvetica,sans-serif’,
fontSize:’18’,
display:’block’,
fontWeight:’bold’
});
xml_styles.setStyle("byline", {
color:’#666666’,
fontWeight:’bold’,
fontStyle:’italic’,
display:’inline’
});
xml_styles.setStyle("a:link", {
color:’#FF0000’
});
xml_styles.setStyle("a:hover", {
textDecoration:’underline’
});
Ce code crée un nouvel objet feuille de style nommé xml_styles qui définit les styles à l’aide
de la méthode setStyle(). Les styles correspondent exactement à ceux que vous avez créés
dans un fichier CSS externe, précédemment dans ce même chapitre.
7 Pour créer du texte XML à affecter au champ de texte, ajoutez le code suivant au panneau
Actions :
var storyText = "<title>Flash Player supporte désormais CSS</
title><mainBody><byline>San Francisco, Californie</byline>--Macromedia
Inc. annonce aujourd’hui une nouvelle version de Flash Player qui prend en
charge les styles de texte de feuilles de style en cascade (CSS). Pour
plus d’informations, visitez le <a href=\"http://www.macromedia.com\">site
web de Macromedia Flash</a></mainBody>";
8 Enfin, ajoutez le code suivant pour appliquer l’objet feuille de style à la propriété styleSheet
du champ de texte et affectez le texte XML au champ de texte.
news_txt.styleSheet = xml_styles;
news_txt.text = storyText;
9 Enregistrez le fichier sous news_xml.fla.
10 Exécutez l’animation (Contrôle > Tester l’animation) pour voir les styles automatiquement
appliqués au texte dans le champ.
Utilisation de texte au format HTML
Flash Player supporte un sous-ensemble de balises HTML comme <p> et <li> que vous pouvez
utiliser pour attribuer un style à un texte dans un champ de texte dynamique ou de saisie. Dans
Flash Player 7 et les versions ultérieures, les champs de texte prennent également en charge la
balise <img>, qui vous permet d’intégrer les fichiers JPEG, SWF et les clips vidéo, dans un champ
de texte. Dans Flash Player, le texte enveloppe automatiquement les images intégrées dans les
champs de texte, de la même manière qu’un navigateur web enveloppe le texte autour des images
intégrées dans un document HTML. Pour plus d’informations, consultez Intégration des images,
fichiers SWF et des clips dans les champs de texte, page 156. 152 Chapitre 8 :  Utilisation du texte
Flash Player prend également en charge la balise <textformat>, qui vous permet d’appliquer les
styles de formatage de paragraphe de la classe TextFormat aux champs de texte HTML. Pour plus
d’informations, consultez Utilisation de la classe TextFormat, page 141.
Présentation de l’utilisation du texte au format HTML
Pour utiliser le format HTML dans un champ de texte, vous devez activer le formatage HTML
du champ de texte en sélectionnant l’option Rendre le texte au format HTML dans l’inspecteur
des propriétés ou en définissant la propriété html du champ de texte sur true. Pour insérer du
texte HTML dans un champ de texte, utilisez la propriété TextField.htmlText.
Par exemple, le code suivant active le formatage HTML pour un champ de texte nommé
titre_txt, puis lui affecte du texte HTML.
titre_txt.html = true;
titre_txt.htmlText = "<font face=’Times New Roman’ size=’24’>Voici comment
affecter du texte HTML à un champ de texte.</font>";
Les attributs des balises HTML doivent être encadrés de guillemets simples ou doubles. Les
valeurs des attributs dépourvues de guillemets peuvent engendrer des résultats inattendus, comme
le rendu incorrect du texte. Par exemple, le fragment de code HTML suivant ne sera pas rendu
correctement par Flash Player, car la valeur affectée à l’attribut align (left) n’est pas encadrée de
guillemets :
textField.htmlText = "<p align=left>Texte aligné sur la gauche</p>";
Si vous encadrez les valeurs d’attribut à l’aide de guillemets doubles, vous devez utiliser la fonction
d’échappement pour les guillemets (\"). Par exemple, l’une des solutions suivantes est possible :
textField.htmlText = "<p align=’left’>Guillemets simples utilisés</p>";
textField.htmlText = "<p align=\"left\">Guillemets doubles échappés</p>";
Il n’est pas nécessaire d’utiliser la fonction d’échappement pour les guillemets doubles si vous
chargez du texte à partir d’un fichier externe. Cette action est uniquement nécessaire pour
l’affectation des chaînes de texte dans ActionScript.
Balises HTML prises en charge
Cette section répertorie les balises HTML intégrées prises en charge par Flash Player. Vous pouvez
également créer de nouveaux styles et balises en utilisant les feuilles de style en cascade (consultez
Formatage de texte avec les feuilles de style en cascade, page 143).
balise d’ancrage (<a>)
La balise <a> crée un hyperlien et prend en charge les attributs suivants :
• href Spécifie l’URL de la page à charger dans le navigateur. L’URL peut être absolue ou
relative à l’emplacement du fichier SWF qui charge la page.
• target Spécifie le nom de la fenêtre cible dans laquelle charger la page.
Par exemple, le fragment de code HTML suivant crée le lien « Accueil », qui ouvre
www.macromedia.com dans une nouvelle fenêtre du navigateur.
<a href="../home.htm" target="_blank">Accueil</a>
Vous pouvez également définir des styles a:link, a:hover et a:active pour les balises d’ancrage
en utilisant les feuilles de style. Pour plus d’informations, consultez Définition du style de balises
HTML intégrées, page 147.Utilisation de texte au format HTML 153
Balise Bold (<b>)
La balise <b> rend le texte en caractères gras. Les caractères gras doivent être disponibles dans la
police utilisée pour afficher le texte.
<b>Ceci est du texte en gras.</b>
Balise Break (<br>)
La balise <br> crée un saut de ligne dans le champ de texte, comme indiqué dans l’exemple
suivant :
Une ligne de texte<br>Une autre ligne de texte<br>
Balise Font (<font>)
La balise <font> spécifie une police ou une liste de polices pour l’affichage du texte.
La balise font prend en charge les attributs suivants :
• color Seules les valeurs de couleur hexadécimales (#FFFFFF) sont prises en charge. Par
exemple, le code HTML suivant crée du texte rouge.
<font color="#FF0000">Texte rouge</font>
• face Spécifie le nom de la police à utiliser. Vous pouvez également spécifier une liste de
noms de polices séparés par des virgules, auquel cas Flash Player choisit la première police
disponible. Si la police spécifiée n’est pas installée sur le système de lecture ou si elle n’est pas
intégrée dans le fichier SWF, Flash Player choisit une police de remplacement.
Exemple :
<font face="Times, Times New Roman">Il s’agit soit de la police Times, soit
de la police Times New Roman..</font>
Pour plus d’informations sur l’intégration des polices dans les applications Flash, consultez
TextField.embedFonts, page 680 et « Définition des options de texte dynamique et de
saisie », dans le guide Utilisation de Flash de l’aide.
• size Spécifie la taille de la police, en pixels. Vous pouvez également utiliser des tailles de
points relatives (+2 ou -4).
<font size="24" color="#0000FF">Texte vert à 24 points </font>
balise image (<img>)
La balise <img> vous permet d’intégrer des fichiers JPEG, SWF et des clips externes à l’intérieur
des champs de texte. Le texte se déroule automatiquement autour des images intégrées dans les
champs de texte. Cette balise est prise en charge uniquement dans les champs de texte dynamique
et de saisie multilignes avec retour à la ligne automatique. 
Pour créer un champ de texte multiligne avec retour à la ligne automatique, effectuez l’une
des opérations suivantes :
• Dans l’environnement auteur Flash, sélectionnez un champ de texte sur la scène, puis, dans
l’inspecteur des propriétés, sélectionnez Multiligne dans le menu contextuel Type de texte.
• Pour un champ de texte créé à l’exécution avec MovieClip.createTextField(), définissez les
propriétés TextField.multiline et TextField.wordWrap de la nouvelle occurrence du
champ de texte sur true.154 Chapitre 8 :  Utilisation du texte
La balise <img> a un attribut requis, src, qui spécifie le chemin vers un fichier JPEG, un fichier
SWF ou l’identifiant de liaison d’un symbole de clip. Tous les autres attributs sont facultatifs.
Les balises <img> prennent en charge les attributs suivants :
• src  Spécifie l’URL vers un fichier JPEG ou SWF, ou l’identifiant de liaison pour un
symbole de clip dans la bibliothèque. Cet attribut est requis ; tous les autres attributs sont
facultatifs. Les fichiers externes (JPEG et SWF) ne s’affichent pas tant qu’ils ne sont pas
entièrement téléchargés.
Remarque : Flash ne supporte pas les fichiers JPEG tridimensionnels.
• id Spécifie le nom d’une occurrence de clip (créée par Flash Player) contenant le fichier
JPEG, SWF ou le clip intégré. Cette fonction s’avère utile pour contrôler le contenu intégré
avec ActionScript.
• width Largeur de l’image, du fichier SWF ou du clip, en pixels.
• height Hauteur de l’image, du fichier SWF ou du clip, en pixels.
• align Spécifie l’alignement horizontal de l’image intégrée dans le champ de texte. Les valeur
valides sont left et right. La valeur par défaut est left.
• hspace Spécifie l’espace horizontal qui entoure l’image là où aucun texte n’apparaît. La
valeur par défaut est 8.
• vspace Spécifie l’espace vertical qui entoure l’image là où aucun texte n’apparaît. La valeur
par défaut est 8.
Pour plus d’informations et d’exemples sur l’utilisation de la balise <img>, consultez Intégration
des images, fichiers SWF et des clips dans les champs de texte, page 156.
Balise Italic (<i>)
La balise <i> affiche le texte balisé en italique. Des caractères italiques doivent être disponibles
dans la police utilisée.
C’est très <i>intéressant</i>.
Le code ci-dessus serait rendu de la manière suivante :
C’est très intéressant.
Balise List item (<li>)
La balise <li> place une puce devant le texte qu’elle encadre.
Liste de courses :
<li>Pommes</li>
<li>Oranges</li>
<li>Citrons</li>
Le code ci-dessus serait rendu de la manière suivante :
Liste de courses :
■ Pommes
■ Oranges
■ CitronsUtilisation de texte au format HTML 155
Balise Paragraph (<p>)
La balise <p> crée un paragraphe. Elle prend en charge les attributs suivants :
• align Spécifie l’alignement du texte dans le paragraphe. Les valeurs valides sont left, right
et center.
• class Spécifie une classe de style CSS définie par un objet TextField.StyleSheet. Pour plus
d’informations, consultez Utilisation des classes de style, page 147.
L’exemple suivant utilise l’attribut align pour aligner le texte sur le côté droit d’un champ de
texte.
textField.htmlText = "<p align=’right’>Ce texte est aligné sur la droite
dans le champ de texte</p>";
L’exemple suivant utilise l’attribut class pour affecter une classe de style de texte à une balise
<p>.
var maFeuilleDeStyle = new TextField.StyleSheet();
maFeuilleDeStyle.secreateTextField("test", 10, 0,0, 300,100);
createTextField("test", 10, 0,0, 300,100);
test.styleSheet = maFeuilleDeStyle;
test.htmlText = "<p class=’body’>Ceci est du texte de style corps.</p>.";
Balise Span (<span>)
La balise <span> peut uniquement être utilisée avec les styles de texte CSS. Pour plus
d’informations, consultez Formatage de texte avec les feuilles de style en cascade, page 143. Elle
prend en charge les attributs suivants :
• class Spécifie une classe de style CSS définie par un objet TextField.StyleSheet. Pour plus
d’informations sur la création de classes de style, consultez Utilisation des classes de style,
page 147.
Balise Text format (<textformat>)
La balise <textformat> permet d’utiliser un sous-ensemble de propriétés de formatage des
paragraphes de la classe TextFormat dans les champs de texte HTML, y compris l’interlignage, le
retrait, les marges et les taquets de tabulation. Vous pouvez associer des balises <textformat> aux
balises HTML intégrées.
La balise <textformat> possède les attributs suivants :
• blockindent Spécifie l’indentation d’un bloc, en points. Correspond à
TextFormat.blockIndent. Pour plus d’informations, consultez TextFormat.blockIndent,
page 711.
• indent Spécifie l’indentation, de la marge gauche au premier caractère du paragraphe.
Correspond à TextFormat.indent. Pour plus d’informations, consultez TextFormat.indent,
page 714.
• leading Spécifie l’espace séparant les lignes (espace vertical). Correspond à
TextFormat.leading. Pour plus d’informations, consultez TextFormat.leading, page 715.
• leftmargin Spécifie la marge gauche du paragraphe, en points. Correspond à
TextFormat.leftMargin. Pour plus d’informations, consultez TextFormat.leftMargin,
page 715.156 Chapitre 8 :  Utilisation du texte
• rightmargin Spécifie la marge droite du paragraphe, en points. Correspond à
TextFormat.rightMargin. Pour plus d’informations, consultez TextFormat.rightMargin,
page 715.
• tabstops Spécifie des taquets de tabulation personnalisés, sous forme d’un tableau d’entiers
non négatifs. Correspond à TextFormat.tabStops. Pour plus d’informations, consultez
TextFormat.tabStops, page 716.
L’exemple de code suivant utilise l’attribut tabstops de la balise <textformat> pour créer un
tableau de données avec des en-têtes de lignes en gras, comme indiqué ci-dessous :
Pour créer un tableau de données formaté en utilisant des taquets de tabulation :
1 Utilisez l’outil Texte pour créer un champ de texte dynamique d’environ 300 pixels de largeur
et 100 pixels de hauteur.
2 Dans l’inspecteur des propriétés, saisissez tableau_txt dans le champ de texte Nom de
l’occurrence, sélectionnez Multiligne dans le menu Type de ligne et choisissez l’option Rendre
le texte au format HTML.
3 Dans le scénario, sélectionnez la première image sur le Calque 1.
4 Ouvrez le panneau Actions (Fenêtre > Panneaux de développement > Actions) et ajoutez-lui le
code suivant :
var rowHeaders = "<b>Nom\t</b><b>Age\t</b><b>Service";
var row_1 = "Thomas\t31\tIMD";
var row_2 = "Eluard\t42\tQA";
tableau_txt.htmlText = "<textformat tabstops=’[100, 200]’>";
tableau_txt.htmlText += rowHeaders;
tableau_txt.htmlText += row_1;
tableau_txt.htmlText += row_2 ;
tableau_txt.htmlText += "</textformat>";
Remarquez l’utilisation de la séquence d’échappement des caractères de tabulation (\t) pour
ajouter des tabulations entre chaque « colonne » dans le tableau.
5 Choisissez Contrôle > Tester l’animation pour tester l’animation.
Balise Underline (<u>)
La balise <u> souligne le texte balisé.
Ce texte est <u>souligné</u>.
Le code ci-dessus serait rendu de la manière suivante :
Ce texte est souligné.
Intégration des images, fichiers SWF et des clips dans les champs de texte
Dans Flash Player 7 et les versions ultérieures, vous pouvez utiliser la balise <img> pour intégrer
les fichiers JPEG, les fichiers SWF, ainsi que les clips, dans les champs de texte dynamique et de
saisie. (pour obtenir la liste complète des attributs de la balise <img>, consultez balise image
(<img>), page 153).
Nom Age Service
Thomas 32 IMD
Eluard 46 IngénierieUtilisation de texte au format HTML 157
Par défaut, Flash affiche le média intégré dans un champ de texte, à sa taille normale. Pour
spécifier les dimensions du média intégré, utilisez les attributs height et width de la balise <img>.
Pour plus d’informations, consultez Spécification des valeurs de hauteur et de largeur, page 157.
En général, une image intégrée dans un champ de texte apparaît sur la ligne qui suit la balise
<img>. Cependant, lorsque la balise <img> est le premier caractère dans le champ de texte, l’image
apparaît sur la première ligne du champ de texte.
Intégration des fichiers SWF et JPEG
Pour intégrer un fichier JPEG ou SWF dans un champ de texte, spécifiez le chemin absolu ou
relatif qui mène au fichier JPEG ou SWF dans l’attribut src de la balise <img>. Par exemple, le
code suivant insère un fichier JPEG situé dans le même répertoire que le fichier SWF.
textField_txt.htmlText = "<p>Voici une photo de mes dernières vacances :<img
src=’plage.jpg’>";
Intégration de symboles de clip
Pour intégrer un symbole de clip dans un champ de texte, spécifiez l’identifiant de liaison du
symbole pour l’attribut src de la balise <img> (pour plus d’informations sur la définition d’un
identifiant de liaison, consultez Association d’un symbole de clip à la scène, page 131).
Par exemple, le code suivant insère un symbole de clip dont l’idenfiant de liaison est symbol_ID.
textField_txt.htmlText = "<p>Voici un symbole de clip :<img src=’symbol_ID’>";
Pour qu’un clip intégré soit correctement et entièrement affiché, le point d’alignement de son
symbole doit être (0,0).
Spécification des valeurs de hauteur et de largeur
Si vous spécifiez les attributs width et height d’une balise <img>, un espace est réservé dans le
champ de texte pour le fichier JPEG, SWF ou le clip. Une fois le fichier JPEG ou SWF
entièrement téléchargé, il est affiché dans l’espace réservé. Flash modifie la taille du média en
fonction des valeurs height et width.
Si vous ne spécifiez pas de valeurs height et width, aucun espace n’est réservé au média intégré.
Une fois le fichier JPEG ou SWF téléchargé, Flash l’insère dans le champ de texte à sa taille
normale et sépare de nouveau le texte autour de lui.
Contrôle du média intégré avec ActionScript
Flash Player crée un nouveau clip pour chaque balise <img> et l’intègre dans l’objet TextField.
L’attribut id de la balise <img> permet d’affecter un nom d’occurrence au clip créé et de contrôler
ainsi le clip avec ActionScript.
Le clip créé par Flash Player est ajouté en tant que clip enfant du champ de texte contenant
l’image.
Par exemple, le code suivant intègre un fichier SWF nommé animation.swf dans le champ de
texte nommé textField_txt au niveau 0 et affecte le nom d’occurrence animation_mc au clip
contenant le fichier SWF.
_level0.textField_txt.htmlText = "Voici une animation intéressante : <img
src=’animation.swf’ id=’animation_mc’>158 Chapitre 8 :  Utilisation du texte
Dans ce cas, le chemin entièrement qualifié vers le nouveau clip créé est
_level0.textField_txt.animation_mc. Vous pouvez, par exemple, associer le code suivant à
un bouton (dans le même scénario que textField_txt) afin d’arrêter la tête de lecture du fichier
SWF intégré.
on(press) {
textField_txt.animation_mc.stop();
}
Création d’hyperliens à partir d’un média intégré
Pour créer un hyperlien à partir d’un fichier JPEG, SWF ou d’un clip intégré, incluez la balise
<img> dans une balise <a> :
textField.htmlText = "Cliquez sur l’image pour retourner à la page d’accueil<a
href=’accueil.htm’><img src=’accueil.jpg’></a>";
Lorsque le pointeur de la souris survole une image, un fichier SWF ou un clip que vous avez placé
entre des balises <a>, il prend la forme d’une « main », à l’instar des hyperliens standard.
L’interactivité, telle que les clics de souris et la pression sur les touches du clavier, n’est pas
enregistrée dans les fichiers SWF et les clips placés entre les balises <a>.
Création de texte défilant
Il existe plusieurs manières de créer du texte défilant dans Flash. Pour faire défiler des champs de
texte dynamique et de saisie, vous pouvez sélectionner l’option Défilant dans le menu Texte ou le
menu contextuel, ou double-cliquer sur la poignée du bloc de texte tout en maintenant la touche
Maj enfoncée.
Vous pouvez utiliser les propriétés scroll et maxscroll de l’objet TextField pour contrôler le
défilement vertical et les propriétés hscroll et maxhscroll pour contrôler le défilement
horizontal d’un bloc de texte. Les propriétés scroll et hscroll spécifient respectivement les
positions de défilement vertical et horizontal ; vous pouvez lire et rédiger ces propriétés. Les
propriétés maxscroll et maxhscroll spécifient respectivement les positions verticales et
horizontales maximales ; vous pouvez uniquement lire ces propriétés.
Le composant TextArea de Flash MX 2004 offre un moyen aisé de créer un champ de texte
défilant avec un minimum de programmation. Pour plus d’informations, consultez l’entrée
relative au composant TextArea, dans le guide Utilisation des composants de l’aide.
Pour créer un bloc de texte dynamique défilant, effectuez l’une des opérations suivantes :
• Double-cliquez sur la poignée du bloc de texte dynamique tout en maintenant la touche maj
enfoncée.
• Sélectionnez le bloc de texte dynamique à l’aide de l’outil Flèche et choisissez Texte > Défilant.
• Sélectionnez le bloc de texte dynamique avec l’outil Flèche. Cliquez avec le bouton droit de la
souris (Windows) ou cliquez en appuyant sur la touche Control (Macintosh) sur le bloc de
texte dynamique, puis sélectionnez Texte > Défilant.
Pour utiliser la propriété scroll afin de créer du texte défilant :
1 Effectuez l’une des opérations suivantes :
■ Sélectionnez l’outil Texte et tracez un champ de texte sur la scène. Affectez le nom
d’occurrence textField au champ de texte dans l’inspecteur des propriétés.Création de texte défilant 159
■ Utilisez ActionScript pour créer un champ de texte dynamiquement à l’aide de la méthode
MovieClip.createTextField(). Affectez le nom d’occurrence textField au champ de
texte en tant que paramètre de la méthode.
2 Créez un bouton Vers le haut et un bouton Vers le bas ou choisissez Fenêtre > Autres panneaux
> Bibliothèques communes > Boutons, puis faites glisser vos boutons sur la scène.
Vous utiliserez ces boutons pour faire défiler le texte vers le haut et vers le bas.
3 Sélectionnez le bouton Vers le bas sur la scène.
4 Dans le panneau Actions (Fenêtre > Panneaux de développement > Actions), entrez le code
suivant pour faire défiler le texte vers le bas dans le champ de texte :
on (press) {
textField.scroll += 1;
}
5 Sélectionnez le bouton Vers le haut sur la scène.
6 Dans le panneau Actions, entrez le code suivant pour faire défiler le texte vers le haut :
on (press) {
textField.scroll += 1;
}
Close collapsed procedure160 Chapitre 8 :  Utilisation du texte161
CHAPITRE 9
Création de classes avec ActionScript 2.0
ActionScript 2.0 est une restructuration du langage ActionScript. Il offre de nouvelles fonctions
de programmation, déjà disponibles dans d’autres langages, tels que Java. ActionScript 2.0
encourage les structures de programme réutilisables, évolutives, robustes et pouvant être gérées. Il
permet également de réduire le temps imparti au développement, en offrant aux utilisateurs une
aide à la programmation et des informations de débogage approfondies. ActionScript 2.0 respecte
les normes existantes. Il est basé sur le projet ECMAScript 4 (www.mozilla.org/js/language/es4/).
ActionScript 2.0 est disponible dans Macromedia Flash MX 2004 et Macromedia Flash MX
Professionnel 2004.
Les fonctionnalités d’ActionScript 2.0 sont décrites ci-dessous.
Modèle familier de programmation orientée objet (OOP) La principale fonction
d’ActionScript 2.0 est un modèle familier pour la création de programmes orientés objet.
ActionScript 2.0 introduit plusieurs nouveaux concepts et mots-clés orientés objet, tels que class,
interface et packages qui vous sembleront familiers si vous avez déjà programmé en Java.
Le modèle OOP d’ActionScript 2.0 est une « formalisation syntaxique » de la méthode de
chaînage de prototype utilisée dans les précédentes versions de Macromedia Flash pour créer des
objets et établir une relation d’héritage.
Typage strict des données  ActionScript 2.0 vous permet également de spécifier explicitement
des types de données pour les variables, paramètres de fonction et types de retour de fonction. Par
exemple, le code suivant déclare une variable appelée nomDutilisateur de type chaîne (un type
de données ActionScript intégré ou une classe).
var nomDutilisateur:String = "";
Avertissements et messages d’erreur du compilateur  Les deux précédentes fonctions
permettent à l’outil de programmation et au compilateur de générer des avertissements et
messages d’erreur qui vous aident à localiser les bogues de vos applications dans Flash plus
rapidement qu’auparavant.
Attention : Si vous souhaitez utiliser la syntaxe d’ActionScript 2.0, vérifiez que les paramètres de
publication du fichier FLA indiquent ActionScript 2.0. Il s’agit de la configuration par défaut pour les
fichiers créés dans Flash MX 2004. Toutefois, si vous ouvrez un ancien fichier FLA qui utilise
ActionScript 1 et que vous commencez à le réécrire dans ActionScript 2.0, vous devez régler les
paramètres de publication du fichier FLA sur ActionScript 2.0. Sinon, votre fichier FLA ne sera pas
compilé correctement et aucune erreur ne sera générée. 162 Chapitre 9 :  Création de classes avec ActionScript 2.0
Principes de la programmation orientée objet
Cette section est une rapide introduction aux principes du développement de programmes
orientés objet. Ces principes sont présentés de façon plus approfondie dans le présent chapitre ;
leur implémentation dans Macromedia Flash MX 2004 et Macromedia Flash MX
Professionnel 2004 est notamment expliquée en détail.
Objets
Pensez à un « objet » du monde réel, un chat, par exemple. Supposons qu’un chat ait des
propriétés (ou états) telles que nom, âge et couleur, et des comportements tels que dormir, manger
et ronronner. Dans le monde de la programmation orientée objet, les objets ont également des
propriétés et des comportements. En utilisant les techniques de programmation orientée objet,
vous pouvez modeler un objet du monde réel (comme un chat) ou quelque chose de plus abstrait
(un processus chimique, par exemple).
Classes et membres de classe
Continuons, si vous le voulez bien, avec l’analogie du monde réel. Supposons qu’il existe des chats
de couleur, d’âge et de nom différents, qui mangent et ronronnent de façon différente. Mais tous
les chats appartiennent à une certaine classe d’objet, un objet de type « chat ». Chaque chat
(monde réel), considéré individuellement, est une occurrence du type de la classe chat. 
De la même façon, dans la programmation orientée objet, une classe définit un modèle pour un
type d’objet. Les caractéristiques et comportements qui appartiennent à une classe sont appelés
membres de cette classe. Les caractéristiques (dans l’exemple du chat, nom, âge et couleur) sont
appelées propriétés de la classe. Elles sont représentées sous forme de variables. Les comportements
(manger, dormir) sont appelés méthodes de la classe ; ils sont représentés sous forme de fonctions.
Par exemple, vous pouvez créer une classe Personne, puis créer une personne individuelle
correspondant à une occurrence de cette classe, appelée objet Personne. L’objet Personne contient
l’ensemble des propriétés et méthodes de la classe Personne.
Dans ActionScript, vous définissez une classe à l’aide de l’instruction class (consultez Création et
utilisation de classes, page 167). ActionScript inclut plusieurs classes intégrées, telles que les classes
MovieClip, TextField et String. Pour plus d’informations, consultez le Chapitre 6, Utilisation des
classes intégrées, page 117.
Héritage
L’un des principaux avantages de la programmation orientée objet est que vous pouvez créer des
sous-classes de classe. La sous-classe hérite alors de l’ensemble des propriétés et méthodes de la
superclasse. La sous-classe définit en général des méthodes et propriétés supplémentaires ou permet
d’étendre la superclasse. Les sous-classes peuvent également supplanter (apporter leurs propres
définitions) des méthodes héritées d’une superclasse.
Par exemple, vous créez une classe Mammifère qui définit certaines propriétés et certains
comportements communs à tous les mammifères. Vous pouvez alors créer une classe Chat qui
permet d’étendre la classe Mammifère. De cette manière, l’héritage peut promouvoir la
réutilisation du code : au lieu de créer à nouveau le code commun aux deux classes, il vous suffit
d’étendre la classe existante. Une autre sous-classe peut, à son tour, étendre la classe Chat, et ainsi
de suite. Dans une application complexe, la définition de la structure hiérarchique des classes
représente une grande partie du processus de création.Utilisation des classes : un exemple simple 163
Dans ActionScript, utilisez le mot-clé extends pour créer une relation d’héritage entre une classe
et sa superclasse. Pour plus d’informations, consultez Création de sous-classes, page 169.
Interfaces
Les interfaces, dans le cadre de la programmation orientée objet, peuvent être décrites comme des
classes dont les méthodes ne sont pas implémentées (définies). Une autre classe peut implémenter
les méthodes déclarées par l’interface.
Une interface peut également être vue comme un « contrat de programmation » pouvant être
utilisé pour appliquer des relations entre des classes sans lien. Par exemple, supposons que vous
travaillez avec une équipe de programmeurs et que chacun de vous travaille sur une partie (classe)
différente de la même application. Lors de la réalisation de l’application, vous vous mettez
d’accord sur un ensemble de méthodes que les différentes classes utiliseront pour communiquer.
Ainsi, vous créez une interface qui déclare ces méthodes, leurs paramètres et leurs types de retour.
Toute classe qui implémente cette interface doit fournir des définitions pour ces méthodes ; dans
le cas contraire, une erreur du compilateur se produira.
Vous pouvez également utiliser les interfaces pour créer une forme limitée d’« héritage multiple »,
ce qui n’est pas autorisé dans ActionScript 2.0. Dans le cas d’un héritage multiple, une classe
s’étend sur plusieurs classes. Par exemple, en C++, la classe Chat peut étendre la classe
Mammifère, ainsi que la classe Espiègle, qui a les méthodes CourirAprèsQueue et
FaireUnSomme. ActionScript 2.0, comme Java, n’autorise pas qu’une classe étende plusieurs
classes directement. Toutefois, vous pouvez créer une interface Espiègle qui déclare les méthodes
CourirAprèsQueue et FaireUnSomme. Une classe Chat ou toute autre classe peut alors
implémenter cette interface et fournir des définitions pour ces méthodes.
Pour plus d’informations, consultez Création d’une interface, page 174.
Utilisation des classes : un exemple simple
Pour ceux qui débutent dans la programmation orientée objet, cette section est une présentation
des tâches liées à la création et à l’utilisation des classes dans Flash. Le flux de travail implique les
étapes suivantes (au minimum) :
1 Définition d’une classe dans un fichier de classe ActionScript externe.
2 Enregistrement du fichier de classe dans un répertoire de chemin de classe désigné (un
emplacement où Flash va chercher les classes).
3 Création d’une occurrence de la classe dans un autre script, soit dans un document Flash (FLA),
soit dans un fichier de script externe, ou création d’une sous-classe basée sur la classe d’origine.
Cette section présente également une nouvelle fonction d’ActionScript 2.0, appelée typage strict
des données. Elle vous permet de spécifier le type de données d’une variable, d’un paramètre de
fonction ou d’un type de renvoi de fonction.
Bien que cette section n’aborde que les classes, le déroulement général du travail est le même pour
l’utilisation des interfaces. Pour plus d’informations, consultez Création et utilisation d’interfaces,
page 173.164 Chapitre 9 :  Création de classes avec ActionScript 2.0
Création d’un fichier de classe
Pour créer une classe, vous devez tout d’abord créer un fichier ActionScript (AS) externe. Classes
(et interfaces) peuvent uniquement être définies dans des fichiers de script externes. Par exemple,
vous ne pouvez pas définir une classe dans un script associé à une image ou à un bouton dans un
document Flash (FLA). Pour créer un fichier AS externe, utilisez l’éditeur ActionScript inclus
dans Flash, ou l’éditeur de code ou de texte de votre choix.   
Remarque : Le code ActionScript dans les fichiers externes est compilé dans un fichier SWF lors de
la publication, de l’exportation, du test ou du débogage d’un fichier FLA. Cela signifie que si vous
apportez des modifications à un fichier externe, vous devez enregistrer le fichier et recompiler tous
les fichiers FLA qui l’utilisent.
Dans les étapes suivantes, vous allez créer une classe appelée Personne, contenant deux propriétés
(âge et nom) et une seule méthode (showInfo()) qui affiche les valeurs de ces propriétés dans le
panneau de sortie.
Pour créer le fichier de classe :
1 Créez un nouveau répertoire sur votre disque dur et nommez-le FichiersPersonne. Ce répertoire
comprendra tous les fichiers de ce projet.
2 Effectuez l’une des opérations suivantes :
■ Créez un fichier dans l’éditeur de texte ou de code de votre choix.
■ (Flash MX Professionnel uniquement) Pour ouvrir la boîte de dialogue Nouveau document,
choisissez Fichier > Nouveau, choisissez Fichier ActionScript dans la liste des types de
fichier, puis cliquez sur OK. La fenêtre de script s’ouvre sur un fichier vide.
3 Enregistrez le fichier sous Personne.as dans le répertoire FichiersPersonne.
4 Dans la fenêtre de script, entrez le code suivant :
class Personne {
}
Cela s’appelle la déclaration de classe. Dans sa forme la plus simple, une déclaration de classe
comprend le mot-clé class, suivi du nom de la classe (Personne, dans ce cas), puis des
accolades d’ouverture et de fermeture ({}). Tout ce qui est compris dans les accolades est appelé
corps de la classe et c’est à cet endroit que les propriétés et méthodes de la classe sont définies.
Remarque : Le nom de la classe (Personne) correspond au nom du fichier AS qui la contient
(Personne.as). Cela est très important. Si ces deux noms ne correspondent pas, la compilation de
classe échoue.
5 Pour créer les propriétés de la classe Personne, utilisez le mot-clé var pour définir deux variables
appelées âge et nom, comme indiqué ci-dessous.Utilisation des classes : un exemple simple 165
class Personne {
var âge:Number;
var nom:String;
}
Conseil : Par convention, les propriétés de la classe sont définies au-dessus du corps de la classe,
ce qui facilite la compréhension du code. Mais ce n’est pas obligatoire.
Notez bien la présence des deux-points dans la syntaxe (var âge:Number et var nom:String)
utilisée pour la déclaration des variables. Ceci est un exemple de typage strict des données.
Lorsque vous tapez une variable de cette façon, (var nomDeVariable:TypeDeVariable), le
compilateur ActionScript 2.0 s’assure que la valeur affectée à cette variable correspond au type
spécifié. Bien que cette syntaxe ne soit pas obligatoire, il est recommandé de la respecter. Elle
peut d’ailleurs vous permettre de déboguer plus facilement vos scripts. Pour plus
d’informations, consultez Typage strict des données, page 40.
6 Ensuite, créez la méthode showInfo(), qui renvoie une chaîne pré-formatée contenant les
valeurs des propriétés âge et nom. Ajoutez la définition de fonction showInfo() au corps de la
classe, comme indiqué ci-dessous.
class Personne {
var âge:Number;
var nom:String;
// Méthodes pour renvoyer les valeurs des propriétés
function showInfo():String {
return("Bonjour, je m’appelle" + nom + " et j’ai " + âge + " ans.");
}
}
Notez l’utilisation du typage des données (facultatif, mais recommandé) dans la définition de la
fonction.
function showInfo():String {...}
Dans ce cas, c’est la valeur renvoyée (chaîne) de la fonction showInfo() qui est typée.
7 La dernière partie de code que vous ajoutez dans cette section concerne une fonction spéciale
appelée fonction constructeur. En programmation orientée objet, la fonction constructeur
initialise toutes les nouvelles occurrences d’une classe.
La fonction constructeur a toujours le même nom que la classe. Pour créer la fonction
constructeur de la classe, ajoutez le code suivant :
class Personne {
var âge:Number;
var nom:String;
// Méthodes pour renvoyer les valeurs des propriétés
function showInfo():String {
return("Bonjour, je m’appelle " + nom + " et j’ai " + âge + " ans.");
}
// Fonction constructeur
function Personne (monNom:String, monAge:Number) {
nom = monNom;
âge = monAge;
}
}166 Chapitre 9 :  Création de classes avec ActionScript 2.0
La fonction constructeur Personne() prend en compte deux paramètres, monNom et monAge, et
affecte ces paramètres aux propriétés nom et âge. Les deux paramètres de la fonction sont
strictement typés, respectivement comme chaîne et nombre. Pour plus d’informations sur les
fonctions constructeur, consultez Fonctions constructeur, page 170.
Remarque : Si vous ne créez pas de fonction constructeur, une fonction constructeur vide est
automatiquement créée pendant la compilation.
8 Enregistrez le fichier sous Personne.as dans le répertoire FichiersPersonne que vous avez créé à
l’étape 1.
Si vous utilisez Flash MX 2004 (et non Flash Professionnel), passez à la section suivante.
9 (Flash Professionnel uniquement) Vérifiez la syntaxe du fichier de classe en choisissant Outils >
Vérifier la syntaxe, ou en appuyant sur Ctrl+T (Windows) ou Commande+T (Macintosh).
Si des erreurs sont signalées dans le panneau de sortie, comparez le code de votre script au code
final de l’étape 7, ci-dessus. Si vous ne pouvez pas corriger les erreurs de code, copiez le code
terminée à l’étape 7, à partir de panneau d’aide.
Création d’une occurrence de la classe Personne
L’étape suivante permet de créer une occurrence de la classe Personne dans un autre script, tel
qu’un script d’image dans un document Flash (FLA) ou dans un autre script AS, et de l’affecter à
une variable. Pour créer une occurrence de classe personnalisée, utilisez l’opérateur new, comme
pour créer une occurrence de classe ActionScript intégrée (telle que les classes XML ou TextField).
Par exemple, le code suivant crée une occurrence de la classe Personne et l’affecte à la variable
nouvellePersonne.
var nouvellePersonne:Person = new Personne("Nadine", 32);
Cette classe invoque la fonction constructeur de la classe Personne, en transmettant comme
paramètres les valeurs "Nadine" et 32.
La variable nouvellePersonne est typée en tant qu’objet Personne. Cette manière de typer les
objets permet au compilateur de s’assurer que vous n’essayez pas d’accéder aux propriétés ou aux
méthodes qui ne sont pas définies dans cette classe (sauf si vous déclarez que la classe est
dynamique en utilisant le mot clé dynamic). Pour plus d’informations, consultez Création de
classes dynamiques, page 180.
Pour créer une occurrence de la classe Personne dans un document Flash :
1 Dans Flash, choisissez Fichier > Nouveau, choisissez Document Flash dans la liste des types de
documents, et cliquez sur OK.
2 Enregistrez le fichier sous créerPersonne.fla dans le répertoire FichiersPersonne que vous avez
créé précédemment.
3 Dans le scénario, choisissez Calque 1, puis ouvrez le panneau Actions (Fenêtre > Panneaux de
développement > Actions).
4 Dans le panneau Actions, entrez le code suivant :
var Personne_1:Person = new Personne("Nadine", 32);
var personne_2:Person = new Personne("Julie", 28);
trace(personne_1.showInfo());
trace(personne_2.showInfo());
Le code ci-dessus permet de créer deux occurrences de la classe Personne, personne_1 et
personne_2, et d’appeler la méthode showInfo() sur chaque occurrence.Création et utilisation de classes 167
5 Enregistrez votre travail, puis choisissez Contrôle > Tester l’animation. Les informations
suivantes doivent s’afficher dans le panneau de sortie :
Bonjour, je m’appelle Nadine et j’ai 32 ans.
Bonjour, je m’appelle Julie et j’ai 28 ans.
Lorsque vous créez une occurrence de classe en appelant sa fonction constructeur, Flash recherche
un fichier AS portant le même nom que le constructeur dans un ensemble prédéterminé
d’emplacements de répertoires. Cet ensemble d’emplacements de répertoires est appelé chemin de
classe (consultez Compréhension du chemin de classe, page 175).
A présent, vous devriez avoir une vision globale de la création et de l’utilisation des classes dans les
documents Flash. La suite de ce chapitre aborde plus en détail les classes et les interfaces.
Création et utilisation de classes
Comme nous avons l’avons vu précédemment, une classe se compose de deux parties : la
déclaration et le corps. La déclaration de la classe comporte au minimum l’instruction class,
suivie de l’identifiant du nom de la classe, puis des accolades d’ouverture et de fermeture. Tout ce
qui est compris dans les accolades constitue le corps de la classe.
class nomDeLaClasse {
// corps de la classe
}


Cordialement

L'équipe Parisdepannage.fr

Hors ligne

 

#3 20-08-2008 16:00:24

Admin
Administrateur
Date d'inscription: 30-07-2008
Messages: 683

Re: Guide de référence sur l'action script de flash (2)

Vous pouvez définir des classes uniquement dans des fichiers ActionScript (AS). Par exemple,
vous ne pouvez pas définir de classe sur un script d’image dans un fichier FLA. De même, le nom
de la classe spécifiée doit correspondre au nom du fichier AS qui contient la classe. En ce sens, si
vous créez une classe Shape, le fichier AS qui contient la définition de la classe doit s’appeler
Shape.as.
// Dans le fichier Shape.as
class Shape {
// Corps de la classe Shape
}
Tous les fichiers de classe AS que vous créez doivent être enregistrés dans l’un des répertoires
désignés du chemin de classe (répertoires dans lesquels Flash recherche les définitions de classe lors
de la compilation des scripts). Pour plus d’informations, consultez Compréhension du chemin de
classe, page 175.
Les noms de classes doivent être des identifiants ; ainsi, le premier caractère doit être une lettre, un
soulignement (_), ou le signe dollar ($), et chaque caractère suivant doit être une lettre, un
nombre, ou le signe dollar. En outre, le nom de classe doit être entièrement qualifié dans le fichier
dans lequel il est déclaré : il doit indiquer le nom du répertoire dans lequel il est enregistré. Par
exemple, pour créer une classe nommée ClasseRequise enregistrée dans le répertoire myClasses/
education/curriculum, vous devez déclarer cette classe dans le fichier ClasseRequise.as de la
manière suivante : 
classe myClasses.education.curriculum.ClasseRequise {
}
De ce fait, il est recommander de planifier votre structure de répertoires avant de commencer la
création de classes. En effet, si vous décidez de déplacer les fichiers de classe après leur création,
vous devrez modifier les instructions de déclaration de classe pour indiquer leur nouvel
emplacement. 168 Chapitre 9 :  Création de classes avec ActionScript 2.0
Création de propriétés et de méthodes
Les membres d’une classe se composent des propriétés (déclarations de variables) et des méthodes
(déclarations de fonctions). Vous devez déclarer toutes les propriétés et méthodes dans le corps de
la classe (entre les accolades) ; sinon une erreur se produira lors de la compilation.   
Toute variable déclarée dans une classe, mais en dehors d’une fonction, est une propriété de la
classe. Par exemple, la classe Personne, dont il était question précédemment, a deux propriétés,
âge et nom, respectivement de type chaîne et nombre.
class Personne {
var âge:Number;
var nom:String;
}
De la même façon, toute fonction déclarée dans une classe est considérée comme étant une
méthode de cette classe. Dans l’exemple de la classe Personne, vous aviez créé une méthode
unique appelée showInfo().
class Personne {
var âge:Number;
var nom:String;
function showInfo() {
// définition de la méthode showInfo()
}
}
Initialisation de propriétés en ligne
Vous pouvez initialiser des propriétés en ligne, c’est-à-dire lorsque vous les déclarez, avec des
valeurs par défaut, comme l’illustre l’exemple suivant :
class Personne {
var âge:Number = 50;
var nom:String = "Jean Dubuste";
}
Lorsque vous initialisez des propriétés en ligne, l’expression du côté droit de l’affectation doit être
une constante de compilation. C’est à dire que l’expression ne peut pas faire référence à un élément
paramétré ou défini au moment de l’exécution. Les constantes de compilation comprennent les
chaînes littérales, les nombres, les valeurs booléennes, null et undefined, ainsi que les fonctions
constructeur pour les classes intégrées suivantes : Array, Boolean, Number, Object et String.
Par exemple, la définition de classe suivante initialise plusieurs propriétés en ligne :
class CompileTimeTest {
var truc:String = "mon truc"; // OK
var barre:Number = 5; // OK
var bool:Boolean = true; // OK
var nom:String = new String("Julie"); // OK
var qui:String = truc; // OK, car ’truc’ est une constante
var whee:String = maFonc(); // erreur ! il ne s’agit pas d’une expression
constante de compilation
var lala:Number = whee; // erreur ! il ne s’agit pas d’une expression
constante de compilation
var star:Number = bar + 25; // OK, ’bar’ et ’25’ sont des constantes
function maFonc() {
return "Bonjour monde";Création et utilisation de classes 169
}
}
Cette règle s’applique uniquement aux variables d’occurrence (variables copiées dans chaque
occurrence d’une classe). Elle ne s’applique pas aux variables de classe (variables qui appartiennent
véritablement à la classe). Pour plus d’informations sur ces variables, consultez Membres
d’occurrence et de classe, page 171.
Création de sous-classes
Dans la programmation orientée objet, une sous-classe peut hériter des propriétés et méthodes
d’une autre classe, appelée superclasse. Pour créer ce type de relation entre deux classes, utilisez la
clause extends de l’instruction class. Pour spécifier une superclasse, utilise z  l a  synt axe  suivant e :         
class SubClass extends SuperClasse {}
La classe que vous avez spécifiée dans SubClass hérite de toutes les propriétés et méthodes
définies par la superclasse. Par exemple, vous créez une classe Mammifère qui définit des
propriétés et méthodes communes à tous les mammifères. Pour créer une variante de cette classe
Mammifère, telle que la classe Marsupial, étendez la classe Mammifère, c’est-à-dire que vous allez
créer une sous-classe de la classe Mammifère.
class Marsupial extends Mammifère {}
La sous-classe hérite de toutes les propriétés et méthodes de la superclasse, y compris des
propriétés ou des méthodes que vous avez déclarées comme étant privées en utilisant le mot-clé
private. (Pour plus d’informations sur les variables privées, consultez Contrôle de l’accès des
membres, page 170.)
Vous pouvez étendre vos propres classes personnalisées, ainsi que toute classe ActionScript
intégrée, telle que XML, Sound ou MovieClip. Lorsque vous étendez une classe ActionScript
intégrée, votre classe personnalisée hérite de toutes les méthodes et propriétés de la classe intégrée.   
Par exemple, le code suivant définit la classe JukeBox, qui étend la classe Son intégrée. Il définit
un tableau appelé listeChansons et une méthode appelée litChanson() qui permet de lire une
chanson et d’invoquer la méthode chargeSon(), dont il hérite de la classe Son.
class JukeBox extends Son {
var listeChansons:Array = new Array("beethoven.mp3", "bach.mp3",
"mozart.mp3");
function litChanson(songID:Number) {
this.chargeSon(listeChansons[songID]);
}
}
Si vous ne placez pas un appel à super() dans la fonction constructeur d’une sous-classe, le
compilateur génère automatiquement un appel au constructeur de sa superclasse immédiate, sans
paramètre, en tant que première instruction de la fonction. Si la superclasse n’a pas de
constructeur, le compilateur crée une fonction constructeur vide, puis génère un appel à cette
fonction à partir de la sous-classe. Cependant, si une super-classe prend des paramètres dans sa
définition, vous devez créer un constructeur dans la sous-classe et appeler la super-classe avec les
paramètres requis.
L’héritage multiple ou l’héritage à partir de plus d’une classe n’est pas autorisé. Toutefois, les
classes peuvent effectivement hériter de plusieurs classes, si vous utilisez des instructions extends
individuelles :
// non autorisé170 Chapitre 9 :  Création de classes avec ActionScript 2.0
class C extends A, B {}
// autorisé
class B extends A {}
class C extends A, B {}
Vous pouvez également utiliser le mot-clé extends pour créer les sous-classes d’une interface :
interface iA extends interface iB {}
Fonctions constructeur
Un constructeur de classe est une fonction spéciale appelée automatiquement lorsque vous créez
une occurrence de classe en utilisant l’opérateur new. La fonction constructeur porte le même
nom que la classe qui la contient. Par exemple, la classe Personne créée plus haut contenait la
fonction constructeur suivante :
// Fonction constructeur de la classe Personne
function Personne (monNom:String, monAge:Number) {
nom = monNom;
âge = monAge;
}
Si aucune fonction constructeur n’est explicitement déclarée, c’est-à-dire, si vous ne créez pas de
fonction dont le nom correspond à celui de la classe, le compilateur crée automatiquement une
fonction constructeur vide.
Une classe ne peut contenir qu’une fonction constructeur ; les fonctions constructeur surchargées
ne sont pas autorisées dans ActionScript 2.0.
Contrôle de l’accès des membres
Par défaut, toute propriété ou méthode de classe est accessible à toute autre classe : tous les
membres d’une classe sont considérés, par défaut, comme publics. Toutefois, dans certains cas,
vous pouvez souhaiter que d’autres classes n’aient pas accès aux données ou aux méthodes d’une
classe. Vous devez alors faire en sorte que ces membres deviennent privés, c’est-à-dire disponibles
uniquement pour la classe qui les déclare ou qui les définit. 
Pour spécifier des membres publics ou privés, utilisez l’attribut de membre public ou private.
Par exemple, le code suivant déclare une variable privée (une propriété) et une méthode privée
(une fonction).
Par exemple, la classe suivante (LoginClass) définit une propriété privée nommée
nomDutilisateur et une méthode privée nommée getNomDutilisateur().
classe LoginClass {
private var nomDutilisateur:String;
private function getNomDutilisateur() {
return nomDutilisateur;
}
//constructeur :
function LoginClass(user:String) {
this.userName = user;
}
}Membres d’occurrence et de classe 171
Les membres privés (propriétés et méthodes) sont uniquement accessibles à la classe qui définit
ces membres et aux sous-classes de cette classe d’origine. Les occurrences de la classe d’origine ou
celles des sous-classes de cette classe ne peuvent pas accéder aux propriétés et méthodes déclarées
en privé ; c’est-à-dire que les membres privés ne sont accessibles qu’au sein des définitions de
classe, et non au niveau des occurrences.
Par exemple, vous pouvez créer une sous-classe de la classe LoginClass nommée NewLoginClass.
Cette sous-classe peut accéder à la propriété (nomDutilisateur) et à la méthode
(getnomDutilisateur()) privées définies par LoginClass.
class NewLoginClass extends LoginClass {
// peut accéder à nomDutilisateur et getnomDutilisateur()
}
Cependant, une occurrence de LoginClass ou de NewLoginClass ne peut pas accéder aux
membres privés. Par exemple, le code suivant, ajouté à un script d’image dans un fichier FLA,
engendrerait une erreur du compilateur indiquant que getnomDutilisateur() est privé et qu’il
est impossible d’y accéder.
var loginObject:LoginClass = new LoginClass("Maxwell");
var utilisateur = loginObject.getUserName();
Notez également que le contrôle de l’accès des membres est une fonction de compilation
uniquement ; à l’exécution, Flash Player ne fait aucune distinction entre les membres publics et
privés.
Membres d’occurrence et de classe
Dans la programmation orientée objet, les membres (propriétés ou méthodes) d’une classe
peuvent être soit des membres d’occurrence, soit des membres de classe. Les membres d’occurrence
sont créés pour chaque occurrence de la classe et sont copiés dans chacune d’entre elles. En
revanche, les membres de classe sont créés une seule fois par classe (ils sont également appelés
membres statiques).   
Pour invoquer une méthode d’occurrence ou accéder à une propriété d’occurrence, faites référence
à une occurrence de la classe. Par exemple, le code suivant permet d’invoquer la méthode
showInfo() sur une occurrence de la classe MovieClip appelée clip_mc:
clip_mc.showInfo();
Toutefois, les membres de classe (statiques) sont affectés à la classe elle-même et non à n’importe
quelle occurrence de la classe. Pour invoquer une méthode de classe ou accéder à une propriété de
classe, faites référence au nom de la classe plutôt qu’à une occurrence spécifique de la classe :
nomDeLaClasse.membreDeLaClasse;
Par exemple, la classe Math ActionScript comprend uniquement des méthodes et des propriétés
statiques. Pour appeler ses méthodes, au lieu de créer une occurrence de la classe Math, appelez
tout simplement les méthodes de la classe Math. Le code suivant appelle la méthode sqrt() de la
classe Math :
var racine_carrée:Number = Math.sqrt(4);
Les membres d’occurrence peuvent lire des membres statiques, mais ne peuvent pas les écrire. Les
membres d’occurrence ne sont pas énumérables dans les boucles for ou for..in. 172 Chapitre 9 :  Création de classes avec ActionScript 2.0
Création des membres de classe
Pour spécifier qu’une propriété de classe est statique, utilisez le modificateur static, comme
indiqué ci-dessous.
static var nomDeLaVariable;
Vous pouvez également déclarer des méthodes de classe statiques.
static function nomDeLaFonction() {
// corps de la fonction
}
Les méthodes de classe (statiques) peuvent accéder uniquement aux propriétés de classe
(statiques). Elles n’ont pas accès aux propriétés d’occurrence. Par exemple, le code suivant génère
une erreur de compilation, car la méthode de classe getName() fait référence au nom de variable
de l’occurrence.
class StaticTest {
var nom="Ted";
static function getName() {
var nom_local = name;
// Erreur ! Il est impossible d’accéder aux variables d’occurrence dans
des fonctions statiques.
}
}
Pour résoudre ce problème, vous pouvez soit faire de la méthode une méthode d’occurrence, soit
faire de la variable une variable de classe.
Utilisation de membres de classe : un exemple simple
Vous pouvez notamment utiliser des membres de classe (statiques) pour conserver les
informations d’état sur une classe et ses occurrences. Supposons par exemple que vous souhaitez
consigner le nombre d’occurrences créées à partir d’une classe donnée. Vous pouvez facilement y
parvenir en utilisant une propriété de classe qui est incrémentée à chaque création d’une nouvelle
occurrence.
Dans l’exemple suivant, vous créez une classe nommée Gadget qui définit un compteur
d’occurrence statique unique nommé compteurGadget. A chaque création d’une nouvelle
occurrence de la classe, la valeur de compteurGadget est incrémentée de 1 et la valeur courante de
compteurGadget est affichée dans la panneau de sortie.
Pour créer un compteur d’occurrence en utilisant une variable de classe :
1 Créez un nouveau fichier ActionScript (AS).
2 Ajoutez le code suivant au fichier :
class Gadget {
static var compteurGadget:Number = 0; // initialisez la variable de classe
function Gadget() {
trace("Création de gadget #" + compteurGadget);
compteurGadget++;
}
}
La variable compteurGadget est déclarée comme statique, et est initialisée à 0 une seule fois.
Chaque fois que la fonction constructeur de la classe Gadget est appelée, elle ajoute 1 à
compteurGadget puis affiche le numéro de l’occurrence en cours de création.Création et utilisation d’interfaces 173
3 Enregistrez votre fichier sous Gadget.as.
4 Créez un nouveau document Flash (FLA) et enregistrez-le sous createGadget.fla dans le même
répertoire que Gadget.as.
Dans ce fichier, vous créerez de nouvelles occurrences de la classe Gadget.
5 Dans createGadget.fla, sélectionnez le calque 1 dans le scénario et ouvrez le panneau Actions
(Fenêtre > Panneaux de développement > Actions).
6 Ajoutez le code suivant au panneau Actions.
//Avant de créer une occurrence de la classe,
//compteurGadget est à zéro (0)
trace("Compteur Gadget au démarrage : " + Gadget.compteurGadget);
var gadget_1 = new Gadget();
var gadget_2 = new Gadget();
var gadget_3 = new Gadget();
7 Enregistrez le fichier, puis testez-le (Contrôle > Tester l’animation).
Les informations suivantes doivent s’afficher dans le panneau de sortie :
Compteur Gadget au démarrage : 0
Creating gadget # 0
Creating gadget # 1
Creating gadget # 2
Membres et sous-classes de classes
Les membres de classe se propagent dans les sous-classes de la superclasse qui définit ces membres.
Dans l’exemple précédent (consultez Utilisation de membres de classe : un exemple simple, page 172),
vous avez utilisé une propriété de classe pour consigner le nombre d’occurrences de la classe que
vous avez créée. Vous pouvez créer une sous-classe de la classe Gadget comme indiqué ci-dessous.
class SousGadget extends Gadget {
function SousGadget() {
trace("Création de sousgadget # "+Gadget.compteurGadget);
}
}
Création et utilisation d’interfaces
En programmation orientée objet, une interface est similaire à une classe dont les méthodes ont
été déclarées, mais n’effectuent aucune action. Une interface consiste en fait en des méthodes
« vides ».     
Vous pouvez notamment utiliser les interfaces pour appliquer un protocole entre des classes
n’ayant aucun rapport entre elles, comme expliqué ultérieurement. Supposons par exemple que
vous faites partie d’une équipe de programmeurs, dont chaque membre travaille sur une partie
différente (c’est-à-dire une classe différente) d’une application volumineuse. La plupart de ces
classes n’ont aucun rapport entre elles, mais il est tout de même nécessaire qu’elles puissent
communiquer les unes avec les autres. Vous devez définir une interface, ou protocole de
communication, à laquelle toutes les classes doivent adhérer. 174 Chapitre 9 :  Création de classes avec ActionScript 2.0
Pour y parvenir, vous pouvez créer une classe Communication qui définit toutes ces méthodes,
puis faire en sorte que chaque classe étende cette superclasse, ou en hérite. Mais étant donné que
l’application se compose de classes n’ayant aucun rapport, il est inutile de toutes les placer dans
une hiérarchie de classe commune. Il est préférable de créer une interface qui déclare les méthodes
que ces classes utiliseront pour communiquer, puis que chaque classe implémente ces méthodes
(fournisse ses propres définitions).
Vous pouvez généralement programmer de façon efficace sans utiliser les interfaces. Lorsqu’elles
sont utilisées de façon appropriée, cependant, les interfaces peuvent rendre la conception de vos
applications plus élégante, évolutive et stable.
Création d’une interface
Le processus de création d’une interface est identique au processus de création d’une classe.
Comme pour les classes, vous pouvez uniquement définir des interfaces dans des fichiers
ActionScript (AS) externes. Déclarez une interface en utilisant le mot-clé interface suivi du
nom de l’interface et d’accolades gauche et droite qui définissent le corps de l’interface. 
interface nomInterface {
// déclarations de méthodes d’interface
}
Une interface ne peut contenir que des déclarations de méthodes (fonction), y compris des
paramètres, des types de paramètres et des types de renvoi de fonction.
Par exemple, le code suivant déclare une interface nommée MonInterface qui contient deux
méthodes, method_1() et method_2(). La première méthode ne prend aucun paramètre et n’a
pas de type de renvoi (spécifiée comme Void). La deuxième déclaration de méthode ne prend
qu’un seul paramètre de type String et spécifie un type de renvoi Boolean.
interface MonInterface {
function method_1():Void;
function method_2(param:String):Boolean;
}
Les interfaces ne peuvent contenir aucune déclaration ou affectation de variable. Les fonctions
déclarées dans une interface de peuvent pas contenir d’accolades. Par exemple, l’interface suivante
ne sera pas compilée.
interface MauvaiseInterface{
// Erreur de compilation. Les déclarations de variables ne sont pas
autorisées dans les interfaces.
var illegalVar; 
// Erreur de compilation. Les corps de fonctions ne sont pas autorisés dans les
interfaces.
function illegalMethod(){
}
}
Les règles d’affectation de nom et de stockage des interfaces dans les paquets sont les mêmes que
celles des classes ; consultez Création et utilisation de classes, page 167 et Utilisation de paquets,
page 177.Compréhension du chemin de classe 175
Interfaces comme types de données
Tout comme une classe, une interface définit un nouveau type de données. Toute classe qui
implémente une interface peut être considérée comme relevant du type défini par l’interface. Ceci
est utile pour déterminer si un objet donné implémente une interface donnée. Considérons par
exemple l’interface suivante. 
interface Déplaçable {
function monter();
function descendre();
}
Considérons la classe Box qui implémente l’interface Déplaçable.
class Box implémente Déplaçable {
var x_pos, y_pos;
function monter() {
// définition de méthode
}
function descendre() {
// définition de méthode
}
}
Ensuite, dans un autre script où vous créez une occurrence de la classe Box, vous déclarez qu’une
variable est de type Déplaçable.
var newBox:Movable = new Box();
A l’exécution, dans Flash Player 7 et ses versions ultérieures, vous pouvez attribuer une expression
à un type d’interface. Si l’expression est un objet qui implémente l’interface, ou si elle possède une
superclasse qui implémente l’interface, l’objet est renvoyé. Dans le cas contraire, null est renvoyé.
Cela est particulièrement utile si vous voulez vous assurer qu’un objet particulier implémente une
interface particulière.   
Par exemple, le code suivant vérifie d’abord si le nom de l’objet unObjet implémente l’interface
Déplaçable avant d’appeler la méthode moveUp() sur l’objet.
if(Movable(someObject) != null) {
unObjet.moveUp();
}
Compréhension du chemin de classe
Pour utiliser une classe ou interface que vous avez définie, Flash doit être capable de localiser les
fichiers AS externes qui contiennent la définition de classe ou d’interface. La liste des répertoires
dans lesquels Flash recherche les définitions de classe et d’interface est appelée chemin de classe. 
Lorsque vous créez un fichier de classe ActionScript, vous devez enregistrer le fichier dans l’un des
répertoires spécifiés dans le chemin de classe, ou dans l’un de ses sous-répertoires. (Vous pouvez
modifier le chemin de classe pour inclure le chemin souhaité ; consultez Modification du chemin
de classe, page 176.) Sinon, Flash ne sera pas en mesure de résoudre ou de localiser la classe ou
l’interface spécifiée dans le script. Les sous-répertoires que vous créez dans un répertoire de
chemin de classe sont appelés paquets. Ils vous permettent d’organiser vos classes. Pour plus
d’informations, consultez Utilisation de paquets, page 177.176 Chapitre 9 :  Création de classes avec ActionScript 2.0
Chemins de classe globaux et au niveau du document
Flash dispose de deux paramètres de chemin de classe : un chemin de classe global et un chemin
de classe au niveau du document. Le chemin de classe global s’applique aux fichiers AS et FLA
externes. Il est défini dans la boîte de dialogue Préférences (Edition > Préférences). Le chemin de
classe au niveau du document s’applique uniquement aux fichiers FLA. Il est défini dans la boîte
de dialogue Paramètres de publication (Fichier > Paramètres de publication) pour un fichier FLA
donné.   
Par défaut, le chemin de classe global contient deux chemins de répertoires : un chemin relatif qui
pointe vers le répertoire contenant le document courant et un autre vers le répertoire Classes situé
dans le répertoire de configuration utilisateur installé avec Flash. L’emplacement de ce répertoire
est le suivant :
• Windows 2000 ou Windows XP : C:\Documents and Settings\<utilisateur>\Local
Settings\Application Data\Macromedia\Flash MX2004\<langue>\Configuration\
• Windows 98 : C:\Windows\Application Data\Macromedia\Flash MX 2004\
<langue>\Configuration\
• Mac OS X : Disque dur/Users/Library/Application Support/Macromedia/Flash MX 2004/
<langue>/Configuration/
Le chemin de classe au niveau du document est vide par défaut.
Résolution des références de classe par le compilateur
Lorsque Flash tente de résoudre les références de classe dans un script FLA, il recherche tout
d’abord le chemin de classe au niveau du document spécifié pour ce FLA. Si la classe n’est pas
trouvée dans ce chemin de classe, ou si le chemin de classe est vide, Flash effectue une recherche
dans le chemin de classe global. Si la classe n’est pas trouvée dans le chemin de classe global, une
erreur de compilation se produit.
Lorsque Flash tente de résoudre les références de classe dans un script AS, il effectue uniquement
une recherche dans les répertoires du chemin de classe global, étant donné que les fichiers AS ne
possèdent pas de chemin de classe de document qui leur soit associé.
Modification du chemin de classe
Vous pouvez modifier le chemin de classe global à l’aide de la boîte de dialogue Préférences. Pour
modifier le paramètre de chemin de classe au niveau du document, utilisez la boîte de dialogue
Paramètres de publication pour le fichier FLA. Vous pouvez ajouter des chemins de répertoires
absolus (par exemple C:/mes_classes) et des chemins de répertoires relatifs (par exemple,
..\mes_classes ou « . »).
Par défaut, le chemin de classe global contient un chemin absolu (le répertoire Classes dans le
répertoire de configuration utilisateur) et un chemin de classe relatif, symbolisé par un point
unique (.), qui pointe vers le répertoire du document en cours. Notez que les chemins de classe
relatifs peuvent pointer vers des répertoires différents, en fonction de l’emplacement du document
compilé ou publié. Pour plus d’informations, consultez Chemins de classe globaux et au niveau du
document, page 176.
Pour modifier le chemin de classe global :
1 Choisissez Edition > Préférences pour ouvrir la boîte de dialogue Préférences.
2 Cliquez sur l’onglet ActionScript, puis cliquez sur le bouton Paramètres d’ActionScript 2.0.Utilisation de paquets 177
3 Effectuez l’une des opérations suivantes :
■ Pour ajouter un répertoire au chemin de classe, cliquez sur le bouton Rechercher le chemin,
ouvrez le répertoire que vous souhaitez ajouter et cliquez sur OK.
Vous pouvez également cliquer sur le bouton Ajouter un nouveau chemin (+) pour ajouter
une nouvelle ligne dans la liste Chemin de classe. Double-cliquez sur la nouvelle ligne, tapez
un chemin relatif ou absolu et cliquez sur OK.
■ Pour modifier un répertoire de chemin de classe existant, sélectionnez le chemin dans la liste
Chemin de classe, cliquez sur le bouton Rechercher le chemin, ouvrez le répertoire que vous
souhaitez ajouter et cliquez sur OK.
Vous pouvez également double-cliquer sur le chemin dans la liste Chemin de classe, taper le
chemin désiré et cliquer sur OK.
■ Pour supprimer un répertoire du chemin de classe, sélectionnez le chemin dans la liste
Chemin de classe, et cliquez sur le bouton Supprimer du trajet.
Pour modifier le chemin de classe au niveau du document :
1 Choisissez Fichier > Paramètres de publication pour ouvrir la boîte de dialogue Paramètres de
publication.
2 Cliquez sur l’onglet Flash.
3 Cliquez sur le bouton Paramètres en regard du menu déroulant Version d’ActionScript.
4 Effectuez l’une des opérations suivantes :
■ Pour ajouter un répertoire au chemin de classe, cliquez sur le bouton Rechercher le chemin,
ouvrez le répertoire que vous souhaitez ajouter et cliquez sur OK.
Vous pouvez également cliquer sur le bouton Ajouter un nouveau chemin (+) pour ajouter
une nouvelle ligne dans la liste Chemin de classe. Double-cliquez sur la nouvelle ligne, tapez
un chemin relatif ou absolu et cliquez sur OK.
■ Pour modifier un répertoire de chemin de classe existant, sélectionnez le chemin dans la liste
Chemin de classe, cliquez sur le bouton Rechercher le chemin, ouvrez le répertoire que vous
souhaitez ajouter et cliquez sur OK.
Vous pouvez également double-cliquer sur le chemin dans la liste Chemin de classe, taper le
chemin désiré et cliquer sur OK.
■ Pour supprimer un répertoire du chemin de classe, sélectionnez le chemin dans la liste
Chemin de classe, et cliquez sur le bouton Supprimer du trajet.
Utilisation de paquets
Vous pouvez organiser vos fichiers de classe ActionScript en paquets. Un paquet est un répertoire
qui contient un ou plusieurs fichiers de classe et qui réside dans un répertoire de chemin de classe
désigné. Pour plus d’informations, consultez Compréhension du chemin de classe, page 175. Un
paquet peut également contenir d’autres paquets, appelés sous-paquets, chacun possédant ses
propres fichiers de classe.
Les noms de paquets doivent être des identifiants ; ainsi, le premier caractère doit être une lettre,
un soulignement (_), ou le signe dollar ($), et chaque caractère suivant doit être une lettre, un
nombre, ou le signe dollar.  178 Chapitre 9 :  Création de classes avec ActionScript 2.0
Les paquets sont généralement utilisés pour organiser des classes connexes. Vous pouvez par
exemple avoir trois classes connexes, Carré, Cercle et Triangle, définies dans Carré.as, Cercle.as et
Triangle.as. Supposons que vous ayez enregistré les fichiers AS dans un répertoire spécifié dans le
chemin de classe.
// Dans Carré.as:
class Carré {}
// Dans Cercle.as:
class Cercle {}
// Dans Triangle.as:
class Triangle {}
Etant donné que ces trois classes sont connexes, vous pouvez choisir de les placer dans un paquet
(répertoire) nommé Formes. Dans ce cas, le nom pleinement qualifié de la classe contient le
chemin du paquet, ainsi que le nom de classe simple. Les chemins de paquet sont symbolisés par
une syntaxe de point, chaque point représentant un sous-répertoire.
Par exemple, si vous placez tous les fichiers AS qui définissent une forme dans le répertoire
Formes, vous devrez alors changer le nom de chaque fichier de classe pour répercuter le nouvel
emplacement, comme suit :
// Dans Formes/Carré.as:
class Formes.Carré {}
// Dans Formes/Cercle.as:
class Formes.Cercle {}
// Dans Formes/Triangle.as:
class Formes.Triangle {}
Pour faire référence à une classe qui réside dans un répertoire de paquet, vous pouvez soit spécifier
le nom pleinement qualifié de sa classe, soit importer le paquet en utilisant l’instruction import
(voir ci-dessous).
Importation de classes
Pour faire référence à une classe dans un autre script, vous devez faire précéder le nom de la classe
par le chemin de paquet de la classe. La combinaison du nom de la classe et de son chemin de
paquet correspond au nom de classe pleinement qualifié de la classe. Si une classe réside dans un
répertoire de chemin de classe de premier niveau (et non dans un sous-répertoire du répertoire de
chemin de classe), son nom pleinement qualifié est tout simplement son nom de classe. 
Pour spécifier des chemins de paquets, utilisez une notation à point pour séparer les noms de
répertoires de paquets. Les chemins de paquets sont hiérarchiques, et chaque point représente un
répertoire imbriqué. Supposons par exemple que vous créez une classe nommée Données qui
réside dans un paquet com/réseau/ dans votre chemin de classe. Pour créer une occurrence de
cette classe, vous pouvez spécifier le nom pleinement qualifié de la classe, de la manière suivante :
var occurrenceDonnées = new com.réseau.Data();
Vous pouvez utiliser le nom pleinement qualifié de la classe ou taper vos variables :
var occurrenceDonnées:com.réseau.Data = new Data();Méthodes get/set implicites 179
Vous pouvez utiliser l’instruction import pour importer des paquets dans un script, ce qui vous
permet d’utiliser le nom abrégé d’une classe à la place de son nom pleinement qualifié. Vous
pouvez également utiliser le caractère générique (*) pour importer toutes les classes dans un
paquet. 
Supposons par exemple que vous créiez une classe nommée ClasseUtilisateur qui est incluse dans
le répertoire de paquet macr.util.users :
//Dans le fichier macr/util/users/ClasseUtilisateur.as
class macr.util.users.ClasseUtilisateur { ... }
Supposons que dans un autre script, vous avez importé cette classe à l’aide de l’instruction import
de la manière suivante :
import macr.util.users.ClasseUtilisateur;
Plus tard dans le même script vous pouvez faire référence à cette classe par son nom abrégé :
var monUtilisateur:ClasseUtilisateur = new ClasseUtilisateur();
Vous pouvez également utiliser le caractère générique (*) pour importer toutes les classes dans un
paquet. Supposons par exemple que vous avez un paquet macr.util qui contient deux fichiers de
classe ActionScript, machin.as et chose.as. Dans un autre script, vous pouvez importer les deux
classes dans ce paquet en utilisant le caractère générique, comme montré ci-dessous.
import macr.util.*;
Dans le même script, vous pouvez ensuite faire directement référence à la classe machin ou chose.
var monMachin:machin = new machin();
var monChose:chose = new chose();
L’instruction import s’applique uniquement au script courant (image ou objet) dans lequel elle
est appelée. Si une classe importée n’est pas utilisée dans un script, cette classe n’est pas incluse
dans le pseudo-code binaire du fichier SWF résultant, et cette classe n’est pas disponible dans les
fichiers SWF susceptibles d’être appelés par le fichier FLA contenant l’instruction import. Pour
plus d’informations, consultez import, page 401.
Méthodes get/set implicites
La programmation orientée objet empêche l’accès direct aux propriétés à l’intérieur d’une classe.
Les classes définissent généralement des méthodes « get » qui fournissent un accès en lecture et des
méthodes « set » qui fournissent un accès en écriture à une propriété donnée. Imaginons par
exemple une classe contenant une propriété nommée nomDutilisateur : 
var nomDutilisateur:String;
Au lieu de permettre aux occurrences de la classe d’accéder directement à cette propriété
(obj.nomDutilisateur = "Julie", par exemple), la classe peut utiliser deux méthodes,
getNomDutilisateur et setNomDutilisateur, qui seront implémentées de la façon suivante :
function getNomDutilisateur:String() {
return nomDutilisateur;
}
function setNomDutilisateur(name:String): {
nomDutilisateur = name;
}180 Chapitre 9 :  Création de classes avec ActionScript 2.0
Comme vous pouvez le constater, getNomDutilisateur renvoie la valeur courante de
nomDutilisateur et setNomDutilisateur définit le paramètre de chaîne transmis à la méthode
en tant que valeur de nomDutilisateur. Une occurrence de la classe utiliserait alors la syntaxe
suivante pour obtenir ou définir la propriété nomDutilisateur.
// appel de la méthode « get »
var nom = obj.getNomDutilisateur();
// appel de la méthode « set »
obj.setNomDutilisateur("Julie");
Cependant, si vous souhaitez utiliser une syntaxe plus concise, utilisez les méthodes get/set
implicites. Les méthodes get/set implicites vous permettent d’accéder directement aux propriétés
de classe, tout en conservant de bonnes pratiques de programmation orientée objet.
Pour définir ces méthodes, utilisez les attributs de méthodes get et set. Créez des méthodes qui
obtiennent ou définissent la valeur d’une propriété et ajoutez le mot-clé get ou set avant le nom
de méthode.
function get user():String {
return nomDutilisateur;
}
function set user(name:String):Void {
nomDutilisateur = name;
}
Une méthode get ne doit prendre aucun paramètre. Une méthode set doit prendre exactement un
paramètre requis. Une méthode set peut avoir le même nom qu’une méthode get dans le même
domaine. Les méthodes get/set n’ont pas le même nom que les autres propriétés. Par exemple,
dans le code ci-dessus qui définit des méthodes get/set nommées utilisateur, vous ne pourriez
pas avoir de propriété nommée utilisateur dans la même classe.
Contrairement aux méthodes ordinaires, les méthodes get/set sont appelées sans parenthèses ou
instructions. Par exemple, la syntaxe suivante peut désormais être utilisée pour accéder à la valeur
de nomDutilisateur ou la modifier à l’aide des méthodes get/set définies plus haut.
var name = obj.user;
obj.user = "Jean";
Remarque : Les méthodes get/set implicites sont des abréviations syntaxiques de la méthode
Object.addProperty() dans ActionScript 1.
Création de classes dynamiques
Par défaut, les propriétés et méthodes d’une classe sont fixes. C’est-à-dire que l’occurrence d’une
classe ne peut créer ou accéder à des propriétés ou méthodes qui n’étaient pas déclarées ou définies
à l’origine par la classe. Considérons par exemple une classe Personne qui définit deux propriétés,
nom et âge : 
class Personne {
var nom:String;
var âge:Number;
}
Si, dans un autre script, vous créez une occurrence de la classe Personne et essayez d’accéder à une
propriété de la classe qui n’existe pas, le compilateur génère une erreur. Par exemple, le code
suivant crée une nouvelle occurrence de la classe Personne (une_personne) et essaie d’affecter une
valeur à une propriété nommée couleurCheveux, qui n’existe pas.Compilation et exportation des classes 181
var une_personne:Personne = new Personne();
une_personne.couleurCheveux = "bleu"; // erreur de compilation
Ce code crée une erreur de compilation car la classe Personne ne déclare pas de propriété nommée
couleurCheveux. Dans la plupart des cas, c’est exactement ce que vous souhaitez qu’il se passe.
Dans certains cas, cependant, il peut être utile d’ajouter et d’accéder à des propriétés ou méthodes
d’une classe à l’exécution qui ne sont pas définies dans la définition de classe originale. C’est ce
que vous permet de faire le modificateur de classe dynamic. Par exemple, le code suivant ajoute le
modificateur dynamic à la classe Personne présentée précédemment :
dynamic class Personne {
var nom:String;
var âge:Number;
}


Cordialement

L'équipe Parisdepannage.fr

Hors ligne

 

#4 20-08-2008 16:00:40

Admin
Administrateur
Date d'inscription: 30-07-2008
Messages: 683

Re: Guide de référence sur l'action script de flash (2)

Les occurrences de la classe Personne peuvent désormais ajouter et accéder aux propriétés et
méthodes qui ne sont pas définies dans la classe originale.
var une_personne:Personne = new Personne();
une_personne.couleurCheveux = "bleu"; // aucune erreur de compilation car
cette classe est dynamique
Les sous-classes des classes dynamiques sont également des classes dynamiques.
Compilation et exportation des classes
Par défaut, les classes utilisées par un fichier SWF sont mises en paquets et exportées vers la
première image du fichier SWF. Vous pouvez également spécifier l’image où vos classes sont mises
en paquets et exportées. Cette option est très pratique, par exemple lorsqu’un fichier SWF utilise
de nombreuses classes longues à télécharger. Si les classes sont exportées vers la première image,
l’utilisateur doit attendre que tout le code de classe soit téléchargé avant de voir apparaître cette
image. En spécifiant une image ultérieure dans le scénario, vous pouvez afficher une courte
animation de chargement dans les premières images du scénario, pendant le téléchargement du
code de classe dans l’image ultérieure.   
Pour spécifier l’image à exporter pour les classes d’un document Flash :
1 Lorsqu’un fichier FLA est ouvert, choisissez Fichier > Paramètres de publication.
2 Dans la boîte de dialogue Paramètres de publication, cliquez sur l’onglet Flash.
3 Cliquez sur le bouton Paramètres qui se trouve en regard du menu contextuel de la version
ActionScript pour ouvrir la boîte de dialogue Paramètres ActionScript.
4 Dans le champ de texte Exporter l’image pour les classes, saisissez le numéro de l’image où vous
voulez exporter votre code de classe.
Si l’image spécifiée n’existe pas dans le scénario, un message d’erreur apparaît lors de la
publication du fichier SWF.
5 Cliquez sur OK pour fermer la boîte de dialogue Paramètres ActionScript, puis cliquez de
nouveau sur OK pour fermer la boîte de dialogue Paramètres de publication.182 Chapitre 9 :  Création de classes avec ActionScript 2.0PARTIE IV
Utilisation des données et des médias externes
Cette section présente l’intégration de données et de médias externes dans vos applications
Macromedia Flash.
Chapitre 10: Utilisation de données externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Chapitre 11: Utilisation de médias externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
PARTIE  IV185
CHAPITRE 10
Utilisation de données externes
Dans Macromedia Flash MX 2004 et Macromedia Flash MX Professionnel 2004, vous pouvez
utiliser ActionScript pour charger des données provenant de sources externes dans un
fichier SWF. Vous pouvez également envoyer des données de fichier SWF afin qu’elles soient
traitées par un serveur d’application (comme Macromedia ColdFusion MX ou Macromedia
JRun) ou par un autre type de script côté serveur comme PHP ou Perl. Flash Player peut envoyer
et charger des données sur HTTP, HTTPS ou à partir d’un fichier texte local. Vous pouvez
également créer des connexions socket TCP/IP persistantes pour des applications qui requièrent
un court délai (ex. : applications de dialogue en ligne ou services de devis).
Il est possible de formater les données que vous chargez ou que vous envoyez à partir d’un fichier
SWF sous forme d’un fichier XML (Extensible Markup Language) ou de paires nom-valeur.
Flash Player peut également échanger des données avec son environnement hôte (un navigateur
web, par exemple) ou avec une autre occurrence de Flash Player sur le même ordinateur.
Par défaut, un fichier SWF peut seulement accéder à des données se trouvant sur le même
domaine que le domaine d’origine du clip Flash (par exemple, www.macromedia.com). Pour plus
d’informations, consultez Fonctions de sécurité de Flash Player, page 196.
Echange de variables avec une source distante
Un fichier SWF est une fenêtre permettant de saisir et d’afficher des informations, un peu comme
une page HTML. Cependant, les fichiers SWF peuvent rester chargés dans le navigateur et être
mis à jour en permanence à l’aide de nouvelles informations sans qu’il soit nécessaire d’actualiser
toute la page. Grâce aux fonctions et méthodes d’ActionScript, vous pouvez envoyer et recevoir
des informations à partir de scripts côté serveur, de fichiers texte et de fichiers XML.     
En outre, les scripts côté serveur peuvent demander des informations précises à une base de
données et les transmettre à un fichier SWF. Les scripts côté serveur peuvent être rédigés en
plusieurs langages, les plus communs étant CFML, Perl, ASP (Microsoft Active Server Pages) et
PHP. Le stockage et l’extraction des informations par le biais d’une base de données vous permet
de créer un contenu dynamique et personnalisé pour votre fichier SWF. Par exemple, vous
pourriez créer un tableau de messages, des profils personnels pour les utilisateurs ou un panier
suivant ce qu’un utilisateur a acheté afin de déterminer ses préférences.
Plusieurs fonctions et méthodes d’ActionScript vous permettent d’échanger des informations avec
un fichier SWF. Chaque fonction ou chaque méthode utilise un protocole pour transférer les
informations, dont le format doit être spécifique.    186 Chapitre 10 :  Utilisation de données externes
• Les fonctions et les méthodes MovieClip utilisant le protocole HTTP ou HTTPS pour
envoyer des informations au format de code URL sont getURL(), loadVariables(),
loadVariablesNum(), loadMovie() et loadMovieNum().   
• Les méthodes LoadVars utilisant le protocole HTTP ou HTTPS pour échanger des
informations au format de code URL sont load(), send() et sendAndLoad().
• Les méthodes utilisant le protocole HTTP ou HTTPS pour échanger des informations sous
forme de fichiers XML sont XML.send(), XML.load() et XML.sendAndLoad().
• Les méthodes qui créent et utilisent une connexion socket TCP/IP pour échanger des
informations sous forme de fichiers XML sont XMLSocket.connect() et XMLSocket.send().
Vérification des données chargées
Chaque fonction ou méthode qui charge des données vers un fichier SWF (sauf
XMLSocket.send()) est asynchrone : les résultats de l’action sont renvoyés à un moment
indéterminé.     
Avant de pouvoir utiliser les données chargées dans un fichier SWF, vous devez d’abord vérifier si
elles ont bien été chargées. Par exemple, vous ne pouvez pas charger des variables et en manipuler
les valeurs dans le même script. Dans le script suivant, vous ne pouvez pas utiliser la variable
dernièreImageConsultée tant que vous n’êtes pas certain que la variable a été chargée depuis le
fichier mesDonnées.txt : 
loadVariables("mesDonnées.txt", 0);
gotoAndPlay(dernièreImageConsultée);
Chaque fonction ou méthode possède une technique spécifique que vous pouvez utiliser pour
vérifier les données qui ont été chargées. Si vous utilisez loadVariables() ou loadMovie(),
vous pouvez charger des informations dans une cible de clip et utiliser l’événement data du
gestionnaire onClipEvent() pour exécuter un script. Si vous utilisez loadVariables() pour
charger les données, le gestionnaire onClipEvent(data) est exécuté une fois la dernière variable
chargée. Si vous utilisez loadMovie() pour charger les données, le gestionnaire
onClipEvent(data) est exécuté chaque fois qu’une partie du fichier SWF est transmise à Flash
Player.   
Par exemple, l’action de bouton suivante charge les variables depuis le fichier mesDonnées.txt
dans le clip cibleChargeMC :
on (release) {
loadVariables("mesDonnées.txt", _root.cibleChargeMC);
}
Un gestionnaire onClipEvent() affecté à l’occurrence cibleChargeMC utilise la variable
dernièreImageConsultée, chargée depuis le fichier mesDonnées.txt. L’action suivante n’est
exécutée qu’une fois que toutes les variables, y compris dernièreImageConsultée, sont
chargées :
onClipEvent(data) {
goToAndPlay(dernièreImageConsultée);
}Echange de variables avec une source distante 187
Si vous utilisez les méthodes XML.load(), XML.sendAndLoad() et XMLSocket.connect(), vous
devez définir un gestionnaire qui traitera les données dès leur arrivée. Ce gestionnaire est une
propriété d’un objet XML ou XMLSocket auquel vous affectez une fonction que vous avez
définie. Les gestionnaires sont automatiquement appelés lorsque les informations sont reçues.
Pour l’objet XML, utilisez XML.onLoad() ou XML.onData(). Pour l’objet XMLSocket, utilisez
XMLSocket.onConnect().
Pour plus d’informations, consultez Utilisation de la classe XML, page 189, et Utilisation de la
classe XMLSocket, page 192.
Utilisation du protocole HTTP pour les connexions aux scripts côté serveur
Les fonctions loadVariables(), loadVariablesNum(), getURL(), loadMovie() et
loadMovieNum(), ainsi que les méthodes MovieClip.loadVariables(),
MovieClip.loadMovie() et MovieClip.getURL() peuvent toutes communiquer avec des scripts
côté serveur sur des protocoles HTTP ou HTTPS. Ces fonctions envoient toutes les variables du
scénario auquel la fonction est associée. Lorsqu’elles sont utilisées comme méthodes de l’objet
MovieClip, les fonctions loadVariables(), getURL() et loadMovie() envoient toutes les
variables du clip indiqué ; chaque fonction (ou méthode) traite sa réponse de la manière suivante : 
• getURL() renvoie les informations dans une fenêtre de navigateur et non dans Flash Player.
• loadVariables() charge les variables dans un scénario ou niveau spécifié de Flash Player.
• loadMovie() charge un fichier SWF dans un clip ou niveau spécifié dans Flash Player.
Lorsque vous utilisez loadVariables(), getURL() ou loadMovie(), vous pouvez spécifier
plusieurs paramètres :
• URL est le fichier dans lequel se trouvent les variables distantes.
• Emplacement est le niveau ou la cible dans le fichier SWF qui reçoit les variables. (La fonction
getURL ne prend pas ce paramètre.)
Pour plus d’informations sur les niveaux et les cibles, consultez A propos des scénarios et des
niveaux dans le guide Utilisation de Flash de l’aide.
• Variables définit la méthode HTTP, GET ou POST, avec laquelle les variables seront envoyées.
Lorsqu’elles sont omises, Flash Player utilise par défaut la méthode GET, mais aucune variable
n’est envoyée.
Par exemple, pour suivre les meilleurs scores d’un jeu, vous pouvez stocker les scores sur un
serveur et utiliser une fonction loadVariables() pour les charger dans le fichier SWF chaque
fois que quelqu’un joue à ce jeu. L’appel de fonction pourrait avoir l’aspect suivant :
loadVariables("http://www.monSite.com/scripts/meilleur_score.php",
_root.clipDeScore, GET);
Cet exemple charge les variables du script PHP meilleur_score.php dans l’occurrence de clip
clipDeScore en utilisant la méthode HTTP GET.188 Chapitre 10 :  Utilisation de données externes
Les variables chargées à l’aide de la fonction loadVariables doivent être au format MIME
standard application/x-www-form-urlencoded (un format standard utilisé par les scripts CGI). Le
fichier que vous spécifiez dans le paramètre URL de l’action loadVariables() doit écrire les paires
de variables et valeurs dans ce format pour que Flash puisse les lire. Ce fichier peut spécifier
n’importe quel nombre de variables, les paires variable et valeur devant être séparées par une
esperluette (&) et les mots à l’intérieur d’une valeur devant être séparés par le signe plus (+). Par
exemple, cette séquence définit plusieurs variables :
meilleurScore1=54000&nomDuJoueur1=rockin+good&meilleurScore2=53455&nomDuJoueur
2=
bonehelmet&meilleurScore3=42885&nomDuJoueur3=soda+pop
Pour plus d’informations, consultez loadVariables(), page 423, getURL(), page 394,
loadMovie(), page 420 et l’entrée Classe LoadVars dans le Chapitre 12, Dictionnaire ActionScript
Présentation, page 211.
Utilisation de la classe LoadVars
Vous pouvez utiliser la classe LoadVars au lieu de la classe loadVariables() pour transférer des
variables entre un fichier SWF et un serveur. La classe LoadVars permet d’envoyer toutes les
variables d’un objet à une adresse URL déterminée et de charger toutes les variables d’une adresse
URL déterminée dans un objet. La réponse du serveur déclenche la méthode
LoadVars.onLoad() et définit les variables de la cible. Vous pouvez utiliser l’objet LoadVars pour
obtenir des informations sur les erreurs et des indicateurs d’avancement, ainsi que pour diffuser
les données pendant leur téléchargement.   
La classe LoadVars est similaire à la classe XML et utilise les méthodes load(), send() et
sendAndLoad() pour établir la communication avec le serveur. La principale différence entre les
classes LoadVars et XML réside dans le fait que les données LoadVars sont une propriété de l’objet
LoadVars, et non une arborescence DOM (Document Object Model) XML stockée dans l’objet
XML.
Vous devez créer un objet LoadVars pour appeler ses méthodes. Cet objet est un conteneur qui
stocke les données chargées.
La procédure suivante montre comment utiliser un objet LoadVars pour charger des variables à
partir d’un fichier texte et les afficher dans un champ de texte.
Pour charger des données avec l’objet LoadVars :
1 Dans un éditeur de texte comme Notepad ou SimpleText, créez un fichier texte et ajoutez-lui
le texte suivant :
jour=11&mois=juillet&année=2003
2 Enregistrez le fichier sous date.txt.
3 Dans Flash, créez un document.
4 Créez un champ de texte dynamique sur la scène et donnez-lui le nom d’occurrence date_txt.
5 Sélectionnez l’image 1 dans le scénario et ouvrez le panneau Actions (Fenêtre > Panneaux de
développement > Actions) si ce dernier n’est pas déjà visible.
6 Entrez le code suivant dans le panneau Actions :
var dateVars = new LoadVars();
dateVars.onLoad = function(ok) {
if (ok) {
date_txt.text = dateVars.day+"/"+dateVars.month+"/"+dateVars.year;Echange de variables avec une source distante 189
}
};
dateVars.load("date.txt");
Ce code charge les variables dans le fichier data.txt (jour, mois, année), puis il les formate et
les affiche dans le champ de texte date_txt.
7 Enregistrez le document sous le nom dateReader.fla dans le répertoire contenant le fichier
date.txt (le fichier texte que vous avez enregistré à l’étape 3).
8 Choisissez Contrôle > Tester l’animation pour tester le document.
Pour plus d’informations, consultez l’entrée Classe LoadVars du Chapitre 12, Dictionnaire
ActionScript Présentation, page 211.
A propos du langage XML
Le langage XML (Extensible Markup Language) est en passe de devenir le standard d’échange de
données structurées dans les applications Internet. Vous pouvez intégrer les données de Flash avec
des serveurs qui utilisent la technologie XML pour construire des applications sophistiquées telles
que des services de dialogue en ligne ou de courtage. 
En XML, tout comme en HTML, vous utilisez des balises pour marquer, ou définir, une chaîne
de texte. Dans le langage HTML, vous utilisez des balises prédéfinies pour indiquer la façon dont
le texte doit apparaître dans un navigateur web (par exemple, la balise <b> indique que le texte
doit être en gras). Dans le langage XML, vous définissez des balises qui identifient le type d’une
partie de données (par exemple, <motDePasse>monSecret</motDePasse>). Le langage XML
sépare la structure des informations de leur mode d’affichage, ce qui permet de réutiliser un même
document XML dans des environnements différents.
Chaque balise XML est appelée nœud ou élément. Chaque nœud possède un type (1, qui indique
un élément XML ou 3, qui indique un nœud texte) et les éléments peuvent également posséder
des attributs. Un nœud imbriqué dans un autre est appelé nœud enfant. Cette structure
hiérarchique de nœuds est appelée DOM (Document Object Model) XML, un peu comme le
DOM JavaScript, qui correspond à la structure des éléments dans un navigateur web.
Dans l’exemple suivant, <PORTEFEUILLE> est le nœud parent ; il ne possède pas d’attributs et
contient le nœud enfant <EFFET> qui possède les attributs SYMBOLE, QTÉ, PRIX et VALEUR :
<PORTEFEUILLE>
<EFFET SYMBOLE ="RICHE"
QTÉ="75"
PRIX="245.50"
VALEUR="18412.50" />
</PORTEFEUILLE>
Utilisation de la classe XML
Les méthodes de la classe XML ActionScript (par exemple, appendChild(), removeNode() et
insertBefore()) permettent de structurer les données XML dans Flash qui doivent être
envoyées à un serveur et de manipuler et interpréter les données XML téléchargées.   
Les méthodes de la classe XML suivantes permettent d’échanger des données XML avec un
serveur à l’aide de la méthode HTTP POST :
• La méthode load() télécharge le code XML depuis une URL et le place dans un objet XML
ActionScript.190 Chapitre 10 :  Utilisation de données externes
• La méthode send() transmet un objet XML à une URL. Toutes les informations renvoyées
sont affichées dans une fenêtre de navigateur.
• La méthode sendAndLoad() envoie un objet XML à une URL. Toutes les informations
renvoyées sont placées dans un objet XML ActionScript.
Par exemple, vous pourriez créer un système de courtage qui stockerait toutes ses informations
(noms d’utilisateur, mots de passe, identifiants de session, contenu des portefeuilles et
informations de transaction) dans une base de données.
Le script côté serveur qui transmet les informations entre Flash et la base de données lit et écrit les
données au format XML. Vous pouvez utiliser ActionScript pour convertir les informations
récupérées dans le fichier SWF (par exemple, un nom d’utilisateur et un mot de passe) en un
objet XML et envoyer ensuite les données au script côté serveur sous forme de document XML.
Vous pouvez également utiliser ActionScript pour charger le document XML que le serveur
renvoie dans un objet XML à utiliser dans le fichier SWF.
Flux et conversion des données entre une animation Flash, un script côté serveur et une base de données
La validation du mot de passe pour le système de courtage nécessite deux scripts : une fonction
définie sur l’image 1 et un script qui crée et envoie les objets XML associés au bouton Envoyer du
formulaire.
Lorsqu’un utilisateur entre des informations dans les champs de texte du fichier SWF avec les
variables nomDutilisateur et motDePasse, les variables doivent être converties au format XML
avant d’être transmises au serveur. La première section du script charge les variables dans un objet
XML nouvellement créé et appelé XMLDouvertureDeSession. Lorsqu’un utilisateur clique sur le
bouton Envoyer, l’objet XMLDouvertureDeSession est converti en une chaîne XML et envoyé au
serveur. 
Le script suivant est associé au bouton Envoyer. Pour comprendre le script, vous pourrez vous
aider des commentaires (indiqués par les caractères //) :
on (release) {
// A. Construire un document XML avec un élément d’ouverture de session
XMLDouvertureDeSession = new XML();
élémentDouvertureDeSession = XMLDouvertureDeSession.createElement("LOGIN");
élémentDouvertureDeSession.attributes.nomDutilisateur = nomDutilisateur;
élémentDouvertureDeSession.attributes.motDePasse = motDePasse;
XMLDouvertureDeSession.appendChild(élémentDouvertureDeSession);
// B. Construire un objet XML contenant la réponse du serveur
XMLréponseDouv = new XML();
XMLréponseDouv.onLoad = pourRéponseDouv;Echange de variables avec une source distante 191
// C. Envoyer l’élément LOGIN au serveur,
//    placer la réponse dans XMLréponseDouv
XMLDouvertureDeSession.sendAndLoad("https://www.imexstocks.com/main.cgi",
XMLréponseDouv);
}
La première section du script génère le code XML suivant lorsque l’utilisateur clique sur le bouton
Envoyer:
<LOGIN NOMDUTILISATEUR="JeanSmith" MOTDEPASSE="monSecret" />
Le serveur reçoit le code XML, génère une réponse XML et la renvoie au fichier SWF. Si le mot de
passe est accepté, le serveur envoie la réponse suivante :
<REPONSELOGIN ETAT="OK" SESSION="rnr6f7vkj2oe14m7jkkycilb" />
Ce code XML comprend un attribut SESSION qui contient une ID de session aléatoire unique et
qui sera utilisée dans toutes les communications entre le client et le serveur pour le reste de la
session. Si le mot de passe est rejeté, le serveur répond par le message suivant :
<REPONSELOGIN ETAT="ECHEC" />
Le nœud XML REPONSELOGIN doit être chargé dans un objet XML vide du fichier SWF.
L’instruction suivante crée l’objet XML XMLréponseDouv pour recevoir le nœud XML :
// B. Construire un objet XML contenant la réponse du serveur
XMLréponseDouv = new XML();
XMLréponseDouv.onLoad = pourRéponseDouv;
La seconde instruction affecte la fonction pourRéponseDouv() au gestionnaire
XMLréponseDouv.onLoad.
L’élément XML REPONSELOGIN arrive de manière asynchrone, un peu comme les données d’une
fonction loadVariables() et est chargé dans l’objet XMLréponseDouv. Lorsque les données
arrivent, le gestionnaire onLoad de l’objet XMLréponseDouv est appelé. Vous devez définir la
fonction pourRéponseDouv() et l’affecter au gestionnaire XMLréponseDouv.onLoad pour qu’il
puisse traiter l’élément REPONSELOGIN. Vous devez également affecter la fonction
pourRéponseDouv() à l’image contenant le bouton Envoyer.192 Chapitre 10 :  Utilisation de données externes
La fonction pourRéponseDouv() est définie dans la première image du fichier SWF. Pour
comprendre le script, vous pourrez vous aider des commentaires.
function pourRéponseDouv() {
// Récupérer le premier élément XML
var e = this.premierEnfant;
// Si le premier élément XML est un élément REPONSELOGIN avec
// OK pour état, ouvrir l’écran de portefeuille. Sinon,
// ouvrir l’écran d’échec et laisser l’utilisateur réessayer.
if (e.nomDeNoeud == "REPONSELOGIN" && e.attributes.état == "OK") {
// Enregistrer l’identifiant de session pour les futures communications avec le
serveur
idSession = e.attributes.session;
// Ouvrir l’écran de portefeuille
gotoAndStop("écranPortefeuille");
} else {
// L’ouverture de session a échoué !  Ouvrir l’écran d’échec.
gotoAndStop("échecOuvSession");
}
}
La première ligne de cette fonction, var e = this.premierEnfant, utilise le mot-clé this pour
faire référence à l’objet XML XMLréponseDouv qui vient d’être chargé avec XML depuis le
serveur. Vous pouvez utiliser this car pourRéponseDouv() a été invoquée sous la forme
XMLréponseDouv.onLoad, et donc, même si pourRéponseDouv() se révèle être une fonction
normale, elle se comporte en fait comme une méthode de XMLréponseDouv.
Pour envoyer le nom d’utilisateur et le mot de passe au format XML au serveur et pour charger
une réponse XML dans le fichier SWF, vous pouvez utiliser la méthode sendAndLoad(), comme
dans l’exemple suivant :
// C. Envoyer l’élément LOGIN au serveur,
//    placer la réponse dans XMLréponseDouv
XMLDouvertureDeSession.sendAndLoad("https://www.imexstocks.com/main.cgi",
XMLréponseDouv);
Remarque : Cette démonstration n’est qu’un exemple et Macromedia ne garantit pas le niveau de
sécurité fourni. Si vous implémentez un système sécurisé protégé par mot de passe, assurez-vous de
bien comprendre la sécurité réseau.
Pour plus d’informations, consultez Intégration de XML et de Flash dans une application web sur
le site www.macromedia.com/support/flash/interactivity/xml/ et l’entrée Classe XML dans le
Chapitre 12, Dictionnaire ActionScript Présentation, page 211.
Utilisation de la classe XMLSocket
ActionScript fournit une classe XMLSocket intégrée qui vous permet d’établir une connexion
continue avec un serveur. Une connexion socket permet au serveur de publier l’information au
client dès qu’elle est disponible. Sans connexion continue, le serveur devra attendre une
requête HTTP. Cette connexion ouverte supprime les périodes d’attente et est souvent utilisée
dans des applications en temps réel telles que les dialogues en ligne. Les données sont envoyées sur
la connexion socket sous forme d’une chaîne et doivent être au format XML. Vous pouvez utiliser
la classe XML pour structurer les données.     
Pour créer une connexion socket, vous devez créer une application côté serveur qui attendra la
requête de connexion socket et enverra une réponse au fichier SWF. Ce type d’applications côté
serveur peut être écrit dans un langage tel que Java. Echange de messages avec Flash Player 193
Vous pouvez utiliser les méthodes connect() et send() de la classe XMLSocket pour transférer
un objet XML vers et à partir d’un serveur sur une connexion socket. La méthode connect()
établit une connexion socket avec le port d’un serveur web. La méthode send() transmet un objet
XML au serveur spécifié dans la connexion socket.
Lorsque vous invoquez la méthode connect(), Flash Player ouvre une connexion TCP/IP avec le
serveur et garde cette connexion ouverte jusqu’à ce qu’un des événements suivants se produise :
• La méthode close() de la classe XMLSocket est appelée.
• Il n’existe plus aucune référence à l’objet XMLSocket.
• Flash Player se ferme.
• La connexion est rompue (le modem est déconnecté, par exemple).
L’exemple suivant crée une connexion socket XML et envoie les données de l’objet XML
monCodeXML. Pour comprendre le script, vous pourrez vous aider des commentaires (indiqués par
les caractères //):
// Créer un objet XMLSocket
sock = new XMLSocket();
// Appeler sa méthode connect() pour établir une connexion au port 1024
// du serveur à l’URL
sock.connect("http://www.monServeur.fr", 1024);
// Définir une fonction à affecter à l’objet socket gérant
// la réponse du serveur. Si la connexion réussit, envoyer
// l’objet monCodeXML. Sinon, afficher un message d’erreur dans un
// champ de texte.
function onSockConnect(succès){
if (succès){
sock.send(monCodeXML);
} else {
msg="Une erreur de connexion s’est produite avec "+serverName;
}
}
// Affecter la fonction onSockConnect() à la propriété onConnect
sock.onConnect = onSockConnect;
Pour plus d’informations, consultez l’entrée Classe XMLSocket du Chapitre 12, Dictionnaire
ActionScript Présentation, page 211.
Echange de messages avec Flash Player
Pour envoyer des messages depuis un fichier SWF vers son environnement hôte (par exemple, un
navigateur web, une animation Macromedia Director ou Flash Player autonome), vous pouvez
utiliser la fonction fscommand(). Cette fonction vous permet d’étendre votre fichier SWF à l’aide
des capacités de l’hôte. Par exemple, vous pouvez transmettre une fonction fscommand() à une
fonction JavaScript dans une page HTML qui ouvre une nouvelle fenêtre de navigateur avec des
propriétés spécifiques.   
Pour contrôler un fichier SWF dans Flash Player avec des langages tels que JavaScript, VBScript et
Microsoft JScript, vous pouvez utiliser les méthodes Flash Player (fonctions qui envoient des
messages depuis un environnement hôte vers le fichier SWF). Par exemple, vous pouvez disposer
d’un lien dans une page HTML qui envoie votre fichier SWF vers un cadre spécifique.194 Chapitre 10 :  Utilisation de données externes
Utilisation de fscommand()
Utilisez la fonction fscommand() pour envoyer un message au programme hébergeant Flash
Player. La fonction fscommand() dispose de deux paramètres : commande et arguments. Pour
envoyer un message à la version autonome de Flash Player, vous devez utiliser des commandes et
des arguments prédéfinis. Par exemple, l’action suivante définit le lecteur autonome pour qu’il
affiche le fichier SWF en taille plein écran lorsque le bouton est relâché :
on (release) {
fscommand("fullscreen", "true");
}
Le tableau suivant indique les valeurs que vous pouvez spécifier pour les paramètres commande et
arguments de la fonction fscommand() pour contrôler un fichier SWF lu dans le lecteur
autonome (y compris les projections) :
Pour utiliser fscommand() pour envoyer un message à un langage de programmation tel que
JavaScript dans un navigateur web, vous pouvez transmettre deux arguments quelconques dans les
paramètres commande et arguments. Ces paramètres peuvent être des chaînes ou des expressions
et seront utilisés dans une fonction JavaScript qui traite la fonction fscommand().
Une fonction fscommand() invoque la fonction JavaScript nomDeLanimation_DoFSCommand
dans la page HTML qui contient le fichier SWF, où nomDeLanimation est le nom de Flash Player
tel qu’il est affecté par l’attribut NAME de la balise EMBED ou par l’attribut ID de la balise OBJECT . Si
le nom monAnimation a été affecté à Flash Player, la fonction JavaScript invoquée est
monAnimation_DoFSCommand.
Pour utiliser fscommand() afin d’ouvrir une boîte de message à partir d’un fichier SWF dans la
page HTML à l’aide de JavaScript :
1 Dans la page HTML qui contient le fichier SWF, ajoutez le code JavaScript suivant :
function Lanimation_DoFSCommand(commande, args) {
if (commande == "fenêtreMessage") {
alert(args);
}
}
Commande Arguments Objectif
quit Aucun Ferme la projection.
fullscreen  true ou false La spécification de true définit Flash Player en mode plein
écran. La spécification de false renvoie le lecteur en affichage
normal du menu.
allowscale true ou false La spécification de false définit le lecteur de sorte que le fichier
SWF soit toujours affiché dans sa taille originale et que son
échelle ne soit jamais modifiée. La spécification de true oblige
le fichier SWF à adopter l’échelle 100% du lecteur.
showmenu true ou false La spécification de true active le jeu complet des éléments de
menu contextuel. La spécification de false masque tous les
éléments de menu contextuel, à l’exception de Paramètres et A
propos de Flash Player.
exec Chemin de
l’application
Exécute une application depuis la projection.Echange de messages avec Flash Player 195
Si vous publiez votre fichier SWF en utilisant Flash avec le modèle FSCommand disponible
dans les paramètres de publication HTML, ce code s’insère automatiquement. Les attributs
NAME et ID du fichier SWF constitueront le nom du fichier. Par exemple, pour le fichier
monAnimation.fla, les attributs seront définis avec monAnimation. (Pour plus d’informations
sur la publication, consultez Publication dans le guide Utilisation de Flash de l’aide.)
Alternativement, pour les applications Microsoft Internet Explorer, vous pouvez associer un
gestionnaire d’événement directement dans la balise <SCRIPT>, comme l’illustre cet exemple :
<Script Language = "JavaScript" event="FSCommand (commande, args)" for=
"Lanimation">
...
</Script>
2 Dans le document Flash, ajoutez la fonction fscommand() à un bouton, comme dans l’exemple
suivant :
on (press) {
fscommand("fenêtreMessage", "Ceci est une fenêtre de message invoquée
depuis Flash.");
}
Vous pouvez également utiliser des expressions pour la fonction fscommand() et des
paramètres, comme dans l’exemple suivant :
fscommand("boîteDeMessage", "Bonjour, " + nom + ", bienvenue sur notre site
web!")
3 Choisissez Fichier > Aperçu avant publication > HTML pour tester le document.
La fonction fscommand() peut envoyer des messages à Macromedia Director qui sont interprétés
par Lingo comme des chaînes, des événements ou un code exécutable Lingo. Si le message est une
chaîne ou un événement, vous devez écrire le code Lingo pour le recevoir depuis la fonction
fscommand() et entraîner une action dans Director. Pour plus d’informations, consultez le centre
de support de Director à l’adresse www.macromedia.com/support/director.
En Visual Basic, Visual C++, et dans d’autres programmes pouvant héberger les contrôles
ActiveX, fscommand envoie un événement VB avec deux chaînes qui peut être traité dans
l’environnement du langage de programmation. Pour plus d’informations, utilisez les mots-clés
méthode Flash pour effectuer une recherche sur le centre de support de Flash à l’adresse
www.macromedia.com/support/flash.
A propos des méthodes Flash Player
Vous pouvez utiliser les méthodes Flash Player pour contrôler un fichier SWF dans Flash Player
avec des langages tels que JavaScript et VBScript. Comme avec les autres méthodes, vous pouvez
utiliser les méthodes Flash Player pour envoyer des appels à des fichiers SWF depuis un
environnement de programmation autre qu’ActionScript. Chaque méthode possède un nom et la
plupart prennent des paramètres. Un paramètre spécifie une valeur sur laquelle opère la méthode.
Le calcul effectué par certaines méthodes renvoie une valeur qui peut être utilisée par
l’environnement de programmation.
Deux technologies différentes permettent la communication entre le navigateur et Flash Player :
LiveConnect (Netscape Navigator 3.0 et versions ultérieures sous Windows 95/98/2000/NT ou
Power Macintosh) et ActiveX (Internet Explorer 3.0 et versions ultérieures sous Windows 95/98/
2000/NT). Bien que les techniques de programmation soient équivalentes pour tous les
navigateurs et les langages, des propriétés et événements supplémentaires sont disponibles pour
l’utilisation des contrôles ActiveX. 196 Chapitre 10 :  Utilisation de données externes
Pour obtenir plus d’informations, ainsi que la liste complète des méthodes de programmation de
Flash Player, utilisez les mots-clés méthode Flash pour rechercher le centre de support de Flash à
l’adresse www.macromedia.com/support/flash.
A propos de l’utilisation des méthodes Flash JavaScript avec Flash Player
Flash Player 6 version 40 et ultérieures prennent en charge les méthodes Flash Java Script et
FSCommand dans Netscape 6.2 et versions ultérieures. Les versions antérieures ne prennent pas
en charge les méthodes Flash JavaScript et FSCommand dans Netscape 6.2 ou versions
ultérieures.
Pour Netscape 6.2 et versions ultérieures, vous n’avez pas besoin de définir l’objet swLiveConnect
sur la valeur true. Cependant, la définition de swLiveConnect sur la valeur true n’a aucune
incidence.
Fonctions de sécurité de Flash Player
Par défaut, Flash Player 7 et ses versions ultérieures empêchent un fichier SWF servi par un
domaine d’accéder aux données, objets ou variables de fichiers SWF servis par des domaines
différents. En outre, le contenu chargé à l’aide de protocoles non sécurisés (non-HTTPS) ne peut
pas accéder au contenu chargé à l’aide d’un protocole sécurisé (HTTPS), même s’ils sont tous les
deux situés exactement dans le même domaine. Par exemple, un fichier SWF situé à l’adresse
http://www.macromedia.com/main.swf ne peut pas charger de données à partir de l’adresse
https://www.macromedia.com/data.txt sans autorisation explicite. De même, un fichier SWF
servi par un domaine ne peut pas charger les données (à l’aide de loadVariables(), par exemple)
d’un autre domaine. 
Les adresses IP numériques identiques sont compatibles. Cependant, un nom de domaine n’est
pas compatible avec une adresse IP, même si le nom de domaine renvoie à la même adresse IP. 
Le tableau suivant présente des exemples de domaines compatibles :
Le tableau suivant présente des exemples de domaines incompatibles :
www.macromedia.com www.macromedia.com
data.macromedia.com data.macromedia.com
65.57.83.12 65.57.83.12
www.macromedia.com data.macromedia.com
macromedia.com www.macromedia.com
www.macromedia.com macromedia.com
65.57.83.12 www.macromedia.com (même si ce domaine correspond à l’adresse
65.57.83.12)
www.macromedia.com 65.57.83.12 (même si www.macromedia.com correspond à cette
adresse IP)Fonctions de sécurité de Flash Player 197
Pour plus d’informations sur la façon de permettre à un fichier SWF servi par un domaine
d’accéder aux données, objets ou variables de fichiers SWF qui sont servis par un autre domaine,
consultez A propos de l’autorisation d’accès aux données entre des fichiers SWF inter-domaines,
page 197. Pour plus d’informations sur la façon de permettre à un fichier SWF servi par un
protocole sécurisé (HTTPS) d’accéder aux données, objets ou variables de fichiers SWF qui sont
servis par des protocoles non sécurisés, consultez A propos de l’autorisation d’accès du protocole
HTTP à HTTPS entre fichiers SWF , page 198. Pour plus d’informations sur la façon de permettre
à un fichier SWF servi par un domaine de charger des données (à l’aide de loadVariables() par
exemple) d’un autre domaine, consultez A propos de l’autorisation de chargement de données inter-
domaines, page 198.
Pour plus d’informations sur la manière dont ces changements de sécurité ont des répercussions
sur le contenu dans Flash MX et dans les versions précédentes, consultez A propos de la
compatibilité avec les précédents modèles de sécurité Flash Player, page 199.
A propos de l’autorisation d’accès aux données entre des fichiers SWF inter-
domaines
Un fichier SWF peut charger un autre fichier SWF depuis n’importe quel emplacement sur
Internet. Cependant, pour que chacun des deux fichiers SWF puisse accéder aux données
(variables et objets) de l’autre, ils doivent provenir du même domaine. Par défaut, dans Flash
Player 7 et versions ultérieures, les deux domaines doivent correspondre exactement pour que les
deux fichiers partagent des données. Un fichier SWF peut cependant accéder aux fichiers SWF
servis par des domaines spécifiques en appelant LocalConnection.allowDomain ou
System.security.allowDomain(). 
Par exemple, supposons que le fichier main.swf soit servi à partir de www.macromedia.com. Ce
fichier SWF charge alors un autre fichier SWF (data.swf ) à partir de data.macromedia.com vers
une occurrence de clip (target_mc).
// Dans macromedia.swf
target_mc.loadMovie("http://data.macromedia.com/data.swf");
De plus, supposons que le fichier data.swf définisse une méthode appelée getData() sur son
scénario principal. Par défaut, le fichier main.swf ne peut pas appeler la méthode getData()
définie dans le fichier data.swf, une fois que ce fichier a été chargé. Cela est dû au fait que les deux
fichiers SWF ne résident pas sur le même domaine. En ce sens, l’appel de méthode suivant dans
main.swf, une fois le chargement de data.swf effectué, échouera.
// Dans macromedia.swf, après le chargement de data.swf :
target_mc.getData(); // Cette méthode d’appel va échouer
Cependant, le fichier data.swf peut accéder à des fichiers SWF servis à partir de
www.macromedia.com à l’aide du gestionnaire LocalConnection.allowDomain ou de la
méthode System.security.allowDomain(), selon le type d’accès nécessaire. Le code suivant,
ajouté au fichier data.swf, permet à un fichier SWF servi à partir de www.macromedia.com
d’accéder à ses variables et méthodes :
// Dans data.swf
System.security.allowDomain("www.macromedia.com");
ma_lc.allowDomain = function(domaineDenvoi) {
return(domaineDenvoi=="www.macromedia.com");
}198 Chapitre 10 :  Utilisation de données externes
Notez que la commande allowDomain permet à tout fichier SWF du domaine autorisé de
programmer tout autre fichier SWF dans le domaine qui autorise l’accès, à moins que le fichier
SWF accédé soit hébergé sur un site utilisant un protocole sécurisé (HTTPS).  Dans ce cas, vous
devez utiliser la commande allowInsecureDomain plutôt que allowDomain ; consultez A propos
de l’autorisation d’accès du protocole HTTP à HTTPS entre fichiers SWF ci-dessous.
Pour plus d’informations sur la mise en correspondance des noms de domaines,
consultez Fonctions de sécurité de Flash Player, page 196.
A propos de l’autorisation d’accès du protocole HTTP à HTTPS entre fichiers
SWF
Comme indiqué dans la section précédente, vous devez utiliser un gestionnaire ou une méthode
allowDomain pour permettre à un fichier SWF d’un domaine d’accéder à un fichier SWF d’un
autre domaine. Cependant, si le fichier SWF accédé est hébergé sur un site utilisant un protocole
sécurisé (HTTPS), le gestionnaire ou la méthode allowDomain ne permet pas l’accès à partir du
fichier SWF hébergé sur un site utilisant un protocole non sécurisé. Pour autoriser un tel accès,
vous devez utiliser les instructions LocalConnection.allowInsecure Domain() ou
System.security.allowInsecureDomain().
Par exemple, si un fichier SWF à l’adresse http://www.unSite.com doit pouvoir accéder au fichier
SWF à l’adresse https://www.unSite.com/data.swf, ajoutez le code suivant au fichier data.swf :
// Dans data.swf
System.security.allowInsecureDomain("www.unSite.com");
ma_lc.allowInsecureDomain = function(domaineDenvoi) {
return(domaineDenvoi=="www.unSite.com");
}
A propos de l’autorisation de chargement de données inter-domaines
Un document Flash peut charger les données depuis une source externe à l’aide de l’un des appels
de chargement de données suivants : XML.load(), XML.sendAndLoad(), LoadVars.load(),
LoadVars.sendAndLoad(), loadVariables() et loadVariablesNum(). De plus, un fichier
SWF peut importer des bibliothèques partagées à l’exécution ou des actifs définis dans un autre
fichier SWF, au moment de l’exécution. Par défaut, les données ou le support SWF (dans le cas de
bibliothèques partagées à l’exécution) doivent résider dans le même domaine que le fichier SWF
qui charge ces données externes ou ce support.
Pour que les fichiers SWF situés dans différents domaines puissent accéder aux données et aux
actifs contenus dans des bibliothèques partagées à l’exécution, utilisez un fichier de régulation
inter-domaines. Il s’agit d’un fichier XML qui permet au serveur d’indiquer que ses données et ses
documents sont disponibles pour les fichiers SWF servis par certains domaines ou par tous les
domaines. Tout fichier SWF servi par un domaine spécifié par le fichier de régulation du serveur
peut accéder aux données et aux actifs de ce serveur.   
Lorsqu’un document Flash tente d’accéder aux données depuis un autre domaine, Flash Player
essaie automatiquement de charger un fichier de régulation depuis ce domaine. Si le domaine du
document Flash qui tente d’accéder aux données est inclus dans le fichier de régulation les
données sont automatiquement accessibles.Fonctions de sécurité de Flash Player 199
Les fichiers de régulation doivent être nommés interdomaine.xml et se trouvent dans le répertoire
racine du serveur qui sert les données. Les fichiers de régulation ne fonctionnent que sur des
serveurs communiquant en HTTP, HTTPS, ou FTP. Le fichier de régulation est spécifique au
port et au protocole du serveur dans lequel il réside.
Par exemple, un fichier de régulation situé dans https://www.macromedia.com:8080/
interdomaine.xml ne s’appliquera qu’aux appels de chargement de données passés vers
www.macromedia.com sur HTTPS au port 8080.
Cette règle a une exception : lorsque vous utilisez un objet XMLSocket pour vous connecter à un
serveur socket dans un autre domaine. Dans ce cas, un serveur HTTP exécuté sur le port 80 du
même domaine que le serveur socket doit fournir le fichier de régulation pour l’appel de la
méthode.
Un fichier de régulation XML contient une seule balise <régulation-inter-domaine>, qui
contient elle-même aucune ou plusieurs balises <autoriser-accès-depuis>. Chaque balise
<autoriser-accès-depuis> contient un attribut, domaine, qui spécifie une adresse IP exacte,
un domaine exact ou un domaine générique (domaine quelconque). Les domaines génériques
sont indiqués par un astérisque (qui correspond à tous les domaines et à toutes les adresses IP) ou
par un astérisque (*) suivi d’un suffixe, qui correspond uniquement aux domaines se terminant
par le suffixe spécifié. Les suffixes doivent commencer par un point. Cependant, les domaines
génériques suivis de suffixes peuvent correspondre à des domaines qui sont composés uniquement
du suffixe sans le point de séparation. Par exemple, foo.com est considéré comme un élément de
*.foo.com. Les caractères génériques ne sont pas autorisés dans les spécifications de domaine IP.
Si vous spécifiez une adresse IP, seuls les fichiers SWF chargés depuis cette adresse IP à l’aide de la
syntaxe IP (par exemple, http://65.57.83.12/flashmovie.swf ) sont accessibles ; les fichiers chargés
à l’aide d’une syntaxe domaine-nom ne sont pas accessibles. Flash Player n’effectue pas de
résolution DNS.
Voici un exemple de fichier de régulation permettant d’accéder à des documents Flash qui
proviennent de foo.com, amiDeFoo.com, *.foo.com et 105.216.0.40, depuis un document Flash
situé sur foo.com :
<?xml version="1.0" ? >
<!-- http://www.foo.com/interdomaine.xml -->
<régulation-inter-domaines>
  <autoriser-accès-depuis domaine="www.amiDeFoo.com" />
  <autoriser-accès-depuis domaine="*.foo.com" />
  <autoriser-accès-depuis domaine="105.216.0.40" />
</régulation-inter-domaines>
Un fichier de régulation ne contenant aucune balise <autoriser-accès-depuis> revient à ne
pas avoir de régulation sur un serveur.
A propos de la compatibilité avec les précédents modèles de sécurité Flash
Player
Suite aux changements des fonctions de sécurité dans Flash Player (consultez Fonctions de sécurité
de Flash Player, page 196), un contenu exécuté correctement sous Flash Player 6 ou antérieur peut
ne pas s’exécuter correctement sous Flash Player 7 ou ultérieur.  200 Chapitre 10 :  Utilisation de données externes
Par exemple, dans Flash Player 6, un fichier SWF se trouvant dans www.macromedia.com peut
accéder à des données sur un serveur situé à l’adresse data.macromedia.com. Ainsi, Flash Player 6
a autorisé un fichier SWF provenant d’un domaine à charger des données à partir d’un domaine
« similaire ».
Dans Flash Player 7 et ultérieur, si un fichier SWF version 6 (ou antérieure) tente de charger des
données à partir d’un serveur se trouvant dans un autre domaine, et que ce serveur ne fournit
aucun fichier de régulation autorisant l’accès à partir du domaine de ce fichier SWF, la boîte de
dialogue Paramètres de Macromedia Flash Player apparaît. Elle demande à l’utilisateur d’autoriser
ou de refuser l’accès aux données interdomaines.
Si l’utilisateur clique sur Autoriser, le fichier SWF peut accéder aux données requises ; s’il clique
sur Refuser, le fichier SWF ne peut pas accéder aux données requises.
Pour empêcher l’apparition de cette boîte de dialogue, créez un fichier de régulation de sécurité
sur le serveur fournissant les données. Pour plus d’informations, consultez A propos de
l’autorisation de chargement de données inter-domaines, page 198. 201
CHAPITRE 11
Utilisation de médias externes
Si vous importez une image ou un son pendant la création d’un document dans Macromedia
Flash MX 2004 ou Macromedia Flash MX Professionnel 2004, cette image ou ce son est placé
dans le fichier SWF lorsque vous le publiez. En plus de l’importation de médias pendant la
programmation, vous pouvez charger un média externe à l’exécution. Il existe plusieurs raisons
pour lesquelles il est souhaitable de conserver les médias en dehors d’un document Flash.
Réduire la taille des fichiers En conservant les fichiers média volumineux en dehors de votre
document Flash et en les chargeant à l’exécution, vous pouvez réduire le délai initial de
téléchargement de vos applications et présentations, particulièrement dans le cas de connexions
Internet lentes.
Modulariser les présentations volumineuses Vous pouvez diviser une présentation ou une
application volumineuse en fichiers SWF séparés, puis les charger au fur et à mesure à l’exécution.
Cela permet non seulement de réduire le délai initial de téléchargement, mais également de
conserver et de mettre à jour les contenus de la présentation plus facilement.
Séparer le contenu de la présentation Cela est très commun dans le développement
d’applications, particulièrement les applications orientées données. Par exemple, une application
avec un panier pourrait afficher une image JPEG de chaque produit. En chargeant les fichiers
JPEG de chaque image à l’exécution, vous pouvez facilement mettre à jour l’image d’un produit
sans modifier le fichier FLA d’origine.
Bénéficier des fonctions d’exécution seule Certaines fonctions, telles que la lecture en
continu des fichiers FLV et MP3, ne sont utilisables qu’à l’exécution dans ActionScript.
Aperçu du chargement de média externe
Vous pouvez charger quatre types de fichiers média dans une application Flash lors de
l’exécution : les fichiers SWF, MP3, JPEG et FLV. Flash Player peut charger un média externe
depuis n’importe quelle adresse HTTP ou FTP, un disque local utilisant un chemin relatif ou à
l’aide du protocole file://.
Pour charger des fichiers SWF et JPEG externes, vous pouvez utiliser la fonction loadMovie() ou
loadMovieNum() , ou bien la méthode MovieClip.loadMovie(). Lorsque vous chargez un
fichier SWF ou JPEG, vous spécifiez un clip ou un niveau d’animation comme cible de ce média.
Pour plus d’informations sur le chargement des fichiers SWF et JPEG, consultez Chargement de
fichiers SWF et JPEG externes, page 202.202 Chapitre 11 :  Utilisation de médias externes
Pour lire un fichier MP3 (MPEG Couche 3) externe, utilisez la méthode loadSound() de la
classe Sound. Cette méthode vous permet de spécifier si le fichier MP3 doit être diffusé en flux
continu ou complètement téléchargé avant de démarrer la lecture. Vous pouvez également lire les
informations ID3 intégrées dans les fichiers MP3, si elles sont disponibles. Pour plus
d’informations, consultez Lecture des balises ID3 dans les fichiers MP3, page 204.
Flash Video (FLV) est le format vidéo natif utilisé par Flash Player. Vous pouvez lire les fichiers
FLV sur HTTP ou sur le système de fichiers local. La lecture des fichiers FLV externes offre
plusieurs avantages par rapport à l’intégration de vidéo dans un document Flash : performances et
gestion de la mémoire améliorées, indépendance des cadences vidéo et Flash. Pour plus
d’informations, consultez Lecture dynamique des fichiers FLV externes, page 205.
Vous pouvez également précharger ou suivre la progression du téléchargement d’un média
externe. Flash Player 7 introduit la classe MovieClipLoader que vous pouvez utiliser pour suivre la
progression du téléchargement de fichiers SWF ou JPEG. Pour précharger des fichiers MP3 FLV,
vous pouvez utiliser la méthode getBytesLoaded() de la classe Sound et la propriété
bytesLoaded de la classe NetStream. Pour plus d’informations, consultez Préchargement de média
externe, page 206.
Chargement de fichiers SWF et JPEG externes
Pour charger un fichier SWF ou JPEG, utilisez la fonction globale loadMovie() ou
loadMovieNum() ou la méthode loadMovie() de la classe MovieClip. Pour charger un fichier
SWF ou JPEG dans un niveau de Flash Player, utilisez loadMovieNum(). Pour charger un fichier
SWF or JPEG dans une cible de clip, utilisez la fonction ou la méthode loadMovie(). Dans les
autres cas, le contenu chargé remplace le contenu du niveau ou du clip cible spécifié. 
Lorsque vous chargez un fichier SWF ou JPEG dans un clip cible, le coin supérieur gauche du
fichier SWF ou de l’image JPEG est placé sur le point d’alignement du clip. Ce point se trouvant
souvent au centre du clip, il se peut que le contenu chargé ne soit pas centré. De même, lorsque
vous chargez un fichier SWF ou une image JPEG dans un scénario racine, son coin supérieur
gauche est placé sur le coin supérieur gauche de la scène. Le contenu chargé hérite de la rotation et
de la mise à l’échelle du clip, mais le contenu d’origine du clip est supprimé.
Vous pouvez éventuellement envoyer les variables ActionScript en appelant la fonction
loadMovie() ou loadMovieNum(). Cela est particulièrement utile si, par exemple, l’URL
spécifiée dans l’appel d’une méthode est un script côté serveur qui renvoie une image JPEG ou un
fichier SWF en fonction des données transmises depuis l’application Flash.
En ce qui concerne les fichiers d’image, Flash ne supporte que le type de fichier d’image JPEG
standard, et non les fichiers JPEG progressifs.
Lorsque vous utilisez la fonction globale loadMovie() ou loadMovieNum(), spécifiez le niveau ou
le clip cible en tant que paramètre. Par exemple, le code suivant permet de charger le fichier
d’animation Flash contenu.swf dans l’occurrence de clip appelée cible_mc :
loadMovieNum("contenu.swf", cible_mc);
De même, vous pouvez utilisez Clip.loadMovie() pour obtenir le même résultat :
cible_mc.loadMovie("contenu.swf");
Le code suivant charge l’image JPEG fleurs.jpg dans l’occurrence de clip image_clip :
image_clip.loadMovie("fleurs.jpg");Chargement des fichiers externes MP3 203
Pour plus d’informations sur loadMovie(), loadMovieNum() et MovieClip.loadMovie,
consultez les entrées correspondantes du Chapitre 12, Dictionnaire ActionScript Présentation,
page 211.
A propos des fichiers SWF chargés et du scénario racine
La propriété ActionScript _root spécifie ou renvoie une référence au scénario racine d’un
fichier SWF. Si vous chargez un fichier SWF dans le clip d’un autre fichier SWF, les références à
_root dans le fichier SWF chargé se traduisent dans le scénario racine du fichier SWF hôte et non
pas dans celui du fichier SWF chargé. Cela peut parfois engendrer un comportement inattendu à
l’exécution, par exemple, si le fichier SWF hôte et le fichier SWF chargé utilisent tous les deux
_root pour spécifier une variable.
Dans Flash Player 7 et ses versions ultérieures, vous pouvez utiliser la propriété
MovieClip._lockroot pour obliger les références à _root réalisées dans un clip à se traduire
dans son propre scénario, plutôt que dans celui de l’animation contenant le clip. Pour plus
d’informations, consultez Spécification d’un scénario racine pour les fichiers SWF chargés, page 127.
A propos de l’accès aux données des fichiers SWF chargés
Un fichier SWF peut charger un autre fichier SWF depuis n’importe quel emplacement sur
Internet. Cependant, pour qu’un fichier SWF accède aux données (variables, méthodes, etc.)
définies dans l’autre fichier SWF, les deux fichiers doivent provenir du même domaine. Dans
Flash Player 7 et ses versions ultérieures, toute écriture de scripts inter-domaines est interdite sauf
si le fichier SWF chargé en décide autrement en appelant System.security.allowDomain().
Pour plus d’informations, consultez Fonctions de sécurité de Flash Player, page 196 et
System.security.allowDomain() dans le Chapitre 12, Dictionnaire ActionScript Présentation,
page 211.
Chargement des fichiers externes MP3
Pour charger des fichiers MP3 à l’exécution, utilisez la méthode loadSound() de la classe Sound.
Créez tout d’abord un objet Sound :   
var chanson_1_sound = new Sound();
Utilisez ensuite le nouvel objet pour appeler la méthode loadSound() et charger un événement
ou un son lu en flux continu. Alors que les sons d’événement sont entièrement chargés avant leur
lecture, les sons lus en flux continu sont lus pendant leur téléchargement. Vous pouvez définir le
paramètre isStreaming de la méthode loadSound() de manière à définir un son comme étant
un son d’événement ou un son lu en flux continu. Après avoir chargé un son d’événement, vous
devez appeler la méthode start() de la classe Sound pour lancer sa lecture. La lecture des sons
lus en flux continu débute dès qu’une quantité suffisante de données a été chargée dans le
fichier SWF et il n’est pas nécessaire d’utiliser la méthode start().
Par exemple, le code suivant crée un objet Sound nommé classique et charge ensuite un fichier
MP3 nommé beethoven.mp3 :
var classique.Sound = new Sound();
classique.loadSound("http://server.com/mp3s/beethoven.mp3", true);204 Chapitre 11 :  Utilisation de médias externes
Dans la plupart des cas, définissez le paramètre isStreaming sur la valeur true, particulièrement
si vous chargez des fichiers sons volumineux qui doivent démarrer dès que possible, par exemple,
lorsque vous créez une application « juke-box » MP3. Cependant, si vous téléchargez des clips son
moins volumineux et devez les exécuter à un moment précis (par exemple, lorsqu’un utilisateur
clique sur un bouton), définissez le paramètre isStreaming sur la valeur false.
Pour déterminer la fin du téléchargement d’un son, utilisez le gestionnaire d’événement
Son.onLoad. Ce gestionnaire d’événement reçoit automatiquement une valeur booléenne (true
ou false) qui indique si le fichier a bien été téléchargé correctement.
Par exemple, supposez que vous créez un jeu en ligne qui utilise différents sons en fonction du
niveau atteint par l’utilisateur dans ce jeu. Le code suivant charge un fichier MP3 (blastoff.mp3)
dans un objet Sound appelé sonJeu, puis lit le son à la fin du téléchargement :
var sonJeu = new Sound();
sonJeu.onLoad = function (chargementOK) {
if(chargementOK) {
sonJeu.start();
}
}
sonJeu.loadSound("http://server.com/sounds/blastoff.mp3", false);
Pour les fichiers son, Flash Player ne supporte que le type de fichier MP3.
Pour plus d’informations, consultez Sound.loadSound, Sound.start() et Sound.onLoad dans
le Chapitre 12, Dictionnaire ActionScript Présentation, page 211.
Lecture des balises ID3 dans les fichiers MP3
Les balises ID3 sont des champs de données ajoutés à un fichier MP3 contenant des informations
sur ce fichier, comme le nom de la chanson, le nom de l’album et de l’artiste.
Pour lire les balises ID3 d’un fichier MP3, utilisez la propriété Sound.ID3, dont les propriétés
correspondent aux noms des balises ID3 incluses dans le fichier MP3 en cours de téléchargement.
Pour déterminer la disponibilité des balises ID3 pour télécharger un fichier MP3, utilisez le
gestionnaire d’événement Sound.onID3. Flash Player7 prend en charge les balises des versions
1.0, 1.1, 2.3 et 2.4 ; les balises de la version 2.2 ne sont pas prises en charge.
Par exemple, le code suivant charge un fichier MP3 nommé chansonPreferee.mp3 dans l’objet
Sound nommé chanson. Lorsque les balises ID3 sont disponibles pour le fichier, un champ de
texte nommé affichage_txt affiche le nom de l’artiste et de la chanson.
var chanson = new Sound();
chanson.onID3 = function () {
affichage_txt.text = "Artiste : " + song.id3.TCOM + newline;
affichage_txt.text += "Chanson : " + song.id3.TIT2);
}
son.loadSound("mp3s/chansonPreferee.mp3, true");
Les balises ID3 2.0 se trouvant au début d’un fichier MP3 (avant les données audio), elles sont
disponibles dès que le fichier démarre le téléchargement. Cependant, les balises ID3 1.0 se
trouvent à la fin du fichier (après les données audio) ; elles ne sont pas disponibles tant que le
téléchargement du fichier MP3 n’est pas terminé.
Le gestionnaire d’événement onID3 est appelé à chaque fois que de nouvelles données ID3 sont
disponibles. Cela signifie que si un fichier MP3 contient des balises ID3 2.0 et ID3 1.0, le
gestionnaire d’événement onID3 sera appelé deux fois, car les balises se trouvent dans des parties
différentes du fichier.Lecture dynamique des fichiers FLV externes 205
Pour obtenir une liste des balises ID3 prises en charge, consultez Sound.ID3, page 624.
Lecture dynamique des fichiers FLV externes
Plutôt que d’importer des données vidéo dans l’environnement auteur de Flash, vous pouvez
utiliser ActionScript pour lire dynamiquement les fichiers FLV externes dans Flash Player. Vous
pouvez lire les fichiers FLV à partir d’une adresse HTTP ou du système de fichiers local. Pour lire
les fichiers FLV, utilisez les classes NetConnection et NetStream, ainsi que la méthode
attachVideo() de la classe Video. ( Pour obtenir des informations complètes, consultez les
entrées Classe NetConnection, Classe NetStream et Video.attachVideo() dans
le Chapitre 12, Dictionnaire ActionScript Présentation, page 211.)   
Vous pouvez créer des fichiers FLV en important la vidéo dans l’outil de programmation Flash et
en l’exportant sous la forme d’un fichier FLV. (Consultez « Vidéo Macromedia Flash » dans le
guide Utilisation de Flash de l’aide. Si vous possédez Flash Professionnel, vous pouvez utiliser le
module d’exportation de FLV pour exporter les fichiers FLV à partir d’applications d’édition
vidéo prises en charge. (Consultez Exportation des fichiers FLV à partir des applications d’édition
vidéo (Flash Professionnel uniquement) dans le guide Utilisation de Flash de l’aide.
L’utilisation des fichiers FLV externes offre certaines fonctionnalités qui ne sont pas disponibles
avec l’utilisation de la vidéo importée :
• Vous pouvez utiliser des clips vidéo plus longs dans vos documents Flash sans ralentir la lecture
de l’animation. Les fichiers FLV externes sont lus à l’aide de la mémoire cache. Cela signifie que
les fichiers volumineux sont stockés en petites parties et sont accessibles dynamiquement, et
qu’ils ne nécessitent pas autant de mémoire que les fichiers vidéo intégrés.
• Un fichier FLV externe peut avoir une cadence différente de celle du document Flash dans
lequel il est lu. Par exemple, vous pouvez définir la cadence du document Flash à 30 ips et celle
de l’image vidéo à 21 ips. Cela vous octroie un meilleur contrôle et garantit la fluidité du flux
vidéo.
• Avec les fichiers FLV externes, la lecture du document Flash n’a pas besoin d’être interrompue
pendant le chargement du fichier vidéo. Les fichiers vidéo importés peuvent parfois
interrompre la lecture du document pour exécuter certaines fonctions, par exemple, accéder à
un lecteur de CD-ROM. Les fichiers FLV peuvent exécuter les fonctions indépendamment du
document Flash et ainsi ne pas interrompre la lecture.
• Le sous-titrage du contenu vidéo est plus facile avec les fichiers FLV externes, parce que vous
utilisez les gestionnaires d’événements pour accéder aux métadonnées de la vidéo.
La procédure suivante illustre comment lire un fichier nommé videoFile.flv stocké au même
emplacement que votre fichier SWF.
Pour lire un fichier FLV externe dans un document Flash :
1 Si le document est ouvert dans l’outil de programmation Flash, dans le panneau Bibliothèque
(Fenêtre > Bibliothèque), sélectionnez Nouvelle vidéo dans le menu d’options de la
bibliothèque pour créer un objet vidéo.
2 Faites glisser un objet vidéo depuis le panneau Bibliothèque sur la scène. Une occurrence de
l’objet vidéo est créée.
3 Lorsque l’objet vidéo est sélectionné sur la scène, dans l’inspecteur des propriétés (Fenêtre >
Propriétés), entrez ma_video dans le champ de texte Nom de l’occurrence.
4 Ouvrez le panneau Composants (Fenêtre > Panneaux de développement > Composants) et
faites glisser un composant TextArea sur la scène.206 Chapitre 11 :  Utilisation de médias externes
5 Lorsque l’objet TextArea est sélectionné sur la scène, entrez status dans le champ de texte Nom
de l’occurrence, dans l’inspecteur des propriétés.
6 Sélectionnez l’image 1 dans le scénario et ouvrez le panneau Actions (Fenêtre > Panneaux de
développement > Actions).
7 Ajoutez le code suivant au panneau Actions
// Créer un objet NetConnection :
var netConn:NetConnection = new NetConnection();
// Créer une connexion locale en flux continu :
netConn.connect(null);
// Créer un objet NetStream et définir une fonction onStatus() :
var netStream:NetStream = new NetStream(netConn);
netStream.onStatus = function(infoObject) {
status.text += "Status (NetStream)" + newline;
status.text += "Level: "+infoObject.level + newline;
status.text += "Code: "+infoObject.code + newline;
};
// Associer la vidéo NetStream à l’objet Video :
ma_video.attachVideo(netStream);
// Définir la durée du tampon :
netStream.setBufferTime(5);
// Lire le fichier FLV :
netStream.play("videoFile.flv");


Cordialement

L'équipe Parisdepannage.fr

Hors ligne

 

#5 20-08-2008 16:01:02

Admin
Administrateur
Date d'inscription: 30-07-2008
Messages: 683

Re: Guide de référence sur l'action script de flash (2)

Préchargement de média externe
ActionScript offre plusieurs façons de précharger ou de suivre la progression du téléchargement
du média externe. Pour précharger les fichiers SWF et JPEG, utilisez la classe MovieClipLoader,
qui offre un mécanisme d’écouteur d’événements permettant de vérifier la progression du
téléchargement. Cette classe est nouvelle dans Flash Player 7. Pour plus d’informations, consultez
Préchargement des fichiers SWF et JPEG, page 206.
Pour suivre la progression du téléchargement des fichiers MP3, utilisez les méthodes
Sound.getBytesLoaded() et Sound.getBytesTotal() ; pour suivre la progression du
téléchargement des fichiers FLV, utilisez les propriétés NetStream.bytesLoaded et
NetStream.bytesTotal. Pour plus d’informations, consultez Préchargement des fichiers MP3 et
FLV, page 208.
Préchargement des fichiers SWF et JPEG
Pour précharger les fichiers SWF et JPEG dans les occurrences de clip, vous pouvez utiliser la
Classe MovieClipLoader. Cette classe offre un mécanisme d’écouteur d’événements qui indique
l’état des téléchargements de fichiers dans les clips. L’utilisation d’un objet MovieClipLoader pour
précharger des fichiers SWF et JPEG implique les étapes suivantes :   
Créer un objet MovieClipLoader Vous pouvez utiliser un seul objet MovieClipLoader pour
suivre la progression du téléchargement de plusieurs fichiers ou créer un objet distinct pour suivre
la progression des fichiers individuels.
var loader:MovieClipLoader = new MovieClipLoader();
Créer un objet d’écoute et créer des gestionnaires d’événements L’objet d’écoute peut être
n’importe quel objet ActionScript, par exemple un objet Object générique, un clip ou un
composant personnalisé.Préchargement de média externe 207
Par exemple, le code suivant crée un objet d’écoute générique nommé loadListener et définit
pour lui-même les fonctions onLoadStart, onLoadProgress et onLoadComplete.
// Créer un objet d’écoute :
var loadListener:Object = new Object();
loadListener.onLoadStart = function (loadTarget) {
trace("Le chargement dans " + loadTarget + " a commencé.");
}
loadListener.onLoadProgress = function(loadTarget, octetsChargés, octetsTotal)
{
var percentLoaded = bytesLoaded/bytesTotal * 100;
trace("%" + percentLoaded + " vers cible " + loadTarget);
}
loadListener.onLoadComplete = function(loadTarget) {
trace("Chargement terminé dans : " + loadTarget);
}
Enregistrer l’objet d’écoute avec l’objet MovieClipLoader Vous devez enregistrer l’objet
d’écoute avec l’objet MovieClipLoader pour qu’il reçoive les événements chargés.
loader.addListener(loadListener);
Commencer à charger le fichier (JPEG ou SWF) dans un clip cible Pour commencer le
téléchargement du fichier JPEG ou SWF, utilisez la méthode MovieClipLoader.loadClip().
loader.loadClip("scene_2.swf");
Remarque : Vous ne pouvez utiliser que les méthodes MovieClipLoader pour suivre la progression
du téléchargement des fichiers chargés avec la méthode MovieClipLoader.loadClip(). Vous ne
pouvez pas utiliser la fonction loadMovie() ou la méthode MovieClip.loadMovie().
L’exemple suivant utilise la méthode setProgress() du composant ProgressBar pour afficher la
progression du téléchargement d’un fichier SWF. (Consultez « composant ProgressBar » dans le
guide Utilisation des composants de l’aide.)
Pour afficher la progression du téléchargement en utilisant le composant ProgressBar :
1 Dans un nouveau document Flash, créez un clip sur la scène et donnez-lui le nom cible_mc.
2 Ouvrez le panneau Composants (Fenêtre > Panneaux de développement > Composants).
3 Faites glisser un composant ProgressBar du panneau Composants jusqu’à la scène.
4 Dans l’inspecteur des propriétés, donnez le nom pBar au composant ProgressBar et, dans le
volet Paramètres, sélectionnez Manuel dans le menu contextuel Mode.
5 Sélectionnez l’image 1 dans le scénario et ouvrez le panneau Actions (Fenêtre > Panneaux de
développement > Actions).
6 Ajoutez le code suivant au panneau Actions
// créez un objet MovieClipLoader et un objet écouteur
monChargeur = new MovieClipLoader();
monEcouteur = new Object();
// ajoutez les rappels de MovieClipLoader à votre objet écouteur
monEcouteur.onLoadStart = function(clip) {
// cet événement est déclenché une fois, lors du lancement du chargement
pBar.label = "Chargement en cours : " + clip;
};
monEcouteur.onLoadProgress = function(clip, octetsChargés, octetsTotal) {
var pourcentageChargé = int (100 x (octetsChargés/octetsTotal));
pBar.setProgress(bytesLoaded, bytesTotal);
};monChargeur.addListener(monEcouteur);
monChargeur.loadClip("Fichiertrèsvolumineux.swf", cible_mc);208 Chapitre 11 :  Utilisation de médias externes
7 Testez le document en sélectionnant Contrôle > Tester l’animation.
Pour plus d’informations, consultez l’entrée Classe MovieClipLoader dans le
Chapitre 12, Dictionnaire ActionScript Présentation, page 211.
Préchargement des fichiers MP3 et FLV
Pour précharger des fichiers MP3 et FLV, vous pouvez utiliser la fonction setInterval() pour
créer un mécanisme « d’interrogation » qui vérifie les octets chargés par un objet Sound ou
NetStream à des intervalles prédéterminés. Pour suivre la progression du téléchargement des
fichiers MP3, utilisez les méthodes Sound.getBytesLoaded() et Sound.getBytesTotal() ;
pour suivre la progression du téléchargement des fichiers FLV, utilisez les propriétés
NetStream.bytesLoaded et NetStream.bytesTotal.   
Le code suivant utilise setInterval() pour vérifier les octets chargés par un objet Sound ou
NetStream à des intervalles prédéterminés.
// Créez un nouvel objet Sound pour lire le son.
var pisteSon = new Sound();
// Créez la fonction d’interrogation qui suit la progression du téléchargement.
// Il s’agit de la fonction qui est « interrogée ». Elle vérifie
// la progression du téléchargement de l’objet Sound transmis comme une
référence.
checkProgress = function (objSon) {
var octetsChargés = objSon.getBytesLoaded();
var octetsTotal = objSon.getBytesTotal();
var pourcentageChargé = Math.floor(octetsChargés/octetsTotal x 100);
trace("%" + pourcentageChargé + " chargé(s).");
}
// Lorsque le fichier a terminé le chargement, supprimez l’intervalle
d’interrogation.
pisteSon.onLoad = function () {
clearInterval(interrogation);
}
// Charger le fichier MP3 en flux continu et commencer à appeler
checkProgress()
pisteSon.loadSound("beethoven.mp3", true);
var interrogation = setInterval(checkProgress, 1000, pisteSon);
Vous pouvez utiliser ce même type de technique d’interrogation pour précharger des fichiers FLV
externes. Pour obtenir le nombre total d’octets et le nombre d’octets chargés pour un fichier FLV,
utilisez les propriétés NetStream.bytesLoaded et NetStream.bytesTotal.
Une autre façon de précharger les fichiers FLV consiste à utiliser la méthode
NetStream.setBufferTime(). Cette méthode prend un seul paramètre indiquant le nombre de
secondes du flux FLV à télécharger avant le démarrage de la lecture.
Pour plus d’informations, consultez MovieClip.getBytesLoaded(),
MovieClip.getBytesTotal(), NetStream.bytesLoaded, NetStream.bytesTotal,
NetStream.setBufferTime(), setInterval(), Sound.getBytesLoaded() et
Sound.getBytesTotal()dans le Chapitre 12, Dictionnaire ActionScript Présentation, page 211.PARTIE V
Référence
Cette section contient le dictionnaire ActionScript, qui fournit des informations sur la syntaxe et
l’utilisation des éléments du langage ActionScript. Elle contient également des annexes proposant
des informations de référence que vous pouvez consulter lors de la rédaction de vos scripts.
Chapitre 12: Dictionnaire ActionScript Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Annexe A: Messages d’erreur  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
Annexe B: Priorité et associativité des opérateurs  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
Annexe C: Touches du clavier et valeurs de code correspondantes  . . . . . . . . . . . . . . . . . . . . . 781
Annexe D: Ecriture de scripts destinés à des versions antérieures de Flash Player  . . . . . . . . . . 787
Annexe E: Programmation orientée objet avec ActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . 791
PARTIE V211
CHAPITRE 12
Dictionnaire ActionScript Présentation
Ce dictionnaire décrit la syntaxe et l’utilisation des éléments ActionScript dans Macromedia Flash
MX 2004 et Macromedia Flash MX Professionnel 2004. Pour utiliser les exemples de ce
dictionnaire dans un script, copiez le code et collez-le dans la fenêtre de script ou dans un fichier
de script externe. Ce dictionnaire répertorie l’ensemble des éléments ActionScript : opérateurs,
mots-clés, instructions, actions, propriétés, fonctions, classes et méthodes. Pour une vue
d’ensemble de toutes les entrées du dictionnaire, consultez Contenu du dictionnaire, page 213 ; les
tableaux de cette section sont un bon point de départ pour rechercher des opérateurs symboles ou
des méthodes dont vous ne connaissez pas la classe. Pour plus d’informations sur les composants,
veuillez consulter le guide Utilisation des composants.
Ce dictionnaire contient deux types d’entrées différents :
• Des entrées individuelles pour les opérateurs, les mots-clés, les fonctions, les variables, les
propriétés, les méthodes et les instructions.
• Des entrées de classe, qui fournissent des informations générales sur les classes intégrées.
Utilisez les informations contenues dans les entrées en exemple pour interpréter la structure et les
conventions utilisées dans ces types d’entrées.
Exemple d’entrée pour la plupart des éléments ActionScript
L’exemple d’entrée suivant illustre les conventions utilisées pour tous les éléments ActionScript
qui ne sont pas des classes.
Titre de l’entrée
Toutes les entrées sont classées par ordre alphabétique. L’ordre alphabétique ne tient pas compte
des majuscules, des traits de soulignement de préfixe, et ainsi de suite.
Disponibilité
Sauf mention contraire, la section Disponibilité indique les versions de Flash Player qui
supportent l’élément. Ceci est différent de la version de Flash utilisée pour développer le contenu.
Par exemple, si vous utilisez Macromedia Flash MX 2004 ou Macromedia Flash MX
Professionnel 2004 pour créer des contenus pour Flash Player 6, vous ne pourrez utiliser que les
éléments d’ActionScript disponibles dans Flash Player 6.
Dans quelques cas rares, cette section indique également la version de l’outil de programmation
supportant l’élément. Pour obtenir un exemple, consultez System.setClipboard().212 Chapitre 12 : Dictionnaire ActionScript Présentation
Enfin, si un élément n’est supporté que dans ActionScript 2.0, cette section le mentionne
également.
Usage
Cette section présente la syntaxe correcte d’utilisation des éléments ActionScript dans votre code.
La portion obligatoire de la syntaxe est indiquée en police de code ; le code que vous devez
fournir est en italique. Les crochets ([]) indiquent des paramètres facultatifs.
Paramètres
Cette section décrit les paramètres répertoriés dans la syntaxe.
Renvoie
Cette section identifie les valeurs renvoyées par l’élément (le cas échéant).
Description
Cette section identifie le type d’élément (par exemple, opérateur, méthode, fonction ou autre) et
décrit son utilisation.
Exemple
Cette section fournit un exemple de code illustrant l’utilisation de l’élément.
Consultez également
Cette section répertorie les entrées connexes du dictionnaire ActionScript.
Exemple d’entrée pour les classes
L’exemple d’entrée suivant illustre les conventions utilisées pour les classes ActionScript intégrées.
Les classes sont répertoriées par ordre alphabétique avec tous les autres éléments du dictionnaire.
Titre de l’entrée
Le titre de l’entrée fournit le nom de la classe. Le nom de la classe est suivi d’une description
générale.
Tableaux récapitulatifs des méthodes et propriétés
Chaque entrée de classe contient un tableau répertoriant toutes les méthodes associées. Si la classe
possède des propriétés (souvent des constantes), des gestionnaires d’événement ou des écouteurs
d’événement, ces éléments sont répertoriés dans un tableau complémentaire. Tous les éléments
répertoriés dans ces tableaux disposent également de leur propre entrée dans le dictionnaire, à la
suite de l’entrée de la classe correspondante.
Constructeur
Si une classe requiert l’utilisation d’un constructeur pour accéder à ses méthodes et propriétés,
ledit constructeur est décrit dans chaque entrée de classe. La description du constructeur contient
les mêmes éléments standard (syntaxe, description, etc.) que les autres entrées de dictionnaire. Contenu du dictionnaire 213
Listes des méthodes et propriétés
Les méthodes et propriétés de la classe sont répertoriées dans l’ordre alphabétique après l’entrée de
la classe.
Contenu du dictionnaire
Toutes les entrées du dictionnaire sont classées par ordre alphabétique. Cependant, certains
opérateurs sont des symboles et sont classés dans l’ordre ASCII. En outre, les méthodes associées à
une classe sont répertoriées avec le nom de la classe. Ainsi, la méthode abs() de la classe Math est
répertoriée comme Math.abs().
Les deux tableaux suivants vous aideront à trouver ces éléments. Le premier tableau répertorie les
opérateurs symboles dans leur ordre d’apparition dans le dictionnaire. Le second tableau
répertorie tous les autres éléments ActionScript.
Opérateurs symboles Consultez l’entrée
–– –– (décrémentation)
++ ++ (incrémentation)
!  ! (NOT logique)
!= != (inégalité)
!== !== (inégalité stricte)
%  % (modulo)
%=  %= (affectation de modulo)
&  & (Opérateur AND au niveau du bit)
&&  && (AND logique)
&= &= (affectation AND au niveau du bit)
() () (parenthèses)
–  – (moins)
*  * (multiplication)
*= *= (affectation de multiplication)
,  , (virgule)
.  .(point)
: : (type)
?: ?: (conditionnel)
/  / (division)
// // (délimiteur de commentaires)
/* /* (délimiteur de commentaires)
/= /= (affectation de division)
[] [] (accès tableau)
^  ^ (XOR au niveau du bit)214 Chapitre 12 : Dictionnaire ActionScript Présentation
Le tableau suivant répertorie tous les éléments ActionScript qui ne sont pas des opérateurs
symboles.
^= ^= (affectation XOR au niveau du bit)
{} {} (initialisateur d’objet)
|  | (OR au niveau du bit)
||  || (OR logique)
|=  |= (affectation OR au niveau du bit)
~  ~ (NOT au niveau du bit)
+  + (addition)
+=  += (affectation d’addition)
<  <(inférieur à)
<<  << (décalage gauche au niveau du bit)
<<=  <<= (décalage gauche au niveau du bit et affectation)
<=  <= (inférieur ou égal à)
<>  <> (Inégalité)
=  = (affectation)
-=   -= (affectation de soustraction)
==  == (égalité)
=== === (égalité stricte)
>  >(supérieur à)
>=  >= (supérieur ou égal à)
>>  >> (décalage droit au niveau du bit)
>>=  >>= (décalage droit au niveau du bit et affectation)
>>>   >>> (décalage droit non signé au niveau du bit)
>>>=  >>>= (décalage droit non signé au niveau du bit et affectation)
Elément ActionScript Consultez l’entrée
#endinitclip #endinitclip
#include #include
#initclip #initclip
__proto__ Object.__proto__
_accProps _accProps
_alpha MovieClip._alpha, Button._alpha, TextField._alpha
_currentframe MovieClip._currentframe
_droptarget MovieClip._droptarget
Opérateurs symboles Consultez l’entréeContenu du dictionnaire 215
_focusrect _focusrect, Button._focusrect, MovieClip._focusrect
_framesloaded MovieClip._framesloaded
_global _global object
_height Button._height, MovieClip._height, TextField._height
_highquality _highquality, Button._highquality, MovieClip._highquality,
TextField._highquality
_lockroot MovieClip._lockroot
_name Button._name, MovieClip._name, TextField._name
_parent _parent, Button._parent, MovieClip._parent, TextField._parent
_quality _quality, Button._quality, TextField._quality
_root _root
_rotation Button._rotation, MovieClip._rotation, TextField._rotation
_soundbuftime _soundbuftime, Button._soundbuftime, MovieClip._soundbuftime,
TextField._soundbuftime
_target Button._target, MovieClip._target, TextField._target
_totalframes MovieClip._totalframes
_url Button._url, MovieClip._url, TextField._url
_visible Button._visible, MovieClip._visible, TextField._visible
_width Button._width, MovieClip._width, TextField._width
_x Button._x, MovieClip._x, TextField._x
_xmouse Button._xmouse, MovieClip._xmouse, TextField._xmouse
_xscale Button._xscale, MovieClip._xscale, TextField._xscale
_y Button._y, MovieClip._y, TextField._y
_ymouse Button._ymouse, MovieClip._ymouse, TextField._ymouse
_yscale Button._yscale, MovieClip._yscale, TextField._yscale
abs  Math.abs()
Accessibility Classe Accessibility
acos  Math.acos
activityLevel Camera.activityLevel, Microphone.activityLevel
add add
addListener Key.addListener(), Mouse.addListener(),
MovieClipLoader.addListener(), Selection.addListener,
Stage.addListener, TextField.addListener()
addPage PrintJob.addPage()
addProperty Object.addProperty()
Elément ActionScript Consultez l’entrée216 Chapitre 12 : Dictionnaire ActionScript Présentation
addRequestHeader LoadVars.addRequestHeader(), XML.addRequestHeader()
alignement Stage.align, TextFormat.align
allowDomain LocalConnection.allowDomain, System.security.allowDomain()
allowInsecureDomain LocalConnection.allowInsecureDomain,
System.security.allowInsecureDomain()
and and
appendChild XML.appendChild()
apply Function.apply()
Arguments Classe Arguments
Array Classe Array, Array()
asfunction asfunction
asin Math.asin()
atan Math.atan()
atan2  Math.atan2()
attachAudio MovieClip.attachAudio()
attachMovie  MovieClip.attachMovie()
attachSound  Sound.attachSound()
attachVideo Video.attachVideo()
attributs  XML.attributes
autosize TextField.autoSize
avHardwareDisable System.capabilities.avHardwareDisable
background TextField.background
backgroundColor TextField.backgroundColor
BACKSPACE  Key.BACKSPACE
bandwidth Camera.bandwidth
beginFill MovieClip.beginFill()
beginGradientFill MovieClip.beginGradientFill()
blockIndent TextFormat.blockIndent
bold TextFormat.bold
Boolean Boolean(), Classe Boolean
border TextField.border
borderColor TextField.borderColor
bottomScroll TextField.bottomScroll
break break
Elément ActionScript Consultez l’entréeContenu du dictionnaire 217
bufferLength NetStream.bufferLength
bufferTime NetStream.bufferTime
builtInItems ContextMenu.builtInItems
bullet TextFormat.bullet
Button Classe Button
bytesLoaded NetStream.bytesLoaded
bytesTotal NetStream.bytesTotal
call call(), Function.call
callee arguments.callee
caller arguments.caller
Camera Classe Camera
capabilities Objet System.capabilities
CAPSLOCK  Key.CAPSLOCK
caption ContextMenuItem.caption
case case
catch try..catch..finally
ceil Math.ceil()
charAt String.charAt
charCodeAt String.charCodeAt
childNodes XML.childNodes
chr chr
class classe
clear MovieClip.clear(), SharedObject.clear(), Video.clear()
clearInterval clearInterval()
cloneNode XML.cloneNode()
close LocalConnection.close(), NetStream.close(), XMLSocket.close
Color Classe Color, TextFormat.color
concat Array.concat, String.concat()
connect LocalConnection.connect(), NetConnection.connect(),
XMLSocket.connect
condenseWhite TextField.condenseWhite
Elément ActionScript Consultez l’entrée218 Chapitre 12 : Dictionnaire ActionScript Présentation
constructeur Classe Array, Classe Boolean, Classe Camera, Classe Color, Classe
ContextMenu, Classe ContextMenuItem, Classe Date, Classe Error,
Classe LoadVars, Classe LocalConnection, Classe Microphone, Classe
NetConnection, Classe NetStream, Classe Number, Classe Object,
Classe PrintJob, Classe SharedObject, Classe Sound, Classe String,
Classe TextField.StyleSheet, Classe TextFormat, Classe XML, Classe
XMLSocket
contentType LoadVars.contentType, XML.contentType
ContextMenu Classe ContextMenu
ContextMenuItem Classe ContextMenuItem
continue continue
CONTROL Key.CONTROL
copy ContextMenu.copy(), ContextMenuItem.copy()
cos Math.cos
createElement XML.createElement
createEmptyMovieClip MovieClip.createEmptyMovieClip()
createTextField MovieClip.createTextField()
createTextNode  XML.createTextNode
currentFps Camera.currentFps, NetStream.currentFps
curveTo MovieClip.curveTo()
CustomActions Classe CustomActions
customItems ContextMenu.customItems
data SharedObject.data
Date Classe Date
deblocking Video.deblocking
default default
delete delete
DELETEKEY Key.DELETEKEY
do while do while
docTypeDecl XML.docTypeDecl
domain LocalConnection.domain()
DOWN  Key.DOWN
duplicateMovieClip  duplicateMovieClip(), MovieClip.duplicateMovieClip
duration Sound.duration
dynamic dynamic
E Math.E
Elément ActionScript Consultez l’entréeContenu du dictionnaire 219
else else
else if else if
embedFonts TextField.embedFonts
enabled Button.enabled, ContextMenuItem.enabled, MovieClip.enabled
END  Key.END
endFill MovieClip.endFill()
ENTER  Key.ENTER
eq eq (égal à — spécifique à la chaîne)
Error Classe Error
ESCAPE (constante) Key.ESCAPE
escape (fonction) escape
eval  eval()
exactSettings System.exactSettings
exp  Math.exp
extends extends
false false
finally try..catch..finally
findText TextSnapshot.findText()
firstChild  XML.firstChild
floor  Math.floor
flush SharedObject.flush()
focusEnabled MovieClip.focusEnabled
font TextFormat.font
for for
for..in for..in
fps Camera.fps
fromCharCode  String.fromCharCode()
fscommand  fscommand()
function function, Classe Function
gain Microphone.gain
ge ge (supérieur ou égal à – spécifique aux chaînes)
get Camera.get(), CustomActions.get(), get, Microphone.get()
getAscii  Key.getAscii()
getBeginIndex  Selection.getBeginIndex()
Elément ActionScript Consultez l’entrée220 Chapitre 12 : Dictionnaire ActionScript Présentation
getBounds MovieClip.getBounds
getBytesLoaded LoadVars.getBytesLoaded(), MovieClip.getBytesLoaded(),
Sound.getBytesLoaded(), XML.getBytesLoaded()
getBytesTotal LoadVars.getBytesTotal(), MovieClip.getBytesTotal(),
Sound.getBytesTotal(), XML.getBytesTotal()
getCaretIndex  Selection.getCaretIndex()
getCode  Key.getCode()
getCount TextSnapshot.getCount()
getDate  Date.getDate
getDay  Date.getDay()
getDepth Button.getDepth, MovieClip.getDepth(), TextField.getDepth()
getEndIndex  Selection.getEndIndex()
getFocus  Selection.getFocus()
getFontList TextField.getFontList
getFullYear  Date.getFullYear
getHours  Date.getHours()
getInstanceAtDepth MovieClip.getInstanceAtDepth()
getLocal SharedObject.getLocal()
getMilliseconds  Date.getMilliseconds()
getMinutes  Date.getMinutes()
getMonth Date.getMonth
getNewTextFormat TextField.getNewTextFormat()
getNextHighestDepth MovieClip.getNextHighestDepth()
getPan Sound.getPan()
getProgress MovieClipLoader.getProgress()
getProperty getProperty
getRGB Color.getRGB()
getSeconds Date.getSeconds
getSelected TextSnapshot.getSelected()
getSelectedText TextSnapshot.getSelectedText()
getSize SharedObject.getSize()
getStyle TextField.StyleSheet.getStyle()
getStyleNames TextField.StyleSheet.getStyleNames()
getSWFVersion MovieClip.getSWFVersion()
getText TextSnapshot.getText()
Elément ActionScript Consultez l’entréeContenu du dictionnaire 221
getTextExtent TextFormat.getTextExtent()
getTextFormat TextField.getTextFormat()
getTextSnapshot MovieClip.getTextSnapshot()
getTime Date.getTime()
getTimer getTimer
getTimezoneOffset Date.getTimezoneOffset()
getTransform Color.getTransform(), Sound.getTransform()
getURL getURL(), MovieClip.getURL()
getUTCDate Date.getUTCDate()
getUTCDay Date.getUTCDay()
getUTCFullYear Date.getUTCFullYear()
getUTCHours Date.getUTCHours()
getUTCMilliseconds Date.getUTCMilliseconds()
getUTCMinutes Date.getUTCMinutes()
getUTCMonth Date.getUTCMonth()
getUTCSeconds Date.getUTCSeconds()
getVersion getVersion
getVolume Sound.getVolume()
getYear Date.getYear()
globalToLocal MovieClip.globalToLocal()
goto gotoAndPlay(), gotoAndStop()
gotoAndPlay gotoAndPlay(), MovieClip.gotoAndPlay()
gotoAndStop gotoAndStop(), MovieClip.gotoAndStop
gt gt (supérieur à — spécifique aux chaînes)
hasAccessibility System.capabilities.hasAccessibility
hasAudio System.capabilities.hasAudio
hasAudioEncoder System.capabilities.hasAudioEncoder
hasChildNodes XML.hasChildNodes()
hasEmbeddedVideo System.capabilities.hasEmbeddedVideo
hasMP3 System.capabilities.hasMP3
hasPrinting System.capabilities.hasPrinting
hasScreenBroadcast System.capabilities.hasScreenBroadcast
hasScreenPlayback System.capabilities.hasScreenPlayback
hasStreamingAudio System.capabilities.hasStreamingAudio
hasStreamingVideo System.capabilities.hasStreamingVideo
Elément ActionScript Consultez l’entrée222 Chapitre 12 : Dictionnaire ActionScript Présentation
hasVideoEncoder System.capabilities.hasVideoEncoder
height Camera.height, Stage.height, Video.height
hide Mouse.hide()
hideBuiltInItems ContextMenu.hideBuiltInItems()
hitArea MovieClip.hitArea
hitTest MovieClip.hitTest()
hitTestTextNearPos TextSnapshot.hitTestTextNearPos()
HOME Key.HOME
hscroll TextField.hscroll
html TextField.html
htmlText TextField.htmlText
ID3 Sound.ID3
if
ifFrameLoaded ifFrameLoaded
ignoreWhite XML.ignoreWhite
implements implements
import import
indentation TextFormat.indent
index Camera.index, Microphone.index
indexOf String.indexOf
Infinity Infinity
-Infinity -Infinity
INSERT Key.INSERT
insertBefore XML.insertBefore
install CustomActions.install()
instanceof instanceof
int int
interface interface
isActive Accessibility.isActive()
isDebugger System.capabilities.isDebugger
isDown Key.isDown()
isFinite isFinite
isNaN isNaN()
isToggled Key.isToggled()
italic TextFormat.italic
Elément ActionScript Consultez l’entréeContenu du dictionnaire 223
join Array.join()
key Classe Key
language System.capabilities.language
lastChild XML.lastChild
lastIndexOf String.lastIndexOf
le le (inférieur ou égal à — spécifique aux chaînes)
leading TextFormat.leading
LEFT Key.LEFT
leftMargin TextFormat.leftMargin
length length, arguments.length, Array.length, String.length,
TextField.length
level _level
lineStyle MovieClip.lineStyle()
lineTo MovieClip.lineTo()
list CustomActions.list()
LN10 Math.LN10
LN2 Math.LN2
load LoadVars.load(), TextField.StyleSheet.load(), XML.load(),
loadClip MovieClipLoader.loadClip()
loaded LoadVars.loaded, XML.loaded
loadMovie loadMovie(), MovieClip.loadMovie
loadMovieNum loadMovieNum()
loadSound Sound.loadSound
loadVariables loadVariables(), MovieClip.loadVariables()
loadVariablesNum loadvariablesNum()
LoadVars Classe LoadVars
LocalConnection Classe LocalConnection
localFileReadDisable System.capabilities.localFileReadDisable
localToGlobal MovieClip.localToGlobal()
log Math.log()
LOG10E Math.LOG10E
LOG2E Math.LOG2E
lt lt (inférieur à — spécifique aux chaînes)
manufacturer System.capabilities.manufacturer
Math Classe Math
Elément ActionScript Consultez l’entrée224 Chapitre 12 : Dictionnaire ActionScript Présentation
max Math.max()
MAX_VALUE Number.MAX_VALUE
maxChars TextField.maxChars
maxhscroll TextField.maxhscroll
maxscroll maxscroll, TextField.maxscroll
mbchr mbchr
mblength mblength
mbord mbord
mbsubstring mbsubstring
menu Button.menu, MovieClip.menu, TextField.menu
message Error.message
Microphone Classe Microphone
min Math.min()
MIN_VALUE Number.MIN_VALUE
MMExecute MMExecute()
motionLevel Camera.motionLevel
motionTimeOut Camera.motionTimeOut
Mouse Classe Mouse
mouseWheelEnabled TextField.mouseWheelEnabled
moveTo MovieClip.moveTo()
MovieClip Classe MovieClip
MovieClipLoader Classe MovieClipLoader
multiline TextField.multiline
muted Camera.muted, Microphone.muted
name Error.name, Microphone.name
names Camera.names, Microphone.names
NaN NaN, Number.NaN
ne ne (pas égal à — spécifique aux chaînes)
NEGATIVE_INFINITY Number.NEGATIVE_INFINITY
NetConnection Classe NetConnection
NetStream Classe NetStream
new (opérateur) new
newline newline
nextFrame nextFrame(), MovieClip.nextFrame()
Elément ActionScript Consultez l’entréeContenu du dictionnaire 225
nextScene nextScene()
nextSibling XML.nextSibling
nodeName XML.nodeName
nodeType XML.nodeType
nodeValue XML.nodeValue
not not
null null
Number Number, Classe Number
Object Classe Object, Objet()
on on()
onActivity Camera.onActivity, Microphone.onActivity
onChanged TextField.onChanged
onClipEvent onClipEvent()
onClose XMLSocket.onClose
onConnect XMLSocket.onConnect
onData LoadVars.onData, MovieClip.onData, XML.onData, XMLSocketXML.onData()
onDragOut Button.onDragOut, MovieClip.onDragOut
onDragOver Button.onDragOver, MovieClip.onDragOver
onEnterFrame MovieClip.onEnterFrame
onID3 Sound.onID3
onKeyDown Button.onKeyDown, Key.onKeyDown, MovieClip.onKeyDown
onKeyUp Button.onKeyUp, Key.onKeyUp, MovieClip.onKeyUp
onKillFocus Button.onKillFocus, MovieClip.onKillFocus, TextField.onKillFocus
onLoad LoadVars.onLoad, MovieClip.onLoad, Sound.onLoad,
TextField.StyleSheet.onLoad, XML.onLoad
onLoadComplete MovieClipLoader.onLoadComplete()
onLoadError MovieClipLoader.onLoadError()
onLoadInit MovieClipLoader.onLoadInit()
onLoadProgress MovieClipLoader.onLoadProgress()
onLoadStart MovieClipLoader.onLoadStart()
onMouseDown Mouse.onMouseDown, MovieClip.onMouseDown
onMouseMove Mouse.onMouseMove, MovieClip.onMouseMove
onMouseUp Mouse.onMouseUp, MovieClip.onMouseUp
onMouseWheel Mouse.onMouseWheel
Elément ActionScript Consultez l’entrée226 Chapitre 12 : Dictionnaire ActionScript Présentation
onPress Button.onPress, MovieClip.onPress
onRelease Button.onRelease, MovieClip.onRelease
onReleaseOutisde Button.onReleaseOutside, MovieClip.onReleaseOutside
onResize Stage.onResize
onRollOut Button.onRollOut, MovieClip.onRollOut
onRollOver Button.onRollOver, MovieClip.onRollOver
onScroller TextField.onScroller
onSelect ContextMenu.onSelect, ContextMenuItem.onSelect
onSetFocus Button.onSetFocus, MovieClip.onSetFocus, Selection.onSetFocus,
TextField.onSetFocus
onSoundComplete Sound.onSoundComplete
onStatus Camera.onStatus, LocalConnection.onStatus, Microphone.onStatus,
NetStream.onStatus, SharedObject.onStatus, System.onStatus
onUnload MovieClip.onUnload
onUpdate onUpdate
onXML XMLSocket.onXML
or (OR logique) or
ord ord
os System.capabilities.os
parentNode XML.parentNode
parseCSS TextField.StyleSheet.parseCSS()
parseFloat parseFloat()
parseInt parseInt
parseXML XML.parseXML
password TextField.password
pause NetStream.pause()
PGDN Key.PGDN
PGUP Key.PGUP
PI Math.PI
pixelAspectRatio System.capabilities.pixelAspectRatio
play play(), MovieClip.play(), NetStream.play()
playerType System.capabilities.playerType
pop Array.pop()
position Sound.position
POSITIVE_INFINITY Number.POSITIVE_INFINITY
Elément ActionScript Consultez l’entréeContenu du dictionnaire 227
pow Math.pow()
prevFrame prevFrame(), MovieClip.prevFrame()
previousSibling XML.previousSibling
prevScene prevScene()
print print()
printAsBitmap printAsBitmap()
printAsBitmapNum printAsBitmapNum
PrintJob Classe PrintJob
printNum printNum()
private private
prototype Function.prototype
public public
push Array.push()
quality Camera.quality
random random, Math.random()
rate Microphone.rate
registerClass Object.registerClass()
removeListener Key.removeListener(), Mouse.removeListener(),
MovieClipLoader.removeListener(), Selection.removeListener,
Stage.removeListener, TextField.removeListener
removeMovieClip removeMovieClip(), MovieClip.removeMovieClip()
removeNode XML.removeNode
removeTextField TextField.removeTextField()
replaceSel TextField.replaceSel()
replaceText TextField.replaceText()
resolutionX System.capabilities.screenResolutionX
resolutionY System.capabilities.screenResolutionY
restrict TextField.restrict
return return
reverse Array.reverse()
RIGHT Key.RIGHT
rightMargin TextFormat.rightMargin
round Math.round()
scaleMode Stage.scaleMode
screenColor System.capabilities.screenColor
Elément ActionScript Consultez l’entrée228 Chapitre 12 : Dictionnaire ActionScript Présentation
screenDPI System.capabilities.screenDPI
screenResolutionX System.capabilities.screenResolutionX
screenResolutionY System.capabilities.screenResolutionY
scroll scroll, TextField.scroll
seek NetStream.seek()
selectable TextField.selectable
Selection Classe Selection
send LoadVars.send(), LocalConnection.send(), PrintJob.send(), XML.send,
XMLSocket.send
sendAndLoad LoadVars.sendAndLoad(), XML.sendAndLoad
separatorBefore ContextMenuItem.separatorBefore
serverString System.capabilities.serverString
set set
set variable Variable set
setBufferTime NetStream.setBufferTime()
setClipboard System.setClipboard()
setDate Date.setDate()
setFocus  Selection.setFocus()
setFullYear Date.setFullYear()
setGain Microphone.setGain()
setHours Date.setHours()
setInterval setInterval()
setMask MovieClip.setMask()
setMilliseconds Date.setMilliseconds()
setMinutes Date.setMinutes()
setMode Camera.setMode()
setMonth Date.setMonth()
setMotionLevel Camera.setMotionLevel()
setNewTextFormat TextField.setNewTextFormat
setPan Sound.setPan
setProperty setProperty()
setQuality Camera.setQuality()
setRate Microphone.setRate()
setRGB Color.setRGB()
setSeconds Date.setSeconds()
Elément ActionScript Consultez l’entréeContenu du dictionnaire 229
setSelectColor TextSnapshot.setSelectColor()
setSelected TextSnapshot.setSelected()
setSelection Selection.setSelection()
setSilenceLevel Microphone.setSilenceLevel()
setStyle TextField.StyleSheet.setStyle()
setTextFormat TextField.setTextFormat
setTime Date.setTime()
setTransform Color.setTransform(), Sound.setTransform
setUseEchoSuppression Microphone.setUseEchoSuppression()
setUTCDate Date.setUTCDate()
setUTCFullYear Date.setUTCFullYear()
setUTCHours Date.setUTCHours()
setUTCMilliseconds Date.setUTCMilliseconds()
setUTCMinutes Date.setUTCMinutes()
setUTCMonth Date.setUTCMonth()
setUTCSeconds Date.setUTCSeconds()
setVolume Sound.setVolume
setYear Date.setYear()
SharedObject Classe SharedObject
SHIFT (constante) Key.SHIFT
shift (méthode) Array.shift
show Mouse.show()
showMenu Stage.showMenu
showSettings System.showSettings()
silenceLevel Microphone.silenceLevel()
silenceTimeout Microphone.silenceTimeout()
sin Math.sin()
size TextFormat.size
slice Array.slice, String.slice
smoothing Video.smoothing
sort Array.sort
sortOn Array.sortOn()
Sound Classe Sound
SPACE Key.SPACE
Elément ActionScript Consultez l’entrée230 Chapitre 12 : Dictionnaire ActionScript Présentation
splice Array.splice()
split String.split
sqrt Math.sqrt()
SQRT1_2 Math.SQRT1_2
SQRT2 Math.SQRT2
Stage Classe Stage
start PrintJob.start(), Sound.start()
startDrag startDrag(), MovieClip.startDrag()
static static
status XML.status
stop stop(), MovieClip.stop(), Sound.stop
stopAllSounds stopAllSounds()
stopDrag stopDrag(), MovieClip.stopDrag()
String Classe String, String
StyleSheet (classe) Classe TextField.StyleSheet
styleSheet
(propriété)
TextField.styleSheet
substr String.substr
substring substring, String.substring
super super
swapDepths MovieClip.swapDepths()
switch switch
System Classe System
Tab Key.TAB
tabChildren MovieClip.tabChildren
tabEnabled Button.tabEnabled, mon_mc.tabEnabled, TextField.tabEnabled
tabIndex Button.tabIndex, MovieClip.tabIndex, TextField.tabIndex
tabStops TextFormat.tabStops
tan Math.tan()
target TextFormat.target
targetPath targetPath
tellTarget tellTarget
text TextField.text
textColor TextField.textColor
TextField Classe TextField
Elément ActionScript Consultez l’entréeContenu du dictionnaire 231
TextFormat Classe TextFormat
textHeight TextField.textHeight
TextSnapshot objet TextSnapshot
textWidth TextField.textWidth
this this
throw throw
time NetStream.time
toggleHighQuality toggleHighQuality()
toLowerCase String.toLowerCase
toString Array.toString(), Boolean.toString, Date.toString(),
Error.toString(), LoadVars.toString(), Number.toString(),
Object.toString(), XML.toString
toUpperCase String.toUpperCase
trace trace()
trackAsMenu Button.trackAsMenu, MovieClip.trackAsMenu
true true
try try..catch..finally
type TextField.type
typeof typeof
undefined undefined
underline TextFormat.underline
unescape unescape
uninstall CustomActions.uninstall
unloadClip MovieClipLoader.unloadClip()
unloadMovie unloadMovie(), MovieClip.unloadMovie()
unLoadMovieNum unloadMovieNum()
unshift Array.unshift()
unwatch Object.unwatch()
UP Key.UP
updateAfterEvent updateAfterEvent()
updateProperties Accessibility.updateProperties()
url TextFormat.url
useCodePage System.useCodepage
useEchoSuppression Microphone.useEchoSuppression()
useHandCursor Button.useHandCursor, MovieClip.useHandCursor
Elément ActionScript Consultez l’entrée232 Chapitre 12 : Dictionnaire ActionScript Présentation
–– (décrémentation)
Disponibilité
Flash Player 4.
Usage
––expression
expression––
Paramètres
Aucun.
Renvoie
Nombre.
Description
Opérateur (arithmétique) : opérateur unaire de pré et post-décrémentation qui soustrait 1 de
l’expression. La forme de pré-décrémentation de l’opérateur (––expression) soustrait 1 de
l’expression et renvoie le résultat. La forme de post-décrémentation de l’opérateur
(expression––) soustrait 1 de l’expression et renvoie la valeur initiale de l’expression (le
résultat avant la soustraction).
UTC Date.UTC()
valueOf Boolean.valueOf(), Number.valueOf, Object.valueOf()
var var
variable TextField.variable
version System.capabilities.version
Video Classe Video
visible ContextMenuItem.visible
void void
watch Object.watch()
while while
width Camera.width, Stage.width, Video.width
with with
wordwrap TextField.wordWrap
XML Classe XML
xmlDecl XML.xmlDecl
XMLNode Classe XMLNode
XMLSocket Classe XMLSocket
Elément ActionScript Consultez l’entrée++ (incrémentation) 233
Exemple
La forme de pré-décrémentation de l’opérateur décrémente x de 2 (x - 1 = 2) et renvoie le
résultat comme y :
x = 3;
y = --x;
// y est égal à 2
La forme de post-décrémentation de l’opérateur décrémente x de 2 (x - 1 = 2) et renvoie la
valeur originale de x comme résultat y :
x = 3;
y = x--
//y est égal à 3
++ (incrémentation)
Disponibilité
Flash Player 4.
Usage
++expression
expression++
Paramètres
Aucun.
Renvoie
Nombre.


Cordialement

L'équipe Parisdepannage.fr

Hors ligne

 

Pied de page des forums


Copyright Parisdepannage.fr


Fermer la fenètre