Manuel du propriétaire | MACROMEDIA Flash MX 2004 Manuel utilisateur

Ajouter à Mes manuels
930 Des pages
Manuel du propriétaire | MACROMEDIA Flash MX 2004 Manuel utilisateur | Fixfr
Guide de référence ActionScript
Marques
Add Life to the Web, Afterburner, Aftershock, Andromedia, Allaire, Animation PowerPack, Aria, Attain, Authorware,
Authorware Star, Backstage, Bright Tiger, Clustercats, ColdFusion, Contribute, Design In Motion, Director, Dream Templates,
Dreamweaver, Drumbeat 2000, EDJE, EJIPT, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, Generator, HomeSite,
JFusion, JRun, Kawa, Know Your Site, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo, Live
Effects, MacRecorder Logo and Design, Macromedia, Macromedia Action!, Macromedia Flash, Macromedia M Logo and
Design, Macromedia Spectra, Macromedia xRes Logo and Design, MacroModel, Made with Macromedia, Made with
Macromedia Logo and Design, MAGIC Logo and Design, Mediamaker, Movie Critic, Open Sesame!, Roundtrip, Roundtrip
HTML, Shockwave, Sitespring, SoundEdit, Titlemaker, UltraDev, Web Design 101, what the web can be et Xtra sont des
marques de commerce ou des marques déposées de Macromedia, Inc. qui peuvent être déposées aux Etats-Unis et/ou dans
d’autres juridictions ou pays. Les autres noms de produits, logos, graphiques, mises en page, titres, mots ou expressions
mentionnés dans cette publication peuvent être des marques de commerce, des marques de service ou des noms de marque
appartenant à Macromedia, Inc. ou à d’autres entités et peuvent être déposés dans certaines juridictions ou pays.
Autres marques mentionnées
Ce guide contient des liens vers des sites Web qui ne sont pas sous le contrôle de Macromedia, qui n’est donc aucunement
responsable de leur contenu. L’accès à ces sites se fait sous votre seule responsabilité. Macromedia mentionne ces liens pour
référence, ce qui n’implique pas son soutien, accord ou responsabilité quant au contenu des sites.
Technologie de compression et décompression audio discours utilisée sous licence de Nellymoser, Inc. (www.nellymoser.com).
Technologie de compression et décompression vidéo Sorenson™ Spark™ utilisée sous licence de
Sorenson Media, Inc.
Navigateur Opera ® Copyright © 1995-2002 Opera Software ASA et ses fournisseurs. Tous droits réservés.
Limite de garantie et de responsabilité Apple
APPLE COMPUTER, INC. N’OFFRE AUCUNE GARANTIE, EXPRES OU IMPLICITE, CONCERNANT CE
LOGICIEL, SA CAPACITE A ETRE COMMERCIALISE OU A REPONDRE A UN BESOIN PARTICULIER.
L’EXCLUSION DES GARANTIES IMPLICITES EST INTERDITE PAR CERTAINS PAYS, ETATS OU PROVINCES.
L’EXCLUSION ENONCEE CI-DESSUS PEUT NE PAS S’APPLIQUER A VOTRE CAS PARTICULIER. CETTE
GARANTIE VOUS ASSURE DES DROITS SPECIFIQUES. D’AUTRES DROITS VARIANT D’UN PAYS A L’AUTRE
PEUVENT EGALEMENT VOUS ETRE ACCORDES.
Copyright © 2003 Macromedia, Inc. Tous droits réservés. La copie, photocopie, reproduction, traduction ou conversion
de ce manuel, sous quelque forme que ce soit, mécanique ou électronique, partiellement ou dans son intégralité est
interdite sans l’autorisation préalable obtenue par écrit auprès de Macromedia, Inc. Référence ZFL70M400F
Remerciements
Directeur : Erick Vera
Gestion du projet : Stephanie Gowin, Barbara Nelson
Rédaction : Jody Bleyle, Mary Burger, Kim Diezel, Stephanie Gowin, Dan Harris, Barbara Herbert, Barbara Nelson,
Shirley Ong, Tim Statler
Rédactrice en chef : Rosana Francescato
Révision : Linda Adler, Mary Ferguson, Mary Kraemer, Noreen Maher, Antonio Padial, Lisa Stanziano, Anne Szabla
Gestion de la production : Patrice O’Neill
Conception et production des supports : Adam Barnett, Christopher Basmajian, Aaron Begley, John Francis, Jeff Harmon
Localisation : Tim Hussey, Seungmin Lee, Masayo Noda, Simone Pux, Yuko Yagi, Florian de Joannès
Première édition : Octobre 2003
Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103
TABLE DES MATIERES
INTRODUCTION : Bien démarrer avec ActionScript
....................... 9
Public visé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Configuration système requise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Utilisation de la documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Conventions typographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Terminologie utilisée dans ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Ressources supplémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
PARTIE I : Bienvenue dans ActionScript
CHAPITRE 1 : Nouveautés du langage ActionScript dans Flash MX 2004 . . . . .
15
Eléments de langage nouveaux et modifiés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nouveau modèle de sécurité et fichiers SWF hérités . . . . . . . . . . . . . . . . . . . . . . .
Portage de scripts existants sur Flash Player 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifications de l’éditeur ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifications apportées dans le domaine du débogage . . . . . . . . . . . . . . . . . . . . .
Nouveau modèle de programmation orientée objet . . . . . . . . . . . . . . . . . . . . . . . .
15
17
17
23
24
25
CHAPITRE 2 : Notions de base du langage ActionScript .
. . . . . . . . . . . . . . . . . . 27
Différences entre ActionScript et JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Support du format Unicode pour ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A propos des types de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Affectation de types de données aux éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A propos des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation d’opérateurs pour manipuler les valeurs des expressions . . . . . . . . . . . .
Définition du chemin d’un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation de fonctions intégrées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Création de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
28
29
32
36
40
43
48
53
54
54
3
CHAPITRE 3 : Rédaction et débogage de scripts
. . . . . . . . . . . . . . . . . . . . . . . . 59
Contrôle de l’exécution d’ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Utilisation du panneau Actions et de la fenêtre de script . . . . . . . . . . . . . . . . . . . . 62
Utilisation de l’éditeur ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Débogage de scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Utilisation du panneau de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Mise à jour de Flash Player pour le test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
PARTIE II : Gestion des événements et création d’interactivité
CHAPITRE 4 : Gestion d’événements.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Utilisation de méthodes de gestionnaire d’événement . . . . . . . . . . . . . . . . . . . . . . 89
Utilisation des écouteurs d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Utilisation de gestionnaires d’événement de bouton et de clip . . . . . . . . . . . . . . . . 92
Création de clips avec états de bouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Domaine du gestionnaire d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Domaine du mot-clé « this » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
CHAPITRE 5 : Création d’interactivité avec ActionScript .
. . . . . . . . . . . . . . . . . . 97
A propos des événements et de l’interaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Contrôle de la lecture d’un fichier SWF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Création d’interactivité et d’effets visuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Structure d’un exemple de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
PARTIE III : Utilisation des objets et des classes
CHAPITRE 6 : Utilisation des classes intégrées
. . . . . . . . . . . . . . . . . . . . . . . . . 119
A propos des classes et des occurrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Aperçu des classes intégrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
CHAPITRE 7 : Utilisation des clips
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
A propos du contrôle des clips à l’aide d’ActionScript . . . . . . . . . . . . . . . . . . . . . 127
Appel de plusieurs méthodes sur un seul clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Chargement et déchargement de fichiers SWF supplémentaires . . . . . . . . . . . . . 129
Spécification d’un scénario racine pour les fichiers SWF chargés . . . . . . . . . . . . . 130
Chargement de fichiers JPEG dans des clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Modification de la position et de l’apparence d’un clip . . . . . . . . . . . . . . . . . . . . 131
Déplacement des clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Création de clips à l’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Ajout de paramètres aux clips créés dynamiquement . . . . . . . . . . . . . . . . . . . . . . 134
Gestion des profondeurs de clip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Dessin de formes avec ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Utilisation de clips comme masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4
Table des matières
Gestion d’événements de clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Affectation d’une classe à un symbole de clip. . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Initialisation de propriétés de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
CHAPITRE 8 : Utilisation du texte . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Utilisation de la classe TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Création de champs de texte à l’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation de la classe TextFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatage de texte avec les feuilles de style en cascade. . . . . . . . . . . . . . . . . . . . .
Utilisation de texte au format HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Création de texte défilant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPITRE 9 : Création de classes avec ActionScript 2.0 .
142
143
144
145
154
161
. . . . . . . . . . . . . . . . 163
Principes de la programmation orientée objet . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation des classes : un exemple simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Création et utilisation de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Membres d’occurrence et de classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Création et utilisation d’interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compréhension du chemin de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importation de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Méthodes get/set implicites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Création de classes dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compilation et exportation des classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
164
165
169
173
175
177
179
180
181
182
183
PARTIE IV : Utilisation des données et des médias externes
CHAPITRE 10 : Utilisation de données externes . . . . .
. . . . . . . . . . . . . . . . . . . . 187
Echange de variables avec une source distante . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Echange de messages avec Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Fonctions de sécurité de Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
CHAPITRE 11 : Utilisation de médias externes
. . . . . . . . . . . . . . . . . . . . . . . . . . 205
Aperçu du chargement de média externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chargement de fichiers SWF et JPEG externes . . . . . . . . . . . . . . . . . . . . . . . . . .
Chargement des fichiers externes MP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lecture des balises ID3 dans les fichiers MP3 . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lecture dynamique des fichiers FLV externes. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Préchargement de média externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table des matières
205
206
207
208
209
210
5
PARTIE V : Référence
CHAPITRE 12 : Dictionnaire ActionScript
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Exemple d’entrée pour la plupart des éléments ActionScript . . . . . . . . . . . . . . . . 215
Exemple d’entrée pour les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Contenu du dictionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Classe Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Classe Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Classe Array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Classe Boolean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Classe Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Classe Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Classe Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Classe ContextMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Classe ContextMenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Classe CustomActions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Classe Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Classe Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Classe Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Classe Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Classe LoadVars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Classe LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Classe Math. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Classe Microphone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Classe Mouse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Classe MovieClip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Classe MovieClipLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Classe NetConnection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Classe NetStream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
Classe Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Classe Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
Classe PrintJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Classe Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
Classe SharedObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
Classe Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
Classe Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Classe String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
Classe System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Objet System.capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
Objet System.security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
Classe TextField. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
Classe TextField.StyleSheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
Classe TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
Objet TextSnapshot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
Classe Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
Classe XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
Classe XMLNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
Classe XMLSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
6
Table des matières
ANNEXE A : Messages d’erreur .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
ANNEXE B : Priorité et associativité des opérateurs .
. . . . . . . . . . . . . . . . . . . . . 899
ANNEXE C : Touches du clavier et valeurs de code correspondantes
. . . . . . . . 901
Lettres A à Z et chiffres (clavier standard) de 0 à 9. . . . . . . . . . . . . . . . . . . . . . . . 901
Touches du clavier numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
Touches de fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
Autres touches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
ANNEXE D : Ecriture de scripts destinés à des versions antérieures
de Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 907
A propos du ciblage d’anciennes versions de Flash Player. . . . . . . . . . . . . . . . . . . 907
Utilisation de Flash MX 2004 pour créer du contenu destiné à Flash Player 4 . . . 908
ANNEXE E : Programmation orientée objet avec ActionScript 1 . . .
. . . . . . . . . . 911
A propos d’ActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
INDEX
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
Table des matières
7
8
Table des matières
INTRODUCTION
Bien démarrer avec ActionScript
Macromedia Flash MX 2004 et Flash MX Professionnel 2004 sont les outils standard des
professionnels pour la création de contenu web percutant. ActionScript est le langage que vous
utilisez pour développer une application dans Flash. Vous pouvez très bien vous servir de Flash
sans ActionScript. Toutefois, si l’interactivité utilisateur est une de vos priorités ou si vous voulez
utiliser des objets autres que ceux qui sont intégrés dans Flash (tels les boutons et les clips) ou
créer des applications plus complexes à partir de fichiers SWF, il est probable que vous aurez
recours à ActionScript.
Public visé
Ce manuel présume que vous avez déjà installé Flash MX 2004 ou Flash MX Professionnel 2004
et que vous savez comment l’utiliser. Il considère également comme acquis que vous savez placer
des objets sur la scène et les manipuler dans l’environnement auteur de Flash. Si vous avez déjà
écrit des programmes, vous vous sentirez en terrain connu avec ActionScript. Et si vous êtes un
novice, vous n’aurez aucun mal à faire son apprentissage. Le plus simple consiste à commencer par
les commandes de base et à aborder les éléments plus complexes progressivement.
Configuration système requise
La configuration système requise par ActionScript est identique à celle de Flash MX 2004 ou
Flash MX Professionnel 2004. Toutefois, la documentation suppose que vous utilisez les
paramètres de publication par défaut pour vos fichiers Flash : Flash Player 7 et ActionScript 2.0.
Si vous modifiez ces paramètres, les explications et les exemples de code contenus dans la
documentation risquent de ne pas fonctionner correctement.
Utilisation de la documentation
Ce manuel passe en revue les principes généraux de la syntaxe ActionScript, explique comment
utiliser ce langage pour intervenir sur différents types d’objet et décrit en détail la syntaxe et
l’utilisation de chaque élément. Commencez par vous familiariser avec la terminologie et les
concepts de base utilisés dans le reste du manuel (consultez le Chapitre 2, Notions de base du
langage ActionScript, page 27). Vous pourrez ensuite vous concentrer sur l’écriture et le débogage
de scripts Flash (consultez le Chapitre 3, Rédaction et débogage de scripts, page 59).
9
Avant de créer vos propres scripts, suivez les leçons « Rédiger des scripts avec ActionScript » et
« Créer un formulaire contenant une logique conditionnelle et envoyer des données », qui
constituent une introduction interactive à l’utilisation d’ActionScript. Pour localiser ces leçons,
sélectionnez Aide > Comment > Manuel de prise en main rapide.
Une fois que vous maîtrisez les concepts de base, vous pouvez rechercher, dans le reste du manuel,
les informations qui vous permettront d’obtenir l’effet que vous recherchez. Si, par exemple, vous
voulez savoir comment écrire un script qui exécute une action spécifique lorsqu’un utilisateur
clique avec la souris, consultez le Chapitre 4, Gestion d’événements, page 89.
Lorsque vous trouvez des informations sur une commande qui vous intéresse, vous pouvez
consulter l’entrée correspondante dans le Chapitre 12, Dictionnaire ActionScript, page 215 ; tous
les éléments du langage y sont répertoriés par ordre alphabétique.
Conventions typographiques
Ce manuel utilise les conventions typographiques suivantes :
•
•
La police de code indique
le code ActionScript.
identifie un élément, tel un paramètre ou un nom d’objet
ActionScript, que vous remplacez par votre propre texte lorsque vous créez un script.
La police de code en italique
Terminologie utilisée dans ce manuel
Ce manuel utilise les termes suivants :
• Vous fait référence au programmeur qui écrit un script ou une application.
• L’utilisateur désigne la personne qui exécute vos scripts et applications.
• Compilation correspond au moment auquel vous publiez, exportez, testez ou déboguez votre
•
document.
Exécution représente le moment auquel votre script s’exécute dans Flash Player.
Les termes ActionScript tels que méthode et objet sont définis dans le Chapitre 2, Notions de base
du langage ActionScript, page 27.
Ressources supplémentaires
La documentation spécifique à Flash et aux produits apparentés est disponible séparément.
• Pour plus d’informations sur l’utilisation de l’environnement auteur de Flash, consultez le
•
•
10
guide Utilisation de Flash de l’aide. Pour en savoir plus sur l’utilisation des composants,
consultez le guide Utilisation des composants de l’aide.
Pour plus d’informations sur la création d’applications de communication, consultez les leçons
« Développement d’applications de communication » et « Gestion du serveur de communications
Flash ».
Pour plus d’informations sur l’accès aux services web avec des applications Flash, consultez
Using Flash Remoting.
Introduction : Bien démarrer avec ActionScript
Le site web Macromedia DevNet (www.macromedia.com/go/developer_fr) est régulièrement
actualisé et propose les informations les plus récentes sur Flash, ainsi que des conseils d’utilisateurs
expérimentés, des rubriques avancées, des exemples, des astuces et d’autres mises à jour. Consultez
régulièrement ce site web pour vous tenir au courant des nouveautés de Flash et tirer le meilleur
parti de votre programme.
Le Centre de support Macromedia Flash (www.macromedia.com/go/flash_support_fr) fournit
des TechNotes, des mises à jour de la documentation et des liens vers des ressources
supplémentaires dans la communauté Flash.
Ressources supplémentaires
11
12
Introduction : Bien démarrer avec ActionScript
Cette section inclut des informations élémentaires sur le langage ActionScript.
Le Chapitre 1 comprend des informations concernant les nouveautés ou les modifications
apportées à ActionScript et Flash Player 7. Si vous avez déjà utilisé ActionScript, veillez à lire
attentivement ces informations.
Si vous n’avez jamais utilisé ActionScript, les chapitres 2 et 3 contiennent les bases qui vous
permettront de comprendre la terminologie et la syntaxe d’ActionScript et de savoir écrire et
déboguer vos scripts.
Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004 . . . . . . . . . . . . . . . . . . 15
Chapitre 2 : Notions de base du langage ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Chapitre 3 : Rédaction et débogage de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
PARTIE I
PARTIE I
Bienvenue dans ActionScript
CHAPITRE 1
Nouveautés du langage ActionScript dans
Flash MX 2004
Macromedia Flash MX 2004 et Macromedia Flash MX Professionnel 2004 bénéficient de
plusieurs améliorations pour vous permettre d’écrire facilement des scripts plus robustes à l’aide
du langage ActionScript. Ces améliorations, décrites dans ce chapitre, portent notamment sur de
nouveaux éléments de langage, les outils de débogage et d’édition (consultez Modifications de
l’éditeur ActionScript, page 23 et Modifications apportées dans le domaine du débogage, page 24),
ainsi que l’utilisation d’un modèle de programmation plus orienté objet (consultez Nouveau
modèle de programmation orientée objet, page 25).
Ce chapitre contient également une section détaillée à lire attentivement si vous projetez de
publier l’un de vos fichiers existants Flash MX ou d’une version antérieure dans Flash Player 7
(consultez Portage de scripts existants sur Flash Player 7, page 17).
Eléments de langage nouveaux et modifiés
Cette section décrit les éléments du langage ActionScript qui sont nouveaux ou ont été modifiés
dans Flash MX 2004. Pour pouvoir utiliser ces éléments dans vos scripts, vous devez utiliser Flash
Player 7 (lecteur par défaut) lors de la publication des documents.
• Les méthodes Array.sort et Array.sortOn() vous permettent d’ajouter des paramètres pour
•
•
•
•
•
spécifier des options de tri supplémentaires, par exemple un tri ascendant ou descendant, le
respect de la casse lors du tri et bien d’autres options encore.
Les propriétés Button.menu, MovieClip.menu et TextField.menu se conjuguent aux
nouvelles classes ContextMenu et ContextMenuItem pour vous permettre d’associer des
éléments de menu contextuel à des objets Button, MovieClip ou TextField.
La Classe ContextMenu et la Classe ContextMenuItem vous permettent de personnaliser le menu
contextuel qui s’affiche lorsqu’un utilisateur clique avec le bouton droit de la souris (Windows)
ou en appuyant sur la touche Contrôle (Macintosh) dans Flash Player.
La Classe Error et les commandes throw et try..catch..finally vous permettent
d’implémenter une gestion des exceptions plus robuste.
Les méthodes LoadVars.addRequestHeader() et XML.addRequestHeader() ajoutent ou
modifient les en-têtes de requête HTTP (tels que « Content-Type » ou « SOAPAction »)
envoyés avec les actions POST.
La fonction MMExecute() vous permet d’émettre des commandes de l’API Flash JavaScript à
partir d’ActionScript.
15
• (Windows uniquement) L’écouteur d’événement Mouse.onMouseWheel est généré lorsque
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
16
l’utilisateur effectue un défilement en utilisant la molette de la souris.
La méthode MovieClip.getNextHighestDepth() vous permet de créer des occurrences de
MovieClip au moment de l’exécution et de vous assurer que leurs objets seront placés devant
les autres objets dans l’espace z d’un clip parent. La méthode
MovieClip.getInstanceAtDepth() vous permet d’accéder à des occurrences de MovieClip
créées dynamiquement en utilisant la profondeur comme index de recherche.
La méthode MovieClip.getSWFVersion() vous permet de déterminer quelle version de Flash
Player est supportée par un fichier SWF chargé.
Les méthodes MovieClip.getTextSnapshot() et l’Objet TextSnapshot vous permettent
d’intervenir sur du texte qui figure dans des champs de texte statiques dans un clip.
La propriété MovieClip._lockroot vous permet d’indiquer qu’un clip agira en tant que
_root pour tout clip qui y sera chargé, ou que la signification de _root dans un clip ne sera pas
modifiée si le clip est chargé dans un autre clip.
La Classe MovieClipLoader vous permet de contrôler la progression du téléchargement de
fichiers dans des clips.
La Classe NetConnection et la Classe NetStream vous permettent de lire en continu des fichiers
vidéo en local (fichiers FLV).
La Classe PrintJob vous donne (ainsi qu’à l’utilisateur) davantage de contrôle sur les impressions
à partir de Flash Player.
Le gestionnaire d’événement Sound.onID3 donne accès aux données ID3 associées à un objet
Sound contenant un fichier MP3.
La propriété Sound.ID3 donne accès aux métadonnées faisant partie d’un fichier MP3.
La Classe System comporte de nouveaux objets et méthodes et l’Objet System.capabilities possède
plusieurs propriétés nouvelles.
La propriété TextField.condenseWhite vous permet de supprimer l’espace blanc
supplémentaire dans les champs de texte HTML qui sont rendus dans un navigateur.
La propriété TextField.mouseWheelEnabled vous permet de spécifier si le contenu d’un
champ de texte doit défiler lorsque le pointeur de la souris est placé dessus et que l’utilisateur
actionne la molette.
La Classe TextField.StyleSheet vous permet de créer un objet feuille de style contenant des règles
de formatage de texte, comme la taille et la couleur de la police, et d’autres styles de formatage.
La propriété TextField.styleSheet vous permet d’associer un objet feuille de style à un
champ de texte.
La méthode TextFormat.getTextExtent() accepte un nouveau paramètre et l’objet qu’elle
renvoie contient un nouveau membre.
La méthode XML.addRequestHeader() vous permet d’ajouter ou de modifier les en-têtes de
requête HTTP (tels que « Content-Type » ou « SOAPAction ») envoyés avec les actions POST.
Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
Nouveau modèle de sécurité et fichiers SWF hérités
Les règles qui permettent à Flash Player de déterminer si deux domaines sont identiques ont
changé dans Flash Player 7. Les règles qui déterminent si, et de quelle façon, un fichier SWF servi
par un domaine HTTP peut accéder à un fichier SWF ou charger des données à partir d’un
domaine HTTPS ont également changé. Dans la plupart des cas, ces modifications n’ont pas
d’incidence, à moins que vous ne portiez vos fichiers SWF existants sur Flash Player 7.
Toutefois, si vous avez publié, pour Flash Player 6 ou une version antérieure, des fichiers SWF qui
chargent des données issues d’un fichier résidant sur un serveur et que le fichier SWF à l’origine
de l’appel s’exécute dans Flash Player 7, une nouvelle boîte de dialogue invitant l’utilisateur à
autoriser l’accès est susceptible de s’afficher. Vous pouvez empêcher l’affichage de cette boîte de
dialogue en mettant en œuvre un fichier de régulation sur le site contenant les données. Pour plus
d’informations sur cette boîte de dialogue, consultez A propos de la compatibilité avec les précédents
modèles de sécurité Flash Player, page 202.
Il peut également être nécessaire d’implémenter un fichier de régulation si vous utilisez des
bibliothèques partagées à l’exécution. Si le fichier SWF chargé ou en chargement est publié pour
Flash Player 7 et que les fichiers chargés ou en chargement ne sont pas servis par le même
domaine, utilisez un fichier de régulation pour autoriser l’accès. Pour plus d’informations sur les
fichiers de régulation, consultez A propos de l’autorisation de chargement de données inter-domaines,
page 201.
Portage de scripts existants sur Flash Player 7
A l’instar de toute nouvelle version, Flash Player 7 prend en charge un plus grand nombre de
commandes ActionScript que ses versions précédentes. Ces commandes vous permettent
d’implémenter des scripts plus robustes. (Consultez Eléments de langage nouveaux et modifiés,
page 15.) Toutefois, si vous avez utilisé l’une de ces commandes dans vos scripts existants, il est
possible que le script ne fonctionne pas correctement si vous le publiez pour Flash Player 7.
Par exemple, si l’un de vos scripts contient une fonction nommée Error, le script peut sembler se
compiler correctement mais ne pas être exécuté comme prévu dans Flash Player 7, car Error est
désormais une classe intégrée (et donc un mot réservé) dans ActionScript. Vous pouvez corriger
votre script en renommant la fonction Error, par exemple en ConditionErreur.
De plus, Flash Player 7 implémente différentes modifications qui affectent la façon dont un
fichier SWF accède à un autre fichier SWF, la façon dont les données externes peuvent être
chargées et le mode d’accès aux paramètres et données locaux (par exemple les paramètres de
contrôle de l’accès et les objets partagés localement). Enfin, le comportement de certaines
fonctions existantes a été modifié.
Si vous voulez publier, pour Flash Player 7, des scripts destinés à Flash Player 6 ou une version
antérieure, vous devrez peut-être les modifier afin qu’ils se conforment à l’implémentation de
Flash Player 7 et fonctionnent correctement. Les modifications requises sont décrites dans cette
section.
Portage de scripts existants sur Flash Player 7
17
Conformité à la norme ECMA-262 version 4
Flash Player 7 a subi plusieurs modifications pour mieux se conformer à la norme ECMA-262
version 4 (consultez la page www.mozilla.org/js/language/es4/index.html). Outre les techniques
de programmation basées sur les classes disponibles dans ActionScript 2,0 (consultez Nouveau
modèle de programmation orientée objet, page 25), d’autres fonctions ont été ajoutées et certains
comportements modifiés. De plus, lorsque vous effectuez une publication pour Flash Player 7 et
que vous utilisez ActionScript 2.0, vous pouvez attribuer un type d’objet à un autre. Pour plus
d’informations, consultez Attribution d’objets, page 42. Vous n’êtes pas obligé d’actualiser vos
scripts existants. Toutefois, il est souhaitable d’utiliser ces fonctions si vous publiez, pour Flash
Player 7, des scripts que vous modifierez et enrichirez par la suite.
Contrairement aux modifications mentionnées plus haut, les modifications répertoriées dans le
tableau suivant (dont certaines renforcent la conformité à la norme ECMA) sont susceptibles de
changer le comportement des scripts existants. Si vous utilisez ces fonctions dans des scripts
existants que vous avez l’intention de publier pour Flash Player 7, passez les modifications en
revue pour déterminer si le code fonctionne toujours correctement ou si vous devez le récrire. Plus
particulièrement, il est conseillé d’initialiser toutes les variables des scripts que vous portez sur
Flash Player 7, car undefined est évalué de façon différente dans certains cas.
Fichier SWF publié pour Flash Player 7
Fichier SWF publié pour des versions
précédentes de Flash Player
Le respect de la casse est pris en charge (les noms
de variable dont la casse est différente sont
interprétés comme étant différents). Cette
modification a également des répercussions sur les
fichiers chargés au moyen de #include et les
variables externes chargées via LoadVars.load().
Pour plus d’informations, consultez Hauteur de
casse, page 32.
Le respect de la casse n’est pas pris en
charge (les noms de variable dont la casse est
différente sont interprétés comme étant
identiques).
L’évaluation de undefined dans un contexte
numérique renvoie NaN.
L’évaluation de undefined dans un contexte
numérique renvoie 0.
monNombre +=1;
trace(monNombre); // NaN
monNombre +=1;
trace(monNombre); // 1
Lorsque undefined est converti en chaîne, le résultat Lorsque undefined est converti en chaîne, le
est undefined.
résultat est "" (une chaîne vide).
prénom = "Joan ";
nom = "Flender";
trace(prénom + deuxième prénom + nom);
// Joan undefinedFlender
18
prénom = "Joan ";
nom = "Flender";
trace(prénom + deuxième prénom + nom);
// Joan Flender
Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
Fichier SWF publié pour Flash Player 7
Fichier SWF publié pour des versions
précédentes de Flash Player
Lorsque vous convertissez une chaîne en valeur
booléenne, le résultat est true si la longueur de la
chaîne est supérieure à zéro et false pour une
chaîne vide.
Lorsque vous convertissez une chaîne en
valeur booléenne, la chaîne est tout d’abord
convertie en nombre. Le résultat est true si le
nombre n’est pas égal à zéro et false dans le
cas contraire.
Lorsque vous définissez la longueur d’un tableau,
seule une chaîne de nombre valide peut définir la
longueur. Par exemple, "6" fonctionne, et non " 6" ou
"6xyz".
Lorsque vous définissez la longueur d’un
tableau, même une chaîne de nombre mal
formulée peut définir la longueur :
mon_array=new Array();
mon_array["6"] ="x";
trace(mon_array.length); // 0
mon_array["6xyz"] ="x";
trace(mon_array.length); // 0
mon_array["6"] ="x";
trace(mon_array.length); // 7
mon_array=new Array();
mon_array["6"] ="x";
trace(mon_array.length); // 7
mon_array["6xyz"] ="x";
trace(mon_array.length); // 7
mon_array["6"] ="x";
trace(mon_array.length); // 7
Règles de nom de domaine pour les paramètres et les données locales
Dans Flash Player 6, les règles de correspondance de superdomaine sont utilisées par défaut pour
accéder aux paramètres locaux (tels que les autorisations d’accès de la caméra ou du microphone)
ou aux données persistantes localement (objets partagés). Cela signifie que les paramètres et
données de fichiers SWF résidant sur ici.xyz.com, la.xyz.com et xyz.com sont partagés et tous
enregistrés sur xyz.com.
Dans Flash Player 7, les règles de correspondance exacte de domaine sont utilisées par défaut.
Cela signifie que les paramètres et données d’un fichier hébergé sur ici.xyz.com sont enregistrés
sur ici.xyz.com, les paramètres et données d’un fichier hébergé sur la.xyz.com sont enregistrés sur
la.xyz.com et ainsi de suite.
Une nouvelle propriété, System.exactSettings, vous permet de spécifier les règles à utiliser.
Cette propriété est supportée pour les fichiers publiés pour Flash Player 6 ou une version
ultérieure. Pour les fichiers publiés pour Flash Player 6, la valeur par défaut est false, ce qui
signifie que les règles de correspondance de superdomaine sont utilisées. Pour les fichiers publiés
pour Flash Player 7, la valeur par défaut est true, ce qui signifie que les règles de correspondance
exacte de domaine sont utilisées.
Si vous utilisez des paramètres ou des données locales persistantes et souhaitez publier un fichier
SWF Flash Player 6 pour Flash Player 7, il peut être nécessaire de définir cette valeur sur false
dans le fichier porté.
Pour plus d’informations, consultez System.exactSettings, page 755.
Accès interdomaine et accès aux sous-domaines entre les fichiers SWF
Lorsque vous développez une série de fichiers SWF qui communiquent les uns avec les autres
(par exemple, lorsque vous utilisez loadMovie(), MovieClip.loadMovie(),
MovieClipLoader.LoadClip() ou des objets Local Connection), vous pouvez héberger les
animations dans des domaines différents ou dans des sous-domaines différents d’un même
superdomaine.
Portage de scripts existants sur Flash Player 7
19
Dans les fichiers publiés pour Flash Player 5 ou une version ultérieure, l’accès aux inter-domaines
et sous-domaines n’était soumis à aucune restriction.
Dans les fichiers publiés pour Flash Player 6, vous pouviez utiliser le gestionnaire
LocalConnection.allowDomain ou la méthode System.security.allowDomain() pour
spécifier l’accès inter-domaines autorisé (par exemple pour autoriser l’accès à un fichier situé sur
unSite.com par un fichier situé sur unAutreSite.com). Aucune commande n’était nécessaire pour
autoriser l’accès au superdomaine (par exemple, un fichier situé sur store.unSite.com pouvait
accéder à un fichier situé sur www.unSite.com).
Les fichiers publiés pour Flash Player 7 implémentent l’accès entre les fichiers SWF différemment
des versions précédentes, et ce de deux manières : tout d’abord, Flash Player 7 implémente les
règles de correspondance exacte de domaine et non les règles de correspondance de superdomaine.
Ainsi, le fichier auquel on accède (même s’il est publié pour une version antérieure à Flash
Player 7) doit autoriser de façon explicite l’accès aux inter-domaines et sous-domaines. Ce sujet
est abordé plus bas. Ensuite, un fichier hébergé sur un site qui utilise un protocole sécurisé
(HTTPS) doit autoriser de façon explicite l’accès à partir d’un fichier hébergé sur un site utilisant
un protocole non sécurisé (HTTP ou FTP). Ce sujet est abordé dans la section suivante
(consultez Accès du protocole HTTP vers le protocole HTTPS entre les fichiers SWF, page 21).
Etant donné que Flash Player 7 implémente les règles de correspondance exacte de domaine et
non les règles de correspondance de superdomaine, il peut être nécessaire de modifier les scripts
existants si vous souhaitez y accéder à partir de fichiers publiés pour Flash Player 7. (Vous pouvez
toujours publier les fichiers modifiés pour Flash Player 6.) Si vous avez utilisé une instruction
LocalConnection.allowDomain() ou System.security.allowDomain() dans vos fichiers et
que vous avez spécifié des sites de superdomaine à autoriser, vous devez modifier vos paramètres
pour spécifier les domaines exacts à la place. Le code suivant présente un exemple des types de
modifications qu’il peut être nécessaire d’apporter :
// commandes Flash Player 6 d’un fichier SWF situé sur www.unAncienSite.com
// pour autoriser l’accès par des fichiers SWF hébergés sur www.unSite.com
// ou sur store.unSite.com
System.security.allowDomain("unSite.com");
ma_lc.allowDomain = function(domaineDenvoi) {
return(domaineDenvoi=="unSite.com");
}
// Commandes correspondantes pour autoriser l’accès par les fichiers SWF
// qui sont publiés pour Flash Player 7
System.security.allowDomain("www.unSite.com", "store.unSite.com");
ma_lc.allowDomain = function(domaineDenvoi) {
return(domaineDenvoi=="www.unSite.com" ||
domaineDenvoi=="store.unSite.com");
}
Il peut également être nécessaire d’ajouter des instructions similaires dans vos fichiers si vous ne
les utilisez pas actuellement. Par exemple, si votre fichier SWF est hébergé sur www.unSite.com et
que vous souhaitez autoriser l’accès par un fichier SWF publié pour Flash Player 7 sur
store.unSite.com, vous devez ajouter des instructions semblables aux instructions suivantes au
fichier situé sur www.unSite.com (vous pouvez toujours publier le fichier situé sur
www.unSite.com pour Flash Player 6) :
System.security.allowDomain("store.unSite.com");
ma_lc.allowDomain = function(domaineDenvoi) {
return(domaineDenvoi=="store.unSite.com");
}
20
Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
Pour résumer, il peut être nécessaire de modifier vos fichiers pour ajouter ou modifier des
instructions allowDomain si vous publiez des fichiers pour Flash Player 7 dans les conditions
suivantes :
• Vous avez implémenté des scripts entre des fichiers SWF (à l’aide de loadMovie(),
MovieClip.loadMovie(), MovieClipLoader.LoadClip(),
ou d’objets Local Connection).
• Le fichier SWF appelé (de n’importe quelle version) n’est pas hébergé sur un site utilisant un
•
protocole sécurisé (HTTPS), ou le fichier SWF appelé et celui effectuant l’appel sont tous deux
hébergés sur des sites HTTPS (si seul le fichier SWF appelé est HTTPS, consultez Accès du
protocole HTTP vers le protocole HTTPS entre les fichiers SWF, page 21).
Les fichiers SWF ne se trouvent pas dans le même domaine (par exemple, l’un d’eux réside sur
www.domaine.com et l’autre sur store.domaine.com).
Vous devez effectuer les modifications suivantes :
• Si le fichier SWF appelé est publié pour Flash Player 7, incluez
•
•
System.security.allowDomain ou LocalConnection.allowDomain dans le fichier SWF
appelé, en utilisant la correspondance exacte de domaine.
Si le fichier SWF appelé est publié pour Flash Player 6, modifiez-le en ajoutant ou en
modifiant une instruction System.security.allowDomain ou
LocalConnection.allowDomain, en utilisant la correspondance exacte de domaine, comme
illustré dans les exemples de code plus haut dans cette section. Vous pouvez publier le fichier
modifié pour flash Player 6 ou 7.
Si le fichier SWF appelé est publié pour Flash Player 5 ou version antérieure, portez le fichier
appelé sur Flash Player 6 ou 7 et ajoutez une instruction System.security.allowDomain en
utilisant la correspondance exacte de domaine, comme illustré dans les exemples de code plus
haut dans cette section. (Les objets LocalConnection ne sont pas supportés dans Flash Player 5
ou version antérieure.)
Accès du protocole HTTP vers le protocole HTTPS entre les fichiers SWF
Comme nous l’avons vu dans la section précédente, les règles d’accès aux inter-domaines et sousdomaines ont été modifiées dans Flash Player 7. En plus des règles de correspondance exacte de
domaine dorénavant implémentées, vous devez autoriser de façon explicite l’accès aux fichiers
situés sur des sites utilisant un protocole sécurisé (HTTPS) par des fichiers hébergés sur des sites
utilisant des protocoles non sécurisés. Selon que votre fichier est publié pour Flash Player 7 ou
Flash Player 6, vous devez implémenter l’une des deux instructions allowDomain (consultez Accès
interdomaine et accès aux sous-domaines entre les fichiers SWF, page 19), ou utiliser les nouvelles
instructions LocalConnection.allowInsecure Domain ou
System.security.allowInsecureDomain().
Avertissement : L’implémentation d’une instruction allowInsecureDomain() compromet la
sécurité assurée par le protocole HTTPS. Vous devez effectuer ces modifications uniquement si vous
ne pouvez pas réorganiser votre site de manière à ce que tous les fichiers SWF soient servis par le
protocole HTTPS.
Le code suivant présente un exemple des types de modifications qu’il peut être nécessaire
d’apporter :
// Commandes dans un fichier SWF Flash Player 6 situé sur https://
www.unSite.com
// pour autoriser l’accès par des fichiers SWF Flash Player 7 hébergés
// sur http://www.unSite.com ou http://www.unAutreSite.com
Portage de scripts existants sur Flash Player 7
21
System.security.allowDomain("unAutreSite.com");
ma_lc.allowDomain = function(domaineDenvoi) {
return(domaineDenvoi=="unAutreSite.com");
}
// Commandes correspondantes dans un fichier SWF Flash Player 7
// pour autoriser l’accès par des fichiers SWF Flash Player 7 hébergés
// sur http://www.unSite.com ou http://www.unAutreSite.com
System.security.allowInsecureDomain("www.unSite.com", "www.unAutreSite.com");
ma_lc.allowInsecureDomain = function(domaineDenvoi) {
return(domaineDenvoi=="www.unSite.com" ||
domaineDenvoi=="www.unAutreSite.com");
}
Il peut également être nécessaire d’ajouter des instructions similaires dans vos fichiers si vous ne
les utilisez pas actuellement. Une modification peut s’avérer nécessaire même si les deux fichiers
résident dans le même domaine (par exemple, un fichier situé sur http://www.domaine.com
appelle un fichier situé sur https://www.domaine.com).
Pour résumer, il peut être nécessaire de modifier vos fichiers pour ajouter ou modifier des
instructions si vous publiez des fichiers pour Flash Player 7 qui correspondent aux critères
suivants :
• Vous avez implémenté des scripts entre des fichiers SWF (à l’aide de loadMovie(),
MovieClip.loadMovie(), MovieClipLoader.LoadClip(),
•
ou d’objets Local Connection).
Le fichier effectuant l’appel n’est pas hébergé à l’aide d’un protocole HTTPS et le fichier appelé
est HTTPS.
Vous devez effectuer les modifications suivantes :
• Si le fichier appelé est publié pour Flash Player 7, incluez
•
•
•
22
System.security.allowInsecureDomain ou LocalConnection.allowInsecureDomain
dans le fichier appelé en utilisant la correspondance exacte de domaine, comme illustré dans les
exemples de code, plus haut dans cette section. Cette instruction est requise même lorsque le
fichier SWF appelé et celui effectuant l’appel se trouvent sur le même domaine.
Si le fichier appelé est publié pour Flash Player 6 ou une version antérieure, et que le fichier
effectuant l’appel et le fichier appelé résident dans le même domaine (par exemple, si un fichier
sur http://www.domaine.com appelle un fichier situé sur https://www.domaine.com), aucune
modification n’est nécessaire.
Si le fichier appelé est publié pour Flash Player 6, que les fichiers ne se trouvent pas sur le
même domaine, et que vous ne souhaitez pas porter le fichier appelé sur Flash Player 7,
modifiez le fichier appelé en ajoutant ou en modifiant une instruction
System.security.allowDomain ou LocalConnection.allowDomain en utilisant la
correspondance exacte de domaine, comme illustré dans les exemples de code plus haut dans
cette section.
Si le fichier appelé est publié pour Flash Player 6 et que vous souhaitez le porter sur Flash
Player 7, incluez System.security.allowInsecureDomain ou
LocalConnection.allowInsecureDomain dans le fichier appelé en utilisant la
correspondance exacte de domaine, comme illustré dans les exemples de code, plus haut dans
cette section. Cette instruction est requise même si les deux fichiers se trouvent dans le même
domaine.
Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
• Si le fichier appelé est publié pour Flash Player 5 ou une version antérieure et que les deux
fichiers ne se trouvent pas sur le même domaine, vous pouvez procéder de l’une des deux
manières suivantes. Vous pouvez soit porter le fichier appelé sur Flash Player 6 et ajouter ou
modifier une instruction System.security.allowDomain en utilisant la correspondance
exacte de domaine, soit porter le fichier appelé sur Flash Player 7, et inclure une instruction
System.security.allowInsecureDomain dans le fichier appelé en utilisant le filtrage de
domaine, comme illustré dans les exemples de code, plus haut dans cette section.
Fichiers de régulation côté serveur pour autoriser l’accès aux données
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(), loadVariablesNum(),
MovieClip.loadVariables(), XMLSocket.connect() et Macromedia Flash Remoting
(NetServices.createGatewayConnection). De plus, un fichier SWF peut importer des
bibliothèques partagées à l’exécution (RSL) 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 RSL doivent se trouver sur 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 RSL de ce serveur.
Si vous chargez des données externes, il est conseillé de créer des fichiers de régulation même si
vous ne projetez pas de porter vos fichiers sur Flash Player 7. Si vous utilisez des bibliothèques
partagées à l’exécution (RSL), il est conseillé de créer des fichiers de régulation si le fichier appelé
ou le fichier effectuant l’appel est publié pour Flash Player 7.
Pour plus d’informations, consultez A propos de l’autorisation de chargement de données interdomaines, page 201.
Modifications de l’éditeur ActionScript
L’éditeur ActionScript a subi différentes mises à jour afin d’être plus robuste et plus simple à
utiliser. Cette section récapitule toutes ces modifications.
Retour automatique à la ligne Pour activer ou désactiver le retour automatique à la ligne, vous
pouvez désormais utiliser le menu d’options contextuel de la fenêtre de script, du panneau
Débogueur et du panneau de sortie. Vous pouvez également l’activer ou le désactiver à l’aide du
menu déroulant du panneau Actions. Le raccourci clavier est Ctrl+Maj+W (Windows) ou
Commande+Maj+W (Macintosh).
Affichage de l’aide contextuelle Lorsque vous positionnez votre pointeur sur un élément du
langage ActionScript dans la boîte à outils ou la fenêtre de script du panneau Actions, vous pouvez
utiliser l’option Afficher l’aide du menu contextuel pour afficher une page d’aide concernant cet
élément.
Modifications de l’éditeur ActionScript
23
Importation de scripts Lorsque vous sélectionnez Importer le script dans le menu déroulant du
panneau Actions, le script importé est copié dans le script à l’emplacement du point d’insertion
dans votre fichier code. Dans les versions antérieures de Flash, l’importation d’un script écrasait le
contenu du script existant.
Points d’arrêt en un clic Pour ajouter un point d’arrêt de débogage devant une ligne de code
dans les panneaux Débogueur, Script ou Actions, vous pouvez cliquer dans la marge de gauche.
Dans les versions antérieures de Flash, le fait de cliquer dans la marge de gauche sélectionnait une
ligne de code. La nouvelle façon de sélectionner une ligne de code consiste à cliquer en appuyant
sur Ctrl (Windows) ou à cliquer en appuyant sur Commande (Macintosh).
Modes normal et expert ne figurant plus dans le panneau Actions Dans les versions
antérieures de Flash, vous pouviez travailler dans le panneau Actions soit en mode normal, dans
lequel vous complétiez des options et des paramètres pour créer du code, soit en mode expert,
dans lequel vous ajoutiez des commandes directement dans la fenêtre de script. Dans Flash
MX 2004 et Flash MX Professionnel 2004, vous pouvez uniquement travailler dans le panneau
Actions en ajoutant des commandes directement dans la fenêtre de script. Vous pouvez toujours
faire glisser des commandes de la boîte à outils vers la fenêtre de script ou utiliser le bouton
Ajouter (+) situé au-dessus de la fenêtre de script pour ajouter des commandes à un script.
Vous pouvez verrouiller plusieurs scripts figurant dans un
fichier FLA le long du bord inférieur de la fenêtre de script dans le panneau Actions. Dans les
versions précédentes de Flash, vous ne pouviez verrouiller qu’un seul script à la fois.
Verrouillage de plusieurs scripts
La partie gauche du panneau Actions contient désormais deux panneaux :
la boîte à outils Actions et un nouveau navigateur de script. Le navigateur de script est une
représentation visuelle de la structure de votre fichier FLA ; il vous permet de parcourir votre
fichier FLA pour localiser le code ActionScript.
Navigateur de script
Fenêtre de script intégrée pour la modification de fichiers externes (Flash Professionnel
uniquement) Vous pouvez utiliser l’éditeur ActionScript dans une fenêtre de script (distincte du
panneau Actions) pour écrire et modifier des fichiers scripts externes. La coloration de la syntaxe,
les conseils de code et d’autres préférences sont supportés dans la fenêtre de script. Une boîte à
outils est également disponible. Pour afficher la fenêtre de script, cliquez sur Fichier > Nouveau,
puis sélectionnez le type de fichier externe à modifier. Vous pouvez ouvrir plusieurs fichiers
externes simultanément ; les noms de fichier s’affichent alors sur des onglets en haut de la fenêtre
de script. Cette fonction est uniquement disponible sous Windows.
Modifications apportées dans le domaine du débogage
Cette section décrit les modifications permettant d’améliorer votre capacité à déboguer vos
scripts.
Fenêtre Sortie changée en panneau de sortie Vous pouvez désormais déplacer et ancrer le
panneau de sortie de la même manière que n’importe quel autre panneau dans Flash.
ActionScript 2.0
fournit non seulement une gestion des exceptions plus robuste, mais il propose également
plusieurs nouvelles erreurs de compilation. Pour plus d’informations,
consultez l’Annexe A, Messages d’erreur, page 893.
Amélioration de la signalisation des erreurs au moment de la compilation
Amélioration de la gestion des exeptions La classe Error et les commandes throw et
try..catch..finally vous permettent d’implémenter une gestion des exceptions plus robuste.
24
Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
Nouveau modèle de programmation orientée objet
Depuis son introduction il y a quelques années de cela, le langage ActionScript n’a cessé de se
développer. A chaque nouvelle version de Flash, de nouveaux mots-clés, objets, méthodes et autres
éléments de langage sont ajoutés. Cependant, contrairement aux versions antérieures de Flash,
Flash MX 2004 et Flash MX Professionnel 2004 présentent plusieurs nouveaux éléments de
langage qui renforcent sa standardisation selon le modèle de programmation orientée objet. Ces
éléments de langage constituent une amélioration significative du langage ActionScript de base et
représentent donc une nouvelle version d’ActionScript lui-même : ActionScript 2.0.
ActionScript 2.0 n’est pas un nouveau langage. Il s’agit plutôt d’un ensemble d’éléments de
langage de base qui simplifient le développement de programmes orientés objet. L’introduction de
mots-clés tels que class, interface, extends et implements facilite l’apprentissage de la
syntaxe ActionScript aux programmeurs habitués à d’autres langages. Les nouveaux
programmeurs apprennent ainsi une terminologie standard applicable à d’autres langages orientés
objet qu’ils étudieront sans doute ultérieurement.
ActionScript 2.0 supporte tous les éléments standard du langage ActionScript. Il vous permet
simplement d’écrire des scripts plus conformes aux normes utilisées dans d’autres langages
orientés objet, tels que Java. ActionScript 2.0 intéressera principalement les développeurs Flash de
niveau intermédiaire ou avancé qui créent des applications nécessitant l’implémentation de classes
et de sous-classes. ActionScript 2.0 vous permet également de déclarer le type d’objet d’une
variable au moment de sa création (consultez Typage strict des données, page 40) et améliore
considérablement les erreurs de compilateur (consultez l’Annexe A, Messages d’erreur, page 893).
Les nouveaux éléments d’ActionScript 2.0 sont répertoriés ci-dessous :
•
•
•
•
•
•
•
•
•
•
•
class
extends
implements
interface
dynamic
static
public
private
get
set
import
Les principaux points à connaître sur ActionScript 2,0 sont les suivants :
• Les scripts utilisant ActionScript 2.0 pour définir des interfaces doivent être enregistrés en tant
•
que fichiers scripts externes, avec une seule classe définie dans chaque script. Cela implique que
les classes et les interfaces ne peuvent pas être définies dans le panneau Actions.
Vous pouvez importer des fichiers de classe individuels de façon implicite (en les enregistrant
dans un emplacement spécifié par des chemins de recherche généraux ou spécifiques à des
documents et en les utilisant dans un script) ou de façon explicite (en utilisant la commande
import). Vous pouvez importer des ensembles de fichiers (ensembles de fichiers de classe dans
un répertoire) en utilisant des caractères génériques.
Nouveau modèle de programmation orientée objet
25
• Les applications développées à l’aide d’ActionScript 2.0 sont supportées par Flash Player 6 et
les versions ultérieures.
Attention : Le paramètre de publication par défaut des nouveaux fichiers créés dans Flash MX 2004
est ActionScript 2.0 Si vous projetez de modifier un fichier FLA existant pour utiliser la syntaxe
ActionScript 2.0, vérifiez que le fichier FLA spécifie bien ActionScript 2.0 dans ses paramètres de
publication. Si ce n’est pas le cas, votre fichier ne sera pas compilé correctement, même si Flash ne
génère pas d’erreurs de compilateur.
Pour plus d’informations sur l’utilisation d’ActionScript 2.0 pour l’écriture de programmes
orientés objet en Flash, consultez le Chapitre 9, Création de classes avec ActionScript 2.0, page 163.
26
Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
CHAPITRE 2
Notions de base du langage ActionScript
ActionScript possède des règles de grammaire et de ponctuation qui déterminent les caractères ou
les mots porteurs de sens et l’ordre dans lequel ils peuvent être rédigés. Par exemple, en français,
un point termine une phrase. Dans ActionScript, c’est un point-virgule qui termine une
instruction.
Les règles générales suivantes s’appliquent à tous les scripts ActionScript. La plupart des termes
ActionScript font également l’objet de règles individuelles ; pour en savoir plus sur les règles qui
s’appliquent à un terme déterminé, consultez l’entrée correspondante dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Différences entre ActionScript et JavaScript
ActionScript est similaire au langage de programmation JavaScript. La connaissance de JavaScript
n’est pas indispensable pour apprendre à utiliser ActionScript. Toutefois, si vous connaissez
JavaScript, ActionScript vous semblera familier.
Cet ouvrage n’a pas pour but d’enseigner la programmation générale. Il existe de nombreuses
sources qui fournissent des informations complémentaires sur les concepts de programmation
généraux et sur le langage JavaScript.
• L’ECMA (European Computers Manufacturers Association) a établi la spécification
•
ECMA-262, dérivée du langage JavaScript, qui sert de norme internationale pour le langage
JavaScript. ActionScript est basé sur la spécification ECMA-262.
Netscape DevEdge Online offre un centre de développement JavaScript
(http://developer.netscape.com/tech/javascript/index.html) qui contient de la documentation
et des articles utiles à la compréhension d’ActionScript. La ressource la plus importante est le
Core JavaScript Guide.
Les principales différences qui existent entre ActionScript et JavaScript sont les suivantes :
• ActionScript ne supporte pas les objets spécifiques aux navigateurs que sont les documents,
•
•
•
fenêtres et ancres, par exemple.
ActionScript ne supporte pas entièrement tous les objets JavaScript intégrés.
ActionScript ne supporte pas certaines constructions syntaxiques JavaScript, telles que les
étiquettes d’instructions.
Dans ActionScript, l’action eval() ne peut effectuer que des références aux variables.
27
Support du format Unicode pour ActionScript
Macromedia Flash MX 2004 et Macromedia Flash MX Professionnel 2004 prennent en charge le
codage du texte au format Unicode pour ActionScript. Vous pouvez donc intégrer du texte en
différentes langues dans un même fichier ActionScript. Vous pouvez par exemple intégrer du texte
en anglais, en japonais et en français dans un même fichier.
Vous pouvez définir les préférences d’ActionScript afin de spécifier le type de codage à utiliser lors
de l’importation ou de l’exportation de fichiers ActionScript. Vous avez le choix entre le codage
UTF-8 ou le codage par défaut. UTF-8 est le format Unicode 8 bits. Le codage par défaut, ou
page de code classique, est le codage pris en charge par la langue utilisée actuellement sur votre
système.
En règle générale, si vous importez ou exportez des fichiers ActionScript au format UTF-8,
choisissez UTF-8. Si vous importez ou exportez des fichiers dans la page de code classique de
votre système, choisissez Codage par défaut comme préférence.
Si le texte que contiennent vos scripts ne s’affiche pas correctement lorsque vous ouvrez ou
importez un fichier, modifiez la préférence de codage pour l’importation. Si vous obtenez un
avertissement lors de l’exportation de fichiers ActionScript, vous pouvez modifier la préférence de
codage pour l’exportation ou désactiver l’affichage de cet avertissement dans les préférences
ActionScript.
Pour choisir des options de codage de texte pour l’importation ou l’exportation de fichiers
ActionScript :
1 Dans la boîte de dialogue Préférences (Modifier > Préférences), cliquez sur l’onglet
ActionScript.
2 Dans la section Options d’édition, effectuez au moins une des actions suivantes :
■ Pour l’option Ouvrir/Importer, choisissez UTF-8 pour ouvrir ou importer en utilisant le
codage Unicode, ou choisissez Codage par défaut pour ouvrir ou importer en utilisant le
format de codage de la langue de votre système actuel.
■ Pour l’option Enregistrer/Exporter, choisissez UTF-8 pour enregistrer ou exporter en
utilisant le codage Unicode, ou choisissez Codage par défaut pour enregistrer ou exporter en
utilisant le format de codage de la langue de votre système actuel.
Pour activer ou désactiver le message d’avertissement de codage d’exportation :
1 Dans la boîte de dialogue Préférences (Edition > Préférences), cliquez sur l’onglet
Avertissements.
2 Activez ou désactivez l’option Avertir des conflits de codage pendant l’exportation de fichiers .as.
Attention : La commande Tester l’animation (consultez Débogage de scripts, page 73) échoue si une
partie du chemin du fichier SWF contient des caractères ne pouvant pas être représentés à l’aide du
système de codage MBCS. Par exemple, les chemins japonais dans un système anglais ne
fonctionnent pas. Toutes les zones de l’application utilisant le lecteur externe sont soumises à cette
restriction.
28
Chapitre 2 : Notions de base du langage ActionScript
Terminologie
A l’instar de tout langage de programmation, ActionScript utilise une terminologie qui lui est
propre. La liste suivante présente les principaux termes ActionScript.
Les actions sont des instructions qui ordonnent à un fichier SWF d’exécuter une opération
déterminée lors de sa lecture. Par exemple, gotoAndStop() envoie la tête de lecture à une image
ou une étiquette spécifique. Dans cet ouvrage, les termes action et instruction sont
interchangeables.
Une valeur booléenne est une valeur true (vraie) ou false (fausse).
Les classes sont des types de données que vous pouvez créer pour définir un nouveau type
d’objet. Pour définir une classe, utilisez le mot-clé class dans un fichier de script externe (et non
dans le script en cours de rédaction dans le panneau Actions).
Les constantes sont des éléments qui ne changent pas. Par exemple, la constante Key.TAB a
toujours la même signification : elle indique la touche Tab du clavier. Les constantes sont utiles
pour comparer des valeurs.
Les constructeurs sont des fonctions que vous utilisez pour définir les propriétés et les méthodes
d’une classe. Par définition, les constructeurs sont des fonctions au sein d’une définition de classe
qui portent le même nom que la classe. Par exemple, le code suivant définit une classe « Cercle »
et implémente une fonction constructeur :
// fichier Cercle.as
class Cercle {
private var radius:Number
private var circumference:Number
// constructeur
function Cercle(radius:Number) {
circumference = 2 * Math.PI * radius;
}
}
Le terme constructeur est également utilisé lorsque vous créez (instanciez) un objet en fonction
d’une classe particulière. Les instructions suivantes sont des constructeurs pour la classe « Array »
intégrée et pour la classe « Cercle » personnalisée :
mon_array:Array = new Array();
mon_cercle:Cercle = new Cercle();
Les types de données décrivent le genre d’informations qu’une variable ou qu’un élément
ActionScript peut contenir. Les types de données ActionScript sont les suivants : String,
Number, Boolean, Object, MovieClip, Function, null et undefined. Pour plus d’informations,
consultez A propos des types de données, page 36.
Les événements sont des actions qui se produisent lors de la lecture d’un fichier SWF. Par
exemple, différents événements sont générés lorsqu’un clip est chargé, que la tête de lecture entre
dans une image, que l’utilisateur clique sur un bouton ou clip ou qu’il tape sur le clavier.
Terminologie
29
Les gestionnaires d’événement sont des actions spéciales qui gèrent les événements tels que
mouseDown ou load. Il existe deux sortes de gestionnaires d’événement ActionScript : les
méthodes de gestionnaire d’événement et les écouteurs d’événement. (Il existe également deux
gestionnaires d’événement, on() et onClipEvent(), que vous pouvez affecter directement aux
boutons et aux clips.) Dans la boîte à outils du panneau Actions, chaque objet ActionScript qui
possède des méthodes de gestionnaire d’événement ou des écouteurs d’événement est associé à
une sous-catégorie appelée Evénements ou Ecouteurs. Certaines commandes, qui peuvent être
utilisées à la fois en tant que gestionnaires d’événement et écouteurs d’événement, sont incluses
dans les deux sous-catégories.
Une expression est toute combinaison légale de symboles ActionScript qui représentent une
valeur. Une expression se compose d’opérateurs et d’opérandes. Par exemple, dans l’expression
x + 2, x et 2 sont des opérandes et + est un opérateur.
Les fonctions sont des blocs de code réutilisables qui peuvent recevoir des paramètres et renvoyer
une valeur. Pour plus d’informations, consultez Création de fonctions, page 54.
Les identifiants sont des noms utilisés pour indiquer une variable, une propriété, un objet, une
fonction ou une méthode. Le premier caractère doit être une lettre, un trait de soulignement (_)
ou un dollar ($). Chaque caractère qui suit doit être une lettre, un chiffre, un trait de
soulignement ou un dollar. Par exemple, prénom est le nom d’une variable.
Les occurrences sont des objets qui appartiennent à une certaine classe. Chaque occurrence
d’une classe contient toutes les propriétés et les méthodes de cette classe. Par exemple, tous les
clips sont des occurrences de la classe MovieClip, vous pouvez alors utiliser n’importe quelle
méthode ou propriété de la classe MovieClip avec n’importe quelle occurrence de clip.
Les noms d’occurrence sont des noms uniques qui vous permettent de cibler des occurrences de
clip et de bouton dans les scripts. L’inspecteur des propriétés permet d’affecter des noms aux
occurrences présentes sur la scène. Par exemple, un symbole principal de la bibliothèque pourrait
s’appeler compteur et les deux occurrences de ce symbole dans le fichier SWF pourraient avoir
comme noms d’occurrence scoreJoueur1_mc et scoreJoueur2_mc. Le code suivant définit une
variable appelée score à l’intérieur de chaque occurrence de clip en utilisant le nom des
occurrences :
_root.scorePlayer1_mc.score += 1;
_root.scorePlayer2_mc.score -= 1;
Vous pouvez utiliser des suffixes spéciaux lors de l’affectation d’un nom à une occurrence, afin que
des conseils de code (consultez Utilisation des conseils de code, page 68) s’affichent lorsque vous
tapez du code. Pour plus d’informations, consultez Utilisation de suffixes pour déclencher des
conseils de code, page 66.
Les mots-clés sont des mots réservés avec une signification particulière. Par exemple, var est un
mot-clé utilisé pour déclarer des variables locales. Vous ne pouvez pas utiliser un mot-clé comme
identificateur. Par exemple, var n’est pas un nom de variable légal. Pour obtenir une liste des
mots-clés, consultez Mots-clés, page 36.
Les méthodes sont des fonctions associées à une classe. Par exemple, getBytesLoaded() est une
méthode intégrée associée à la classe MovieClip. Vous pouvez aussi créer des fonctions qui agissent
ensuite comme des méthodes pour les objets basés sur les classes intégrées ou sur les classes que
vous créez. Par exemple, dans le code suivant, clear() devient une méthode d’un objet
contrôleur que vous avez précédemment défini :
30
Chapitre 2 : Notions de base du langage ActionScript
function reset(){
this.x_pos = 0;
this.x_pos = 0;
}
contrôleur.clear = reset;
contrôleur.clear();
Les objets sont des groupes de propriétés et méthodes, chaque objet ayant son propre nom et
étant une occurrence d’une classe particulière. Les objets intégrés sont prédéfinis dans le langage
ActionScript. Par exemple, l’objet intégré Date fournit des informations provenant de l’horloge
système.
Les opérateurs sont des termes qui calculent une nouvelle valeur à partir d’une ou de plusieurs
valeurs. Par exemple, l’opérateur d’addition (+) additionne deux ou plusieurs valeurs pour en
obtenir une nouvelle. Les valeurs manipulées par les opérateurs sont appelées opérandes.
Les paramètres, également appelés arguments, sont des espaces réservés qui vous permettent de
transmettre des valeurs aux fonctions. Par exemple, la fonction bienvenue() suivante, utilise
deux valeurs qu’elle reçoit dans les paramètres prénom et hobby :
function bienvenue(prénom, hobby) {
texteDeBienvenue = "Bonjour " + prénom + "Votre hobby est : " + hobby;
}
Les paquets sont des répertoires qui contiennent un ou plusieurs fichiers de classe et résident
dans un répertoire de chemin de classe désigné (consultez Compréhension du chemin de classe,
page 177).
Les propriétés sont des attributs qui définissent un objet. Par exemple, _visible est une
propriété de tous les clips qui définit si ceux-ci sont visibles ou masqués.
Les chemins cibles sont des adresses hiérarchiques de noms d’occurrences de clips, de variables et
d’objets d’un fichier SWF. Les occurrences de clips sont nommées dans l’inspecteur des propriétés
des clips correspondants. Le scénario principal porte toujours le nom _root. Vous pouvez utiliser
un chemin cible pour réaliser une action sur un clip ou pour obtenir ou définir la valeur d’une
variable. Par exemple, l’instruction suivante est le chemin cible de la variable volume dans le clip
contrôleStéréo :
_root.contrôleStéréo.volume
Pour plus d’informations sur les chemins cibles, consultez Chemins cibles absolus et relatifs dans
le guide Utilisation de Flash de l’aide.
Les variables sont des identifiants qui contiennent des valeurs de n’importe quel type de données.
Les variables peuvent être créées, modifiées et mise à jour. Vous pouvez récupérer les valeurs
qu’elles contiennent et les utiliser dans des scripts. Dans l’exemple suivant, les identifiants situés à
gauche du signe égal sont des variables :
var x = 5;
var name = "Lolo";
var c_color = new Color(mcinstanceName);
Pour plus d’informations sur les variables, consultez A propos des variables, page 43.
Terminologie
31
Syntaxe
Comme dans tout langage, ActionScript implique des règles syntaxiques à respecter pour créer des
scripts pouvant être compilés et exécutés correctement. Cette section décrit les éléments de
syntaxe ActionScript.
Hauteur de casse
Dans un langage de programmation sensible à la casse, les noms de variable qui diffèrent
uniquement par leur casse (livre et Livre) ne sont pas considérés comme identiques. Par
conséquent, il est toujours judicieux d’employer les majuscules et les minuscules selon des
conventions fixes, comme celles utilisées dans cet ouvrage, car cela permet d’identifier plus
facilement les noms des fonctions et des variables dans le code ActionScript.
Lorsque vous publiez des fichiers pour Flash Player 7 ou une version ultérieure, Flash implémente
la sensibilité à la casse que vous utilisiez ActionScript 1 ou ActionScript 2.0. Cela signifie que les
mots-clés, noms de classe, variables, noms de méthode etc. sont tous sensibles à la casse. Par
exemple :
// Dans un fichier ciblant Flash Player 7
// et dans ActionScript 1 ou ActionScript 2.0
//
// Définit les propriétés de deux objets différents
chat.hilite = true;
CHAT.hilite = true;
// Crée trois variables différentes
var maVar=10;
var mavar=10;
var mAvAr=10;
// Ne génère pas d’erreur
var tableau = new Array();
var date = new Date();
Cette modification a également des répercussions sur les variables externes chargées via
LoadVars.load().
En outre, la sensibilité à la casse est implémentée pour les scripts externes, tels que les scripts ou les
fichiers de classe ActionScript 2.0 que vous importez en utilisant la commande #include. Si vous
publiez des fichiers pour Flash Player 7 et avez préalablement créé des fichiers externes que vous
ajoutez à vos scripts via l’instruction #include, vous devez passer chacun d’eux en revue pour
vous assurer que la casse est correcte. Pour ce faire, ouvrez le fichier dans la fenêtre de script (Flash
Professionnel uniquement) ou, dans un nouveau fichier FLA, réglez vos paramètres de
publication sur Flash Player 7 et copiez le contenu du fichier dans le panneau Actions. Utilisez
ensuite le bouton Vérifier la syntaxe (consultez Vérification de la syntaxe et de la ponctuation,
page 71) ou publiez votre fichier. Les erreurs dues à des conflits de noms sont signalées dans le
panneau de sortie.
Lorsque la coloration de la syntaxe est activée, les éléments du langage dont la casse est correcte
sont affichés en bleu par défaut. Pour plus d’informations, consultez Mots-clés, page 36, et Mise en
évidence de la syntaxe, page 65.
32
Chapitre 2 : Notions de base du langage ActionScript
Syntaxe pointée
Dans ActionScript, un point (.) est utilisé pour indiquer les propriétés ou les méthodes associées
à un objet ou à un clip. Il est également utilisé pour identifier le chemin cible d’un clip, d’une
variable, d’une fonction ou d’un objet. Une expression en syntaxe à point commence par le nom
de l’objet ou du clip suivi d’un point et se termine par l’élément que vous souhaitez spécifier.
Par exemple, la propriété _x d’un clip indique la position sur l’axe x du clip sur la scène.
L’expression balleMC._x fait référence à la propriété _x de l’occurrence de clip balleMC.
Dans un autre exemple, envoyer est une variable définie dans le clip formulaire, qui est
imbriqué dans le clip panier. L’expression panier.formulaire.envoyer = true définit la
variable envoyer du formulaire de l’occurrence sur true.
L’expression d’une méthode d’un objet ou clip se fait selon le même schéma. Par exemple, la
méthode play() de l’occurrence de clip balle_mc déplace la tête de lecture dans le scénario de
balle_mc, comme indiqué dans l’instruction suivante :
balle_mc.play();
La syntaxe pointée utilise également deux alias spéciaux, _root et _parent. L’alias _root fait
référence au scénario principal. Vous pouvez utiliser l’alias _root pour créer un chemin cible
absolu. Par exemple, l’instruction suivante appelle la fonction constructPlateau() dans le clip
fonctions du scénario principal :
_root.fonctions.constructPlateau();
Vous pouvez utiliser l’alias _parent pour faire référence à un clip dans lequel est imbriqué l’objet
courant. Vous pouvez également utiliser _parent pour créer un chemin cible relatif. Par exemple,
si le clip chien_mc est imbriqué dans le clip animal_mc, l’instruction suivante de l’occurrence
chien_mc indique à animal_mc de s’arrêter :
_parent.stop();
Syntaxe à barre oblique
La syntaxe à barre oblique était utilisée dans Flash 3 et 4 pour indiquer le chemin cible d’un clip
ou d’une variable. Cette syntaxe est toujours supportée dans Flash Player 7, mais son utilisation
n’est pas recommandée. La syntaxe à barre oblique n’est pas supportée dans ActionScript 2.0.
Toutefois, si vous créez du contenu destiné spécialement à Flash Player 4, vous devrez utiliser la
syntaxe à barre oblique. Pour plus d’informations, consultez Utilisation de la syntaxe à barre
oblique, page 909.
Accolades
Les gestionnaires d’événement, les définitions de classe et les fonctions ActionScript sont
regroupés en blocs délimités par des accolades ({}). Vous pouvez placer l’accolade ouvrante sur la
même ligne que la déclaration ou sur la ligne suivante, comme illustré dans les exemples cidessous. Pour améliorer la lisibilité du code, il est préférable de choisir un format et de s’y tenir.
//Gestionnaire d’événement
on(release) {
maDate = new Date();
moisCourant = maDate.getMonth();
}
on(release)
Syntaxe
33
{
maDate = new Date();
moisCourant = maDate.getMonth();
}
// Classe
class Cercle(radius) {
}
class Square(side)
{
}
//Fonction
circleArea = function(radius) {
return radius * radius * MATH.PI;
}
squareArea = function(side)
{
return side * side;
}
Vous pouvez contrôler qu’il ne manque pas d’accolades dans vos scripts ; consultez Vérification de
la syntaxe et de la ponctuation, page 71.
Points-virgules
Une instruction ActionScript se termine par un point-virgule (;), comme dans les exemples
suivants :
var colonne = dateTransmise.getDay();
var ligne
= 0;
L’omission du point-virgule final n’empêche pas Flash de compiler le script correctement.
Cependant, l’emploi de points-virgules est une bonne habitude à prendre lors de la rédaction de
scripts.
Parenthèses
Lorsque vous définissez une fonction, placez les paramètres entre parenthèses :
function maFonction (nom, âge, lecteur){
// entrez votre code ici
}
Lorsque vous appelez une fonction, incluez tous les paramètres transmis à la fonction entre
parenthèses, comme suit :
maFonction ("Steve", 10, true);
Vous pouvez également utiliser les parenthèses pour supplanter l’ordre de priorité d’ActionScript
ou pour faciliter la lecture des instructions ActionScript. Pour plus d’informations, consultez
Priorité et associativité des opérateurs, page 48.
Les parenthèses servent également à évaluer une expression située à gauche d’un point dans la
syntaxe pointée. Par exemple, dans l’instruction suivante, les parenthèses obligent à l’évaluation de
new Color(this) et à la création d’un objet Color :
onClipEvent(enterFrame){
(new Color(this)).setRGB(0xffffff);
}
34
Chapitre 2 : Notions de base du langage ActionScript
Si vous n’utilisez pas de parenthèses, vous devez ajouter une instruction pour évaluer l’expression :
onClipEvent(enterFrame){
maCouleur = new Color(this);
maCouleur.setRGB(0xffffff);
}
Vous pouvez contrôler qu’il ne manque pas de parenthèses dans vos scripts ; consultez Vérification
de la syntaxe et de la ponctuation, page 71.
Commentaires
Il est vivement recommandé d’utiliser des commentaires pour ajouter des notes aux scripts. Les
commentaires sont particulièrement utiles pour consigner vos intentions et transmettre des
informations à d’autres développeurs (si vous travaillez en équipe ou si vous fournissez des
échantillons). Même un script simple est plus facile à comprendre si vous l’annotez lors de sa
création.
Pour indiquer qu’une ligne ou portion de ligne est un commentaire, faites-la précéder de deux
barres obliques(//) :
on(release) {
// créer un nouvel objet Date
maDate = new Date();
moisCourant = maDate.getMonth();
// convertir le chiffre du mois en son nom
nomDuMois = calcMois(moisCourant);
année = maDate.getFullYear();
dateDuJour = maDate.getDate();
}
Lorsque la coloration de la syntaxe est activée (consultez Mise en évidence de la syntaxe, page 65),
les commentaires apparaissent en gris, par défaut. Les commentaires peuvent avoir n’importe
quelle longueur sans que cela affecte la taille du fichier exporté. Ils ne suivent aucune règle de
syntaxe ou de mots-clés relative à ActionScript.
Si vous souhaitez appliquer un commentaire à une portion complète de script, intégrez-le dans un
bloc de commentaire plutôt que de devoir ajouter // au début de chaque ligne. Cette technique
est plus simple et plus pratique, surtout lorsque vous souhaitez tester uniquement certaines parties
d’un script en en commentant de grandes parties.
Pour créer un bloc de commentaire, entrez /* au début du commentaire, puis */ à la fin. Par
exemple, lorsque le script suivant est exécuté, le code intégré dans le bloc de commentaire n’est pas
exécuté :
// Le code ci-dessous est exécuté
var x:Number = 15;
var y:Number = 20;
// Le code ci-dessous ne s’exécute pas
/*
on(release) {
// créer un nouvel objet Date
maDate = new Date();
moisCourant = maDate.getMonth();
// convertir le chiffre du mois en son nom
nomDuMois = calcMois(moisCourant);
année = maDate.getFullYear();
dateDuJour = maDate.getDate();
}
Syntaxe
35
*/
// Le code ci-dessous est exécuté
var nom:String = "Je m’appelle";
var âge:Number = 20;
Mots-clés
ActionScript réserve certains mots à des usages spécifiques au sein du langage et vous ne pouvez
pas vous en servir comme identifiants (noms de variable, de fonction, d’étiquette, etc.). Le tableau
suivant répertorie tous les mots-clés ActionScript :
break
case
classe
continue
default
delete
dynamic
else
extends
for
function
get
if
implements
import
in
instanceof
interface
intrinsic
new
private
public
return
set
static
switch
this
typeof
var
void
while
with
Constantes
Une constante est une propriété dont la valeur ne varie jamais.
Par exemple, les constantes BACKSPACE, ENTER, QUOTE, RETURN, SPACE et TAB sont des propriétés
de l’objet Key et font référence aux touches du clavier. Pour savoir si un utilisateur appuie sur la
touche Entrée, vous pourriez utiliser l’instruction suivante :
if(Key.getCode() == Key.ENTER) {
alert = "Etes-vous prêt(e) ?";
controlMC.gotoAndStop(5);
}
A propos des types de données
Un type de données décrit le genre d’informations qu’une variable ou qu’un élément ActionScript
peut contenir. Il existe deux sortes de types de données intégrées dans Flash : primitives et de
référence. Les données primitives (String, Number et Boolean) ont une valeur constante et
peuvent donc contenir la valeur réelle de l’élément qu’elles représentent. Les données de référence
(MovieClip et Object) possèdent des valeurs qui peuvent changer et contiennent donc des
références à la valeur réelle de l’élément. Les variables contenant des données primitives ont un
comportement différent de celles contenant des références dans certaines situations. Pour plus
d’informations, consultez Utilisation des variables dans un programme, page 46. Il existe également
deux types spéciaux de données : null et undefined.
Dans Flash, tout objet intégré qui n’est pas une donnée primitive, ni une donnée de clip, telle que
Array ou Math, est une donnée d’objet.
36
Chapitre 2 : Notions de base du langage ActionScript
Chaque type de données possède ses propres règles et est décrit sous les rubriques suivantes :
•
•
•
•
•
•
•
String, page 37
Number, page 38
Boolean, page 38
Object, page 38
MovieClip, page 39
Null, page 39
Undefined, page 39
Lorsque vous déboguez des scripts, vous pouvez avoir besoin de déterminer le type de données
d’une expression ou d’une variable pour comprendre pourquoi elle se comporte de telle manière.
Vous pouvez effectuer cette opération avec l’opérateur typeof (consultez Définition du type de
données d’un objet, page 39).
Vous pouvez convertir un type de données en un type différent en utilisant l’une des fonctions de
conversion suivantes : Array(), Boolean(), Number, Objet(), String.
String
Une chaîne est une séquence de caractères (lettres, chiffres et signes de ponctuation, par exemple).
Vous insérez des chaînes dans une instruction ActionScript en les plaçant entre des guillemets
droits simples ou doubles. Les chaînes sont traitées comme des caractères et non comme des
variables. Par exemple, dans l’instruction suivante, "L7" est une chaîne :
groupePréféré = "L7";
Vous pouvez utiliser l’opérateur d’addition (+) pour concaténer, ou joindre, deux chaînes.
ActionScript traite les espaces au début ou à la fin d’une chaîne comme faisant partie de la chaîne.
L’expression suivante contient un espace après la virgule :
salutations = "Bonjour, " + prénom;
Pour inclure un guillemet dans une chaîne, il faut le faire précéder d’une barre oblique inverse (\).
Cette opération s’appelle échapper un caractère. D’autres caractères ne peuvent pas être représentés
dans ActionScript sans l’emploi de séquences d’échappement particulières. Le tableau suivant
répertorie l’ensemble des caractères d’échappement d’ActionScript :
Séquence
d’échappement
Caractère
\b
Caractère de retour arrière (ASCII 8)
\f
Caractère de changement de page (ASCII 12)
\n
Caractère de changement de ligne (ASCII 10)
\r
Caractère de retour chariot (ASCII 13)
\t
Caractère de tabulation (ASCII 9)
\"
Guillemet droit double
\’
Guillemet droit simple
\\
Barre oblique inverse
A propos des types de données
37
Séquence
d’échappement
Caractère
\000 - \377
Un octet spécifié en octal
\x00 - \xFF
Un octet spécifié en hexadécimal
\u0000 - \uFFFF
Un caractère Unicode 16 bits spécifié en hexadécimal
Number
Le type de données Number correspond à un nombre à virgule flottante à double précision. Vous
pouvez manipuler les nombres avec les opérateurs arithmétiques d’addition (+), de soustraction (-),
de multiplication (*), de division (/), de modulo (%), d’incrémentation (++) et de
décrémentation (--). Vous pouvez également utiliser des méthodes des classes intégrées Math et
Number pour manipuler les nombres. L’exemple suivant utilise la méthode sqrt() (racine carrée)
pour renvoyer la racine carrée de 100 :
Math.sqrt(100);
Pour plus d’informations, consultez Opérateurs numériques, page 48.
Boolean
Une valeur booléenne est soit true (vraie), soit false (fausse). ActionScript convertit également
les valeurs true et false en 1 et 0 lorsque cela est nécessaire. Les valeurs booléennes sont le plus
souvent utilisées dans les instructions ActionScript effectuant des comparaisons pour contrôler le
déroulement d’un script. Par exemple, dans le script suivant, le fichier SWF est lu si la variable
motDePasse est vraie (true) :
onClipEvent(enterFrame){
if (nomDutilisateur == true && motDePasse == true){
play();
}
}
Consultez Utilisation de fonctions intégrées, page 54 et Opérateurs logiques, page 50.
Object
Un objet est une collection de propriétés. Chaque propriété possède un nom et une valeur. La
valeur d’une propriété peut être de n’importe quel type de données Flash, même un type de
données Object. Cela vous permet d’arranger les objets les uns dans les autres, ou de les imbriquer.
Pour spécifier les objets et leurs propriétés, vous devez utiliser l’opérateur point (.). Par exemple,
dans le code suivant, heuresTravaillées est une propriété de statsHebdo, qui est une propriété
de personnel :
personnel.statsHebdo.heuresTravaillées
Vous pouvez utiliser les objets ActionScript intégrés pour localiser et manipuler certains types
d’informations spécifiques. Par exemple, l’objet Math possède des méthodes qui effectuent des
opérations mathématiques sur les nombres que vous leur transmettez. Cet exemple utilise la
méthode sqrt() :
racineCarrée = Math.sqrt(100);
38
Chapitre 2 : Notions de base du langage ActionScript
L’objet ActionScript MovieClip possède des méthodes qui vous permettent de contrôler les
occurrences de symbole de clip sur la scène. Cet exemple utilise les méthodes play() et
nextFrame() :
nomDoccurrenceMC.play();
nomDoccurrenceMC2.nextFrame();
Vous pouvez aussi créer des objets personnalisés pour organiser les informations dans votre
application Flash. Pour ajouter de l’interactivité à votre application avec ActionScript, vous aurez
besoin d’un certain nombre d’informations : un nom d’utilisateur, la vitesse d’une balle, les noms
des objets contenus dans un panier, le nombre d’images chargées, le code postal de l’utilisateur et
la dernière touche utilisée, par exemple. La création d’objets personnalisés vous permet
d’organiser ces informations dans des groupes, de simplifier la rédaction et de réutiliser vos scripts.
MovieClip
Les clips sont des symboles qui peuvent lire des effets animés dans une application Flash. Ils sont
le seul type de données faisant référence à un élément graphique. Le type de données MovieClip
vous permet de contrôler les symboles de clip au moyen des méthodes de la classe MovieClip.
Vous appelez les méthodes en utilisant l’opérateur point (.), comme ci-dessous :
mon_mc.startDrag(true);
parent_mc.getURL("http://www.macromedia.com/support/" + produit);
Null
Le type de données nul ne possède qu’une valeur, null. Cette valeur signifie en fait « pas de
valeur », c’est-à-dire une absence de données. La valeur null peut être utilisée dans diverses
situations. En voici quelques exemples :
• Pour indiquer qu’une variable n’a pas encore reçu de valeur.
• Pour indiquer qu’une variable ne contient plus de valeur.
• En tant que valeur de retour d’une fonction, afin d’indiquer qu’aucune valeur n’a pu être
retournée par la fonction.
• En tant que paramètre d’une fonction, afin d’indiquer qu’un paramètre est omis.
Undefined
Le type de données undefined ne possède qu’une valeur, undefined, et est utilisé pour les
variables auxquelles aucune valeur n’a été affectée.
Définition du type de données d’un objet
Lors du test et du débogage de vos programmes, des problèmes liés aux types de données peuvent
se produire. Dans ce cas, il peut être souhaitable de déterminer le type de données d’un objet.
Pour ce faire, utilisez l’opérateur typeof, comme dans l’exemple suivant :
trace(typeof(nomDeVariable));
Pour plus d’informations sur le test et le débogage, consultez le Chapitre 3, Rédaction et débogage
de scripts, page 59.
A propos des types de données
39
Affectation de types de données aux éléments
Flash affecte automatiquement les types de données aux éléments de langage suivants, comme
indiqué dans la section suivante, Typage des données automatique :
•
•
•
•
Variables
Paramètres transmis à une fonction, à une méthode ou à une classe
Valeurs renvoyées d’une fonction ou d’une méthode
Objets créés comme sous-classes de classes existantes
Vous pouvez également affecter explicitement des types de données aux éléments, ce qui peut vous
aider à éviter ou diagnostiquer certaines erreurs dans vos scripts. Pour plus d’informations,
consultez Typage strict des données, page 40.
Typage des données automatique
Dans Flash, il n’est pas nécessaire de définir explicitement un élément comme contenant un
nombre, une chaîne ou un autre type de données. Flash détermine le type de données d’un
élément lorsque celui est affecté :
var x = 3;
Dans l’expression var x = 3, Flash évalue l’élément à droite de l’opérateur et détermine qu’il
s’agit du type de données nombre. Une affectation ultérieure pourra changer le type de x. Par
exemple, l’instruction x = "bonjour" change le type de x en chaîne. Une variable à laquelle
aucune valeur n’a été affectée est du type undefined (non défini).
ActionScript convertit automatiquement les types de données lorsqu’une expression le nécessite.
Par exemple, lorsque vous transmettez une valeur à l’action trace(), trace() convertit
automatiquement la valeur en chaîne et l’envoie au panneau de sortie. Dans les expressions avec
opérateurs, ActionScript convertit les types de données en fonction des besoins, par exemple, lors
de l’utilisation dans une chaîne, l’opérateur + s’attend à ce que l’autre opérande soit une chaîne.
"Suivant : le numéro " + 7
ActionScript convertit le chiffre 7 en chaîne "7" et l’ajoute à la fin de la première chaîne, ce qui
aboutit à la chaîne suivante :
"Suivant : le numéro 7"
Typage strict des données
ActionScript 2.0 vous permet de déclarer explicitement le type d’objet d’une variable lorsque vous
la créez, ce qui est appelé typage strict. Les incompatibilités de type de données déclenchent des
erreurs de compilation, le typage strict vous permet donc d’éviter d’affecter un type de données
incorrect à une variable existante. Pour affecter un type de données spécifique à un élément,
spécifiez son type à l’aide d’une syntaxe utilisant le mot-clé var ainsi que deux points :
// typage strict de variable ou objet
var x:Number = 7;
var anniversaire:Date = new Date();
// typage strict de paramètres
function welcome(firstName:String, age:Number){
}
40
Chapitre 2 : Notions de base du langage ActionScript
// typage strict de paramètre et de valeur renvoyée
function square(x:Number):Number {
var squared = x*x;
return squared;
}
Etant donné que vous devez utiliser le mot-clé var pour le typage strict des variables, vous ne
pouvez pas définir strictement le type d’une variable globale (consultez Domaine et déclaration de
variables, page 44).
Vous pouvez typer des objets en fonction des classes intégrées (Button, Date, MovieClip, etc.) et
des classes et interfaces que vous créez. Par exemple, vous avez un fichier qui s’appelle Etudiant.as
dans lequel vous avez défini une classe Etudiant, vous pouvez spécifier que les objets que vous
créez sont de type Etudiant :
var étudiant:Student = new Student();
Vous pouvez également spécifier que les objets sont de type Function ou Void.
L’utilisation du typage strict vous empêche d’affecter, par inadvertance, un type de valeur
incorrect à un objet. Flash recherche les incompatibilités de type au moment de la compilation.
Par exemple, supposons que vous tapez ce qui suit :
// dans le fichier de classe Etudiant.as
class Etudiant {
var status:Boolean; // propriété des objets Etudiant
}
// dans un script
var étudiantMarieLago:Student = new Student();
étudiantMarieLago.status = "inscrite";
Lorsque Flash compile ce script, une erreur « Incompatibilité de types » se produit.
Un des autres avantages du typage strict des données réside dans le fait que Flash MX 2004 affiche
automatiquement des conseils de code pour les objets intégrés que vous typez strictement. Pour
plus d’informations, consultez Typage strict des objets pour déclencher des conseils de code, page 66.
Les fichiers publiés à l’aide d’ActionScript 1 ne respectent pas les affectations de typage strict des
données lors de la compilation. Ainsi, l’affectation du mauvais type de valeur à une variable que
vous avez strictement typée ne génère pas d’erreur de compilation.
var x:String = "abc"
x = 12 ; // aucune erreur dans ActionScript 1, erreur de compatibilité de type
dans ActionScript 2
Ceci est dû au fait que lorsque vous publiez un fichier pour ActionScript 1, Flash interprète une
instruction telle que var x:String = "abc" comme une syntaxe à barre oblique et non comme
un typage strict. (ActionScript 2.0 ne supporte pas la syntaxe à barre oblique.) Il peut alors en
résulter un objet affecté à une variable de type erroné. Le compilateur autorise alors que des appels
de méthodes illégaux et que des références de propriété non définies passent sans être signalés.
Ainsi, si vous implémentez le typage strict de données, assurez-vous de publier les fichiers pour
ActionScript 2.0.
Affectation de types de données aux éléments
41
Attribution d’objets
ActionScript 2.0 vous permet d’attribuer un type de données à un autre. L’opérateur d’attribution
utilisé par Flash se présente sous la forme d’un appel de fonction et concorde avec la coercition
explicite, telle qu’elle est définie dans la norme ECMA-262 version 4. L’attribution vous permet
d’affirmer qu’un objet est d’un type spécifique de telle sorte que, lors de la vérification du type, le
compilateur considère que l’objet est doté de propriétés absentes du type d’origine. Ceci peut
s’avérer utile, par exemple, lors de l’itération sur un tableau d’objets pouvant être de types
différents.
Dans les fichiers publiés pour Flash Player 7 ou une version ultérieure, les instructions
d’attribution qui échouent à l’exécution renvoient null. Dans les fichiers publiés pour Flash
Player 6, les attributions ayant échouées ne sont pas supportées à l’exécution.
La syntaxe d’attribution est type(élément) : le compilateur doit se comporter comme si le type
de données de élément était type. L’attribution est essentiellement un appel de fonction, et
l’appel de fonction renvoi null si l’attribution échoue. Si l’attribution réussit, l’appel de fonction
renvoie l’objet original. Toutefois, le compilateur ne génère pas d’erreurs d’incompatibilité de type
lorsque vous attribuez des éléments à des types de données que vous avez créés dans des fichiers de
classe externes, même si l’attribution échoue à l’exécution.
// dans Animal.as
class Animal {}
// dans Chien.as
class Chien extends Animal { function aboie (){} }
// dans Chat.as
class Chat extends Animal { function miaule (){} }
// dans le fichier FLA
var spot:Chien = new Chien();
var temp:Chat = Chat (spot); // affirme qu’un objet Chien est de type Chat
temp.miaou(); // n’a aucun effet et n’entraîne pas d’erreur de compilation non
plus
Dans cette situation, vous avez indiqué au compilateur que temp est un objet Chat, et le
compilateur suppose donc que temp.miaou() est une instruction légale. Toutefois, le compilateur
ne sait pas que l’attribution échouera (c’est-à-dire que vous avez essayé d’attribuer un objet Chien
à un type Chat), et aucune erreur de compilation ne se produit. Si vous incorporez une
vérification dans votre script de manière à vous assurer que l’attribution réussit, vous pouvez
trouver des erreurs d’incompatibilité de types à l’exécution.
var spot:Chien = new Chien();
var temp:Chat = Chat (spot);
trace(temp); //affiche null à l’exécution
Vous pouvez attribuer une expression à une interface. Si l’expression est un objet qui implémente
l’interface, ou si elle possède une classe de base qui implémente l’interface, l’objet est renvoyé.
Sinon, null est renvoyé.
L’exemple suivant montre les résultats de l’attribution de types d’objet intégrés. Comme le montre
la première ligne du bloc with(results), une attribution illégale (dans le cas présent,
l’attribution d’une chaîne à un clip) renvoie null. Comme le montrent les deux dernières lignes,
l’attribution vers null ou undefined renvoie undefined.
42
Chapitre 2 : Notions de base du langage ActionScript
var mc:MovieClip;
var tab:Array;
var bool:Boolean;
var num3:Number;
var obj:Object;
var str:String;
_root.createTextField("results",2,100,100,300,300);
with(results){
text = "type MovieClip : "+(typeof MovieClip(str));
text += "\ntype object : "+(typeof Object(str));
text += "\ntype Array : "+(typeof Array(num3));
text += "\ntype Boolean : "+(typeof Boolean(mc));
text += "\ntype String : "+(typeof String(mc));
text += "\ntype Number : "+(typeof Number(obj));
text += "\ntype Function : "+(typeof Function(mc));
text += "\ntype null : "+(typeof null(arr));
text += "\ntype undefined : "+(typeof undefined(obj));
}
//Résultats dans le panneau de sortie
type MovieClip : null
type object : objet
type Array : objet
type Boolean : boolean
type String : chaîne
type Number : nombre
type Function : objet
type null : undefined
type undefined : undefined
//
//
//
//
//
//
//
//
//
renvoie
renvoie
renvoie
renvoie
renvoie
renvoie
renvoie
renvoie
renvoie
null
object
object
boolean
string
number
object
undefined
undefined
Vous ne pouvez pas supplanter les types de données primitifs tels que Boolean, Date et Number
par un opérateur d’attribution du même nom.
A propos des variables
Une variable est un conteneur qui stocke des informations. Le conteneur reste toujours le même,
c’est le contenu qui peut varier. La modification de la valeur d’une variable pendant la lecture du
fichier SWF permet d’enregistrer les informations relatives aux actions de l’utilisateur,
d’enregistrer les valeurs modifiées pendant la lecture du fichier SWF ou d’évaluer si une condition
est true ou false.
Il est toujours judicieux d’affecter une valeur connue à une variable que vous définissez pour la
première fois. Cette opération, appelée initialisation de la variable, est souvent effectuée dans la
première image du fichier SWF. Elle facilite le suivi et la comparaison de la valeur de la variable
pendant la lecture du fichier SWF.
Les variables peuvent contenir tous les types de données (consultez A propos des types de données,
page 36). Le type de données contenu dans une variable affecte la façon dont est modifiée la
valeur de la variable lorsqu’elle est affectée à un script.
Les types d’informations standard que vous pouvez stocker dans une variable sont les URL, les
noms d’utilisateur, les résultats d’opérations mathématiques, le nombre de fois qu’un événement
s’est produit ou si un bouton a été actionné. Chaque fichier SWF et chaque occurrence de clip
dispose d’un jeu de variables, dont la valeur est indépendante des variables figurant dans d’autres
fichiers SWF ou clips.
A propos des variables
43
Pour tester la valeur d’une variable, utilisez l’action trace() pour envoyer la valeur au panneau de
sortie. Par exemple, trace(heuresTravaillées) envoie la valeur de la variable
heuresTravaillées au panneau de sortie en mode de test. Vous pouvez également vérifier et
définir les valeurs des variables dans le débogueur en mode de test. Pour plus d’informations,
consultez Utilisation de l’instruction trace, page 85 et Affichage et modification de variables, page 77.
Affectation d’un nom à une variable
Le nom des variables doit suivre les règles suivantes :
• Il doit s’agir d’un identifiant (consultez Terminologie, page 29).
• Il ne peut pas s’agir d’un mot-clé ni d’un littéral ActionScript, tel que true, false, null ou
undefined.
• Il doit être unique dans son domaine (consultez Domaine et déclaration de variables, page 44).
Par ailleurs, n’utilisez pas les éléments du langage ActionScript comme noms de variable : cela
donnerait lieu à des erreurs de syntaxe ou à des résultats inattendus. Si vous appelez une variable
String, par exemple, puis tentez de créer un objet String au moyen de new String(), le nouvel
objet n’est pas défini.
bonjour_str = new String();
trace(bonjour_str.length); // renvoie 0
String = "bonjour"; // Attribution du nom d’une classe intégrée à une variable
bonjour_str = new String();
trace(bonjour_str.length); // renvoie undefined
L’éditeur ActionScript prend en charge les conseils de code pour les classes intégrées et pour les
variables basées sur ces classes. Si vous souhaitez obtenir des conseils de code pour un type d’objet
particulier affecté à une variable, vous pouvez définir strictement le type de cette dernière ou la
nommer en utilisant un suffixe spécial.
Par exemple, supposons que vous tapez ce qui suit :
var membres:Array = new Array();
membres.
Dès que vous tapez le point (.), Flash affiche la liste des méthodes et propriétés disponibles pour
les objets Array. Pour plus d’informations, consultez Rédaction de code qui déclenche des conseils de
code, page 66.
Domaine et déclaration de variables
Le domaine d’une variable fait référence au domaine dans lequel la variable est connue et peut être
référencée. Il existe trois types de domaine de variable dans ActionScript :
• Les Variables locales sont disponibles dans le corps de la fonction dans lequel elles sont déclarées
•
•
(délimité par des accolades).
Les Variables de scénario sont disponibles pour tout script dans ce scénario.
Les Variables globales et les fonctions sont visibles par tout scénario et domaine du document.
Remarque : Les classes ActionScript 2.0 que vous créez supportent des domaines de variables
publics, privés et statiques. Pour plus d’informations, consultez Contrôle de l’accès des membres,
page 172 et Création des membres de classe, page 174.
44
Chapitre 2 : Notions de base du langage ActionScript
Variables locales
Pour déclarer des variables locales, utilisez l’instruction var dans le corps de la fonction. Une
variable locale a un domaine limité au bloc et expire à la fin du bloc. Une variable locale qui n’est
pas déclarée dans un bloc expire à la fin de son script.
Par exemple, les variables i et j sont souvent utilisées comme compteurs de boucles. Dans
l’exemple suivant, i est utilisée comme variable locale et existe uniquement dans la fonction
constructJours() :
function constructJours() {
var i;
for( i = 0; i < tableauDeMois[month]; i++ ) {
_root.Jours.attachMovie( "affichageDesJours", i, i + 2000 );
_root.Jours[i].num = i + 1;
_root.Jours[i]._x = colonne * _root.Jours[i]._width;
_root.Jours[i]._y = ligne * _root.Jours[i]._height;
colonne = colonne + 1;
if (colonne == 7 ) {
colonne = 0;
ligne = ligne + 1;
}
}
}
Les variables locales permettent aussi d’empêcher les conflits de noms, qui peuvent donner lieu à
des erreurs dans une application. Par exemple, si vous créez la variable locale nom, vous pouvez
l’utiliser pour stocker un nom d’utilisateur dans un contexte et une occurrence de clip dans un
autre. Ces variables fonctionnant dans des domaines distincts, il n’y a pas de risques de conflits.
Il est toujours judicieux d’utiliser des variables locales dans le corps d’une fonction pour que celleci puisse agir en tant que partie de code indépendante. Une variable locale n’est modifiable qu’au
sein de son propre bloc de code. Si une expression d’une fonction utilise une variable globale, un
élément extérieur peut modifier sa valeur, ce qui modifierait la fonction.
Vous pouvez affecter un type de données à une variable locale lorsque vous la définissez, ce qui
vous évite d’affecter un type de données erroné à une variable existante. Pour plus d’informations,
consultez Typage strict des données, page 40.
Variables de scénario
Les variables de scénario sont disponibles pour tout script dans le scénario. Pour déclarer les
variables de scénario, initialisez-les sur n’importe quelle image du scénario. Veillez à initialiser
la variable avant de tenter d’y accéder dans un script. Si, par exemple, vous placez le code
varx = 10; sur l’image 20, un script associé à une image précédant l’image 20 n’aura pas accès à
cette variable.
A propos des variables
45
Variables globales
Les variables et les fonctions globales sont visibles par tout scénario et domaine du document.
Pour créer une variable globale, faites précéder son nom de l’identifiant _global et n’utilisez pas
la syntaxe var =. Par exemple, le code suivant crée la variable globale monNom :
var _global.monNom = "George"; // erreur de syntaxe
_global.monNom = "George";
Toutefois, si vous initialisez une variable locale portant le même nom qu’une variable globale,
vous n’avez pas accès à cette dernière dans le domaine de la variable locale :
_global.compteur = 100;
compteur++;
trace(compteur); // affiche 101
function count(){
for( var compteur = 0; compteur <= 10 ; compteur++ ) {
trace(compteur); // affiche 0 à 10
}
}
count();
compteur++;
trace(compteur); // affiche 102
Utilisation des variables dans un programme
Vous devez déclarer une variable dans un script avant de pouvoir l’utiliser dans une expression. Si
vous utilisez une variable non déclarée, comme dans l’exemple suivant, elle prend la valeur NaN ou
undefined, et votre script est susceptible de générer des résultats inattendus :
var squared = x*x;
trace(squared); // NaN
var x = 6;
Dans l’exemple ci-dessous, l’instruction déclarant la variable x doit être placée en premier de sorte
que squared puisse être remplacée par une valeur.
var x = 6;
var squared = x*x;
trace(squared); // 36
La même chose se produit lorsque vous transmettez une valeur non définie à une méthode ou à
une fonction :
getURL(onSiteWeb); // aucune action
var monSiteWeb = "http://www.macromedia.com";
var monSiteWeb = "http://www.macromedia.com";
getURL(monSiteWeb); // le navigateur affiche www.macromedia.com
Vous pouvez changer plusieurs fois la valeur d’une variable dans un script. Le type de données
contenu dans la variable affecte les conditions et le moment où la variable sera modifiée. Les types
primitifs de données, comme les chaînes et les nombres, sont transmis par valeur. Cela signifie que
le contenu réel de la variable est transmis à la variable.
Dans l’exemple suivant, x est défini sur 15 et cette valeur est copiée dans y. Lorsque x devient 30
à la ligne 3, la valeur de y reste 15 étant donné que y ne va pas chercher sa valeur dans x ; elle
contient la valeur de x qu’elle a reçu à la ligne 2.
46
Chapitre 2 : Notions de base du langage ActionScript
var x = 15;
var y = x;
var x = 30;
Dans un autre exemple, la variable valeurEntrée contient une valeur primitive, 3, la valeur réelle
étant donc transmise à la fonction sqrt() et la valeur renvoyée étant 9 :
function sqrt(x){
return x * x;
}
var valeurEntrée = 3;
var Sortie = sqrt(valeurEntrée);
La valeur de la variable valeurEntrée ne change pas.
Le type de données objet peut contenir tant d’informations complexes qu’une variable de ce type
ne contient pas la valeur réelle, mais contient une référence à la valeur. Cette référence est un
« alias » qui désigne le contenu de la variable. Lorsque la variable a besoin de connaître sa valeur, la
référence demande le contenu et renvoie la réponse sans transférer la valeur à la variable.
Le code suivant est un exemple de transmission par référence :
var monTableau = ["tom", "josie"];
var nouveauTableau = monTableau;
monTableau[1] = "jack";
trace(nouveauTableau);
Le code ci-dessus crée un objet Array appelé monTableau qui contient deux éléments. La variable
nouveauTableau est créée et reçoit une référence à monTableau. La modification du deuxième
élément de monTableau affecte toutes les variables qui y font référence. L’action trace() envoie
tom, jack au panneau de sortie.
Dans l’exemple suivant, monTableau contient un objet Array qui est transmis à la fonction
par référence. La fonction tableauNu()l change le contenu du tableau en
tableauNul()
monTableau.
function tableauNul(leTableau){
var i;
for (i=0; i < leTableau.length; i++) {
leTableau[i] = 0;
}
}
var monTableau = new Array();
monTableau[0] = 1;
monTableau[1] = 2;
monTableau[2] = 3;
tableauNul(monTableau);
La fonction tableauNul() accepte un objet Array comme paramètre et définit tous les éléments
de ce tableau sur 0. Elle peut modifier ce tableau car il est transmis par référence.
A propos des variables
47
Utilisation d’opérateurs pour manipuler les valeurs des
expressions
Une expression est une instruction que Flash pourra évaluer et qui renvoie une valeur. Pour créer
une expression, vous pouvez associer des opérateurs et des valeurs ou appeler une fonction.
Les opérateurs sont des caractères qui spécifient comment combiner, comparer ou modifier les
valeurs d’une expression. Les éléments sur lesquels les opérateurs agissent sont appelés opérandes.
Par exemple, dans l’instruction suivante, l’opérateur + additionne la valeur d’un littéral numérique
à la valeur de la variable truc; truc et 3 sont les opérandes :
truc + 3
Cette section décrit des règles générales au sujet de types courants d’opérateurs, de la priorité des
opérateurs et de leur associativité. Pour plus d’informations sur chaque opérateur, de même que
sur les opérateurs spéciaux n’appartenant pas à ces catégories, consultez le
Chapitre 12, Dictionnaire ActionScript, page 215.
Priorité et associativité des opérateurs
Lorsque deux opérateurs ou plus sont utilisés dans la même instruction, certains opérateurs sont
prioritaires par rapport à d’autres. ActionScript suit une hiérarchie précise pour déterminer les
opérateurs à exécuter en premier. Par exemple, une multiplication est toujours effectuée avant une
addition, les éléments entre parenthèses restant cependant prioritaires sur la multiplication. Donc,
sans parenthèses, ActionScript effectue la multiplication en premier, comme dans l’exemple
suivant :
total = 2 + 4 * 3;
Le résultat est 14.
Mais si l’addition est mise entre parenthèses, ActionScript effectue l’addition en premier :
total = (2 + 4) * 3;
Le résultat est 18.
Lorsque deux ou plusieurs opérateurs possèdent le même ordre de priorité, leur associativité
détermine l’ordre dans lequel ils sont exécutés. L’associativité peut aller de la gauche vers la droite,
comme de la droite vers la gauche. Par exemple, l’opérateur de multiplication a une associativité
gauche-droite et les deux instructions suivantes sont donc équivalentes :
total = 2 * 3 * 4;
total = (2 * 3) * 4;
Un tableau de tous les opérateurs, de leur ordre de priorité et de leur associativité, apparaît dans
l’Annexe B, Priorité et associativité des opérateurs, page 899.
Opérateurs numériques
Les opérateurs numériques additionnent, soustraient, multiplient, divisent et effectuent d’autres
opérations arithmétiques.
L’emploi le plus courant de l’opérateur d’incrémentation est i++ au lieu de l’opérateur i = i+1,
qui est plus long. L’opérateur d’incrémentation peut s’utiliser avant ou après une opérande. Dans
l’exemple suivant, âge est incrémenté en premier, puis à nouveau testé contre le nombre 30 :
if (++âge >= 30)
48
Chapitre 2 : Notions de base du langage ActionScript
Dans l’exemple suivant, âge est incrémenté à la suite du test :
if (âge++ >= 30)
Le tableau suivant répertorie les opérateurs numériques d’ActionScript :
Opérateur
Opération effectuée
+
Addition
*
Multiplication
/
Division
%
Modulo (reste de division)
-
Soustraction
++
Incrémentation
--
Décrémentation
Opérateurs de comparaison
Les opérateurs de comparaison comparent les valeurs des expressions et renvoient une valeur
booléenne (true ou false). Ces opérateurs sont surtout utilisés dans les boucles et les
instructions conditionnelles. Dans l’exemple suivant, si la variable score correspond à 100, un
fichier SWF spécifique est chargé ; sinon, c’est un autre fichier SWF qui est chargé :
if (score > 100){
loadMovieNum("gagnant.swf", 5);
} else {
loadMovieNum("perdant.swf", 5);
}
Le tableau suivant répertorie les opérateurs de comparaison d’ActionScript :
Opérateur
Opération effectuée
<
Inférieur à
>
Supérieur à
<=
Inférieur ou égal à
>=
Supérieur ou égal à
Opérateurs de chaîne
L’opérateur + agit de manière spéciale sur les chaînes : il en concatène les deux opérandes. Par
exemple, les instructions suivantes additionnent "Félicitations," et "Donna !":
"Félicitations, " + "Donna !"
Le résultat est "Félicitations, Donna !". Si un seul opérande de l’opérateur + est une chaîne,
Flash convertit l’autre opérande en chaîne.
Utilisation d’opérateurs pour manipuler les valeurs des expressions
49
Les opérateurs de comparaison >, >=, < et <= agissent également de manière particulière sur les
chaînes. Ces opérateurs comparent deux chaînes pour déterminer celle qui apparaît en premier
dans l’ordre alphabétique. Les opérateurs de comparaison ne comparent des chaînes que si les
deux opérandes sont des chaînes. Si un seul opérande est une chaîne, ActionScript convertit les
deux opérandes en nombres et effectue une comparaison numérique.
Opérateurs logiques
Les opérateurs logiques comparent des valeurs booléennes (true et false) et renvoient une
troisième valeur booléenne. Par exemple, si les deux opérandes sont true, l’opérateur logique
AND (&&) renvoie true. Si l’un des opérandes, ou les deux, est true, l’opérateur logique OR (||)
renvoie false. Les opérateurs logiques sont souvent utilisés en complément des opérateurs de
comparaison pour déterminer la condition d’une action if. Par exemple, dans le script suivant, si
les deux expressions sont true, l’action if est exécutée :
if (i > 10 && _framesloaded > 50){
play();
}
Le tableau suivant répertorie les opérateurs logiques d’ActionScript :
Opérateur
Opération effectuée
&&
AND logique
||
OR logique
!
NOT logique
Opérateurs au niveau du bit
Les opérateurs au niveau du bit manipulent (en interne) les nombres à virgule flottante pour les
transformer en entiers 32 bits. L’opération exacte effectuée dépend de l’opérateur, mais toutes les
opérations au niveau du bit évaluent chaque bit d’un entier 32 bits séparément pour calculer une
nouvelle valeur.
Le tableau suivant répertorie les opérateurs au niveau du bit d’ActionScript :
50
Opérateur
Opération effectuée
&
AND au niveau du bit
|
OR au niveau du bit
^
XOR au niveau du bit
~
NOT au niveau du bit
<<
Décalage gauche
>>
Décalage droit
>>>
Décalage droit avec remplissage par zéros
Chapitre 2 : Notions de base du langage ActionScript
Opérateurs d’égalité
Vous pouvez utiliser l’opérateur d’égalité (==) pour déterminer si les valeurs ou les identités de
deux opérandes sont égales. Cette comparaison renvoie une valeur booléenne (true ou false). Si
les opérandes sont des chaînes, des nombres ou des valeurs booléennes, ils sont comparés par
valeur. Si les opérandes sont des objets ou des tableaux, ils sont comparés par référence.
Une erreur courante consiste à utiliser l’opérateur d’affectation pour contrôler l’égalité. Par
exemple, le code suivant compare x à 2 :
if (x == 2)
Dans ce même exemple, l’expression x = 2 est incorrecte, car elle ne compare pas les opérandes,
mais affecte la valeur 2 à la variable x.
L’opérateur d’égalité stricte (===) est semblable à l’opérateur d’égalité, à une différence
(importante) près : l’opérateur d’égalité stricte n’effectue pas de conversion de type. Si les deux
opérandes sont de types différents, l’opérateur d’égalité stricte renvoie false. L’opérateur
d’inégalité stricte (!==) renvoie l’inverse de l’opérateur d’égalité stricte.
Le tableau suivant répertorie les opérateurs d’égalité d’ActionScript :
Opérateur
Opération effectuée
==
Egalité
===
Egalité stricte
!=
Inégalité
!==
Inégalité stricte
Opérateurs d’affectation
Vous pouvez utiliser l’opérateur d’affectation (=) pour affecter une valeur à une variable, comme
par exemple :
var motDePasse = "Sk8tEr";
Vous pouvez également utiliser l’opérateur d’affectation pour affecter plusieurs variables dans la
même expression. Dans l’instruction suivante, la valeur a est affectée aux variables b, c et d :
a = b = c = d;
Vous pouvez aussi utiliser des opérateurs d’affectation composés pour combiner des opérations.
Les opérateurs composés agissent sur les deux opérandes, puis affectent la nouvelle valeur au
premier. Par exemple, les deux instructions suivantes sont équivalentes :
x += 15;
x = x + 15;
L’opérateur d’affectation peut également être utilisé au milieu d’une expression, comme illustré cidessous :
// s’il ne s’agit pas de vanille, afficher un message.
if ((goût =goûtGlace()) != "vanille") {
trace ("Le goût est " + flavor + ", pas la vanille.");
}
Utilisation d’opérateurs pour manipuler les valeurs des expressions
51
Ce code équivaut au code suivant, qui est quelque peu plus long :
goût = goûtGlace();
if (goût != "vanille") {
trace ("Le goût est " + flavor + ", pas la vanille.");
}
Le tableau suivant répertorie les opérateurs d’affectation d’ActionScript :
Opérateur
Opération effectuée
=
Affectation
+=
Addition et affectation
-=
Soustraction et affectation
*=
Multiplication et affectation
%=
Modulo et affectation
/=
Division et affectation
<<=
Décalage gauche au niveau du bit et affectation
>>=
Décalage droit au niveau du bit et affectation
>>>=
Décalage droit avec remplissage par zéros et affectation
^=
XOR au niveau du bit et affectation
|=
OR au niveau du bit et affectation
&=
AND au niveau du bit et affectation
Opérateurs point et accès tableau
Vous pouvez utiliser les opérateurs point (.) et accès tableau ([]) pour accéder aux propriétés des
objets ActionScript intégrés ou personnalisés, telles que celles d’un clip.
L’opérateur point utilise le nom d’un objet dans sa partie gauche et le nom d’une propriété ou
d’une variable dans sa partie droite. Le nom de propriété ou de variable ne peut pas être une
chaîne ni une variable évaluée comme une chaîne ; il doit s’agir d’un identifiant. Les exemples
suivants utilisent l’opérateur point :
année.mois = "juin";
année.mois.jour = 9;
Les opérateurs point et accès tableau jouent le même rôle, mais l’opérateur point prend un
identifiant comme propriété alors que l’opérateur d’accès tableau évalue son contenu comme nom
et accède ensuite à la valeur de cette propriété nommée. Par exemple, les expressions suivantes
accèdent à la même variable vitesse dans le clip fusée :
fusée.vitesse;
fusée["vitesse"];
Vous pouvez utiliser l’opérateur d’accès tableau pour définir et récupérer dynamiquement les
noms et les variables des occurrences. Par exemple, dans le code suivant, l’expression insérée dans
l’opérateur [] est évaluée et le résultat de cette évaluation est utilisé comme nom de la variable à
récupérer du clip nom :
nom["mc" + i]
52
Chapitre 2 : Notions de base du langage ActionScript
Vous pouvez également utiliser la fonction eval(), comme dans l’exemple ci-dessous :
eval("mc" + i)
L’opérateur d’accès tableau peut également être utilisé dans la partie gauche d’une instruction
d’affectation. Cela vous permet de définir dynamiquement les noms d’objet, de variable et
d’occurrence, comme dans l’exemple suivant :
nom[index] = "Gary";
Pour créer des tableaux multidimensionnels dans ActionScript, vous construisez un tableau dont
les éléments sont également des tableaux. Pour accéder aux éléments d’un tableau
multidimensionnel, vous pouvez imbriquer l’opérateur accès tableau en lui-même, comme illustré
ci-après :
var Echiquier = new Array();
for (var i=0; i<8; i++) {
Echiquier.push(new Array(8));
}
function récupContenuPosition(ligne, colonne){
Echiquier[ligne][colonne];
}
Vous pouvez contrôler qu’il ne manque pas d’opérateurs [] dans vos scripts ; consultez
Vérification de la syntaxe et de la ponctuation, page 71.
Définition du chemin d’un objet
Pour utiliser une action afin de contrôler un clip ou un fichier SWF chargé, vous devez spécifier
son nom et son adresse, qui constituent le chemin cible.
Dans ActionScript, un clip est identifié par son nom d’occurrence. Par exemple, dans l’instruction
suivante, la propriété _alpha du clip nommé étoile est définie sur une visibilité de 50 % :
étoile._alpha = 50;
Pour donner un nom d’occurrence à un clip :
1 Sélectionnez le clip sur la scène.
2 Entrez un nom d’occurrence dans l’inspecteur des propriétés.
Pour identifier un fichier SWF chargé :
• Utilisez _levelX, où X est le numéro du niveau spécifié dans l’action loadMovie() qui a
chargé le fichier SWF.
Par exemple, un fichier SWF chargé dans le niveau 5 a pour chemin cible _level5. Dans
l’exemple suivant, un fichier SWF est chargé dans le niveau 5 et sa visibilité est définie sur
false :
onClipEvent(load) {
loadMovieNum("monAnimation.swf", 5);
}
onClipEvent(enterFrame){
_level5._visible = false;
}
Définition du chemin d’un objet
53
Pour entrer le chemin cible d’un fichier SWF :
• Dans le panneau Actions (Fenêtre > Développement > Actions), cliquez sur le bouton Insérer
un chemin cible et sélectionnez un clip dans la liste qui apparaît.
Pour plus d’informations sur les chemins cibles, consultez « Chemins cibles absolus et relatifs »
dans le guide Utilisation de Flash del’aide.
Utilisation de fonctions intégrées
Une fonction est un bloc de code ActionScript qui peut être réutilisé n’importe où dans un fichier
SWF. Si vous transmettez des valeurs en tant que paramètres à une fonction, cette dernière agit en
fonction de ces valeurs. Une fonction peut également renvoyer des valeurs.
Flash possède des fonctions intégrées qui permettent d’accéder à certaines informations et
d’exécuter certaines tâches, comme l’obtention du numéro de version de Flash Player qui héberge
le fichier SWF (getVersion()). Les fonctions appartenant à un objet sont appelées méthodes. Les
fonctions qui n’appartiennent pas à un objet sont appelées fonctions de niveau supérieur et se
trouvent dans la catégorie Fonctions du panneau Actions.
Chaque fonction possède ses propres caractéristiques, certaines fonctions vous obligeant à
transmettre certaines valeurs. Si vous transmettez plus de paramètres qu’il n’est nécessaire à la
fonction, les valeurs supplémentaires sont ignorées. Si vous ne transmettez pas un paramètre
requis, les paramètres vides reçoivent le type de données undefined, ce qui peut provoquer des
erreurs à l’exportation du script. Pour appeler une fonction, celle-ci doit se trouver dans l’image
que la tête de lecture a atteinte.
Pour appeler une fonction, utilisez tout simplement son nom et transmettez les paramètres
requis :
isNaN(someVar);
getTimer()
eval("someVar");
Pour plus d’informations sur une fonction, consultez son entrée dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
Création de fonctions
Vous pouvez définir des fonctions pour exécuter une série d’instructions sur des valeurs
transmises. Vos fonctions peuvent également renvoyer des valeurs. Une fois définie, une fonction
peut être appelée à partir de tout scénario, y compris celui d’un fichier SWF chargé.
Une fonction bien rédigée peut être considérée comme une « boîte noire ». Si elle contient des
commentaires positionnés judicieusement au sujet de son entrée, sa sortie et son rôle, l’utilisateur
de la fonction ne doit pas nécessairement comprendre tout son fonctionnement interne.
54
Chapitre 2 : Notions de base du langage ActionScript
Définition d’une fonction
Les fonctions, tout comme les variables, sont associées au scénario du clip qui les définit, et vous
devez utiliser un chemin cible pour les appeler. Tout comme dans le cas d’une variable, vous
pouvez utiliser l’identificateur _global pour déclarer une fonction globale disponible pour tous
les scénarios sans emploi d’un chemin cible. Pour définir une fonction globale, faites précéder son
nom de l’identificateur _global, comme illustré ci-dessous :
_global.maFonction = function (x) {
return (x*2)+3;
}
Pour définir une fonction de scénario, utilisez l’action function suivie du nom de la fonction, des
paramètres qui doivent être transmis à la fonction et des instructions ActionScript qui indiquent
ce que la fonction fait.
L’exemple suivant illustre une fonction nommée aireDuCercle et dotée du paramètre rayon :
function aireDuCercle(rayon) {
return Math.PI * rayon * rayon;
}
Vous pouvez également définir une fonction en créant un littéral de fonction, une fonction sans
nom qui est déclarée dans une expression au lieu d’une instruction. Vous pouvez utiliser un littéral
de fonction pour définir une fonction, renvoyer sa valeur et l’affecter à une variable dans une
expression, comme illustré dans l’exemple suivant :
aire = (function() {return Math.PI * rayon *rayon;})(5);
Lorsqu’une fonction est redéfinie, la nouvelle définition remplace l’ancienne.
Transmission de paramètres à une fonction
Les paramètres sont les éléments sur lesquels une fonction exécute son code. Dans cet ouvrage, les
termes paramètre et argument sont interchangeables. Par exemple, la fonction suivante prend les
paramètres initiales et scoreFinal:
function remplirScores(initiales, scoreFinal) {
carteDeScore.affichage = initiales;
carteDeScore.score = scoreFinal;
}
Lorsque la fonction est appelée, les paramètres requis doivent lui être transmis. La fonction
substitue les valeurs transmises aux paramètres de la définition de la fonction. Dans cet exemple,
carteDeScore est le nom d’occurrence d’un clip, affichage et score étant des champs de texte
de saisie dans l’occurrence. L’appel de fonction suivant affecte la valeur "JEB" à la variable
display et la valeur 45000 à la variable affichage :
remplirScores("JEB", 45000);
Le paramètre initiales de la fonction remplirScores() est similaire à une variable locale : il
existe tant que la fonction est appelée et cesse d’exister à la sortie de la fonction. Si vous omettez
des paramètres lors de l’appel d’une fonction, les paramètres omis sont transmis comme
undefined. Si vous fournissez des paramètres supplémentaires dans un appel de fonction alors
qu’ils ne sont pas requis par la déclaration de la fonction, ces paramètres sont ignorés.
Création de fonctions
55
Utilisation de variables dans une fonction
Les variables locales sont des outils qui simplifient grandement l’organisation du code et en
facilitent la compréhension. Lorsqu’une fonction utilise des variables locales, elle peut les cacher à
tous les autres scripts du fichier SWF. Les variables locales ont un domaine limité au corps de la
fonction et sont détruites à la sortie de celle-ci. Tous les paramètres transmis à une fonction sont
également traités comme des variables locales.
Vous pouvez également utiliser des variables globales et normales dans une fonction. Cependant,
si vous modifiez des variables globales ou normales dans une fonction, il est judicieux d’utiliser
des commentaires pour documenter ces modifications.
Renvoi de valeurs d’une fonction
Utilisez l’instruction return pour renvoyer les valeurs des fonctions. L’instruction return stoppe
la fonction et la remplace par la valeur de l’action return. Les règles suivantes gouvernent
l’utilisation de l’instruction return dans les fonctions :
• Si vous spécifiez un type de renvoi autre que void pour une fonction, vous devez inclure une
•
•
instruction return dans la fonction.
Si vous spécifiez un type de renvoi void, n’incluez pas d’instruction return.
Si vous ne spécifiez pas de type de renvoi, l’incorporation d’une instruction return est
facultative. Si vous n’en incluez pas, une chaîne vide est renvoyée.
Par exemple, la fonction suivante renvoie le carré du paramètre x et spécifie que la valeur renvoyée
doit être du type Number :
function sqr(x):Number {
return x * x;
}
Certaines fonctions effectuent une série de tâches sans renvoyer de valeur. Par exemple, la fonction
suivante initialise une série de variables globales :
function initialize() {
bateau_x = _global.bateau._x;
bateau_y = _global.bateau._y;
voiture_x = _global.voiture._x;
voiture_y = _global.voiture._y;
}
Appel d’une fonction définie par l’utilisateur
Vous pouvez utiliser un chemin cible pour appeler une fonction d’un scénario, quel qu’il soit, à
partir de n’importe quel autre scénario, y compris celui d’un fichier SWF chargé. Si une fonction
a été déclarée au moyen de l’identificateur _global, il n’est pas nécessaire de l’appeler à l’aide d’un
chemin cible.
Pour appeler une fonction, entrez le chemin cible du nom de la fonction, si nécessaire, puis
transmettez les paramètres requis entre parenthèses. Par exemple, l’instruction suivante appelle la
fonction sqr() du clip MathLib du scénario principal, lui transmet le paramètre 3 et enregistre le
résultat dans la variable temp :
var temp = _root.MathLib.sqr(3);
56
Chapitre 2 : Notions de base du langage ActionScript
L’exemple suivant utilise un chemin absolu pour appeler la fonction initialiser() qui a été
définie dans le scénario principal et n’exige aucun paramètre :
_root.initialiser();
L’exemple suivant utilise un chemin relatif pour appeler la fonction liste() qui a été définie dans
le clip functionsClip :
_parent.clipDeFonctions.liste(6);
Création de fonctions
57
58
Chapitre 2 : Notions de base du langage ActionScript
CHAPITRE 3
Rédaction et débogage de scripts
Dans Macromedia Flash MX 2004 et Macromedia Flash MX Professionnel 2004, vous pouvez
rédiger des scripts intégrés à votre fichier FLA ou stockés en externe sur votre ordinateur. (Si vous
rédigez des fichiers de classe ActionScript 2.0, stockez chaque classe comme un fichier externe du
même nom.) Pour rédiger des scripts intégrés, utilisez le panneau Actions et associez l’action à un
bouton, à un clip ou à une image dans le scénario (consultez Contrôle de l’exécution d’ActionScript,
page 60). Pour rédiger des fichiers de script externes, vous pouvez utiliser n’importe quel éditeur
de texte ou de code. Dans Flash Professionnel, vous pouvez aussi utiliser la fenêtre de script
intégrée. Pour plus d’informations, consultez Utilisation du panneau Actions et de la fenêtre de
script, page 62.
Lorsque vous utilisez l’éditeur ActionScript, vous pouvez également rechercher les erreurs de
syntaxe, mettre automatiquement le code en forme et utiliser des conseils pour compléter la
syntaxe du code. De plus, la fonction d’équilibrage de la ponctuation vous aide à compléter les
paires de parenthèses, de crochets ou d’accolades. Pour plus d’informations, consultez Utilisation
de l’éditeur ActionScript, page 65.
Lorsque vous travaillez dans un document, nous ne pouvons que vous recommander de le tester
assez fréquemment afin de vous assurer que sa lecture est aussi fluide que possible et qu’elle
s’effectue de la manière prévue. Vous pouvez utiliser le testeur de bande passante pour simuler la
lecture de votre document en fonction de différentes vitesses de connexion (consultez Test des
performances de téléchargement des documents dans le manuel Utilisation de Flash de l’aide).
Une version de débogage spéciale de Flash Player qui facilite la résolution des problèmes vous
permet de tester vos scripts. Si vous utilisez de bonnes techniques de programmation dans votre
code ActionScript, vos scripts seront plus faciles à dépanner si un problème imprévu est rencontré.
Pour plus d’informations, consultez Débogage de scripts, page 73.
59
Contrôle de l’exécution d’ActionScript
Lorsque vous rédigez un script, vous utilisez le panneau Actions pour associer le script à une
image d’un scénario, ou à un bouton ou un clip sur la scène. Les scripts associés à une image sont
exécutés lorsque la tête de lecture entre dans cette image. Toutefois, il se peut que les scripts
associés à la première image d’un fichier SWF se comportent différemment de ceux qui sont
associés aux images suivantes. La première image est en effet rendue de manière incrémentielle (les
objets sont tracés sur la scène au fur et à mesure de leur téléchargement dans Flash Player), ce qui
peut influer sur le moment où les actions sont exécutées. Toutes les images qui suivent la première
sont rendues en une seule fois, lorsque tous les objets qu’elles contiennent sont disponibles.
Les scripts associés à des clips ou des boutons sont exécutés lorsqu’un événement se produit. Un
événement correspond à une occurrence dans le fichier SWF telle qu’un mouvement de souris, une
pression sur une touche ou le chargement d’un clip. Vous pouvez utiliser ActionScript pour
déterminer quand de tels événements se produisent et exécuter des scripts en fonction de
l’événement. Pour plus d’informations, consultez le Chapitre 4, Gestion d’événements, page 89.
Pour exécuter une action selon qu’une condition existe ou non, ou pour répéter une action, vous
pouvez utiliser les instructions if, else, else if, for, while, do while, for..in ou switch,
qui sont décrites brièvement dans la suite de cette section.
Vérification d’une condition
Les instructions qui vérifient si une condition est true ou false commencent par le terme if. Si
la condition existe, ActionScript exécute l’instruction qui suit. Si la condition n’existe pas,
ActionScript passe à l’instruction suivante, à l’extérieur du bloc de code.
Pour optimiser les performances de votre code, vérifiez d’abord les conditions les plus probables.
Les instructions suivantes testent trois conditions. Le terme else if spécifie d’autres tests à
effectuer si les conditions précédentes sont false.
if (motDePasse == null || email == null) {
gotoAndStop("refuser");
} else if (motDePasse == iDutilisateur){
gotoAndPlay("démarrerAnim");
}
Pour vérifier une condition parmi d’autres, vous pouvez utiliser l’instruction switch, plutôt que
plusieurs instructions else if.
60
Chapitre 3 : Rédaction et débogage de scripts
Répétition d’une action
ActionScript peut répéter une action un certain nombre de fois précisé ou tant qu’une condition
spécifique existe. Utilisez les actions while, do..while, for et for..in pour créer des boucles.
Pour répéter une action tant qu’une condition existe :
• Utilisez l’instruction while.
Une boucle while évalue une expression et exécute le code dans le corps de la boucle si
l’expression est true. L’expression est évaluée à nouveau après l’exécution de chaque instruction
du corps. Dans l’exemple suivant, la boucle est exécutée quatre fois :
i = 4;
while (var i > 0) {
mon_mc.duplicateMovieClip("nouveauMC" + i, i );
i--;
}
Vous pouvez utiliser l’instruction do..while pour créer le même genre de boucle qu’avec une
boucle while. Dans une boucle do..while, l’expression est évaluée à la fin du bloc de code et la
boucle est toujours exécutée au moins une fois, comme dans l’exemple suivant :
i = 4;
do {
mon_mc.duplicateMovieClip("nouveauMC" +i, i );
i--;
} while (var i > 0);
Pour répéter une action en utilisant un compteur intégré :
• Utilisez l’instruction for.
La plupart des boucles utilisent un compteur d’un certain type pour contrôler le nombre de fois
qu’une boucle est exécutée. Chaque exécution d’une boucle est appelée itération. Vous pouvez
déclarer une variable et rédiger une instruction qui augmente ou diminue la variable chaque fois
que la boucle est exécutée. Dans l’action for, le compteur et l’instruction qui l’incrémente font
partie de l’action. Dans l’exemple suivant, la première expression (var i = 4) est l’expression
initiale évaluée avant la première itération. La deuxième expression ( i > 0) est la condition
contrôlée à chaque fois avant l’exécution de la boucle. La troisième expression (i--) est appelée
post-expression et est évaluée à chaque fois après l’exécution de la boucle.
for (var i = 4; i > 0; i--){
monMC.duplicateMovieClip("nouveauMC" + i, i + 10);
}
Pour passer en boucle sur les enfants d’un clip ou d’un objet :
• Utilisez l’instruction for..in.
Les enfants sont composés d’autres clips, fonctions, objets et variables. L’exemple suivant utilise
l’instruction trace pour envoyer les résultats dans le panneau de sortie :
monObjet = { nom:'Joe', âge:25, ville:'San Francisco' };
for (nomDeProp in monObjet) {
trace("monObjet a la propriété : " + nomDeProp + ", avec la valeur : " +
monObjet[nomDeProp]);
}
Contrôle de l’exécution d’ActionScript
61
Cet exemple donne les résultats suivants dans le panneau de sortie :
monObjet a la propriété : nom, avec la valeur : Joe
monObjet a la propriété : âge, avec la valeur : 25
monObjet a la propriété : ville, avec la valeur : San Francisco
Vous pouvez souhaiter que votre script itère sur un type particulier d’enfants, par exemple,
seulement sur les enfants d’un clip. Vous pouvez le faire avec for..in en conjonction avec
l’opérateur typeof.
for (nom dans monClip) {
if (typeof (monClip[nom]) == "clip") {
trace("J’ai un clip enfant appelé " + nom);
}
}
Pour plus d’informations sur chaque action, consultez les entrées correspondantes dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Utilisation du panneau Actions et de la fenêtre de script
Vous pouvez intégrer des scripts Flash à votre fichier FLA ou les enregistrer dans des fichiers
externes. Dans la mesure du possible, il est préférable d’enregistrer la majorité du code
ActionScript dans des fichiers externes. Il est en effet plus simple d’utiliser du code dans plusieurs
fichiers FLA. Ensuite, dans votre fichier FLA, créez un script comportant des instructions
#include pour accéder au code stocké en externe. Utilisez le suffixe .as pour identifier vos scripts
en tant que fichiers ActionScript (AS). (Si vous créez des fichiers de classe personnalisés, vous
devez les enregistrer en tant que fichiers AS externes.)
Remarque : Lors de la publication, de l’exportation, du test ou du débogage d’un fichier FLA, le code
ActionScript enregistré dans des fichiers externes est compilé dans un fichier SWF. Si vous modifiez
un fichier externe, vous devez donc l’enregistrer et recompiler tout fichier FLA qui l’utilise.
Vous pouvez associer à des images et à des objets le code ActionScript que vous intégrez dans un
fichier FLA. Dans la mesure du possible, associez le code ActionScript intégré à la première image
du scénario. Votre code ne sera ainsi pas éparpillé et vous ne serez pas obligé de le rechercher dans
tout le fichier FLA. Créez un calque appelé « Actions » et placez-y votre code. Ainsi, même si vous
associez du code à d’autres images ou à des objets, il vous suffira de consulter un seul calque pour
le retrouver.
Pour créer des scripts qui font partie de votre document, accédez directement à ActionScript via le
panneau Actions. Pour créer des scripts externes, utilisez votre éditeur de texte préféré ou, dans
Flash Professionnel, utilisez la fenêtre de script. Lorsque vous utilisez le panneau Actions ou la
fenêtre de script, vous utilisez le même éditeur ActionScript et tapez votre code dans la fenêtre de
script, sur le côté droit du panneau ou de la fenêtre. Pour éviter d’avoir à rédiger toutes les
informations, vous pouvez également sélectionner ou faire glisser des actions de la boîte à outils
Actions vers la fenêtre de script.
Pour afficher le panneau Actions, effectuez l’une des opérations suivantes :
• Choisissez Fenêtre > Panneaux de développement > Actions.
• Appuyez sur la touche F9.
62
Chapitre 3 : Rédaction et débogage de scripts
(Flash Professionnel uniquement) Pour afficher la fenêtre de script, effectuez l’une des
opérations suivantes :
• Pour commencer à rédiger un nouveau script, choisissez Fichier > Nouveau > Fichier
ActionScript.
• Pour ouvrir un script existant, choisissez Fichier > Ouvrir, puis ouvrez un fichier ActionScript
•
(AS) existant.
Pour modifier un script déjà ouvert, cliquez sur l’onglet du document qui affiche le nom du
script. (Les onglets de document sont uniquement disponibles sous Microsoft Windows.)
A propos de l’environnement de l’éditeur ActionScript
L’environnement de l’éditeur ActionScript se compose de deux sections. A droite figure la fenêtre
de script, dans laquelle vous saisissez le code. A gauche se trouve la boîte à outils Actions, qui
comprend une entrée pour chaque élément du langage ActionScript.
Dans le panneau Actions, la boîte à outils contient également un navigateur de script, qui est une
représentation visuelle des emplacements du fichier FLA auxquels du code ActionScript est
associé. Ce fichier vous permet de parcourir votre fichier FLA pour localiser le code ActionScript.
Si vous cliquez sur un élément dans le navigateur de script, le script correspondant s’affiche dans
la fenêtre de script et la tête de lecture se déplace jusqu’à la position appropriée dans le scénario. Si
vous double-cliquez sur un élément dans le navigateur de script, le script est verrouillé
(consultez Gestion de scripts dans un fichier FLA, page 64).
Boîte à outils Actions Navigateur de script*
Menu contextuel*
* Panneau Actions uniquement
Utilisation du panneau Actions et de la fenêtre de script
63
Plusieurs boutons figurent également au-dessus de la fenêtre de script :
Ajouter un élément
au script
Insérer un chemin cible*
Vérifier la syntaxe
Rechercher
Remplacer
Format automatique
Afficher les conseils
de code
Référence
Options de débogage*
Menu déroulant Options d’affichage
* Panneau Actions uniquement
Vous modifiez des actions, entrez des paramètres pour les actions ou supprimez des actions
directement dans la fenêtre de script. Vous pouvez également double-cliquer sur un élément de la
boîte à outils ou sur le bouton Ajouter (+) en haut de la fenêtre de script pour ajouter des actions
dans la fenêtre de script.
Gestion de scripts dans un fichier FLA
Si vous disséminez le code dans un fichier FLA, vous pouvez verrouiller plusieurs scripts dans le
panneau Actions pour faciliter le passage de l’un à l’autre. Dans l’illustration suivante, le script
associé à l’emplacement en cours du scénario se trouve sur l’image 1 du calque Nettoyage.
(L’onglet le plus à gauche suit toujours votre emplacement dans le scénario.) Ce script est
également verrouillé (il est représenté par l’onglet le plus à droite). Deux autres scripts sont
verrouillés : un sur l’image 1 et l’autre sur l’image 15 du calque Intro. Pour passer d’un script
verrouillé à l’autre, cliquez sur les onglets correspondants ou utilisez les raccourcis clavier. Cette
opération n’a aucune incidence sur votre position actuelle dans le scénario.
Conseil : Si le contenu affiché dans la fenêtre de script ne change pas de manière à refléter
l’emplacement que vous sélectionnez dans le scénario, la fenêtre de script affiche probablement un
script verrouillé. Cliquez sur l’onglet le plus à gauche dans la partie inférieure gauche de la fenêtre de
script pour afficher le code ActionScript associé à votre emplacement sur le scénario.
Pour verrouiller un script :
1 Pointez sur le scénario afin que le script apparaisse dans un onglet situé en bas à gauche de la
fenêtre de script dans le panneau Actions.
2 Effectuez l’une des opérations suivantes:
■ Cliquez sur l’icône en forme de punaise qui figure à droite de l’onglet. (Si la punaise
ressemble à l’icône la plus à gauche, le script est déjà verrouillé. Cliquez sur l’icône pour le
déverrouiller.)
■ Cliquez sur l’onglet avec le bouton droit de la souris (Windows) ou en appuyant sur la
touche Contrôle (Macintosh) et choisissez Verrouiller le script.
■ Choisissez Verrouiller le script dans le menu contextuel Options (dans le coin supérieur
droit du panneau).
64
Chapitre 3 : Rédaction et débogage de scripts
Pour déverrouiller un ou plusieurs scripts :
• Effectuez l’une des opérations suivantes:
■
■
■
Si un script verrouillé est affiché dans un onglet situé en bas à gauche de la fenêtre de script,
dans le panneau Actions, cliquez sur l’icône en forme de punaise située à droite de l’onglet.
(Si la punaise ressemble à l’icône la plus à gauche, le script est déjà déverrouillé. Cliquez sur
l’icône pour le verrouiller.)
Cliquez du bouton droit de la souris (Windows) ou cliquez en appuyant sur la touche
Contrôle (Macintosh) sur l’onglet et choisissez Fermer le script ou Fermer tous les scripts.
Choisissez Fermer le script ou Fermer tous les scripts dans le menu d’options contextuel
(dans le coin supérieur droit du panneau).
Pour utiliser les raccourcis clavier avec les scripts verrouillés :
• Vous pouvez utiliser les raccourcis clavier suivants avec les scripts verrouillés :
Action
Raccourci clavier Windows Raccourci clavier Macintosh
Verrouiller le script
Contrôle-= (signe égal)
Commande-=
Déverrouiller le script
Contrôle-- (signe moins)
Commande--
Déplacer le focus vers
l’onglet de droite
Contrôle-Maj-. (point)
Commande-Maj-.
Déplacer le focus vers
l’onglet de gauche
Contrôle-Maj-, (virgule)
Commande-Maj-,
Déverrouiller tous les scripts
Contrôle-Maj-- (moins)
Commande-Maj--
Utilisation de l’éditeur ActionScript
Flash MX 2004 et Flash MX Professionnel 2004 comportent plusieurs outils pour vous aider à
rédiger du code conforme à la syntaxe. Ils vous donnent également la possibilité de définir des
préférences de formatage du code et d’autres options. Ces fonctionnalités sont présentées dans la
section suivante.
Mise en évidence de la syntaxe
Dans ActionScript, comme dans tout autre langage, la syntaxe est la manière dont les éléments
sont assemblés afin de créer du sens. Vos scripts ne fonctionneront pas si vous utilisez une syntaxe
ActionScript incorrecte.
Lorsque vous rédigez des scripts dans Flash MX 2004 et Flash MX Professionnel 2004, les
commandes qui ne sont pas prises en charge par la version du lecteur que vous ciblez s’affichent
en jaune dans la boîte à outils du panneau Actions. Par exemple, si la version de Flash Player SWF
est définie sur Flash 6, le code ActionScript qui est uniquement pris en charge par Flash Player 7
apparaît en jaune dans la boîte à outils. (Pour plus d’informations sur la définition de la version de
Flash Player SWF, consultez Définition des options de publication pour le format de fichier Flash
SWF dans le guide Utilisation de Flash de l’aide.)
Utilisation de l’éditeur ActionScript
65
Vous pouvez également définir une préférence pour que les « codes-couleurs » de Flash s’intègrent
à vos scripts, à mesure que vous les rédigez, afin de vous signaler les fautes de frappe. Par exemple,
supposons que vous ayez défini votre préférence de coloration de la syntaxe de sorte à ce que les
mots-clés s’affichent en vert foncé. Lors de la saisie, si vous entrez var, le mot var s’affiche en vert.
Toutefois, si vous tapez vae par inadvertance, le mot vae restera en noir, vous indiquant ainsi que
vous avez fait une faute de frappe.
Pour définir des préférences de coloration de la syntaxe en cours de frappe, effectuez l’une
des opérations suivantes :
• Choisissez Edition > Préférences et définissez les paramètres Coloration de la syntaxe dans
l’onglet ActionScript.
• Dans le menu contextuel Options (dans le coin supérieur droit du panneau Actions), choisissez
Préférences et définissez les paramètres Coloration de la syntaxe dans l’onglet ActionScript.
Rédaction de code qui déclenche des conseils de code
Lorsque vous travaillez dans l’éditeur ActionScript (dans le panneau Actions ou la fenêtre de
script), Flash peut détecter l’action que vous entrez et afficher un conseil de code (une info-bulle
contant la syntaxe complète de l’action en cours ou un menu contextuel répertoriant des noms de
propriétés ou de méthodes possibles). Des conseils de code apparaissent pour les paramètres,
propriétés et événements lorsque vous tapez ou nommez strictement vos objets de sorte que
l’éditeur ActionScript sache quels conseils de code afficher, comme l’indique la suite de cette
section. Pour plus d’informations sur l’utilisation des conseils de code lorsque ceux-ci
apparaissent, consultez Utilisation des conseils de code, page 68.
Remarque : Les conseils de code sont activés automatiquement pour les classes natives pour
lesquelles vous n’avez pas besoin de créer ni de nommer un objet de la classe, telles que Math, Key,
Mouse, etc.
Typage strict des objets pour déclencher des conseils de code
Lorsque vous utilisez ActionScript 2.0, vous pouvez définir strictement le type d’une variable qui
est basée sur une classe intégrée, telle que Button, Array, etc. Si vous faites cela, l’éditeur
ActionScript affiche des conseils de code relatifs à la variable. Par exemple, supposons que vous
tapez ce qui suit :
var noms:Array = new Array();
noms.
Dès que vous tapez le point final (.), Flash affiche la liste des méthodes et propriétés disponibles
pour les objets Array, car vous avez défini la variable comme étant de type tableau. Pour plus
d’informations sur le typage des données, consultez Typage strict des données, page 40. Pour plus
d’informations sur l’utilisation des conseils de code lorsque ceux-ci apparaissent, consultez
Utilisation des conseils de code, page 68.
Utilisation de suffixes pour déclencher des conseils de code
Si vous utilisez ActionScript 1 ou que vous souhaitez afficher des conseils de code pour des objets
que vous créez sans définir strictement leur type (consultez Typage strict des objets pour déclencher
des conseils de code, page 66), vous devez ajouter un suffixe spécial au nom de chaque objet lors de
sa création. Par exemple, les suffixes qui déclenchent des conseils de code pour les classes Array et
Camera sont respectivement _array et _cam. Si vous tapez le code suivant :
66
Chapitre 3 : Rédaction et débogage de scripts
var mon_array = new Array();
var ma_cam = Camera.get();
et que vous tapez le nom de la variable suivi d’un point, comme indiqué ci-dessous, des conseils
de code pour les objets Array et Camera s’affichent respectivement.
mon_array.
ma_cam.
Pour les objets qui apparaissent sur la scène, entrez le suffixe dans le champ Nom de l’occurrence,
dans l’inspecteur des propriétés. Par exemple, pour afficher des conseils de code pour des objets
MovieClip, utilisez l’inspecteur des propriétés pour affecter des noms d’occurrence portant le
suffixe _mc à tous les objets MovieClip. Lorsque vous taperez le nom d’une occurrence suivi d’un
point, des conseils de code d’afficheront.
Même si les suffixes ne sont pas nécessaires au déclenchement des conseils de code lorsque vous
définissez strictement le type d’un objet, il est recommandé de les utiliser de façon cohérente pour
rendre vos scripts plus compréhensibles.
Le tableau suivant répertorie les suffixes requis pour le support des conseils de code
automatiques :
Type d’objet
Suffixe de variable
Array
_array
Button
_btn
Camera
_cam
Color
_color
ContextMenu
_cm
ContextMenuItem
_cmi
Date
_date
Error
_err
LoadVars
_lv
LocalConnection
_lc
Microphone
_mic
MovieClip
_mc
MovieClipLoader
_mcl
PrintJob
_pj
NetConnection
_nc
NetStream
_ns
SharedObject
_so
Sound
_sound
String
_str
TextField
_txt
Utilisation de l’éditeur ActionScript
67
Type d’objet
Suffixe de variable
TextFormat
_fmt
Video
_video
XML
_xml
XMLNode
_xmlnode
XMLSocket
_xmlsocket
Pour plus d’informations sur l’utilisation des conseils de code lorsque ceux-ci apparaissent,
consultez Utilisation des conseils de code, page 68.
Utilisation de commentaires pour déclencher des conseils de code
Vous pouvez également utiliser des commentaires ActionScript pour spécifier la classe d’un objet
pour les conseils de code. L’exemple suivant indique à ActionScript que la classe de l’occurrence
Lobjet est Object, et ainsi de suite. Si vous entrez le code mc suivi d’un point après ces
commentaires, un conseil de code affiche la liste de méthodes et de propriétés MovieClip. Si vous
entrez le code leTableau suivi d’un point, un conseil de code affiche une liste de méthodes et de
propriétés Array, et ainsi de suite.
// Object Lobjet;
// Array leTableau;
// MovieClip mc;
Toutefois, Macromedia recommande d’utiliser le typage strict des données (consultez Typage strict
des objets pour déclencher des conseils de code, page 66) ou les suffixes (consultez Utilisation de
suffixes pour déclencher des conseils de code, page 66) plutôt que cette technique, car ces techniques
permettent d’obtenir des conseils de code automatiquement et rendent votre code plus
compréhensible.
Utilisation des conseils de code
Les conseils de code sont activés par défaut. Des préférences vous permettent de désactiver les
conseils de code ou de déterminer la vitesse à laquelle ils s’affichent. Lorsque les conseils de code
sont désactivés dans les préférences, il est toujours possible d’afficher un conseil de code pour une
commande spécifique.
Pour définir des paramètres pour les conseils de code automatiques, effectuez l’une des
opérations suivantes :
• Choisissez Edition > Préférences, puis, dans l’onglet ActionScript, activez ou désactivez
l’option Conseils de code.
• Dans le panneau Actions, dans le menu contextuel Options (dans le coin supérieur droit du
panneau), choisissez Préférences et, sous l’onglet ActionScript, activez ou désactivez Conseils
de code.
Si vous activez les conseils de code, vous pouvez également spécifier un délai d’affichage, en
secondes. Par exemple, si vous découvrez ActionScript, il pourrait être souhaitable de ne spécifier
aucun délai, de sorte que les conseils de code s’affichent toujours immédiatement. Toutefois, si
vous savez en général ce que vous voulez taper et que vous avez besoin de conseils uniquement
lorsque vous utilisez des éléments de langage que vous ne connaissez pas, vous pouvez spécifier un
délai de sorte que les conseils de code ne s’affichent pas lorsque vous ne le souhaitez pas.
68
Chapitre 3 : Rédaction et débogage de scripts
Pour utiliser des conseils de code de type info-bulle :
1 Faites apparaître un conseil de code en tapant une parenthèse d’ouverture [(] après un élément
qui nécessite l’utilisation des parenthèses, tel qu’un nom de méthode, une commande comme
ou do while, etc.
Le conseil de code apparaît.
if
Remarque : Si le conseil de code ne s’affiche pas, assurez-vous que l’option Conseils de code est
activée dans l’onglet ActionScript. Pour afficher des conseils de code pour une variable ou un
objet que vous avez créé(e), assurez-vous que vous avez nommé correctement la variable ou
l’objet (consultez Utilisation de suffixes pour déclencher des conseils de code, page 66), ou que
vous avez défini strictement son type (consultez Typage strict des objets pour déclencher des
conseils de code, page 66).
2 Entrez une valeur pour le paramètre. S’il existe plusieurs paramètres, séparez les valeurs par des
virgules.
Des commandes étendues telles que gotoAndPlay() ou for (il s’agit de fonctions ou de
méthodes qui peuvent être invoquées selon différents jeux de paramètres) affichent un
indicateur qui vous permet de choisir le paramètre que vous souhaitez définir. Cliquez sur les
petits boutons fléchés ou appuyez sur Ctrl+Flèche gauche ou Ctrl+Flèche droite pour choisir le
paramètre.
3 Pour annuler le conseil de code, effectuez l’une des opérations suivantes :
■
■
■
Tapez une parenthèse de fermeture [)].
Cliquez à l’extérieur de l’instruction.
Appuyez sur la touche Echap.
Pour utiliser des conseils de code de type menu :
1 Faites apparaître le conseil de code en tapant un point après le nom de la variable ou de l’objet.
Le menu du conseil de code apparaît.
Utilisation de l’éditeur ActionScript
69
Remarque : Si le conseil de code ne s’affiche pas, assurez-vous que l’option Conseils de code est
activée dans l’onglet ActionScript. Pour afficher des conseils de code pour une variable ou un
objet que vous avez créé(e), assurez-vous que vous avez nommé correctement la variable ou
l’objet (consultez Utilisation de suffixes pour déclencher des conseils de code, page 66), ou que
vous avez défini strictement son type (consultez Typage strict des objets pour déclencher des
conseils de code, page 66).
2 Pour naviguer dans les conseils de code, utilisez les touches Flèche Haut ou Flèche Bas.
3 Pour sélectionner un élément dans le menu, appuyez sur Entrée ou Tab, ou double-cliquez sur
cet élément.
4 Pour annuler le conseil de code, effectuez l’une des opérations suivantes :
■
■
■
■
Choisissez l’un des éléments du menu.
Cliquez à l’extérieur de l’instruction.
Tapez une parenthèse de fermeture [)] si vous avez déjà tapé une parenthèse d’ouverture.
Appuyez sur la touche Echap.
Pour afficher manuellement un conseil de code :
1 Cliquez dans le code à l’endroit où les conseils de code peuvent s’afficher. En voici quelques
exemples :
■ Après le point qui suit une instruction ou une commande, à l’endroit où une propriété ou
une méthode doit être entrée.
■ Entre les parenthèses dans un nom de méthode
2 Effectuez l’une des opérations suivantes:
■ Cliquez sur le bouton Afficher les conseils de code, situé au-dessus de la fenêtre de script.
■ Appuyez sur Ctrl+Barre d’espace (Windows) ou sur Commande+Barre d’espace
(Macintosh).
■ Si vous travaillez dans le panneau Actions, ouvrez le menu contextuel (dans le coin supérieur
droit de la barre de titre), puis choisissez Afficher les conseils de code.
Utilisation des touches de raccourci d’échappement
Vous pouvez ajouter plusieurs éléments à un script en utilisant des touches de raccourci (en
appuyant sur la touche Echap et sur deux autres touches). (Il ne s’agit pas des mêmes raccourcis
que les raccourcis clavier qui initialisent certaines commandes de menu.) Si vous saisissez
Echap+d+o dans la fenêtre de script, le code suivant est inséré dans votre script, et le point
d’insertion est placé immédiatement après le mot while, ce qui vous permet de commencer à
taper la condition :
do {
} while ();
De même, si vous saisissez Echap+c+h, le code suivant est inséré dans votre script, et le point
d’insertion est placé entre les parenthèses, ce qui vous permet de commencer à taper la condition :
catch () {
}
70
Chapitre 3 : Rédaction et débogage de scripts
Si vous souhaitez connaître (ou revoir) les commandes qui bénéficient de touches de raccourci,
vous pouvez les afficher en regard des éléments dans le panneau Actions.
Pour afficher ou masquer les touches de raccourci d’échappement :
• Dans le menu contextuel Options d’affichage, activez ou désactivez Afficher les touches de
raccourci Echap.
Vérification de la syntaxe et de la ponctuation
Pour déterminer à l’avance si le code que vous avez rédigé fonctionne comme prévu, vous devez
publier ou tester le fichier. Vous avez toutefois la possibilité d’effectuer une vérification rapide sans
quitter le fichier FLA. Les erreurs de syntaxe sont signalées dans le panneau de sortie. (Lors de la
vérification de la syntaxe, seul le script en cours est examiné ; les autres scripts que contient
éventuellement le fichier FLA sont ignorés.) Vous pouvez également vérifier que les jeux de
parenthèses, d’accolades ou de crochets (opérateurs d’accès tableau) encadrent correctement un
bloc.
Pour vérifier la syntaxe, effectuez l’une des opérations suivantes :
• Cliquez sur le bouton Vérifier la syntaxe, situé au-dessus de la fenêtre de script.
• Dans le panneau Actions, affichez le menu contextuel (dans le coin supérieur droit du
panneau) et choisissez Vérifiez la syntaxe.
• Appuyez sur Ctrl+T (Windows) ou sur Commande+T (Macintosh).
Utilisation de l’éditeur ActionScript
71
Pour vérifier l’équilibrage de la ponctuation :
1 Cliquez entre les accolades ({}), les opérateurs d’accès tableau ([]) ou les parenthèses (()) dans
votre script.
2 Appuyez sur Ctrl+’ (Windows) ou Commande+’ (Macintosh) pour sélectionner le texte entre
accolades, crochets ou parenthèses.
La mise en surbrillance vous permet de vérifier si la ponctuation d’ouverture possède une
ponctuation de fermeture correspondante.
Formatage du code
Vous pouvez définir des paramètres pour déterminer si votre code est formaté et mis en retrait
automatiquement ou manuellement. Vous pouvez également choisir l’affichage des numéros de
ligne et le retour à la ligne automatique des lignes de code trop longues. Enfin, vous pouvez
choisir d’utiliser ou non le mappage de police dynamique.
Pour définir des options de format :
1 Effectuez l’une des opérations suivantes :
Dans le panneau Actions, dans le menu contextuel Options (dans le coin supérieur droit du
panneau), choisissez Options de format automatique.
■ (Flash Professionnel uniquement) Dans un fichier de script externe, choisissez Edition >
Options de format automatique.
La boîte de dialogue Options de format automatique apparaît.
2 Faites votre choix parmi les options proposées. Pour visualiser l’effet de chaque sélection,
examinez le panneau Afficher un aperçu.
■
Une fois les options de format automatique définies, vos paramètres s’appliquent
automatiquement au code que vous rédigez, mais pas au code existant. Pour appliquer vos
paramètres au code existant, vous devez procéder manuellement. Vous pouvez utiliser la
procédure suivante pour mettre en forme du code formaté selon d’autres paramètres, importé
d’un autre éditeur, etc.
Pour mettre du code en forme selon les paramètres Options de format automatique,
effectuez l’une des opérations suivantes :
• Cliquez sur le bouton Format automatique, situé au-dessus de la fenêtre de script.
• Choisissez Format automatique dans le menu contextuel du panneau Actions.
• Appuyez sur Ctrl+Maj+F1 (Windows) ou sur Commande+Maj+F1 (Macintosh).
Pour utiliser la fonction de mappage de police dynamique :
• Le mappage de police dynamique est désactivé par défaut car il ralentit les performances
pendant la programmation. Pour l’activer, sélectionnez Utiliser le mappage de police
dynamique dans les préférences d’ActionScript.
Il est recommandé d’activer le mappage de police dynamique pour travailler avec du texte
multilingue entre autres.
72
Chapitre 3 : Rédaction et débogage de scripts
Pour utiliser la fonction d’indentation automatique :
• L’indentation automatique est activée par défaut. Pour la désactiver, désactivez l’option
Indentation automatique dans les préférences d’ActionScript.
Lorsque l’indentation automatique est activée, le texte tapé après ( ou { est automatiquement
mis en retrait conformément à la valeur de taille de tabulation définie dans les préférences
d’ActionScript. Pour mettre en retrait une autre ligne, sélectionnez la ligne souhaitée, puis
appuyez sur la touche Tab. Pour supprimer le retrait, appuyez sur Maj+Tab.
Pour activer ou désactiver les numéros de ligne et le retour à la ligne automatique :
• Dans le menu contextuel Options d’affichage, activez ou désactivez Afficher les numéros de
ligne et Retour à la ligne.
Débogage de scripts
Flash propose plusieurs outils qui permettent de tester le code ActionScript dans vos fichiers SWF.
Le débogueur, qui est décrit dans la suite de cette section, vous permet de repérer des erreurs dans
un fichier SWF en cours d’exécution dans Flash Player. Flash dispose également des outils de
débogage complémentaires suivants :
• Le panneau de sortie, qui affiche des messages d’erreur et répertorie les variables et les objets
(consultez Utilisation du panneau de sortie, page 82).
• L’instruction trace, qui envoie des notes de programmation et la valeur des expressions au
panneau de sortie (consultez Utilisation de l’instruction trace, page 85).
• Les instructions throw et try..catch..finally, qui vous permettent de tester et de résoudre
•
les erreurs d’exécution à partir de votre script.
Des messages d’erreur de compilateur clairs, qui vous permettent de diagnostiquer et de
résoudre les problèmes plus facilement (consultez l’Annexe A, Messages d’erreur, page 893).
Vous devez afficher votre fichier SWF dans une version spéciale de Flash Player appelée
débogueur de Flash Player. Lorsque vous installez l’outil de programmation, le débogueur de
Flash Player est automatiquement installé. Ainsi, si vous installez Flash et naviguez sur un site web
avec du contenu Flash, ou effectuez un test d’animation, cela signifie que vous utilisez le
débogueur de Flash Player. Vous pouvez également utiliser le programme d’installation situé dans
le répertoire <app_dir>\Players\Debug\, ou lancer le débogueur de Flash Player autonome à partir
du même répertoire.
Lorsque vous utilisez la commande Tester l’animation pour tester des animations qui
implémentent des contrôles de clavier (tabulation, raccourcis claviers créés à l’aide de
Key.addListener(), etc.), choisissez Contrôle > Désactiver les raccourcis clavier. La sélection de
cette option empêche l’environnement auteur de « récupérer » les séquences de touches, et les
laisse être transmises au lecteur. Par exemple, dans l’environnement auteur, Ctrl+U ouvre la boîte
de dialogue Préférences. Si votre script affecte Ctrl+U à une action qui souligne du texte à l’écran,
lorsque vous utilisez Tester l’animation, le fait d’appuyer sur Ctrl+U ouvre la boîte de dialogue
Préférences au lieu d’exécuter l’action qui souligne le texte. Pour que la commande Ctrl+U puisse
être transmise au lecteur, vous devez choisir Contrôle > Désactiver les raccourcis clavier.
Attention : La commande Tester l’animation échoue si n’importe quelle partie du chemin du fichier
SWF contient des caractères ne pouvant pas être représentés à l’aide du système de codage
MBCS. Par exemple, les chemins japonais ne fonctionnent pas dans un système anglais. Toutes les
zones de l’application utilisant le lecteur externe sont soumises à cette restriction.
Débogage de scripts
73
Le débogueur affiche une liste hiérarchique des clips actuellement chargés dans Flash Player. Il
permet d’afficher et de modifier la valeur des variables et des propriétés pendant la lecture du
fichier SWF et d’insérer des points d’arrêt grâce auxquels vous pouvez arrêter le fichier SWF et
examiner le code ActionScript ligne par ligne.
Vous pouvez utiliser le débogueur en mode de test sur des fichiers locaux, ou l’utiliser pour tester
des fichiers sur un serveur web à un emplacement distant. Le débogueur permet d’insérer des
points d’arrêt dans le code ActionScript, grâce auxquels vous pouvez arrêter l’animation et
consulter le code ligne par ligne. Vous pouvez alors revenir aux scripts et les modifier afin
d’obtenir les résultats souhaités.
Lorsque le débogueur est activé, sa barre d’état affiche l’URL ou le chemin d’accès local du fichier,
indique si celui-ci est exécuté en mode de test ou depuis un site distant, et présente une vue en
direct de la liste hiérarchique de clips. Lorsque vous ajoutez des clips au fichier ou en supprimez,
la liste est immédiatement mise à jour. Vous pouvez redimensionner la liste hiérarchique en tirant
la barre de séparation horizontale.
Pour activer le débogueur :
• Choisissez Contrôle > Déboguer l’animation.
Cette commande entraîne l’ouverture du débogueur. Elle ouvre également le fichier SWF en
mode de test.
Barre d’état
Liste hiérarchique
74
Liste d’observation
Code
Chapitre 3 : Rédaction et débogage de scripts
Débogage d’un fichier SWF à partir d’un emplacement distant
Vous pouvez déboguer un fichier SWF à distance au moyen de la version autonome, de la version
ActiveX ou du module de Flash Player. Lors de l’exportation d’un fichier SWF, vous pouvez
activer le débogage dans le fichier et créer un mot de passe de débogage. Le débogueur n’est pas
activé si vous n’activez pas le débogage.
Pour que seuls certains utilisateurs puissent exécuter vos fichiers SWF dans le débogueur de Flash
Player, vous pouvez les publier avec un mot de passe de débogage. Tout comme dans JavaScript ou
HTML, les utilisateurs peuvent consulter les variables côté client dans ActionScript. Pour stocker
les variables de façon sécurisée, vous devez les envoyer à une application côté serveur au lieu de les
stocker dans votre fichier. Cependant, en tant que développeur Flash, vous ne voudrez peut-être
pas révéler d’autres secrets professionnels, tels que des structures de clips. Vous pouvez donc
utiliser un mot de passe de débogage pour protéger votre travail.
Lorsque vous exportez, publiez ou testez une animation, Flash crée un fichier SWD contenant des
informations de débogage. Pour effectuer le débogage à distance, vous devez placer le fichier
SWD dans le répertoire du serveur qui contient le fichier SWF.
Pour permettre le débogage à distance d’une animation Flash :
1 Choisissez Fichier > Paramètres de publication.
2 Sous l’onglet Flash de la boîte de dialogue Paramètres de publication, activez l’option Débogage
autorisé.
3 Pour définir un mot de passe, entrez-le dans le champ Mot de passe.
Une fois un mot de passe défini, personne ne peut télécharger d’informations vers le débogueur
sans entrer ce mot de passe. Cependant, aucun mot de passe n’est requis si vous ne remplissez
pas le champ correspondant.
4 Fermez la boîte de dialogue Paramètres de publication, puis choisissez l’une des commandes
suivantes :
■ Contrôle > Déboguer l’animation
■ Fichier > Exporter l’animation
■ Fichier > Paramètres de publication > Publier
Flash crée un fichier de débogage portant l’extension .swd et l’enregistre conjointement avec le
fichier SWF. Le fichier SWD contient des informations qui vous permettent d’utiliser des
points d’arrêt et de faire défiler le code pas à pas.
5 Placez le fichier SWD dans le répertoire du serveur qui contient le fichier SWF.
Si le fichier SWD ne se trouve pas dans ce répertoire, vous pouvez toujours effectuer le
débogage à distance, mais le débogueur ignore les points d’arrêt et il vous est impossible de
faire défiler le code pas à pas.
Débogage de scripts
75
6 Dans Flash, choisissez Fenêtre > Panneaux de développement > Débogueur.
■
Dans le débogueur, dans le menu contextuel Options (dans le coin supérieur droit du
panneau), choisissez Activer le débogage à distance.
Pour activer le débogueur à distance :
1 Ouvrez l’application auteur Flash.
2 Dans un navigateur ou dans le lecteur autonome, ouvrez le fichier SWF publié à partir de son
emplacement distant.
La boîte de dialogue Débogage à distance apparaît.
Si cette boîte de dialogue ne s’affiche pas, cela signifie que Flash n’a pas trouvé le fichier SWD.
Dans ce cas, cliquez sur le fichier SWF avec le bouton droit de la souris (Windows) ou en
appuyant sur la touche Contrôle (Macintosh) pour afficher un menu contextuel, et choisissez
Débogueur.
3 Dans la boîte de dialogue Débogage à distance, sélectionnez Hôte local ou Autre machine :
L’option Hôte local est utilisée si le lecteur de débogage et l’application auteur Flash se
trouvent sur le même ordinateur.
■ Optez pour Autre machine si le lecteur de débogage et l’application auteur Flash ne se
trouvent pas sur le même ordinateur. Entrez l’adresse IP de l’ordinateur qui exécute
l’application auteur Flash.
4 Lorsqu’une connexion est établie, une boîte de dialogue s’affiche et vous invite à entrer un mot
de passe. Entrez le mot de passe de débogage si vous en avez défini un.
La liste hiérarchique du fichier SWF apparaît dans le débogueur.
■
76
Chapitre 3 : Rédaction et débogage de scripts
Affichage et modification de variables
L’onglet Variables du débogueur affiche les noms et valeurs des variables globales et de scénario du
fichier SWF. Si vous modifiez la valeur d’une variable dans cet onglet, vous pouvez constater la
modification dans le fichier SWF au cours de son exécution. Par exemple, pour tester la détection
de collision dans un jeu, vous pouvez entrer la valeur de la variable afin de positionner une balle à
l’emplacement correct près d’un mur.
L’onglet Locales du débogueur affiche les noms et les valeurs des variables locales disponibles
lorsque le fichier SWF s’est arrêté à un point d’arrêt ou n’importe où ailleurs dans une fonction
définie par l’utilisateur.
Pour afficher une variable :
1 Sélectionnez le clip contenant la variable de la liste.
Pour afficher les variables globales, sélectionnez le clip _global dans la liste.
2 Cliquez sur l’onglet Variables.
La liste hiérarchique est automatiquement mise à jour au cours de la lecture du fichier SWF. Un
clip supprimé du fichier SWF au niveau d’une image spécifique est également supprimé (avec sa
variable et son nom de variable) de la liste hiérarchique du débogueur. Toutefois, si vous marquez
une variable pour la liste d’observation (consultez Utilisation de la liste d’observation, page 78),
cette variable n’est pas supprimée.
Pour modifier la valeur d’une variable :
• Double-cliquez sur la valeur et entrez-en une nouvelle.
La valeur ne peut pas être une expression. Par exemple, vous pouvez utiliser "Bonjour", 3523 ou
"http://www.macromedia.com", et vous ne pouvez pas utiliser x + 2 ou eval("nom:" +i). La
valeur peut être une chaîne (n’importe quelle valeur comprise entre guillemets, un nombre ou une
valeur booléenne (true ou false).
Remarque : Pour afficher la valeur d’une expression dans le panneau de sortie en mode de test
d’animation, utilisez l’instruction trace. Pour plus d’informations, consultez Utilisation de l’instruction
trace, page 85.
Débogage de scripts
77
Utilisation de la liste d’observation
Pour facilement contrôler un ensemble de variables critiques, vous pouvez marquer celles qui
doivent apparaître dans la liste d’observation. Cette liste affiche le chemin d’accès absolu de la
variable et de la valeur. Vous pouvez également entrer une nouvelle valeur de variable dans la liste
d’observation, comme dans le volet Variables.
Si vous ajoutez une variable locale à la liste d’observation, sa valeur ne s’affiche que lorsque le
lecteur est arrêté sur une ligne de code ActionScript au niveau de laquelle cette variable est utilisée.
Toutes les autres variables s’affichent pendant la lecture du fichier SWF. Si le débogueur ne trouve
pas la valeur de la variable, elle est répertoriée comme Undefined.
La liste d’observation ne peut afficher que les variables, et non les propriétés ou les fonctions.
Variables marquées pour la liste d’observation et variables dans la liste d’observation
Pour ajouter des variables à la liste d’observation, effectuez l’une des opérations suivantes :
• Sous l’onglet Variables ou Locales, cliquez sur une variable sélectionnée avec le bouton droit de
•
la souris (Windows) ou en appuyant sur la touche Contrôle (Macintosh), puis choisissez
Observateur dans le menu contextuel. Un point bleu apparaît en regard de la variable.
Sous l’onglet Observateur, cliquez sur une variable sélectionnée avec le bouton droit de la
souris (Windows) ou en appuyant sur la touche Contrôle (Macintosh), puis choisissez Ajouter
dans le menu contextuel. Entrez le chemin cible du nom de variable et sa valeur dans les
champs.
Pour retirer des variables de la liste d’observation :
• Sous l’onglet Observateur, cliquez sur une variable sélectionnée avec le bouton droit de la
souris (Windows) ou en appuyant sur la touche Contrôle (Macintosh), puis choisissez
Supprimer dans le menu contextuel.
78
Chapitre 3 : Rédaction et débogage de scripts
Affichage et modification des propriétés de clip
L’onglet Propriétés du débogueur affiche toutes les valeurs de propriétés des clips sur la scène.
Vous pouvez modifier une valeur et constater l’effet de la modification sur le fichier SWF lors de
son exécution. Certaines propriétés de clip sont en lecture seule et ne peuvent pas être modifiées.
Pour afficher les propriétés d’un clip dans le débogueur :
1 Sélectionnez un clip dans la liste.
2 Cliquez sur l’onglet Propriétés du débogueur.
Pour modifier la valeur d’une propriété :
• Double-cliquez sur la valeur et entrez-en une nouvelle.
La valeur ne peut pas être une expression. Par exemple, vous pouvez entrer 50 ou "goutteDeau"
mais pas x + 50. La valeur peut être une chaîne (n’importe quelle valeur comprise entre
guillemets, un nombre ou une valeur booléenne (true ou false). Vous ne pouvez pas entrer de
valeurs d’objets ou tableaux (par exemple, {id: "rogue"} ou [1, 2, 3]) dans le débogueur.
Pour plus d’informations, consultez Opérateurs de chaîne, page 49 et Utilisation d’opérateurs pour
manipuler les valeurs des expressions, page 48.
Remarque : Pour afficher la valeur d’une expression dans le panneau de sortie en mode de test
d’animation, utilisez l’instruction trace. Pour plus d’informations, consultez Utilisation de l’instruction
trace, page 85.
Débogage de scripts
79
Définition et suppression de points d’arrêt
Un point d’arrêt vous permet d’interrompre un fichier SWF en cours de lecture dans Flash Player
à une ligne précise de code ActionScript. Vous pouvez utiliser les points d’arrêt pour tester
d’éventuels endroits problématiques du code. Par exemple, si vous avez rédigé un jeu
d’instructions if..else if et que vous ne pouvez pas déterminer laquelle est en cours
d’exécution, vous pouvez ajouter un point d’arrêt avant ces instructions et les faire défiler une par
une dans le débogueur.
Vous pouvez définir des points d’arrêt dans le panneau Actions ou dans le débogueur. (Pour
définir des points d’arrêt dans des scripts externes, vous devez utiliser le débogueur.) Les points
d’arrêt définis dans le panneau Actions sont enregistrés dans le document Flash (fichier FLA). Les
points d’arrêt définis dans le débogueur ne sont pas enregistrés dans le fichier FLA et ne sont
valides que pour la session de débogage en cours.
Pour définir ou supprimer un point d’arrêt dans le panneau Actions, effectuez l’une des
opérations suivantes :
• Cliquez dans la marge gauche. La présence d’un point rouge indique un point d’arrêt.
• Cliquez sur le bouton Options de débogage, situé au-dessus de la fenêtre de script.
• Cliquez avec le bouton droit (Windows) ou en appuyant sur la touche Contrôle (Macintosh)
•
pour afficher le menu contextuel et choisissez Définir un point d’arrêt, Supprimer le point
d’arrêt ou Supprimer tous les points d’arrêt.
Appuyez sur Ctrl+Maj+B (Windows) ou sur Commande+Maj+B (Macintosh).
Remarque : Dans les versions précédentes de Flash, un clic dans la marge gauche de la fenêtre de
script sélectionnait la ligne de code. Désormais il permet d’ajouter ou de supprimer un point d’arrêt.
Pour sélectionner une ligne de code, cliquez en appuyant sur la touche Ctrl (Windows) ou
Commande (Macintosh).
Pour définir ou supprimer des points d’arrêt dans le débogueur, effectuez l’une des
opérations suivantes :
• Cliquez dans la marge gauche. La présence d’un point rouge indique un point d’arrêt.
• Cliquez sur le bouton Basculer le point d’arrêt ou Supprimer tous les points d’arrêt, au-dessus
de l’affichage du code.
• Cliquez avec le bouton droit (Windows) ou en appuyant sur la touche Contrôle (Macintosh)
•
80
pour afficher le menu contextuel et choisissez Définir un point d’arrêt, Supprimer le point
d’arrêt ou Supprimer tous les points d’arrêt.
Appuyez sur Ctrl+Maj+B (Windows) ou sur Commande+Maj+B (Macintosh).
Lorsque Flash Player est interrompu à un point d’arrêt, vous pouvez entrer dans une ligne de
code, l’ignorer ou en sortir. Un point d’arrêt fixé dans un commentaire ou sur une ligne vide du
panneau Actions est ignoré.
Chapitre 3 : Rédaction et débogage de scripts
Défilement de lignes de code
Flash Player est mis en pause lorsque vous commencez une session de débogage. Si vous définissez
des points d’arrêt dans le panneau Actions, vous pouvez tout simplement cliquer sur le bouton
Continuer pour lire le fichier SWF jusqu’à ce qu’il rencontre un de ces points. Par exemple, dans
le code suivant, supposons qu’un point d’arrêt a été défini dans un bouton sur la ligne
maFonction():
on(press) {
maFonction();
}
Lorsque vous cliquez sur le bouton, le point d’arrêt est atteint et Flash Player s’interrompt. Vous
pouvez ensuite intervenir afin d’amener le débogueur à la première ligne de maFonction(), là où
elle a été définie dans le document. Vous pouvez également faire défiler toute la fonction ou la
quitter.
Si vous n’avez pas défini de points d’arrêt dans le panneau Actions, vous pouvez utiliser le menu
de passage aux autres éléments du débogueur pour sélectionner n’importe quel script de
l’animation. Vous pouvez ensuite y ajouter des points d’arrêt. Après avoir ajouté des points d’arrêt,
vous devez cliquer sur le bouton Continuer pour lancer l’animation. Le débogueur s’arrête
lorsqu’il atteint le point d’arrêt.
Lorsque vous faites défiler les lignes de code, les valeurs des variables et des propriétés changent
dans la liste d’observation ainsi que dans les onglets Variables, Locales et Propriétés. Une flèche
jaune sur le côté gauche de la fenêtre de code du débogueur indique la ligne sur laquelle le
débogueur s’est arrêté. Utilisez les boutons suivants, placés en haut de la fenêtre de code :
Continuer
Arrêter le débogage
Basculer le point d’arrêt
Supprimer tous les points d’arrêt
Sortir du pas à pas
Pas à pas détaillé
Pas à pas principal
Le bouton Pas à pas détaillé fait avancer le débogueur (indiqué par la flèche jaune) dans une
fonction. Le bouton Pas à pas détaillé ne peut être utilisé qu’avec les fonctions définies par
l’utilisateur.
Dans l’exemple suivant, si vous placez un point d’arrêt à la ligne 7 et que vous cliquez sur Pas à pas
détaillé, le débogueur passe à la ligne 2, et un nouveau clic sur ce bouton passe à la ligne 3. Un clic
sur Pas à pas détaillé pour des lignes ne comportant pas de fonction définie par l’utilisateur fait
avancer le débogueur sur une ligne de code. Par exemple, si vous effectuez un arrêt à la ligne 2 et
que vous choisissez Pas à pas détaillé, le débogueur passe à la ligne 3, comme dans l’exemple
suivant :
Débogage de scripts
81
1
2
3
4
5
6
7
8
function maFonction() {
x = 0;
y = 0;
}
mover = 1;
maFonction();
mover = 0;
Le bouton Sortir du pas à pas fait sortir le débogueur d’une fonction. Le bouton Sortir du pas à
pas ne fonctionne que si vous êtes actuellement arrêté(e) sur une fonction définie par l’utilisateur.
Il déplace la flèche jaune sur la ligne suivant celle au niveau de laquelle cette fonction a été
appelée. Dans l’exemple ci-dessus, si vous placez un point d’arrêt à la ligne 3 et que vous cliquez
sur Sortir du pas à pas, le débogueur passe à la ligne 8. Un clic sur Sortir du pas à pas sur une ligne
qui ne se trouve pas dans une fonction définie par l’utilisateur équivaut à cliquer sur Continuer.
Par exemple, si vous vous arrêtez à la ligne 6 et que vous cliquez sur Sortir du pas à pas, le lecteur
continue à exécuter le script jusqu’à ce qu’il rencontre un point d’arrêt.
Le bouton Pas à pas principal fait avancer le débogueur sur une ligne de code. Le bouton Pas à
pas principal déplace la flèche jaune sur la ligne suivante du script et ignore les fonctions définies
par l’utilisateur. Dans l’exemple ci-dessus, si vous êtes arrêté(e) à la ligne 7 et que vous cliquez sur
Pas à pas principal, vous passez directement à la ligne 8 et maFonction() est ignorée.
Le bouton Continuer quitte la ligne au niveau de laquelle le lecteur est arrêté et continue la
lecture jusqu’à ce qu’un point d’arrêt soit atteint.
Le bouton Arrêter le débogage désactive le débogueur sans arrêter la lecture du fichier SWF
dans Flash Player.
Utilisation du panneau de sortie
En mode de test d’animation, le panneau de sortie affiche des informations facilitant le dépannage
de votre fichier SWF. Certaines informations, telles que les erreurs de syntaxe, sont
automatiquement affichées. Vous pouvez afficher d’autres informations à l’aide des commandes
Lister les objets et Lister les variables. (Consultez Liste des objets d’un fichier SWF, page 83 et Liste
des variables d’un fichier SWF, page 84.)
Si vous utilisez l’instruction trace dans vos scripts, vous pouvez envoyer des informations
spécifiques au panneau de sortie au cours de l’exécution du fichier SWF. Il peut s’agir de notes
relatives à l’état du fichier SWF ou à la valeur d’une expression. Pour plus d’informations,
consultez Utilisation de l’instruction trace, page 85.
Pour afficher le panneau de sortie, choisissez Fenêtre > Panneaux de développement > Sortie ou
appuyez sur la touche F2.
Remarque : Si un script comporte des erreurs de syntaxe, le panneau de sortie apparaît
automatiquement lorsque vous vérifiez la syntaxe ou que vous testez votre fichier SWF.
82
Chapitre 3 : Rédaction et débogage de scripts
Pour utiliser le contenu du panneau de sortie, utilisez le menu d’options (dans le coin supérieur
droit).
Liste des objets d’un fichier SWF
En mode de test d’animation, la commande Lister les objets affiche le niveau, l’image, le type
d’objet (forme, clip ou bouton), les chemins cible et les noms d’occurrences de clips, boutons et
champs de texte dans une liste hiérarchique. Cela est particulièrement utile pour rechercher le
chemin cible et le nom de l’occurrence corrects. Contrairement au débogueur, la liste n’est pas
automatiquement mise à jour au cours de la lecture du fichier SWF ; vous devez choisir la
commande Lister les objets chaque fois que vous voulez envoyer les informations au panneau de
sortie.
La commande Lister les objets ne dresse pas la liste de tous les objets de données ActionScript.
Dans ce contexte, un objet est considéré comme une forme ou un symbole sur la scène.
Pour afficher une liste d’objets d’une animation :
1 Si l’animation n’est pas en cours d’exécution en mode de test d’animation, choisissez
Contrôle > Tester l’animation.
2 Choisissez Déboguer > Lister les objets.
La liste des objets actuellement sur la scène s’affiche dans le panneau de sortie, comme illustré
dans l’exemple suivant :
Level #0: Image=1 Etiquette="Scene_1"
Bouton: Cible="_level0.monBouton"
Forme:
Clip: Image=1 Cible="_level0.monClip"
Forme:
Modifier le texte: Cible="_level0.monChampDeTexte" Texte="Ceci est un
exemple."
Utilisation du panneau de sortie
83
Liste des variables d’un fichier SWF
En mode de test, la commande Lister les variables affiche la liste de toutes les variables actuelles
que contient le fichier SWF. Cela est particulièrement utile pour rechercher la variable cible et le
nom de la variable corrects. Contrairement au débogueur, la liste n’est pas automatiquement mise
à jour au cours de la lecture du fichier SWF ; vous devez choisir la commande Lister les variables
chaque fois que vous voulez envoyer les informations au panneau de sortie.
La commande Lister les variables affiche également les variables globales déclarées au moyen de
l’identifiant _global. Les variables globales sont affichées en haut de la liste produite par l’option
Lister les variables, dans une section nommée « Variables globales ». Chacune d’entre elles est
précédée de la mention _global.
En outre, la commande Lister les variables affiche des propriétés de type lecture/définition, des
propriétés créées par la méthode Objet.addProperty() et qui appellent des méthodes get ou
set. Une propriété lecture/définition est affichée à côté des autres propriétés de l’objet auquel elle
appartient. Pour distinguer aisément ces propriétés des variables ordinaires, la valeur d’une
propriété lecture/définition porte le préfixe [obtenir/placer]. La valeur affichée pour une
propriété lecture/définition est déterminée par l’évaluation de la fonction get de la propriété.
Pour afficher la liste des variables d’un fichier SWF :
1 Si le fichier SWF n’est pas en cours d’exécution en mode de test, choisissez Contrôle > Tester
l’animation.
2 Choisissez Déboguer > Lister les variables.
La liste de toutes les variables qui figurent actuellement dans le fichier SWF s’affiche dans le
panneau de sortie, comme illustré dans l’exemple suivant :
Variables globales :
Variable _global.MonTableauDeGlobales = [objet 1] [
0:1,
1:2,
2:3
]
Level #0:
Variable _level0.$version = "WIN 6,0,0,101"
Variable _level0.VariableNormale = "Gary"
Variable _level0.UnObjet = [objet 1] {
maPropriété: [obtenir/placer] 3.14159
}
Affichage des propriétés de champ de texte pour le débogage
Pour obtenir des informations de débogage sur les objets du champ de texte, vous pouvez utiliser
la commande Déboguer > Lister les variables en mode tester l’animation. Le panneau de sortie
utilise les conventions suivantes pour l’affichage des objets TextField :
•
•
•
•
•
84
Si une propriété est introuvable sur l’objet, elle ne s’affiche pas.
Pas plus de quatre propriétés s’affichent sur une ligne.
Une propriété possédant une valeur de chaîne est affichée sur une ligne séparée.
Si d’autres propriétés sont définies pour l’objet après le traitement des propriétés intégrées, elles
s’ajoutent à l’affichage selon les règles des deuxième et troisième points précédents.
Les propriétés de couleur s’affichent sous forme de nombres hexadécimaux (0x00FF00).
Chapitre 3 : Rédaction et débogage de scripts
• Les propriétés sont affichées dans l’ordre suivant : variable, text, htmlText, html,
textWidth, textHeight, maxChars, borderColor, backgroundColor, textColor, border,
background, wordWrap, password, multiline, selectable, scroll, hscroll, maxscroll,
maxhscroll, bottomScroll, type, embedFonts, restrict, length, tabIndex, autoSize.
La commande Déboguer > Lister les objets en mode test répertorie les objets du champ de texte.
Si un nom d’occurrence est spécifié pour un champ de texte, le panneau de sortie affiche le
chemin cible complet, y compris le nom d’occurrence sous la forme suivante :
Target = "target path"
Utilisation de l’instruction trace
L’utilisation de l’instruction trace dans un script vous permet d’envoyer des informations au
panneau de sortie. Par exemple, lors du test d’une animation ou séquence, vous pouvez envoyer
des notes de programmation spécifiques au panneau ou afficher des résultats spécifiques lorsque
vous cliquez sur un bouton ou en lisez une image. L’instruction trace est similaire à l’instruction
JavaScript alert.
Lorsque vous utilisez l’instruction trace dans un script, vous pouvez utiliser des expressions en
tant que paramètres. La valeur d’une expression s’affiche dans le panneau de sortie en mode de
test, comme illustré dans l’exemple suivant :
L’instruction trace renvoie des valeurs qui sont affichées dans le panneau de sortie.
onClipEvent (enterFrame) {
trace("onClipEvent enterFrame " + enterFrame++)
}
Mise à jour de Flash Player pour le test
Vous pouvez télécharger la version la plus récente de Flash Player à partir du site du centre de
support Macromedia à l’adresse www.macromedia.com/go/flash_support_fr afin de l’utiliser pour
tester vos fichiers SWF.
Mise à jour de Flash Player pour le test
85
86
Chapitre 3 : Rédaction et débogage de scripts
Certains événements, tels que les clics de souris ou les pressions exercées sur les touches, peuvent
être générés par l’utilisateur. D’autres peuvent être le résultat de certains autres processus, tels que
le chargement d’un fichier XML sur le réseau. Le premier chapitre de cette section décrit les
différents types d’événements dans Macromedia Flash et explique comment les traiter dans
ActionScript. Le deuxième chapitre explique comment appliquer ces principes pour créer des
présentations, des applications et des animations interactives simples.
Chapitre 4 : Gestion d’événements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Chapitre 5 : Création d’interactivité avec ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
PARTIE II
PARTIE II
Gestion des événements et création d’interactivité
CHAPITRE 4
Gestion d’événements
Un événement est une occurrence logicielle ou matérielle qui requiert une réponse d’une
application Macromedia Flash. Par exemple, un événement tel qu’un clic de souris ou une
pression sur une touche est appelé événement utilisateur, puisqu’il résulte d’une interaction directe
avec l’utilisateur. Un événement généré automatiquement par Flash Player, tel que l’apparence
initiale d’un clip sur la scène, est appelé événement système, car il n’est pas généré directement par
l’utilisateur.
Pour que votre application réagisse à des événements, vous devez utiliser des gestionnaires
d’événement (code ActionScript associé à un objet et à un événement particuliers). Par exemple,
lorsqu’un utilisateur clique sur un bouton sur la scène, la tête de lecture peut passer à l’image
suivante. De même, à l’issue du chargement d’un fichier XML sur le réseau, le contenu du fichier
peut s’afficher dans un champ de texte.
ActionScript propose différentes méthodes de gestion des événements : méthodes de gestionnaire
d’événement, des écouteurs d’événement, et des gestionnaires d’événement de bouton et de clip.
Utilisation de méthodes de gestionnaire d’événement
Une méthode de gestionnaire d’événement est une méthode de classe invoquée lorsqu’un
événement se produit sur une occurrence de cette classe. Par exemple, la classe Button définit un
gestionnaire d’événement onPress, invoqué lorsque l’utilisateur clique avec le bouton de la souris
sur un objet Button. Contrairement aux autres méthodes de classe, vous n’invoquez pas
directement un gestionnaire d’événement ; Flash Player l’invoque automatiquement lorsque
l’événement approprié se produit.
Par défaut, les méthodes de gestionnaire d’événement ne sont pas définies : lorsqu’un événement
particulier se produit, son gestionnaire d’événement correspondant est invoqué, mais votre
application ne répond pas davantage à l’événement. Pour qu’elle réponde à l’événement, définissez
une fonction au moyen de l’instruction function et affectez-la au gestionnaire d’événement
approprié. La fonction que vous avez affectée au gestionnaire d’événement est ensuite
automatiquement invoquée lorsque l’événement se produit.
89
Un gestionnaire d’événement se compose de trois éléments : l’objet auquel l’événement
s’applique, le nom de la méthode de gestionnaire d’événement de l’objet et la fonction que vous
avez affectée au gestionnaire d’événement. L’exemple suivant illustre la structure de base d’un
gestionnaire d’événement.
object.eventMethod = function () {
// Votre code, répondant à l’événement
}
Par exemple, supposons que vous avez un bouton suivant_btn sur la scène. Le code suivant
affecte au gestionnaire d’événement onPress du bouton une fonction qui permet de faire avancer
la tête de lecture jusqu’à l’image suivante dans le scénario.
suivant_btn.onPress = function ()
nextFrame();
}
Dans le code ci-dessus, la fonction nextFrame() est affectée directement à onPress. Vous pouvez
également affecter une référence de fonction (nom) à une méthode de gestionnaire d’événement
et définir la fonction ultérieurement.
// Assigne une référence de fonction à la méthode de gestionnaire d’événement
onPress du bouton
suivant_btn.onPress = goNextFrame;
// Définit la fonction doSubmit()
function goNextFrame() {
nextFrame();
}
Notez que vous affectez la référence de fonction et non la valeur renvoyée de la fonction au
gestionnaire d’événement onPress.
// Incorrect !
suivant_btn.onPress = goNextFrame();
// Correct.
suivant_btn.onPress = goNextFrame;
Certains gestionnaires d’événement reçoivent des paramètres transmis qui donnent des
informations sur l’événement qui s’est produit. Par exemple, le gestionnaire d’événement
TextField.onSetFocus est invoqué lorsqu’une occurrence de champ de texte parvient au focus
clavier. Ce gestionnaire d’événement reçoit une référence à l’objet de champ de texte qui avait
précédemment le focus clavier.
Par exemple, le code suivant insère du texte dans le champ de texte qui vient juste de perdre le
focus clavier.
nomDutilisateur_txt.onSetFocus = function(oldFocus_txt) {
ancienFocus_txt.text = "Je viens de perdre le focus clavier";
}
Les classes ActionScript suivantes définissent des gestionnaires d’événement : Button,
ContextMenu, ContextMenuItem, Key, LoadVars, LocalConnection, Mouse, MovieClip,
MovieClipLoader, Selection, SharedObject, Sound, Stage, TextField, XML et XMLSocket. Pour
plus d’informations sur les gestionnaires d’événement qu’elles proposent, consultez les entrées
correspondantes dans le Chapitre 12, Dictionnaire ActionScript, page 215.
90
Chapitre 4 : Gestion d’événements
Vous pouvez également affecter des fonctions à des gestionnaires d’événement pour des objets que
vous créez lors de l’exécution. Le code suivant, par exemple, crée une nouvelle occurrence de clip
(nouveauClip_mc) et affecte une fonction au gestionnaire d’événement onPress du clip.
_root.attachMovie("idDeSymbole", "nouveauClip_mc", 10);
nouveauClip_mc.onPress = function () {
trace("Vous m’avez pressé");
}
Pour plus d’informations, consultez Création de clips à l’exécution, page 132.
Utilisation des écouteurs d’événement
Les écouteurs d’événement permettent à un objet, appelé objet d’écoute, de recevoir des
événements générés par un autre objet, appelé objet diffuseur. L’objet diffuseur enregistre l’objet
d’écoute afin de recevoir des événements générés par le diffuseur. Par exemple, vous enregistrez un
objet de clip pour recevoir des notifications onResize de la scène, ou une occurrence de bouton
peut recevoir des notifications onChanged d’un objet de champ de texte. Vous pouvez enregistrer
plusieurs objets d’écoute pour recevoir des événements d’un seul diffuseur, et vous pouvez
enregistrer un seul objet d’écoute pour recevoir des événements de plusieurs diffuseurs.
Les écouteurs d’événement utilisent le même modèle que les gestionnaires d’événement (consultez
Utilisation de méthodes de gestionnaire d’événement, page 89), à deux différences près :
• L’objet auquel vous affectez le gestionnaire d’événement n’est pas l’objet qui émet l’événement.
• Appelez une méthode spéciale de l’objet diffuseur, addListener(), qui enregistre l’objet
d’écoute pour recevoir ses événements.
Pour utiliser les écouteurs d’événement, créez un objet d’écoute avec une propriété qui porte le
même nom que l’événement en cours de création par l’objet diffuseur. Affectez ensuite une
fonction à l’écouteur d’événement qui répond en quelque sorte à l’événement. Enfin, appelez
addListener() sur l’objet qui diffuse l’événement, en lui transmettant le nom de l’objet
d’écoute. Le code suivant présente le modèle d’écouteur d’événement.
objetDecoute.eventName = function(){
// votre code
};
objetDiffuseur.addListener(listenerObject);
L’objet d’écoute spécifié peut être tout objet, tel qu’une occurrence de bouton ou de clip sur la
scène ou une occurrence de n’importe quelle classe ActionScript. Le nom de l’événement est un
événement qui se produit sur objetDiffuseur, qui ensuite diffuse l’événement à objetDecoute.
Vous pouvez enregistrer plusieurs écouteurs sur un diffuseur d’événement.
L’exemple suivant illustre comment utiliser l’écouteur d’événement Selection.onSetFocus pour
créer un gestionnaire de focus simple pour un groupe de champs de saisie de texte. Dans ce cas, la
bordure du champ de texte qui reçoit le focus clavier est activée (affichée) et la bordure du champ
de texte qui a perdu le focus est désactivée.
Pour créer un gestionnaire de focus simple avec des gestionnaires d’événement :
1 En utilisant l’outil Texte, créez un champ de texte sur la scène.
2 Sélectionnez le champ de texte et, dans l’Inspecteur des propriétés, choisissez Entrée dans le
menu contextuel Type de texte, puis choisissez l’option Afficher la bordure autour du texte.
3 Créez un autre champ de saisie de texte, sous le premier.
Utilisation des écouteurs d’événement
91
Assurez-vous que l’option Afficher la bordure autour du texte n’est pas activée pour ce champ
de texte. Si nécessaire, continuez à créer des champs de saisie de texte.
4 Sélectionnez l’image 1 dans le scénario et ouvrez le panneau Actions (Fenêtre > Panneaux de
développement > Actions).
5 Pour créer un objet qui écoute les notifications de focus d’une classe Selection, entrez le code
suivant dans le panneau Actions :
var ecouteurDeFocus = new Object();
ecouteurDeFocus.onSetFocus = function(ancienFocus_txt, nouveauFocus_txt) {
ancienFocus_txt.border = false;
nouveauFocus_txt.border = true;
}
Ce code crée un nouvel objet ActionScript (générique) appelé focusListener. Cet objet
définit pour lui-même une propriété onSetFocus, à laquelle il affecte une fonction. La
fonction prend en compte deux paramètres : une référence au champ de texte qui a perdu le
focus et une référence au champ de texte qui a reçu le focus. La fonction définit la propriété
border du champ de texte qui a perdu le focus à false et la propriété border du champ de
texte qui a reçu le focus à true.
6 Pour enregistrer l’objet focusListener pour recevoir des événements de l’objet Selection,
ajoutez le code suivant au panneau Actions :
Selection.addListener(focusListener);
7 Testez l’animation (Contrôle > Tester l’animation), cliquez dans le premier champ de texte, puis
appuyez sur Tab pour passer d’un champ à l’autre.
Pour désenregistrer un objet d’écoute de sorte qu’il ne reçoive plus d’événements, appelez la
méthode removeListener() de l’objet diffuseur, en lui transmettant le nom de l’objet d’écoute.
objetDiffuseur.removeListener(listenerObject);
Les écouteurs d’événement sont disponibles pour les objets des classes ActionScript suivantes :
Key, Mouse, MovieClipLoader, Selection, TextField, et Stage. Pour obtenir une liste des écouteurs
d’événement disponibles pour chaque classe, consultez les entrées de ces classes dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Utilisation de gestionnaires d’événement de bouton et de clip
Vous pouvez associer des gestionnaires d’événement directement à une occurrence de bouton ou
de clip au moyen des gestionnaires onClipEvent() et on(). Le gestionnaire onClipEvent()
traite les événements de clips alors que le gestionnaire on() traite ceux des boutons. Vous pouvez
également utiliser on() avec des clips pour créer des clips qui reçoivent des événements de
bouton. Pour plus d’informations, consultez Création de clips avec états de bouton, page 94.
Pour utiliser le gestionnaire on() ou onClipEvent(), associez-le directement à une occurrence
d’un bouton ou d’un clip sur la scène et spécifiez l’événement que vous souhaitez gérer pour cette
occurrence. Par exemple, le gestionnaire d’événement on() suivant est exécuté lorsque l’utilisateur
clique sur le bouton auquel il est associé.
on(press) {
trace("Merci de m’avoir pressé.");
}
92
Chapitre 4 : Gestion d’événements
Vous pouvez spécifier deux événements, voire plus, pour chaque gestionnaire on(), séparés par
des virgules. Le code ActionScript dans un gestionnaire est exécuté lorsque l’un des événements
spécifiés par le gestionnaire se produit. Par exemple, le gestionnaire on() suivant, associé à un
bouton, est exécuté lorsque le pointeur de la souris passe au-dessus puis en dehors du bouton.
on(rollOver, rollOut) {
trace("Vous êtes passé au-dessus ou en dehors");
}
Vous pouvez associer plusieurs gestionnaires à un objet si vous souhaitez exécuter différents scripts
lorsque différents événements se produisent. Par exemple, vous pouvez associer les gestionnaires
onClipEvent() suivants à la même occurrence de clip. Le premier est exécuté au premier
chargement du clip (ou lorsque celui-ci apparaît sur la scène), le second est exécuté lorsque le clip
est purgé de la scène.
onClipEvent(load) {
trace("chargé");
}
onClipEvent (unload) {
trace("purgé");
}
Pour obtenir la liste complète des événements pris en charge par les gestionnaires d’événement
on() et onClipEvent(), consultez on(), page 660 et onClipEvent(), page 661.
La gestion d’événement avec on() et onClipEvent() ne provoque pas de conflit avec la gestion
d’événement via des méthodes de gestionnaire d’événement que vous définissez. Imaginons par
exemple que votre fichier SWF comporte un bouton associé à un gestionnaire on(press) qui
déclenche la lecture du fichier SWF. Ce même bouton possède également une méthode onPress,
pour laquelle vous définissez une fonction qui indique une rotation à un objet sur la scène.
Lorsque l’utilisateur clique sur le bouton, la lecture du fichier SWF commence et l’objet tourne
sur lui-même. Selon vos préférences, vous pouvez utiliser on() et onClipEvent(), des méthodes
de gestionnaire d’événement ou ces deux types de gestion d’événement. Toutefois, le domaine des
variables et des objets dans les gestionnaires on() et onClipEvent() n’est pas le même que celui
du gestionnaire d’événement et des écouteurs d’événement. Pour plus d’informations, consultez
Domaine du gestionnaire d’événement, page 94.
Vous pouvez associer onClipEvent() et on() uniquement à des occurrences de clips qui ont été
placées sur la scène au cours de la programmation. Il est impossible d’associer onClipEvent() ou
on() à des occurrences de clips créées à l’exécution (avec la méthode attachMovie, par exemple).
Pour associer des gestionnaires d’événement à des objets créés à l’exécution, utilisez des méthodes
de gestionnaire d’événement ou des écouteurs d’événement. Pour plus d’informations, consultez
Utilisation de méthodes de gestionnaire d’événement, page 89 et Utilisation des écouteurs d’événement,
page 91.
Utilisation de gestionnaires d’événement de bouton et de clip
93
Création de clips avec états de bouton
Lorsque vous associez un gestionnaire on() à un clip ou que vous affectez une fonction à l’un des
gestionnaires d’événement souris MovieClip pour une occurrence de clip, le clip répond à des
événements souris de la même façon qu’un bouton. Vous pouvez également créer des états de
bouton automatiques (Haut, Dessus et Abaissé) dans un clip, en ajoutant les étiquettes d’image
_up, _over et _down au scénario du clip.
Lorsque l’utilisateur déplace la souris au-dessus d’un clip ou qu’il clique sur ce dernier, la tête de
lecture passe à l’image avec l’étiquette d’image appropriée. Pour désigner la zone active qu’utilise
un clip, utilisez la propriété hitArea de la classe MovieClip.
Pour créer des états de bouton dans un clip :
1 Sélectionnez, dans le scénario d’un clip, une image à utiliser comme état de bouton (Haut,
Dessus ou Abaissé).
2 Entrez une étiquette d’image dans l’inspecteur des propriétés (_up, _over ou _down).
3 Pour ajouter d’autres états de bouton, répétez les étapes 1 et 2.
4 Pour que votre clip réponde aux événements souris, effectuez l’une des opérations suivantes :
■ Associez un gestionnaire d’événement on() à l’occurrence du clip, comme indiqué dans
Utilisation de gestionnaires d’événement de bouton et de clip, page 92.
■ Affectez une fonction à l’un des gestionnaires d’événement souris de l’objet du clip
(onPress, onRelease, etc.), comme indiqué dans Utilisation de méthodes de gestionnaire
d’événement, page 89.
Domaine du gestionnaire d’événement
Le domaine, ou contexte, des variables et commandes que vous déclarez et exécutez dans un
gestionnaire d’événement varie selon le type de gestionnaire d’événement que vous utilisez :
gestionnaires d’événement ou écouteurs d’événement, gestionnaires on() et onClipEvent().
Les fonctions affectées aux méthodes de gestionnaire d’événement et aux écouteurs d’événement
(comme toutes les fonctions ActionScript que vous rédigez) définissent un domaine de variable
locale, contrairement aux gestionnaires on() et onClipEvent().
Par exemple, soit les deux gestionnaires d’événement suivants : le premier est un gestionnaire
d’événement onPress associé à un clip appelé clip_mc, le second est un gestionnaire on() associé
à la même occurrence de clip.
// Associé au scénario de clip parent de clip_mc :
clip_mc.onPress = function () {
var couleur; // variable de fonction locale
couleur = "bleu";
}
// gestionnaire on() associé à clip_mc :
on(press) {
var couleur; // aucun domaine de variable locale
couleur = "bleu";
}
94
Chapitre 4 : Gestion d’événements
Bien que les deux gestionnaires d’événement contiennent le même code, les résultats sont
différents. Dans le premier cas, la variable couleur est locale par rapport à la fonction définie
pour onPress. Dans le second, dans la mesure où le gestionnaire on() ne définit pas de domaine
de variable locale, la variable a un domaine limité au scénario du clip clip_mc.
Dans le cas des gestionnaires d’événement on() associés à des boutons, plutôt qu’à des clips, le
domaine des variables (à l’instar des appels de fonction et de méthode) est limité au scénario qui
contient l’occurrence de bouton.
Le gestionnaire d’événement on() suivant, par exemple, génère différents résultats selon qu’il est
associé à un clip ou à un bouton. Dans le premier exemple, l’appel de la fonction play() lance la
tête de lecture du scénario qui contient le bouton ; dans le second, l’appel de la fonction play()
démarre le scénario du clip auquel le gestionnaire est associé.
// Associé à
on(press) {
play(); //
}
// Associé à
on(press) {
play(); //
}
un bouton
exécute le scénario parent
un clip
exécute le scénario du clip
Autrement dit, lorsqu’il est associé à un objet de bouton, l’appel de la méthode play() s’applique
au scénario qui contient le bouton, c’est-à-dire au scénario parent du bouton. En revanche,
lorsque ce même gestionnaire est associé à un objet de clip, la méthode play() s’applique au clip
qui contient le gestionnaire.
Dans la définition d’une fonction de gestionnaire d’événement ou d’écouteur d’événement, la
fonction play() s’appliquerait au scénario contenant la définition. Imaginons par exemple que la
fonction de gestionnaire d’événement MovieClip.onPress suivante soit déclarée dans le scénario
contenant l’instance de clip monClip.
// Fonction définie dans le scénario du clip :
monClip.onPress = function () {
play(); // exécute le scénario contenant la définition de la fonction
}
Pour exécuter le clip qui définit le gestionnaire d’événement onPress, vous devez faire
explicitement référence à ce clip à l’aide du mot-clé this, comme suit :
monClip.onPress = function () {
this.play(); // exécute le scénario du clip qui définit le gestionnaire
onPress
}
Domaine du gestionnaire d’événement
95
Domaine du mot-clé « this »
Le mot-clé this fait référence à l’objet dans le domaine en cours d’exécution. Selon le type de
technique de gestionnaire d’événement que vous utilisez, this renvoie à différents objets.
Dans une fonction de gestionnaire d’événement ou d’écouteur d’événement, this
fait
référence à l’objet qui définit la méthode du gestionnaire d’événement ou de l’écouteur
d’événement. Dans le code suivant, par exemple, this renvoie à monClip.
// gestionnaire d’événement onPress() associé à _level0.monClip :
monClip.onPress = function () {
trace(this); // affiche "_level0.monClip"
}
Dans un gestionnaire on() associé à un clip, this
renvoie au clip auquel le gestionnaire on()
est associé.
// Associé au clip "monClip"
on(press) {
trace(this); // affiche "_level0.monClip"
}
Dans un gestionnaire on() associé à un bouton, this
bouton.
// Associé à un bouton du scénario principal
on(press) {
trace(this); // affiche "_level0"
}
96
Chapitre 4 : Gestion d’événements
renvoie au scénario qui contient le
CHAPITRE 5
Création d’interactivité avec ActionScript
Dans une animation simple, Macromedia Flash Player lit les scènes et les images du fichier SWF
de façon séquentielle. Dans un fichier SWF interactif, votre public utilise le clavier et la souris
pour atteindre les différentes parties du fichier SWF, pour déplacer des objets, entrer des
informations dans des formulaires et effectuer bien d’autres opérations interactives.
Utilisez ActionScript pour créer des scripts qui indiquent à Flash Player l’action à exécuter
lorsqu’un événement survient. Certains événements pouvant déclencher un script se produisent
lorsque la tête de lecture atteint une image, qu’un clip est chargé ou purgé, ou que l’utilisateur
clique sur un bouton ou appuie sur une touche.
Les scripts peuvent prendre la forme d’une commande unique (pour ordonner la fin de la lecture
d’un fichier SWF, par exemple) ou d’une série de commandes et d’instructions (pour évaluer une
condition avant d’effectuer une action, par exemple). De nombreuses commandes ActionScript
sont simples et permettent de créer des contrôles de base pour un fichier SWF. D’autres actions
exigent une certaine connaissance des langages de programmation et sont destinées à un
développement avancé.
A propos des événements et de l’interaction
Chaque clic de souris ou pression sur une touche entraîne la génération d’un événement. Ces
types d’événements portent généralement le nom d’événements utilisateur, car ils sont générés en
réponse à une action de l’utilisateur final. Vous pouvez utiliser ActionScript pour répondre à ces
événements ou les gérer. Par exemple, lorsqu’un utilisateur clique sur un bouton, il peut être
intéressant d’envoyer la tête de lecture vers une autre image du fichier SWF ou de charger une
nouvelle page dans le navigateur.
Dans un fichier SWF, les boutons, clips et champs de texte génèrent tous des événements auxquels
vous pouvez répondre. ActionScript offre trois manières de gérer les événements : les méthodes
des gestionnaires d’événement, les écouteurs d’événements et les gestionnaires on() et
onClipEvent(). Pour plus d’informations sur les événements et les gestionnaires d’événement,
consultez le Chapitre 4, Gestion d’événements, page 89.
97
Contrôle de la lecture d’un fichier SWF
Les fonctions ActionScript suivantes vous permettent de contrôler la tête de lecture dans le
scénario et de charger une nouvelle page web dans une fenêtre de navigateur :
• Les fonctions gotoAndPlay() et gotoAndStop() envoient la tête de lecture vers une image ou
•
•
une scène. Ce sont des fonctions générales que vous pouvez appeler à partir de tout script. Vous
pouvez également utiliser les méthodes MovieClip.gotoAndPlay() et
MovieClip.gotoAndStop() pour naviguer dans le scénario d’un objet clip spécifique.
Les actions play() et stop() entraînent la lecture et l’arrêt des animations.
L’action getURL() permet d’atteindre une URL différente.
Déplacement vers une image ou une scène
Pour atteindre une image ou une scène spécifique du fichier SWF, vous pouvez utiliser les
fonctions globales gotoAndPlay() ou gotoAndStop() ou les méthodes équivalentes
gotoAndPlay() et gotoAndStop() de la classe MovieClip. Chaque fonction ou méthode vous
permet de spécifier l’image de la scène en cours à atteindre. Si le document contient plusieurs
scènes, vous pouvez en plus spécifier celle qui est concernée.
L’exemple suivant utilise la fonction globale gotoAndPlay() dans le gestionnaire d’événement
d’un objet bouton pour envoyer la tête de lecture du scénario contenant le bouton
vers l’image 10.
onRelease
jump_btn.onRelease = function () {
gotoAndPlay(10);
}
Dans l’exemple suivant, la méthode MovieClip.gotoAndStop() envoie le scénario d’un clip
nommé categories_mc vers l’image 10 puis s’arrête. Lorsque vous utilisez les méthodes
MovieClip gotoAndPlay() et gotoAndStop(), vous devez indiquer l’occurrence à laquelle elles
s’appliquent.
jump_btn.onPress = function () {
categories_mc.gotoAndStop(10);
}
Lecture et arrêt de clips
Sauf indication contraire, une fois démarré, un fichier SWF exécute toutes les images du scénario.
Vous pouvez arrêter ou démarrer un fichier SWF à l’aide des fonctions globales play() et stop()
ou des méthodes MovieClip équivalentes. Ainsi, la fonction ou la méthode stop() vous permet
d’arrêter un fichier SWF à la fin d’une scène avant de passer à la scène suivante. Une fois un
fichier SWF arrêté, il doit être redémarré au moyen de play().
Vous pouvez utiliser les fonctions play() et stop() ou les méthodes MovieClip pour contrôler le
scénario principal ou le scénario de tout clip ou de tout fichier SWF chargé. Le clip que vous
souhaitez contrôler doit posséder un nom d’occurrence et être présent dans le scénario.
Le gestionnaire on(press) suivant associé à un bouton lance la tête de lecture dans le fichier
SWF ou le clip contenant l’objet bouton.
98
Chapitre 5 : Création d’interactivité avec ActionScript
// Associé à une occurrence de bouton
on(press) {
// Lit le scénario contenant le bouton
play();
}
Ce même code donnerait un résultat différent s’il était associé à un clip plutôt qu’à un bouton.
Lorsqu’elles sont associées à un objet bouton, les instructions faites dans un gestionnaire on()
sont par défaut appliquées au scénario contenant le bouton. En revanche, lorsqu’elles sont
associées à un clip, les instructions définies dans un gestionnaire on() sont appliquées au clip
contenant le gestionnaire.
Le gestionnaire on() suivant, par exemple, arrête le scénario du clip auquel il est associé, et non le
scénario contenant le clip.
on(press) {
stop();
}
Il en va de même pour les gestionnaires onClipEvent() associés à des clips. Le code suivant, par
exemple, arrête le scénario du clip contenant le gestionnaire onClipEvent() lors du premier
chargement du clip ou de sa première apparition sur la scène.
onClipEvent(load) {
stop();
}
Déplacement vers une URL différente
Pour ouvrir une page web dans une fenêtre de navigateur ou pour transmettre des données à une
autre application sur une URL définie, utilisez la fonction globale getURL() ou la méthode
MovieClip.getURL(). Vous pouvez, par exemple, lier un bouton à un nouveau site web ou
envoyer des variables de scénario à un script CGI pour traitement comme s’il s’agissait d’un
formulaire HTML. Vous pouvez également spécifier une fenêtre cible, exactement comme pour le
ciblage d’une fenêtre à l’aide d’une balise d’ancrage HTML (<a></a>).
Par exemple, le code suivant ouvre la page d’accueil macromedia.com dans une fenêtre de
navigateur vide lorsque l’utilisateur clique sur l’occurrence de bouton homepage_btn.
homepage_btn.onRelease = function () {
getURL("http://www.macromedia.com", _blank);
}
Vous pouvez également envoyer des variables avec l’URL, en utilisant GET ou POST. Cette
opération est utile si la page que vous chargez provient d’un serveur d’applications, telle une page
ColdFusion Server (CFM), et attend la réception de variables. Supposons par exemple que vous
souhaitiez charger une page CFM nommée addUser.cfm qui attend deux variables de formulaire,
name et age. Pour ce faire, vous pouvez créer un clip nommé variables_mc qui définit ces deux
variables de la façon suivante :
variables_mc.name = "Francois";
variables_mc.age = 32;
Le code suivant charge ensuite addUser.cfm dans une fenêtre de navigateur vide, puis transmet
variables_mc.name et variables_mc.age à la page CFM dans l’en-tête POST.
variables_mc.getURL("addUser.cfm", "_blank", "POST");
Pour plus d’informations, consultez getURL(), page 434.
Contrôle de la lecture d’un fichier SWF
99
Création d’interactivité et d’effets visuels
Pour créer de l’interactivité et d’autres effets visuels, vous devez comprendre les techniques
suivantes :
•
•
•
•
•
•
•
Création d’un pointeur de souris personnalisé
Obtention de la position de la souris
Capture des pressions sur les touches
Définition des valeurs des couleurs
Création de commandes audio
Détection des collisions
Création d’un outil de dessin de ligne simple
Création d’un pointeur de souris personnalisé
Un pointeur de souris standard est la représentation visuelle par le système d’exploitation de la
position de la souris de l’utilisateur. Si vous remplacez le pointeur de souris standard par un
pointeur réalisé dans Flash, vous pouvez intégrer plus étroitement les mouvements de la souris de
l’utilisateur dans le fichier SWF. L’exemple de cette section utilise un pointeur personnalisé qui
ressemble à une grande flèche. Cependant, la puissance de cette fonctionnalité réside dans la
possibilité de donner au pointeur n’importe quelle apparence (par exemple, un ballon de football
qui doit franchir la ligne de but ou un rouleau de tissu que l’utilisateur tire au-dessus d’un canapé
afin de modifier sa couleur).
Pour créer un pointeur personnalisé, vous devez créer son clip sur la scène. Ensuite, dans
ActionScript, masquez le pointeur standard et associez le clip aux mouvements du curseur
personnalisé. Pour masquer le pointeur standard, utilisez la méthode Mouse.hide() de la classe
Mouse intégrée. Pour utiliser un clip comme pointeur personnalisé, utilisez startDrag()
l’action.
Pour créer un pointeur personnalisé :
1 Créez un clip à utiliser comme pointeur et placez une occurrence du clip sur la scène.
2 Sélectionnez l’occurrence de clip sur la scène.
3 Sélectionnez Fenêtre > Panneaux de développement > Actions pour ouvrir le panneau Actions
si ce dernier n’est pas déjà visible.
4 Tapez ce qui suit dans le panneau Actions :
onClipEvent(load){
Mouse.hide();
startDrag(this, true);
}
onClipEvent(mouseMove) {
updateAfterEvent();
}
Le premier gestionnaire onClipEvent() masque le pointeur de la souris lors de la première
apparition du clip sur la scène. Le second gestionnaire appelle updateAfterEvent() chaque
fois que l’utilisateur déplace la souris.
La fonction updateAfterEvent() actualise l’écran dès que l’événement spécifié s’est produit,
sans attendre le dessin de l’image suivante, ce qui correspond au comportement par défaut.
Pour plus d’informations, consultez updateAfterEvent(), page 850.
100
Chapitre 5 : Création d’interactivité avec ActionScript
5 Sélectionnez Contrôle > Tester l’animation pour tester votre pointeur personnalisé.
Les boutons fonctionnent encore lorsque vous utilisez un pointeur personnalisé. Il est conseillé de
placer le pointeur personnalisé sur le calque supérieur du scénario, de sorte qu’il s’affiche au
premier plan, par-dessus les boutons et autres objets, lorsque vous le déplacez dans le fichier SWF.
De plus, l’extrémité d’un pointeur personnalisé est le point d’alignement du clip que vous utilisez
comme pointeur. Pour qu’elle corresponde à une partie spécifique du clip, définissez donc les
coordonnées du point d’alignement de façon à ce qu’ils coïncident avec ce point.
Pour plus d’informations sur les méthodes de la classe Mouse, consultez l’entrée Classe Mouse dans
le Chapitre 12, Dictionnaire ActionScript, page 215.
Obtention de la position de la souris
Vous pouvez utiliser les propriétés _xmouse et _ymouse pour déterminer la position du pointeur
de la souris (curseur) dans un fichier SWF. Chaque scénario possède une propriété _xmouse et
_ymouse qui renvoie l’emplacement de la souris dans son système de coordonnées. La position est
toujours donnée par rapport au point d’alignement. Dans le scénario principal (_level0), le
point d’alignement se trouve dans le coin supérieur gauche.
Les propriétés _xmouse et _ymouse dans le scénario principal et dans le scénario d’un clip
Les procédures suivantes représentent deux manières d’obtenir la position de la souris.
Pour obtenir la position actuelle de la souris dans le scénario principal :
1 Créez deux champs de texte dynamiques et nommez-les x_pos et y_pos.
2 Sélectionnez Fenêtre > Panneaux de développement > Actions pour ouvrir le panneau Actions
si ce dernier n’est pas déjà visible.
3 Pour renvoyer la position de la souris dans le scénario principal, ajoutez le code suivant à une
image du fichier SWF _level0 :
x_pos = _root._xmouse;
y_pos = _root._ymouse;
Les variables x_pos et y_pos sont utilisées en tant que conteneurs pour stocker les valeurs des
positions de la souris. Vous pouvez utiliser ces variables dans n’importe quel script de votre
document. Dans le gestionnaire onClipEvent() suivant, les valeurs de x_pos et y_pos sont mises
à jour à chaque fois que l’utilisateur déplace la souris.
Création d’interactivité et d’effets visuels
101
onClipEvent(mouseMove) {
x_pos = _root._xmouse;
y_pos = _root._ymouse;
}
Pour obtenir la position actuelle de la souris dans un clip :
1 Créez un clip.
2 Sélectionnez l’occurrence de clip sur la scène. Utilisez l’inspecteur des propriétés pour le
nommer monClip.
3 Sélectionnez Fenêtre > Panneaux de développement > Actions pour ouvrir le panneau Actions
si ce dernier n’est pas déjà visible.
4 Utilisez le nom de l’occurrence de clip pour renvoyer la position de la souris dans le scénario
principal.
Par exemple, vous pouvez placer l’instruction suivante dans tout scénario du fichier SWF
_level0 pour renvoyer la position _ymouse dans l’occurrence monClip :
x_pos = _root.monClip._xmouse
y_pos = _root.monClip._ymouse
Le code renvoie les positions _xpos et _ypos de la souris par rapport au point d’alignement.
5 Sélectionnez Contrôle > Tester l’animation pour tester l’animation.
Vous pouvez également déterminer la position de la souris dans un clip en utilisant les propriétés
et _ymouse dans un événement de clip, comme illustré dans le code suivant :
_xmouse
onClipEvent(enterFrame){
xmousePosition = this._xmouse;
ymousePosition = this._ymouse;
}
Pour plus d’informations sur les propriétés _xmouse et _ymouse, consultez MovieClip._xmouse,
page 613 et MovieClip._ymouse, page 614.
Capture des pressions sur les touches
Vous pouvez utiliser les méthodes de la classe intégrée Key pour détecter la dernière touche sur
laquelle l’utilisateur a appuyé. La classe Key ne requiert aucune fonction constructeur ; appelez
simplement ses méthodes sur la classe même, comme illustré dans l’exemple suivant :
Key.getCode();
Vous pouvez obtenir des codes virtuels ou des valeurs ASCII (American Standard Code for
Information Interchange) des pressions sur les touches :
• Pour obtenir le code réel de la dernière touche enfoncée par l’utilisateur, utilisez la méthode
getCode().
• Pour obtenir la valeur ASCII de la dernière touche enfoncée par l’utilisateur, utilisez la
méthode getAscii().
Un code est affecté à chaque touche physique du clavier. Ainsi, la touche Flèche gauche est
associée au code virtuel 37. L’utilisation d’un code vous permet de vous assurer que les
commandes de votre fichier SWF sont les mêmes sur chaque clavier, quelle que soit la langue ou
la plate-forme utilisée.
102
Chapitre 5 : Création d’interactivité avec ActionScript
Des valeurs ASCII sont affectées aux 127 premiers caractères de chaque jeu de caractères. Les
valeurs ASCII fournissent des informations sur un caractère affiché à l’écran. Par exemple, la lettre
« A » et la lettre « a » ont des valeurs ASCII différentes.
Pour décider des touches que vous allez utiliser et déterminer leurs codes, utilisez l’une des
approches suivantes :
• La liste des codes de touches est publiée dans Annexe C, Touches du clavier et valeurs de code
•
•
correspondantes, page 901.
Utilisez une constante de classe Key. (Dans la boîte à outils Actions, cliquez sur la catégorie
Classes intégrées, sur Animation, sur Touche et sur Constantes.)
Affectez le gestionnaire onClipEvent() suivant à un clip, puis choisissez Contrôle > Tester
l’animation et appuyez sur la touche souhaitée.
onClipEvent(keyDown) {
trace(Key.getCode());
}
Le code de la touche s’affiche dans le panneau de sortie.
Les méthodes de classe Key sont fréquemment placées dans un gestionnaire d’événement. Dans
l’exemple suivant, l’utilisateur déplace la voiture à l’aide des touches de direction. La méthode
Key.isDown() indique si la touche enfoncée est la flèche orientée vers la droite, la gauche, le haut
ou le bas. Le gestionnaire d’événement, onEnterFrame, détermine la valeur de
Key.isDown(codeDeTouche) à partir des instructions if. En fonction de la valeur, il indique à
Flash Player de mettre à jour la position de la voiture et d’afficher la direction.
La saisie avec les touches du clavier entraîne le déplacement de la voiture.
Création d’interactivité et d’effets visuels
103
La procédure suivante indique comment capturer les pressions sur les touches pour déplacer un
clip vers le haut, le bas, à gauche ou à droite de la scène, en fonction de la touche fléchée utilisée
(haut, bas, gauche ou droite). Le clip est confiné dans une zone arbitraire d’une largeur de
400 pixels et d’une hauteur de 300 pixels. Par ailleurs, un champ de texte indique le nom de la
touche enfoncée.
Pour créer un clip activé via le clavier :
1 Sur la scène, créez un clip qui se déplacera en réponse aux touches fléchées du clavier.
Dans cet exemple, le nom de l’occurrence de clip est voiture.
2 Sur la scène, créez un champ de texte dynamique qui sera mis à jour en fonction de la direction
de la voiture. Utilisez l’inspecteur des propriétés pour lui donner le nom d’occurrence
display_txt.
Remarque : Ne confondez pas le nom des variables avec celui des occurrences. Pour plus
d’informations, consultez A propos des noms d’occurrence et de variable de champ de texte,
page 142.
3 Sélectionnez l’image 1 dans le scénario et, le cas échéant, choisissez Fenêtre > Panneaux de
développement > Actions pour ouvrir le panneau Actions.
4 Pour déterminer la distance parcourue par la voiture à l’écran après chaque pression sur une
touche, définissez une variable distance et fixez sa valeur initiale à 10.
var distance = 10;
5 Pour créer le gestionnaire d’événement du clip voiture qui vérifie quelle touche de direction
(gauche, droite, bas ou haut) est enfoncée, ajoutez le code suivant au panneau Actions :
voiture.onEnterFrame = function() {
}
6 Ajoutez une instruction with au corps du gestionnaire onEnterFrame et spécifiez voiture
comme objet de l’instruction with.
Le code devrait avoir cette forme :
var distance = 10;
voiture.onEnterFrame = function() {
with (voiture) {
}
}
7 Pour vérifier si la touche de direction vers la droite est enfoncée et déplacer le clip voiture en
conséquence, ajoutez du code au corps de l’instruction with. Le code devrait avoir cette forme :
distance = 10;
voiture.onEnterFrame = function() {
with (voiture) {
if (Key.isDown(Key.RIGHT)) {
_x += distance;
if (_x >= 400) {
_x = 400;
}
_root.display_txt.text = "Droite";
}
}
}
104
Chapitre 5 : Création d’interactivité avec ActionScript
Si la touche fléchée vers la droite est enfoncée, la propriété _x de la voiture est augmentée de la
valeur spécifiée dans la variable distance. L’instruction if suivante teste si la valeur de la
propriété _x du clip est supérieure ou égale à 400 (if(_x >=400)) ; si tel est le cas, sa position
est fixée à 400. De plus, le mot Droite doit apparaître dans le fichier SWF.
8 Adaptez ce code pour vérifier si les autres touches de direction (gauche, haut ou bas) ont été
enfoncées. Le code devrait avoir cette forme :
var distance = 10;
voiture.onEnterFrame = function() {
with (voiture) {
if (Key.isDown(Key.RIGHT)) {
_x += distance;
if (_x >= 400) {
_x = 400;
}
_root.display_txt.text = "Droite";
} else if (Key.isDown(Key.LEFT)) {
_x -= distance;
if (_x < 0) {
_x = 0;
}
_root.display_txt.text = "Gauche";
} else if (Key.isDown(Key.UP)) {
_y -= distance;
if (_y < 0) {
_y = 0 ;
}
_root.display_txt.text = "Haut";
} else if (Key.isDown(Key.DOWN)) {
_y += distance;
if (_y > 300) {
_y = 300;
}
_root.display_txt.text = "Bas";
}
}
}
9 Choisissez Contrôle > Tester l’animation pour tester le fichier.
Pour plus d’informations sur les méthodes de la classe Key, consultez l’entrée Classe Key dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Création d’interactivité et d’effets visuels
105
Définition des valeurs des couleurs
Vous pouvez utiliser les méthodes de la classe Color intégrée pour définir la couleur d’un clip. La
méthode setRGB() affecte des valeurs RVB (rouge, vert, bleu) hexadécimales au clip. L’exemple
suivant utilise setRGB() pour changer la couleur d’un objet en réponse aux actions de
l’utilisateur.
L’action de bouton crée un objet Color et change la couleur de la voiture en réponse aux actions de
l’utilisateur.
Pour définir la valeur de couleur d’un clip :
1 Sélectionnez un clip sur la scène.
2 Dans l’inspecteur des propriétés, entrez couleurDeVoiture comme nom d’occurrence.
3 Créez un bouton nommé puce de couleur, placez quatre occurrences de ce bouton sur la scène
et nommez-les rouge, vert, bleu et noir.
4 Sélectionnez l’image 1 dans le scénario principal, puis choisissez Fenêtre > Panneaux de
développement > Actions.
5 Pour créer un objet Color qui cible le clip couleurDeVoiture, ajoutez le code suivant au
panneau Actions :
maCouleur = new Color(_root.couleurDeVoiture);
6 Pour que le bouton bleu colore en bleu le clip couleurDeVoiture, ajoutez le code suivant au
panneau Actions :
_root.bleu.onRelease = function(){
maCouleur.setRGB(0x0000ff)
}
La valeur hexadécimale 0x0000ff représente le bleu. Le tableau suivant présente les autres
couleurs que vous pouvez utiliser et leur valeur hexadécimale :
106
Chapitre 5 : Création d’interactivité avec ActionScript
7 Répétez l’étape 6 pour les autres boutons (rouge, vert et noir) pour changer la couleur du clip à
la couleur correspondante. Le code doit maintenant ressembler à ce qui suit :
maCouleur = new Color(_root.couleurDeVoiture)
_root.bleu.onRelease = function(){
maCouleur.setRGB(0x0000ff)
}
_root.rouge.onRelease = function(){
maCouleur.setRGB(0xff0000)
}
_root.vert.onRelease = function(){
maCouleur.setRGB(0x00ff00)
}
_root.noir.onRelease = function(){
maCouleur.setRGB(0x000000)
}
8 Sélectionnez Contrôle > Tester l’animation pour changer la couleur du clip.
Pour plus d’informations sur les méthodes de la classe Color, consultez l’entrée Classe Color dans
le Chapitre 12, Dictionnaire ActionScript, page 215.
Création de commandes audio
La classe Sound intégrée permet de contrôler les sons d’un fichier SWF. Pour utiliser les méthodes
de la classe Sound, vous devez d’abord créer un objet Sound. Faites ensuite appel à la méthode
attachSound() pour insérer un son de la bibliothèque dans un fichier SWF pendant sa lecture.
Une chanson est lue lorsque l’utilisateur relâche le bouton de lecture.
Création d’interactivité et d’effets visuels
107
La méthode setVolume() de la classe Sound contrôle le volume et la méthode setPan() règle la
balance gauche et droite d’un son.
La méthode setVolume() est appelée lorsque l’utilisateur fait glisser le potentiomètre de volume.
Les procédures suivantes expliquent comment créer des contrôles audio semblables à ceux qui
sont présentés ci-dessus.
Pour associer un son à un scénario :
1 Sélectionnez Fichier > Importer pour importer un son.
2 Sélectionnez le son dans la bibliothèque, puis cliquez dessus avec le bouton droit de la souris
(Windows) ou en appuyant sur la touche Contrôle (Macintosh), et choisissez Liaison.
3 Activez les options Exporter pour ActionScript et Exporter dans la première image, puis affectez
au son l’identifiant au_clair_de_la_lune.
4 Ajoutez un bouton sur la scène et appelez-le boutonDeLecture.
5 Ajoutez un bouton sur la scène et appelez-le boutonDarrêt.
6 Ajoutez un clip sur la scène et appelez-le hautParleur.
7 Sélectionnez l’image 1 dans le scénario principal, puis choisissez Fenêtre > Panneaux de
développement > Actions. Ajoutez le code suivant au panneau Actions
hautParleur.stop();
chanson = new Sound();
chanson.onSoundComplete = function() {
hautParleur.stop();
};
chanson.attachSound("au_clair_de_la_lune");
boutonDeLecture.onRelease = function() {
chanson.start();
hautParleur.play();
108
Chapitre 5 : Création d’interactivité avec ActionScript
};
boutonDarrêt.onRelease = function () {
chanson.stop();
hautParleur.stop();
}
Ce code commence par arrêter le clip du haut-parleur. Il crée ensuite un objet Sound
(chanson) et lui associe le son dont l’identifiant de liaison correspond à
au_clair_de_la_lune. Il définit ensuite un gestionnaire onSoundComplete pour l’objet
chanson, qui arrête le clip haut-parleur une fois que le son est terminé. Enfin, les
gestionnaires onRelease associés aux objets playButton et stopButton démarrent et arrêtent
le son à l’aide des méthodes Sound.start() et Sound.stop(), et lisent et arrêtent le clip
haut-parleur.
8 Sélectionnez Contrôle > Tester l’animation pour entendre le son.
Pour créer une commande de volume réglable :
1 Faites glisser un bouton sur la scène.
2 Sélectionnez le bouton et choisissez Modification > Convertir en symbole. N’oubliez pas de
sélectionner le comportement du clip.
Cela crée un clip avec le bouton sur sa première image.
3 Sélectionnez le clip et choisissez Edition > Modifier la sélection.
4 Sélectionnez le bouton et choisissez Fenêtre > Panneaux de développement > Actions.
5 Entrez les actions suivantes :
on(press) {
startDrag(this, false, gauche, haut, droite, bas);
}
on (release) {
stopDrag();
}
Les paramètres de startDrag(), gauche, haut, droite et bas, sont des variables définies dans
une action de clip.
6 Choisissez Edition > Modifier le document pour revenir au scénario principal.
7 Sélectionnez le clip sur la scène.
8 Entrez les actions suivantes :
onClipEvent(load){
top = _y;
bottom = _y;
left = _x;
right = _x+100;
_x += 100;
}
onClipEvent (enterFrame) {
_parent.song.setVolume(_x-left);
}
9 Sélectionnez Contrôle > Tester l’animation pour utiliser la commande de volume.
Création d’interactivité et d’effets visuels
109
Pour créer une commande de balance réglable :
1 Faites glisser un bouton sur la scène.
2 Sélectionnez le bouton et choisissez Insertion > Convertir en symbole. Sélectionnez le clip
adéquat.
3 Sélectionnez le clip et choisissez Edition > Modifier le symbole.
4 Sélectionnez le bouton et choisissez Fenêtre > Panneaux de développement > Actions.
5 Entrez les actions suivantes :
on(press) {
startDrag ("", false, left, top, right, bottom);
dragging = true;
}
on (release, releaseOutside) {
stopDrag ();
dragging = false;
}
Les paramètres de startDrag(), gauche, haut, droite et bas, sont des variables définies dans
une action de clip.
6 Choisissez Edition > Modifier le document pour revenir au scénario principal.
7 Sélectionnez le clip sur la scène.
8 Entrez les actions suivantes :
onClipEvent(load) {
top=_y;
bottom=_y;
left=_x-50;
right=_x+50;
center=_x;
}
onClipEvent(enterFrame){
if (dragging==true){
_parent.setPan((_x-center)*2);
}
}
9 Sélectionnez Contrôle > Tester l’animation pour utiliser le curseur de balance.
Pour plus d’informations sur les méthodes de la classe Sound, consultez l’entrée Classe Sound dans
le Chapitre 12, Dictionnaire ActionScript, page 215.
Détection des collisions
La méthode hitTest() de la classe MovieClip détecte les collisions dans un fichier SWF. Elle
vérifie si un objet est entré en collision avec un clip et renvoie une valeur booléenne (true ou
false).
Il existe deux situations où il peut être utile de savoir si une collision s’est produite : pour tester si
l’utilisateur a atteint une zone statique précise de la scène, et pour déterminer si un clip en a
atteint un autre. La méthode hitTest() permet de déterminer ces résultats.
110
Chapitre 5 : Création d’interactivité avec ActionScript
Vous pouvez utiliser les paramètres de hitTest() pour définir les coordonnées x et y d’une zone
réactive sur la scène ou utiliser le chemin cible d’un autre clip comme zone réactive. Lorsque vous
définissez x et y, hitTest() renvoie la valeur true si le point identifié par (x,y) n’est pas
transparent. Lorsqu’une cible est transmise à hitTest(), les cadres de délimitation des deux clips
sont comparés. S’ils se chevauchent, hitTest() renvoie la valeur true. S’ils ne se croisent pas,
hitTest() renvoie la valeur false.
« True » apparaît dans le champ de texte lorsque le pointeur de la souris se trouve au-dessus de la
carrosserie de la voiture.
Vous pouvez également utiliser hitTest() pour tester une collision entre deux clips.
« True » apparaît dans le champ de texte lorsqu’un clip en touche un autre.
Les procédures suivantes indiquent comment détecter les collisions, en utilisant une voiture
comme exemple.
Création d’interactivité et d’effets visuels
111
Pour détecter la collision entre un clip et un point de la scène :
1 Créez un clip sur la scène et entrez champ comme nom d’occurrence dans l’inspecteur des
2
3
4
5
propriétés.
Créez un champ de texte dynamique sur la scène et entrez état comme nom d’occurrence dans
l’inspecteur des propriétés.
Sélectionnez, dans le scénario, la première image du calque 1.
Sélectionnez Fenêtre > Panneaux de développement > Actions pour ouvrir le panneau Actions
si ce dernier n’est pas déjà visible.
Entrez le code suivant dans le panneau Actions :
box.onEnterFrame = function () {
état.text = this.hitTest(_xmouse, _ymouse, true);
}
6 Choisissez Contrôle > Tester l’animation et passez la souris sur le clip pour tester la collision.
La valeur true est affichée lorsque la souris se trouve au-dessus d’un pixel non transparent.
Pour détecter la collision entre deux clips :
1 Faites glisser deux clips jusqu’à la scène et affectez-leur les noms d’occurrence voiture et zone.
2 Créez un champ de texte dynamique sur la scène et entrez état comme nom d’occurrence dans
l’inspecteur des propriétés.
3 Sélectionnez, dans le scénario, la première image du calque 1.
4 Sélectionnez Fenêtre > Panneaux de développement > Actions pour ouvrir le panneau Actions
si ce dernier n’est pas déjà visible.
5 Entrez le code suivant dans le panneau Actions :
zone.onEnterFrame = function () {
état.text=this.hitTest(voiture);
}
voiture.onPress = function (){
this.startDrag(false);
updateAfterEvent();
}
voiture.onRelease = function () {
this.stopDrag();
}
6 Choisissez Contrôle > Tester l’animation et faites glisser le clip pour tester la collision.
Lorsque le cadre de délimitation de la voiture touche celui de la zone, l’état devient true.
Pour plus d’informations, consultez MovieClip.hitTest() dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
112
Chapitre 5 : Création d’interactivité avec ActionScript
Création d’un outil de dessin de ligne simple
Vous pouvez utiliser les méthodes de la classe MovieClip pour dessiner des formes et des
remplissages sur la scène en cours de lecture. Vous pouvez ainsi créer des outils de dessin pour les
utilisateurs et tracer des formes dans le fichier SWF en réponse à des événements. Les méthodes
de dessin sont beginFill(), beginGradientFill(), clear(), curveTo(), endFill(),
lineTo(), lineStyle() et moveTo(). Vous pouvez appliquer ces méthodes à toute occurrence de
clip (par exemple, monClip.lineTo()) ou à un niveau (_root.curveTo()).
Les méthodes lineTo() et curveTo() vous permettent respectivement de dessiner des lignes et
des courbes. La méthode lineStyle() permet de spécifier une couleur et une épaisseur de ligne
et un paramètre alpha pour une ligne ou une courbe. La méthode de dessin moveTo() place la
position de dessin actuelle aux coordonnées x et y de scène spécifiées.
Les méthodes beginFill() et beginGradientFill() remplissent respectivement un chemin
fermé avec une couleur de remplissage unie ou dégradée, tandis que endFill() applique le
remplissage spécifié dans le dernier appel à beginFill() ou beginGradientFill(). La méthode
clear() efface ce qui a été dessiné dans l’objet clip spécifié.
Pour plus d’informations, consultez MovieClip.beginFill(), page 551,
MovieClip.beginGradientFill(), page 551, MovieClip.clear(), page 555,
MovieClip.curveTo(), page 558, MovieClip.endFill(), page 561, MovieClip.lineTo,
page 575, MovieClip.lineStyle(), page 574 et MovieClip.moveTo, page 582.
Pour créer un outil de dessin de ligne simple :
1 Dans un nouveau document, créez un bouton sur la scène et entrez clear_btn comme nom
d’occurrence dans l’inspecteur des propriétés.
2 Sélectionnez l’image 1 dans le scénario et, le cas échéant, choisissez Fenêtre > Panneaux de
développement > Actions pour ouvrir le panneau Actions.
3 Dans le panneau Actions, entrez le code suivant :
_root.onMouseDown = function() {
_root.lineStyle(5, 0xFF0000, 100);
_root.moveTo(_root._xmouse, _root._ymouse);
isDrawing = true;
};
_root.onMouseMove = function() {
if (isDrawing == true) {
_root.lineTo(_root._xmouse, _root._ymouse);
updateAfterEvent();
}
};
_root.onMouseUp = function() {
isDrawing = false;
};
clear_btn.onRelease = function() {
_root.clear();
};
4 Sélectionnez Contrôle > Tester l’animation pour tester l’animation. Cliquez et faites glisser la
souris pour dessiner une ligne sur la scène. Cliquez sur le bouton pour effacer ce que vous avez
dessiné.
Création d’interactivité et d’effets visuels
113
Structure d’un exemple de script
Lorsqu’un utilisateur fait glisser la coccinelle vers la prise électrique dans le fichier d’exemple
zapper.swf (disponible dans le guide Utilisation de Flash de l’aide), la coccinelle tombe et la prise
tremble. Le scénario principal ne comprend qu’une image et contient trois objets : la coccinelle, la
prise et un bouton de réinitialisation. Chacun de ces objets est une occurrence de clip.
Le fichier SWF contient un script associé à l’occurrence bug, comme illustré dans le panneau
Actions suivant :
Action
Gestionnaire d’événement
Evénement
Variable
Instruction conditionnelle if
Panneau Actions et script associé à l’occurrence bug
Le nom de l’occurrence de coccinelle est bug et le nom de l’occurrence de prise est zapper. Dans
le script, la référence à la coccinelle est this, car le script est associé à la coccinelle et le mot
réservé this désigne l’objet qui le contient.
114
Chapitre 5 : Création d’interactivité avec ActionScript
Il existe deux gestionnaires onClipEvent() avec deux événements différents : load et
enterFrame. Les actions contenues dans l’instruction onClipEvent(load) sont exécutées une
seule fois, au chargement du fichier SWF. Les actions contenues dans l’instruction
onClipEvent(enterFrame) sont exécutées à chaque fois que la tête de lecture entre dans une
image. Même dans un fichier SWF composé d’une image unique, la tête de lecture entre plusieurs
fois dans cette image et le script est exécuté à plusieurs reprises. Les actions suivantes ont lieu dans
chaque gestionnaire onClipEvent() :
onClipEvent(load) Deux variables, initx et inity, sont définies de manière à stocker les
positions x et y initiales de l’occurrence de clip bug. Une fonction est définie et affectée à
l’événement onRelease de l’occurrence Reset. Cette fonction est appelée à chaque clic de la
souris sur le bouton de réinitialisation. La fonction replace la coccinelle en position de départ sur
la scène, réinitialise ses valeurs alpha et de rotation et redéfinit la variable zapped sur la valeur
false.
Une instruction conditionnelle if utilise la méthode hitTest pour
vérifier si l’occurrence de la coccinelle touche l’occurrence de la prise (_root.zapper). Cette
évaluation peut avoir deux types de résultats, true ou false :
onClipEvent(enterFrame)
onClipEvent(load){
initx = _x;
inity = _y;
_root.Reset.onRelease = function() {
zapped = false;
_x = initx;
_y = inity;
_alpha = 100
_rotation = 0;
};
}
Si la méthode hitTest() renvoie la valeur true, la méthode stopDrag() est appelée, la variable
zapper est définie sur la valeur true, les propriétés alpha et rotation sont modifiées et l’exécution
de l’occurrence zapped est lancée.
Si la méthode hitTest() renvoie la valeur false, le code entre {} qui suit immédiatement
l’instruction if n’est pas exécuté.
Deux gestionnaires on() sont associés à l’occurrence bug avec deux événements différents : press
et release. Les actions de l’instruction on(press) sont exécutées une fois le bouton de la souris
appuyé au-dessus de l’occurrence bug. Les actions de l’instruction on(release) sont exécutées
après le relâchement du bouton de la souris au-dessus de l’occurrence bug. Les actions suivantes se
déroulent à l’intérieur de chaque gestionnaire onClipEvent() :
on(press) Une action startDrag() rend la coccinelle déplaçable. Le script étant associé à
l’occurrence bug, le mot-clé this indique que c’est l’occurrence bug qui peut être déplacée :
on(press) {
this.startDrag();
}
on(release)
Une action stopDrag() arrête l’action de déplacement :
on (release) {
stopDrag();
}
Pour lire le fichier SWF, consultez le Guide de référence ActionScript, dans l’aide.
Structure d’un exemple de script
115
116
Chapitre 5 : Création d’interactivité avec ActionScript
Cette section présente le modèle d’objet d’exécution Macromedia Flash ainsi que ses
fonctionnalités, puis met l’accent sur l’utilisation des clips et du texte. Elle décrit également la
manière de créer vos propres classes et interfaces à l’aide d’ActionScript 2.0.
Chapitre 6 : Utilisation des classes intégrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Chapitre 7 : Utilisation des clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Chapitre 8 : Utilisation du texte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Chapitre 9 : Création de classes avec ActionScript 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
PARTIE III
PARTIE III
Utilisation des objets et des classes
CHAPITRE 6
Utilisation des classes intégrées
En plus des principaux éléments de langage, constructions (boucles for et while, par exemple) et
types de données (nombres, chaînes et tableaux) ActionScript décrits précédemment (consultez
Notions de base du langage ActionScript, page 27), ActionScript fournit également plusieurs classes
intégrées ou types de données complexes. Ces classes vous offrent de nombreuses options et
fonctionnalités de scripts.
Certaines de ces classes reposent sur la spécification ECMAScript et sont appelées classes
ActionScript de base. Elles comprennent les classes Array, Boolean, Date et Math. Pour plus
d’informations, consultez Classes de base, page 121.
Les autres classes intégrées ActionScript sont spécifiques à Macromedia Flash et au modèle d’objet
Flash Player. La distinction entre les classes ActionScript de base et les classes spécifiques à Flash
est similaire à celle qui existe entre les classes JavaScript de base et côté client. Tout comme les
classes JavaScript côté client permettent de contrôler l’environnement du client (le navigateur web
et le contenu des pages web), les classes spécifiques à Flash permettent de contrôler l’apparence et
le comportement d’une application Flash à l’exécution.
Ce chapitre présente les classes intégrées ActionScript, passe en revue les tâches qu’elles
permettent d’effectuer et propose des exemples de code. Pour un aperçu de ces classes, consultez
Aperçu des classes intégrées, page 120. Pour un aperçu de l’utilisation des classes et objets en
programmation orientée objet, consultez A propos des classes et des occurrences, page 119.
A propos des classes et des occurrences
En programmation orientée objet, une classe définit une catégorie d’objet. Une classe décrit les
propriétés (données) et le comportement (méthodes) d’un objet, comme un calque d’architecte
décrit les propriétés d’un immeuble. Pour utiliser les propriétés et méthodes définies par une
classe, vous devez tout d’abord créer une occurrence de cette classe. La relation entre une
occurrence et sa classe est similaire à la relation entre une maison et le calque d’architecte
correspondant.
119
Création d’un nouvel objet
Pour créer une occurrence de classe ActionScript, utilisez l’opérateur new pour appeler la fonction
constructeur de la classe. La fonction constructeur porte toujours le même nom que la classe dont
elle renvoie une occurrence, que vous attribuez généralement à une variable.
Le code suivant crée par exemple un nouvel objet Sound :
var chanson:Sound= new Sound();
Dans certains cas, il n’est pas nécessaire de créer une occurrence de classe pour l’utiliser. Pour plus
d’informations, consultez A propos des membres de classe (membres statiques), page 120.
Accès aux propriétés des objets
Utilisez l’opérateur point (.) pour accéder à la valeur d’une propriété d’objet. Entrez le nom de
l’objet à gauche du point et le nom de la propriété à droite. Par exemple, dans l’instruction
suivante, monObjet représente l’objet et nom la propriété :
monObjet.nom
Le code suivant crée un objet TextField, puis définit sa propriété autoSize sur true.
var mon_txt = new TextField();
mon_txt.autoSize = true;
Vous pouvez également utiliser l’opérateur d’accès tableau ([]) pour accéder aux propriétés d’un
objet. Pour plus d’informations, consultez Opérateurs point et accès tableau, page 52.
Appel des méthodes d’un objet
Vous pouvez appeler une méthode d’objet en utilisant l’opérateur point (.) suivi de la méthode.
Par exemple, le code suivant crée un objet Sound et appelle sa méthode setVolume() :
monSon = new Sound(this);
monSon.setVolume(50);
A propos des membres de classe (membres statiques)
Certaines classes intégrées ActionScript possèdent des membres de classe (ou membres statiques).
Pour invoquer les membres de classe (propriétés et méthodes) ou y accéder, vous utilisez le nom
de la classe, et non l’occurrence de celle-ci. Il ne faut donc pas créer une occurrence de la classe
pour utiliser ces propriétés et méthodes.
Par exemple, toutes les propriétés de la classe Math sont statiques. Le code suivant appelle la
méthode max() de la classe Math pour déterminer lequel de deux nombres est le plus grand.
var plusGrandNombre = Math.max(10, 20);
Aperçu des classes intégrées
Cette section répertorie toutes les classes ActionScript et contient une brève description de chaque
classe et des références croisées menant aux autres sections pertinentes de la documentation.
120
Chapitre 6 : Utilisation des classes intégrées
Classes de base
Les classes ActionScript de base sont celles qui sont directement empruntées à ECMAScript. Ces
classes résident dans le sous-dossier Classes intégrées > de base de la boîte à outils Actions.
Classe
Description
Arguments
Tableau contenant les valeurs transmises comme paramètres pour toute
fonction. Consultez l’entrée Classe Arguments dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Array
La classe Array contient les méthodes et propriétés réservées aux objets
Array. Consultez l’entrée Classe Array dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
Boolean
La classe Boolean est une enveloppe pour les valeurs booléennes (true ou
false). Consultez l’entrée Classe Boolean dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
Button
La classe Button fournit des méthodes et des propriétés permettant d’utiliser
les objets Button. Consultez l’entrée Classe Button dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Date
La classe Date donne accès à des valeurs de date et d’heure relatives à
l’heure universelle (GMT) ou au système d’exploitation sur lequel Flash Player
s’exécute. Consultez l’entrée Classe Date dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
Error
La classe Error contient des informations sur les erreurs survenant dans vos
scripts. En règle générale, vous utilisez l’instruction throw pour générer une
condition d’erreur, que vous pouvez ensuite gérer à l’aide d’une instruction
try..catch..finally. Consultez try..catch..finally et les entrées Classe
Error dans le Chapitre 12, Dictionnaire ActionScript, page 215.
Function
La classe Function est la représentation sous forme de classe de toutes les
fonctions ActionScript, y compris les fonctions Action Script natives et celles
que vous définissez. Consultez l’entrée Classe Function dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Math
La classe Math vous permet d’accéder à des constantes et fonctions
mathématiques et de les manipuler. Toutes les propriétés et méthodes de la
classe Math sont statiques et doivent être appelées à l’aide de la syntaxe
Math.méthode(paramètre) ou Math.constante. Consultez l’entrée Classe Math
dans le Chapitre 12, Dictionnaire ActionScript, page 215.
Number
La classe Number est une enveloppe pour le type de données primitif de
nombre. Consultez l’entrée Classe Number dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
Object
La classe Object est à la racine de la hiérarchie de classes ActionScript.
Toutes les autres classes héritent de ses méthodes et propriétés. Consultez
l’entrée Classe Object dans le Chapitre 12, Dictionnaire ActionScript,
page 215.
String
La classe String est une enveloppe pour le type de données primitif de
chaîne, ce qui vous permet d’utiliser les méthodes et les propriétés de l’objet
String pour manipuler les types primitifs de valeurs de chaîne. Consultez
l’entrée Classe String dans le Chapitre 12, Dictionnaire ActionScript, page 215.
Aperçu des classes intégrées
121
Classes spécifiques à Flash Player
Les tableaux suivants répertorient les classes spécifiques à Flash Player et au modèle d’exécution
Flash. Ces classes sont généralement divisées en quatre catégories : les classes Movie (qui
autorisent un contrôle général des fichiers SWF et de Flash Player), les classes Media (pour
l’utilisation de son et de vidéo), les classes Client-serveur (pour l’utilisation de XML et d’autres
sources de données externes) et les classes Authoring (qui permettent de contrôler
l’environnement de programmation Flash).
Remarque : Cette catégorisation détermine l’emplacement des classes dans la boîte à outils
Actions ; elle n’a aucune incidence sur leur utilisation.
Classes Movie
Les classes Movie permettent de contrôler la plupart des éléments visuels dans un fichier SWF, y
compris les clips, les champs de texte et les boutons. Elles résident dans le sous-dossier Classes
intégrées > Animation de la boîte à outils Actions.
122
Classe
Description
Accessibility
La classe Accessibility gère la communication entre les fichiers SWF et les
applications de lecture d’écran. Conjointement avec la propriété globale
_accProps, les méthodes de cette classe permettent de contrôler les
propriétés accessibles des clips, des boutons et des champs de texte lors de
l’exécution. Consultez _accProps et Classe Accessibility dans
le Chapitre 12, Dictionnaire ActionScript, page 215.
Button
Tout bouton d’un fichier SWF est une occurrence de la classe Button. La
classe Button fournit des méthodes, propriétés et gestionnaires
d’événements pour l’utilisation des boutons. Consultez l’entrée Classe Button
dans le Chapitre 12, Dictionnaire ActionScript, page 215.
Color
La classe Color vous permet d’extraire et de définir les valeurs des couleurs
RVB des objets d’un clip. Pour plus d’informations, consultez l’entrée Classe
Color dans le Chapitre 12, Dictionnaire ActionScript, page 215. Vous trouverez
un exemple d’utilisation de la classe Color pour modifier les couleurs d’un clip
à la section Définition des valeurs des couleurs, page 106.
ContextMenu
La classe ContextMenu vous permet d’agir sur le contenu du menu
contextuel de Flash Player. Vous pouvez associer des objets ContextMenu
séparés à des objets MovieClip, Button ou TextField à l’aide de la propriété
menu de ces classes. Vous avez aussi tout loisir d’utiliser la classe
ContextMenuItem pour ajouter des éléments de menu personnalisés à un
objet ContextMenu. Consultez les entrées Classe ContextMenu et Classe
ContextMenuItem dans le Chapitre 12, Dictionnaire ActionScript, page 215.
ContextMenuItem
La classe ContextMenuItem vous permet de créer des éléments de menu
dans le menu contextuel de Flash Player. Pour ajouter les éléments de menu
que vous créez à l’aide de cette classe au menu contextuel de Flash Player,
vous utilisez la classe ContextMenu. Consultez les entrées Classe
ContextMenu et Classe ContextMenuItem dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
Chapitre 6 : Utilisation des classes intégrées
Classe
Description
Key
La classe Key propose des méthodes et propriétés permettant d’obtenir des
informations sur le clavier et les touches qui sont enfoncées. Pour plus
d’informations, consultez l’entrée Classe Key dans le Chapitre 12, Dictionnaire
ActionScript, page 215. Vous trouverez un exemple de capture des pressions
sur les touches en vue de créer un fichier SWF interactif à la section Capture
des pressions sur les touches, page 102.
LocalConnection
La classe LocalConnection permet à deux fichiers SWF qui s’exécutent sur
un même ordinateur de communiquer. Consultez l’entrée Classe
LocalConnection dans le Chapitre 12, Dictionnaire ActionScript, page 215.
Mouse
La classe Mouse vous permet de contrôler la souris dans un fichier SWF.
Vous pouvez l’utiliser pour masquer ou afficher le pointeur de la souris, par
exemple. Pour plus d’informations, consultez l’entrée Classe Mouse dans le
Chapitre 12, Dictionnaire ActionScript, page 215. Vous trouverez un exemple
d’utilisation de la classe Mouse à la section Création d’un pointeur de souris
personnalisé, page 100.
MovieClip
Chaque clip d’une animation Flash est une occurrence de la classe
MovieClip. Utilisez les méthodes et propriétés de cette classe pour contrôler
les objets de clip. Consultez le Chapitre 7, Utilisation des clips, page 127 et
l’entrée Classe MovieClip dans le Chapitre 12, Dictionnaire ActionScript,
page 215.
MovieClipLoader
La classe MovieClipLoader vous permet de suivre la progression du
téléchargement des fichiers SWF et JPEG à l’aide d’un mécanisme
d’écouteur d’événement. Consultez Préchargement des fichiers SWF et
JPEG, page 210 et l’entrée Classe MovieClipLoader dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
PrintJob
La classe PrintJob vous permet d’imprimer du contenu rendu
dynamiquement, ainsi que des documents de plusieurs pages. Consultez
l’entrée Classe PrintJob dans le Chapitre 12, Dictionnaire ActionScript,
page 215 et Utilisation de la classe PrintJob d’ActionScript, dans le guide
Utilisation de Flash de l’aide.
Selection
La classe Selection vous permet d’extraire et de définir le focus, les étendues
de sélection et les points d’insertion de champs de texte. Consultez l’entrée
Classe Selection dans le Chapitre 12, Dictionnaire ActionScript, page 215.
SharedObject
La classe SharedObject vous permet de stocker des données localement sur
l’ordinateur client. Consultez l’entrée Classe SharedObject dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Stage
La classe Stage fournit des informations sur les dimensions, l’alignement et le
mode d’échelle d’un fichier SWF, et signale les événements de
redimensionnement Stage. Consultez l’entrée Classe Stage dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
System
La classe System fournit des informations sur Flash Player et sur le système
sur lequel il s’exécute (la résolution d’affichage et la langue système en cours,
par exemple). Elle vous permet aussi d’afficher ou de masquer le panneau
Paramètres Flash Player et de modifier les paramètres de sécurité du fichier
SWF. Consultez l’entrée Classe System dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
Aperçu des classes intégrées
123
Classe
Description
TextField
La classe TextField vous permet de contrôler les champs dynamiques et de
saisie de texte. Consultez le Chapitre 8, Utilisation du texte, page 141 et
l’entrée Classe TextField dans le Chapitre 12, Dictionnaire ActionScript,
page 215.
TextField.StyleSheet La classe TextField.StyleSheet (qui fait partie de la classe TextField) vous
permet de créer et d’appliquer des styles de texte CSS à des textes au format
HTML ou XML. Consultez Formatage de texte avec les feuilles de style en
cascade, page 145 et l’entrée Classe TextField.StyleSheet dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
TextFormat
La classe TextFormat vous permet de définir le formatage des caractères et
des paragraphes dans les objets TextField. Consultez Utilisation de la classe
TextFormat, page 144 et l’entrée Classe TextFormat dans le
Chapitre 12, Dictionnaire ActionScript, page 215.
Media classes
Les classes Media permettent de contrôler le son et la vidéo lors de la lecture d’un fichier SWF,
ainsi que d’accéder au microphone et à la caméra de l’utilisateur, le cas échéant. Ces classes
résident dans le sous-dossier Classes intégrées > Support de la boîte à outils Actions.
124
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, page 215.
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 Server MX,
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, page 215.
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,
page 215. Pour plus d’informations sur la lecture de fichiers FLV sur Internet,
consultez Lecture dynamique des fichiers FLV externes, page 209.
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, page 215. Pour plus d’informations sur
la lecture de fichiers FLV sur Internet, consultez Lecture dynamique des
fichiers FLV externes, page 209.
Chapitre 6 : Utilisation des classes intégrées
Classe
Description
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, page 215. 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 107.
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,
page 215.
Classes Client-serveur
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 199 et A propos de l’autorisation de chargement de données inter-domaines, page 201.
Ces classes résident dans le sous-dossier Classes intégrées > Client/Serveur de la boîte à outils
Actions.
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 nomvaleur. Consultez Utilisation de la classe LoadVars, page 190 et l’entrée Classe
LoadVars dans le Chapitre 12, Dictionnaire ActionScript, page 215.
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 192 et l’entrée
Classe XML dans le Chapitre 12, Dictionnaire ActionScript, page 215.
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,
page 215.
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 195 et
l’entrée Classe XMLSocket dans le Chapitre 12, Dictionnaire ActionScript,
page 215.
Aperçu des classes intégrées
125
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.
126
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, page 215.
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, page 215.
Chapitre 6 : Utilisation des classes intégrées
CHAPITRE 7
Utilisation des clips
Les clips sont des fichiers SWF miniatures autonomes exécutés 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 le
guide 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);
127
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, page 215.
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 :
128
Chapitre 7 : Utilisation des clips
with (beignet.confiture){
_alpha = 20;
_xscale = 150;
_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 206.
Chargement et déchargement de fichiers SWF supplémentaires
129
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().
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 580.
130
Chapitre 7 : Utilisation des clips
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.
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 206,
page 468, MovieClip.loadMovie, page 577 et loadMovieNum(), page 469.
loadMovie(),
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 Propriétés de la classe MovieClip, page 546.
Modification de la position et de l’apparence d’un clip
131
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 734 ou MovieClip.startDrag(), page 604.
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 135.
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 555.
132
Chapitre 7 : Utilisation des clips
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
Un clip dupliqué est également supprimé si le clip parent est supprimé.
removeMovieClip().
Pour plus d’informations, consultez duplicateMovieClip(), page 411 et removeMovieClip(),
page 686.
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 138.
7 Si vous ne voulez pas que le clip 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.
Création de clips à l’exécution
133
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 550.
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 550 et
page 560.
MovieClip.duplicateMovieClip,
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.
134
Chapitre 7 : Utilisation des clips
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.duplicateMovieClip ou 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 567,
MovieClip.getInstanceAtDepth(), page 566, MovieClip.getDepth(), page 566 et
MovieClip.swapDepths(), page 606.
Gestion des profondeurs de clip
135
Définition de la prochaine profondeur maximale disponible
Pour déterminer quelle est la prochaine profondeur maximale disponible dans un clip, utilisez
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.
MovieClip.getNextHighestDepth().
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
comme illustré dans la section suivante (consultez Définition de
l’occurrence à une profondeur spécifique, page 136).
getNextHighestDepth(),
Définition de l’occurrence à une profondeur spécifique
Pour définir l’occurrence à une profondeur spécifique, utilisez
Cette méthode renvoie une référence à l’occurrence de
MovieClip se trouvant à la profondeur indiquée.
MovieClip.getInstanceAtDepth().
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 566.
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 566.
Permutation de profondeurs de clips
Pour permuter les profondeurs de deux clips sur un même scénario, utilisez
Pour plus d’informations, consultez MovieClip.swapDepths(),
page 606.
MovieClip.swapDepths().
136
Chapitre 7 : Utilisation des clips
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, page 215.
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.
Utilisation de clips comme masques
137
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 603.
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 89.
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 163.)
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.
138
Chapitre 7 : Utilisation des clips
Pour créer une sous-classe de clip :
1 Créez un nouveau répertoire nommé TestBalle.
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
class MoveRight extends 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
2
3
4
5
6
7
8
de fichiers et cliquez sur OK.
A l’aide de l’outil Ovale, dessinez un cercle sur la scène.
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.
Ouvrez le panneau Bibliothèque (Fenêtre > Bibliothèque) et sélectionnez le symbole Balle.
Sélectionnez Liaison dans le menu d’options du panneau Bibliothèque pour ouvrir la boîte de
dialogue Propriétés de liaison.
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.
Enregistrez le fichier sous Balle.fla dans le répertoire TestBalle (le répertoire contenant le fichier
MoveRight.as).
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 134), 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 138). 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.
Initialisation de propriétés de classe
139
// 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 souris
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});
140
Chapitre 7 : Utilisation des clips
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 142. 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 84.
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 144). 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 154). 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 156).
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 145.
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 156.
141
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 143.
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";
142
Chapitre 8 : Utilisation du texte
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 556 et
TextField.removeTextField(), page 797.
Création de champs de texte à l’exécution
143
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.
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 802 et
TextField.setNewTextFormat, page 801.
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 802.
6 Choisissez Contrôle > Tester l’animation pour tester l’animation.
144
Chapitre 8 : Utilisation du texte
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 = false
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, page 215.
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 823.
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.
Formatage de texte avec les feuilles de style en cascade
145
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 147.
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 147 et
Création de nouveaux styles avec ActionScript, page 148.
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 149, Exemple d’utilisation de
styles avec HTML, page 151 et Exemple d’utilisation de styles avec XML, page 153.
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.)
146
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.
Chapitre 8 : Utilisation du texte
Propriété CSS
Propriété ActionScript Utilisation et valeurs supportées
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.
Création d’un objet feuille de style
Les feuilles de style CSS sont représentées dans ActionScript par la classe
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.
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 147 et
Création de nouveaux styles avec ActionScript, page 148.
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).
Formatage de texte avec les feuilles de style en cascade
147
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.
9 Testez l’animation (Contrôle > Tester l’animation).
Les noms des deux styles devraient s’afficher dans le panneau de sortie :
body
titre
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 interdomaines, page 201.
Création de nouveaux styles avec ActionScript
Vous pouvez créer de nouveaux styles de texte avec ActionScript en utilisant la méthode
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.
setStyle()
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 147).
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'}
);
148
Chapitre 8 : Utilisation du texte
Application de styles à un objet TextField
Pour appliquer un objet feuille de style à un champ de texte, affectez cet objet à la propriété
de l’objet champ de texte.
styleSheet
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
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.
text
•
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
mot <emphasized>emphatique</emphasized>.</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 Class 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;
}
Formatage de texte avec les feuilles de style en cascade
149
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 154. 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;
}
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é :
Nom de style Comment le style est appliqué
150
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.
Chapitre 8 : Utilisation du texte
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;
}
.byline {
color: #666600;
font-style: italic;
font-weight: bold;
display: inline;
}
3
4
5
6
7
8
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.
Enregistrez le fichier sous html_styles.css.
Dans Flash, créez un fichier FLA.
A l’aide de l’outil Texte, créez un champ de texte d’environ 400 pixels de large et 300 pixels de
haut.
Ouvrez l’inspecteur des propriétés (Fenêtre > Propriétés) et sélectionnez le champ de texte.
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.
Sélectionnez la première image dans le calque 1 du scénario (Fenêtre > Scénario).
Formatage de texte avec les feuilles de style en cascade
151
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 187.
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.
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
}
152
Chapitre 8 : Utilisation du texte
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 151), 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',
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'
});
Formatage de texte avec les feuilles de style en cascade
153
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 159.
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 144.
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>";
154
Chapitre 8 : Utilisation du texte
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 145).
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 150.
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>
Utilisation de texte au format HTML
155
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 :
•
Seules les valeurs de couleur hexadécimales (#FFFFFF) sont prises en charge. Par
exemple, le code HTML suivant crée du texte rouge.
color
<font color="#FF0000">Texte rouge</font>
•
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 :
face
<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 783 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.
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 :
•
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.
src
Remarque : Flash ne supporte pas les fichiers JPEG tridimensionnels.
156
Chapitre 8 : Utilisation du texte
•
•
•
•
•
•
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 159.
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
■ Citrons
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 149.
Utilisation de texte au format HTML
157
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 145. 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 149.
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 821.
•
•
•
•
•
158
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 825.
leading Spécifie l’espace séparant les lignes (espace vertical). Correspond à
TextFormat.leading. Pour plus d’informations, consultez TextFormat.leading, page 826.
leftmargin Spécifie la marge gauche du paragraphe, en points. Correspond à
TextFormat.leftMargin. Pour plus d’informations, consultez TextFormat.leftMargin,
page 826.
rightmargin Spécifie la marge droite du paragraphe, en points. Correspond à
TextFormat.rightMargin. Pour plus d’informations, consultez TextFormat.rightMargin,
page 826.
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 827.
Chapitre 8 : Utilisation du texte
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 :
Nom
Age
Service
Thomas
32
IMD
Eluard
46
Ingénierie
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 156).
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 160.
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.
Utilisation de texte au format HTML
159
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 133).
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'>
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();
}
160
Chapitre 8 : Utilisation du texte
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 en appuyant sur la touche Contrôle (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.
■ 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.
■
Création de texte défilant
161
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;
}
162
Chapitre 8 : Utilisation du texte
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.
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).
Typage strict des données
var nomDutilisateur:String = "";
Les deux précédentes fonctions
Avertissements et messages d’erreur du compilateur
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.
163
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 169). 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 119.
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.
164
Chapitre 9 : Création de classes avec ActionScript 2.0
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 171.
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 176.
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 175.
Utilisation des classes : un exemple simple
165
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.
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.
166
Chapitre 9 : Création de classes avec ActionScript 2.0
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;
}
}
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 172.
Remarque : Si vous ne créez pas de fonction constructeur, une fonction constructeur vide est
automatiquement créée pendant la compilation.
Utilisation des classes : un exemple simple
167
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 182.
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.
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.
168
Chapitre 9 : Création de classes avec ActionScript 2.0
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 177).
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
}
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 177.
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 recommandé 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.
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.
Création et utilisation de classes
169
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
var
var
var
var
var
CompileTimeTest {
truc:String = "mon truc"; // OK
barre:Number = 5; // OK
bool:Boolean = true; // OK
nom:String = new String("Julie"); // OK
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";
}
}
170
Chapitre 9 : Création de classes avec ActionScript 2.0
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 173.
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, utilisez la syntaxe suivante :
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 172.)
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.
Création et utilisation de classes
171
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é
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 this.userName;
}
//constructeur :
function LoginClass(user:String) {
this.userName = user;
}
}
172
Chapitre 9 : Création de classes avec ActionScript 2.0
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.getnomDutilisateur();
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.
Membres d’occurrence et de classe
173
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.
174
Chapitre 9 : Création de classes avec ActionScript 2.0
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
Creating
Creating
Creating
Gadget
gadget
gadget
gadget
au démarrage : 0
# 0
# 1
# 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 174), 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.
Création et utilisation d’interfaces
175
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 169 et Utilisation de paquets,
page 179.
176
Chapitre 9 : Création de classes avec ActionScript 2.0
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 implements 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 178.) 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 179.
Compréhension du chemin de classe
177
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 178.
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.
178
Chapitre 9 : Création de classes avec ActionScript 2.0
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 ligne à 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 ligne à 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 177. 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.
Utilisation de paquets
179
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();
180
Chapitre 9 : Création de classes avec ActionScript 2.0
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 443.
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;
}
Méthodes get/set implicites
181
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.
182
Chapitre 9 : Création de classes avec ActionScript 2.0
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;
}
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.
Compilation et exportation des classes
183
184
Chapitre 9 : Création de classes avec ActionScript 2.0
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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Chapitre 11 : Utilisation de médias externes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
PARTIE IV
PARTIE IV
Utilisation des données et des médias externes
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 199.
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.
187
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.
• 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
est asynchrone : les résultats de l’action sont renvoyés à un moment
indéterminé.
XMLSocket.send())
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);
}
188
Chapitre 10 : Utilisation de données externes
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 192 et Utilisation de la classe
XMLSocket, page 195.
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 :
•
•
•
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.
getURL()
Lorsque vous utilisez loadVariables(), getURL() ou loadMovie(), vous pouvez spécifier
plusieurs paramètres :
•
•
•
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.
URL
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.
Echange de variables avec une source distante
189
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 471, getURL(), page 434,
loadMovie(), page 468 et l’entrée Classe LoadVars dans le Chapitre 12, Dictionnaire ActionScript,
page 215.
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
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.
sendAndLoad()
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.
190
Chapitre 10 : Utilisation de données externes
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;
}
};
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 dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
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>
Echange de variables avec une source distante
191
Utilisation de la classe XML
Les méthodes de la classe XML ActionScript (par exemple, appendChild(), removeNode() et
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.
insertBefore())
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.
• 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.
loginReplyXML
Document XML
Réponse
loginXML
Document XML
Requête SQL
Script côté serveur
username Jean Smith
password •••••••
Base de
données
Soumettre
Animation Flash
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 //) :
192
Chapitre 10 : Utilisation de données externes
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;
// 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.
Echange de variables avec une source distante
193
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.
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.
194
Chapitre 10 : Utilisation de données externes
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, page 215.
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.
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
Pour comprendre le script, vous pourrez vous aider des commentaires (indiqués par
les caractères //) :
monCodeXML.
// 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.
Echange de variables avec une source distante
195
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 dans le Chapitre 12, Dictionnaire
ActionScript, page 215.
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.
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) :
196
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.
Chapitre 10 : Utilisation de données externes
Commande
Arguments
Objectif
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.
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);
}
}
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.
Echange de messages avec Flash Player
197
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/go/flash_support_fr.
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.
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/go/flash_support_fr.
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.
198
Chapitre 10 : Utilisation de données externes
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 :
www.macromedia.com
www.macromedia.com
data.macromedia.com
data.macromedia.com
65.57.83.12
65.57.83.12
Le tableau suivant présente des exemples de domaines incompatibles :
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)
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 200. 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 201. 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 interdomaines, page 201.
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 202.
Fonctions de sécurité de Flash Player
199
A propos de l’autorisation d’accès aux données entre des fichiers SWF interdomaines
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");
}
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 199.
200
Chapitre 10 : Utilisation de données externes
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
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().
allowDomain
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.
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.
Fonctions de sécurité de Flash Player
201
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 199), 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.
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 ».
202
Chapitre 10 : Utilisation de données externes
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 201.
Fonctions de sécurité de Flash Player
203
204
Chapitre 10 : Utilisation de données externes
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.
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.
Réduire la taille des fichiers
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.
Certaines fonctions, telles que la lecture en
continu des fichiers FLV et MP3, ne sont utilisables qu’à l’exécution dans ActionScript.
Bénéficier des fonctions d’exécution seule
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 206.
205
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 208.
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 209.
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 210.
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");
206
Chapitre 11 : Utilisation de médias externes
Pour plus d’informations sur loadMovie(), loadMovieNum() et MovieClip.loadMovie,
consultez les entrées correspondantes dans le Chapitre 12, Dictionnaire ActionScript, page 215.
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é
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 130.
MovieClip._lockroot
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 199 et
dans le Chapitre 12, Dictionnaire ActionScript, page 215.
System.security.allowDomain()
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);
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.
Chargement des fichiers externes MP3
207
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, page 215.
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.
Pour obtenir une liste des balises ID3 prises en charge, consultez Sound.ID3, page 715.
208
Chapitre 11 : Utilisation de médias externes
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, page 215.)
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
2
3
4
5
(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.
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.
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.
Ouvrez le panneau Composants (Fenêtre > Panneaux de développement > Composants) et
faites glisser un composant TextArea sur la scène.
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.
Lecture dynamique des fichiers FLV externes
209
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");
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 210.
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 212.
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();
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é.
Créer un objet d’écoute et créer des gestionnaires d’événements
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.
210
Chapitre 11 : Utilisation de médias externes
// 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);
Préchargement de média externe
211
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, page 215.
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, page 215.
212
Chapitre 11 : Utilisation de médias externes
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Annexe A : Messages d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
Annexe B : Priorité et associativité des opérateurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
Annexe C : Touches du clavier et valeurs de code correspondantes . . . . . . . . . . . . . . . . . . . . . 901
Annexe D : Ecriture de scripts destinés à des versions antérieures de Flash Player . . . . . . . . . . 907
Annexe E : Programmation orientée objet avec ActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . 911
PARTIE V
PARTIE V
Référence
CHAPITRE 12
Dictionnaire ActionScript
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 217 ; 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.
215
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().
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.
216
Chapitre 12 : Dictionnaire ActionScript
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)
Contenu du dictionnaire
217
Opérateurs symboles Consultez l’entrée
^=
^= (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)
Le tableau suivant répertorie tous les éléments ActionScript qui ne sont pas des opérateurs
symboles.
Elément ActionScript Consultez l’entrée
218
#endinitclip
#endinitclip
#include
#include
#initclip
#initclip
__proto__
Object.__proto__
_accProps
_accProps
_alpha
MovieClip._alpha, Button._alpha, TextField._alpha
_currentframe
MovieClip._currentframe
_droptarget
MovieClip._droptarget
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
_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()
Contenu du dictionnaire
219
Elément ActionScript Consultez l’entrée
220
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
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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
class
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
Contenu du dictionnaire
221
Elément ActionScript Consultez l’entrée
222
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
else
else
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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()
getBounds
MovieClip.getBounds
Contenu du dictionnaire
223
Elément ActionScript Consultez l’entrée
224
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()
getTextExtent
TextFormat.getTextExtent()
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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
hasVideoEncoder
System.capabilities.hasVideoEncoder
Contenu du dictionnaire
225
Elément ActionScript Consultez l’entrée
226
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
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
join
Array.join()
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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
max
Math.max()
Contenu du dictionnaire
227
Elément ActionScript Consultez l’entrée
228
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()
nextScene
nextScene()
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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
onPress
Button.onPress, MovieClip.onPress
Contenu du dictionnaire
229
Elément ActionScript Consultez l’entrée
230
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
pow
Math.pow()
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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
screenDPI
System.capabilities.screenDPI
Contenu du dictionnaire
231
Elément ActionScript Consultez l’entrée
232
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()
setSelectColor
TextSnapshot.setSelectColor()
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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
splice
Array.splice()
Contenu du dictionnaire
233
Elément ActionScript Consultez l’entrée
234
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
TextFormat
Classe TextFormat
Chapitre 12 : Dictionnaire ActionScript
Elément ActionScript Consultez l’entrée
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
UTC
Date.UTC()
Contenu du dictionnaire
235
Elément ActionScript Consultez l’entrée
236
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
Chapitre 12 : Dictionnaire ActionScript
–– (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).
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
–– (décrémentation)
237
++ (incré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-incrémentation qui ajoute 1 à
l’expression. expression peut être une variable, l’élément d’un tableau ou la propriété d’un
objet. La forme de pré-incrémentation de l’opérateur (++expression) ajoute 1 à l’expression et
renvoie le résultat. La forme de post-incrémentation de l’opérateur (expression++) ajoute 1 à
l’expression et renvoie la valeur initiale de l’expression (la valeur avant l’addition).
La forme de pré-incrémentation de l’opérateur incrémente x à 2 (x + 1 = 2) et renvoie le résultat
comme y :
x = 1;
y = ++x
// y est égal à 2
La forme de post-incrémentation de l’opérateur incrémente x à 2 (x + 1 = 2) et renvoie la valeur
originale de x comme résultat y :
x = 1;
y = x++;
//y est égal à 1
Exemple
L’exemple suivant utilise ++ comme opérateur de post-incrémentation pour entraîner cinq boucles
de while.
i = 0;
while(i++ 5){<
trace("ceci est l’exécution " + i);
}
Cet exemple utilise ++ comme opérateur de pré-incrémentation.
var a = [];
var i = 0;
while (i < 10) {
a.push(++i);
}
trace(a.join());
Ce script affiche le résultat suivant dans le panneau de sortie :
1,2,3,4,5,6,7,8,9,10
238
Chapitre 12 : Dictionnaire ActionScript
L’exemple suivant utilise ++ comme opérateur de post-incrémentation.
var a = [];
var i = 0;
while (i < 10) {
a.push(i++);
}
trace(a.join());
Ce script affiche le résultat suivant dans le panneau de sortie :
0,1,2,3,4,5,6,7,8,9
! (NOT logique)
Disponibilité
Flash Player 4.
Usage
!expression
Paramètres
Aucun.
Renvoie
Une valeur booléenne.
Description
Opérateur (logique) : inverse la valeur booléenne d’une variable ou expression. Si expression est
une variable avec la valeur absolue ou convertie true, la valeur de !expression est false. Si
l’expression x && y est false, l’expression !(x && y) est true.
Les expressions suivantes illustrent le résultat de l’utilisation de l’opérateur ! :
!true
renvoie false
!false
renvoie true
Exemple
Dans l’exemple suivant, la variable heureux est définie sur false. La condition if évalue la
condition !heureux et, si la condition est true, l’action trace() envoie une chaîne au panneau
de sortie.
heureux = false;
if (!heureux) {
trace("le bonheur, c’est être heureux");
}
! (NOT logique)
239
!= (inégalité)
Disponibilité
Flash Player 5.
Usage
expression1 != expression2
Paramètres
Aucun.
Renvoie
Une valeur booléenne.
Description
Opérateur (inégalité) : teste l’opposé exact de l’opérateur ==. Si expression1 est égale à
expression2, le résultat est false. Tout comme pour l’opérateur ==, la définition du terme
égalité dépend des types de données comparés.
• Les nombres, les chaînes et les valeurs booléennes sont comparés par valeur.
• Les variables, les objets, les tableaux et les fonctions sont comparés par référence.
Exemple
L’exemple suivant illustre le résultat de l’opérateur != :
5 != 8
renvoie true
5 != 5
renvoie false
Cet exemple illustre l’utilisation de l’opérateur != dans une instruction if :
a = "David";
b = "Idiot"
if (a != b){
trace("David n’est pas idiot");
}
Consultez également
!== (inégalité stricte), == (égalité), === (égalité stricte)
240
Chapitre 12 : Dictionnaire ActionScript
!== (inégalité stricte)
Disponibilité
Flash Player 6.
Usage
expression1 !== expression2
Description
Opérateur : teste l’opposé exact de l’opérateur ===. L’opérateur d’inégalité stricte fonctionne de la
même façon que l’opérateur d’inégalité, à ceci près que les types de données ne sont pas convertis.
Si expression1 est égale à expression2, et leur type de données est égal, le résultat est false.
Tout comme pour l’opérateur ===, la définition du terme égalité dépend des types de données
comparés.
• Les nombres, les chaînes et les valeurs booléennes sont comparés par valeur.
• Les variables, les objets, les tableaux et les fonctions sont comparés par référence.
Exemple
Le code suivant affiche la valeur renvoyée par les opérations utilisant les opérateurs d’égalité,
d’égalité stricte et d’inégalité stricte.
s1 = new String("5");
s2 = new String("5");
s3 = new String("Bonjour");
n = new Number(5);
b = new Boolean(true);
s1
s1
s1
s1
==
==
==
==
s2; // true
s3; // false
n; // true
b; // false
s1
s1
s1
s1
===
===
===
===
s2; // true
s3; // false
n; // false
b; // false
s1
s1
s1
s1
!==
!==
!==
!==
s2; // false
s3; // true
n; // true
b; // true
Consultez également
!= (inégalité), == (égalité), === (égalité stricte)
!== (inégalité stricte)
241
% (modulo)
Disponibilité
Flash Player 4. Dans les fichiers Flash 4, l’opérateur % est développé dans le fichier SWF sous la
forme x - int(x/y) * y et risque de ne pas être aussi rapide ou précis dans les versions suivantes
de Flash Player.
Usage
expression1 % expression2
Paramètres
Aucun.
Renvoie
Rien.
Description
Opérateur (arithmétique) : calcule le reste de expression1 divisé par expression2. Si l’un des
paramètres de expression n’est pas un nombre, l’opérateur de modulo tente de les convertir en
nombre. expression peut être un nombre ou une chaîne convertie en valeur numérique.
Exemple
L’exemple suivant illustre l’emploi de l’opérateur modulo (%).
trace (12 % 5);
// renvoie 2
trace (4.3 % 2.1);
// renvoie approximativement 0.1
242
Chapitre 12 : Dictionnaire ActionScript
%= (affectation de modulo)
Disponibilité
Flash Player 4.
Usage
expression1 %= expression2
Paramètres
Aucun.
Renvoie
Rien.
Description
Opérateur (affectation composée arithmétique) : affecte à expression1 la valeur de
expression1 % expression2. Par exemple, les deux expressions suivantes sont équivalentes :
x %= y
x = x % y
Exemple
L’exemple suivant affecte la valeur 4 à la variable x.
x = 14;
y = 5;
trace(x %= y);
// renvoie 4
Consultez également
% (modulo)
%= (affectation de modulo)
243
& (Opérateur AND au niveau du bit)
Disponibilité
Flash Player 5. Dans Flash 4, l’opérateur & était utilisé pour concaténer les chaînes. Dans Flash 5
et les versions suivantes, l’opérateur & est un AND au niveau du bit ; vous devez donc utiliser les
opérateurs add et + pour concaténer les chaînes. Les fichiers Flash 4 utilisant l’opérateur & sont
automatiquement mis à jour pour utiliser add lorsqu’ils sont importés dans l’environnement
auteur de Flash 5 ou d’une version ultérieure.
Usage
expression1 & expression2
Paramètres
Aucun.
Renvoie
Rien.
Description
Opérateur (au niveau du bit) : convertit expression1 et expression2 en entiers 32 bits non
signés et effectue une opération AND booléenne sur chaque bit des paramètres entiers. Le résultat
est un nouvel entier 32 bits non signé.
244
Chapitre 12 : Dictionnaire ActionScript
&& (AND logique)
Disponibilité
Flash Player 4.
Usage
expression1 && expression2
Paramètres
Aucun.
Renvoie
Une valeur booléenne.
Description
Opérateur (logique) : effectue une opération booléenne sur les valeurs d’une ou des deux
expressions. Evalue expression1 (l’expression du côté gauche de l’opérateur) et renvoie false si
l’expression est false. Si expression1 est true, expression2 (l’expression du côté droit de
l’opérateur) est évaluée. Si expression2 est true, le résultat final est true ; sinon, il est false.
Exemple
Cet exemple utilise l’opérateur && pour effectuer un test permettant de déterminer si un joueur a
gagné la partie. Les variables tours et score sont mises à jour lorsqu’un joueur prend son tour ou
marque des points pendant la partie. Le script suivant affiche « Vous avez gagné ! » dans le
panneau de sortie lorsque le score du joueur atteint 75 ou plus en 3 tours ou moins.
tours =2;
score=77;
gagnant = (tours <= 3) && (score >= 75);
if (gagnant) {
trace("Vous avez gagné !");
} else {
trace("Réessayez !");
}
&& (AND logique)
245
&= (affectation AND au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 &= expression2
Paramètres
Aucun.
Renvoie
Rien.
Description
Opérateur : affecte à expression1 la valeur de expression1 & expression2. Par exemple, les
deux expressions suivantes sont équivalentes.
x &= y;
x = x & y;
Exemple
L’exemple suivant affecte la valeur 9 à x.
x = 15;
y = 9;
trace(x &= y);
// renvoie 9
Consultez également
& (Opérateur AND au niveau du bit)
() (parenthèses)
Disponibilité
Flash Player 4.
Usage
(expression1, expression2)
fonction(paramètre1,..., paramètreN)
Paramètres
expression1, expression2
fonction
Nombres, chaînes, variables ou texte.
La fonction devant être effectuée sur le contenu des parenthèses.
Une série de paramètres à exécuter avant que les résultats ne soient
transmis comme paramètres à la fonction extérieure aux parenthèses.
paramètre1...paramètreN
Renvoie
Rien.
246
Chapitre 12 : Dictionnaire ActionScript
Description
Opérateur : effectue une opération de regroupement sur un ou plusieurs paramètres ou entoure
un ou plusieurs paramètres et les transmet comme paramètres à une fonction extérieure aux
parenthèses.
Usage 1 : contrôle l’ordre dans lequel les opérateurs sont exécutés dans l’expression. Les
parenthèses annulent l’ordre normal de priorité et obligent l’évaluation des expressions entre
parenthèses en premier. Lorsque les parenthèses sont imbriquées, le contenu des parenthèses
internes est évalué avant le contenu des parenthèses externes.
Usage 2 : encadre un ou plusieurs paramètres et les transmet sous forme de paramètres à la
fonction extérieure aux parenthèses.
Exemple
Usage 1 : les instructions suivantes illustrent l’emploi des parenthèses pour contrôler l’ordre
d’exécution des expressions. La valeur de chaque expression est affichée en dessous de chaque
ligne, comme suit :
trace((2 + 3) * (4 + 5));
// affiche 45
trace(2 + (3 * (4 + 5)));
// affiche 29
trace(2 + (3 * 4) + 5);
// affiche 19
Usage 2 : l’exemple suivant illustre l’emploi des parenthèses avec des fonctions.
getDate();
facture(article, montant);
function traceParameter(param){
trace(param);
}
traceParameter(2*2);
Consultez également
with
– (moins)
Disponibilité
Flash Player 4.
Usage
(Négation) -expression
(Soustraction) expression1 - expression2
Paramètres
Aucun.
Renvoie
Rien.
– (moins)
247
Description
Opérateur (arithmétique) : utilisé pour la négation ou la soustraction.
Usage 1 : lorsque utilisé pour la négation, il inverse le signe de l’expression numérique.
Usage 2 : lorsque utilisé pour la soustraction, il effectue une soustraction arithmétique sur deux
expressions numériques, soustrayant expression2 de expression1. Lorsque les deux expressions
sont des entiers, la différence est un entier. Lorsque l’une des expressions, ou les deux, est un
nombre à virgule flottante, la différence est un nombre à virgule flottante.
Exemple
Usage 1 : l’instruction suivante inverse le signe de l’expression 2 + 3.
-(2 + 3)
Le résultat est -5.
Usage 2 : l’instruction suivante soustrait l’entier 2 de l’entier 5.
5 - 2
Le résultat est 3, qui est un entier.
Usage 2 : l’instruction suivante soustrait le nombre à virgule flottante 1.5 du nombre à virgule
flottante 3.25.
3.25 - 1.5
Le résultat est 1.75, qui est un nombre à virgule flottante.
* (multiplication)
Disponibilité
Flash Player 4.
Usage
expression1 * expression2
Paramètres
Aucun.
Renvoie
Rien.
Description
Opérateur (arithmétique) : multiplie deux expressions numériques. Si les deux expressions sont
des entiers, le produit est un entier. Si l’une des expressions, ou les deux, est un nombre à virgule
flottante, le produit est un nombre à virgule flottante.
248
Chapitre 12 : Dictionnaire ActionScript
Exemple
Usage 1 : l’instruction suivante multiplie les entiers 2 et 3.
2 * 3
Le résultat est 6, qui est un entier.
Usage 2 : cette instruction multiplie les nombres à virgule flottante 2.0 et 3.1416.
2.0 * 3.1416
Le résultat est 6.2832, qui est un nombre à virgule flottante.
*= (affectation de multiplication)
Disponibilité
Flash Player 4.
Usage
expression1 *= expression2
Paramètres
Aucun.
Renvoie
Rien.
Description
Opérateur (affectation composée arithmétique) : affecte à expression1 la valeur de
expression1 * expression2. Par exemple, les deux expressions suivantes sont équivalentes :
x *= y
x = x * y
Exemple
Usage 1 : l’exemple suivant affecte la valeur 50 à la variable x.
x = 5;
y = 10;
trace(x *= y);
// renvoie 50
Usage 2 : les deuxième et troisième lignes de l’exemple suivant calculent les expressions se
trouvant à droite du signe égal et affectent les résultats à x et y.
i = 5;
x = 4 - 6;
y = i + 2;
trace(x *= y);
// renvoie -14
Consultez également
* (multiplication)
*= (affectation de multiplication)
249
, (virgule)
Disponibilité
Flash Player 4.
Usage
expression1, expression2
Paramètres
Aucun.
Renvoie
Rien.
Description
Opérateur : évalue expression1, puis expression2, et renvoie la valeur de expression2. Cet
opérateur est principalement utilisé avec l’instruction de boucle for.
Exemple
Le code suivant utilise l’opérateur virgule :
var a=1, b=2, c=3;
Ceci est équivalent à la rédaction du code suivant :
var a=1;
var b=2;
var c=3;
250
Chapitre 12 : Dictionnaire ActionScript
.(point)
Disponibilité
Flash Player 4.
Usage
objet.proprieté_ou_méthode
nomDoccurrence.variable
nomDoccurrence.occurrenceEnfant.variable
Paramètres
objet Une occurrence de la classe. L’objet peut être une occurrence de n’importe quelle classe
intégrée ActionScript ou une classe personnalisée. Ce paramètre se situe toujours à gauche de
l’opérateur point (.).
Le nom d’une propriété ou méthode associée à un objet. Toutes les
méthodes et propriétés valides pour les classes intégrées sont répertoriées dans les récapitulatifs des
propriétés et méthodes correspondants. Ce paramètre se situe toujours à droite de l’opérateur
point (.).
propriété_ou_méthode
nomDoccurrence
occurrenceEnfant
Le nom d’occurrence d’un clip.
Une occurrence de clip enfant, ou imbriquée dans un autre clip.
Une variable dans le scénario du clip dont le nom d’occurrence figure à gauche de
l’opérateur point (.).
variable
Renvoie
Rien.
Description
Opérateur : utilisé pour naviguer dans les hiérarchies de clip afin d’accéder aux clips (enfants)
imbriqués, variables ou propriétés. L’opérateur point est également utilisé pour tester ou définir
les propriétés d’un objet, exécuter une méthode d’un objet ou créer une structure de données.
Exemple
L’instruction suivante identifie la valeur courante de la variable couleurCheveux du clip
person_mc.
person_mc.couleurCheveux
Ceci est équivalent à la syntaxe de Flash 4 suivante :
/person_mc:couleurCheveux
.(point)
251
: (type)
Disponibilité
Flash Player 6.
Usage
[modificateurs] [var] nomDeVariable:[type]
function nomDeFonction,():[type] { ... }
function nomDeFonction(paramètre1[:type], ... , paramètreN[:type]) { ... }
Paramètres
nomDeVariable
type
Un identifiant pour une variable.
Un type de données natif, un nom de classe qui vous avez défini ou un nom d’interface.
nomDeFonction
paramètre
Un identifiant pour une fonction.
Un identifiant pour un paramètre de fonction.
Description
Opérateur : spécifie le type de variable, le type de renvoi de la fonction ou le type de paramètre de
la fonction. Lorsqu’il est utilisé dans une déclaration ou une affectation de variable, cet opérateur
spécifie le type de variable ; quand il est utilisé dans une déclaration ou une définition de
fonction, il spécifie le type de renvoi de la fonction ; quand il est utilisé avec un paramètre de
fonction dans une définition de fonction, il spécifie le type de variable attendu pour ce paramètre.
Les types ont une fonctionnalité de compilation seule. Tous les types sont vérifiés au moment de
la compilation ; des erreurs sont générées en cas d’incompatibilité. Pour plus d’informations,
consultez l’Annexe A, Messages d’erreur, page 893. Des incompatibilités peuvent se produire
durant les opérations d’affectation, les appels de fonction et les déréférencements des membres de
classe à l’aide de l’opérateur point (.) Afin d’éviter les erreurs d’incompatibilité de type, utilisez les
types explicites (consultez Typage strict des données, page 40).
Les types que vous pouvez utiliser incluent tous les types d’objet natif, les classes et les interfaces
que vous définissez, ainsi que Void et Function (existant en tant que type seulement et non en
tant qu’objet). Les types natifs reconnus sont Array, Boolean, Button, Color, CustomActions,
Date, Function, LoadVars, LocalConnection, Microphone, MovieClip, NetConnection,
NetStream, Number, Object, SharedObject, Sound, String, TextField, TextFormat, Video, Void,
XML, XMLNode et XMLSocket.
Exemple
Usage 1 : l’exemple suivant déclare une variable publique nommée nomDutilisateur, dont le
type est String ; il lui affecte une chaîne vide.
public var nomDutilisateur:String = "";
Usage 2 : cet exemple montre comment spécifier un type de paramètre de fonction. Le code
suivant définit une fonction nommée déterminerDate(), qui prend un paramètre nommé
dateDuJour de type Date.
function déterminerDate(dateDuJour:Date) {
this.date = dateDuJour;
}
252
Chapitre 12 : Dictionnaire ActionScript
Usage 3 : le code suivant définit une fonction nommée racineCarrée() prenant un paramètre
nommé val du type Number et renvoie la racine carrée de val, ainsi qu’un type Number.
function racineCarrée(val:Number):Number {
return Math.sqrt(val);
}
?: (conditionnel)
Disponibilité
Flash Player 4.
Usage
expression1 ? expression2 : expression3
Paramètres
Une expression évaluée comme valeur booléenne, généralement une expression
de comparaison telle que x < 5.
expression1
expression2, expression3
Valeurs de n’importe quel type.
Renvoie
Rien.
Description
Opérateur : indique à Flash d’évaluer expression1 et, si la valeur de expression1 est true,
renvoie la valeur de expression2 ; sinon, renvoie la valeur de expression3.
Exemple
L’instruction suivante affecte la valeur de la variable x à la variable z étant donné que
expression1 est true
x = 5;
y = 10;
z = (x < 6) ? x: y;
trace (z);
// renvoie 5
?: (conditionnel)
253
/ (division)
Disponibilité
Flash Player 4.
Usage
expression1 / expression2
Paramètres
expression
Un nombre ou une variable évaluée comme un nombre.
Renvoie
Rien.
Description
Opérateur (arithmétique) : divise expression1 par expression2. Le résultat de la division est un
nombre à virgule flottante à double précision.
Exemple
L’instruction suivante divise le nombre à virgule flottante 22,0 par 7,0 et affiche ensuite le résultat
dans le panneau de sortie.
trace(22.0 / 7.0);
Le résultat est 3,1429, qui est un nombre à virgule flottante.
254
Chapitre 12 : Dictionnaire ActionScript
// (délimiteur de commentaires)
Disponibilité
Flash 1.
Usage
// commentaire
Paramètres
commentaire
Tout caractère.
Renvoie
Rien.
Description
Commentaire : indique le début d’un commentaire de script. Tout caractère qui apparaît entre le
délimiteur de commentaires // et le caractère de fin de ligne est interprété comme un
commentaire et ignoré par l’interprète d’ActionScript.
Exemple
Ce script utilise des délimiteurs de commentaires pour identifier les première, troisième,
cinquième et septième lignes comme commentaires.
// enregistrer la position
balleX = balle._x;
// enregistrer la position
balleY = balle._y;
// enregistrer la position
batteX = batte._x;
// enregistrer la position
batteY = batte._y;
X du clip de la balle
Y du clip de la balle
X du clip de la batte
Y du clip de la batte
Consultez également
/* (délimiteur de commentaires)
// (délimiteur de commentaires)
255
/* (délimiteur de commentaires)
Disponibilité
Flash Player 5.
Usage
/* commentaire */
/*
commentaire
commentaire
*/
Paramètres
commentaire
Tout caractère.
Renvoie
Rien.
Description
Commentaire : indique une ou plusieurs lignes de commentaires de script. Tout caractère qui
apparaît entre la balise d’ouverture de commentaires /* et la balise de fermeture de commentaires
*/ est interprété comme un commentaire et ignoré par l’interprète d’ActionScript. Utilisez le
premier type de syntaxe pour identifier les commentaires à une seule ligne. Utilisez le second type
de syntaxe pour identifier les commentaires contenant plusieurs lignes successives. L’oubli de la
balise de fermeture */ lors de l’utilisation de cette forme de délimiteur de commentaires provoque
un message d’erreur.
Exemple
Ce script utilise des délimiteurs de commentaires au début du script.
/* enregistre les positions X et Y des clips
de la balle et de la batte
*/
balleX
balleY
batteX
batteY
=
=
=
=
balle._x;
balle._y;
batte._x;
batte._y;
Consultez également
// (délimiteur de commentaires)
256
Chapitre 12 : Dictionnaire ActionScript
/= (affectation de division)
Disponibilité
Flash Player 4.
Usage
expression1 /= expression2
Paramètres
expression1,expression2
Nombre ou variable évaluée comme nombre.
Renvoie
Rien.
Description
Opérateur (affectation composée arithmétique) : affecte à expression1 la valeur de
expression1 / expression2. Par exemple, les deux instructions suivantes sont équivalentes :
x /= y
x = x / y
Exemple
Le code suivant illustre l’utilisation de l’opérateur /= avec des variables et des nombres.
x = 10;
y = 2;
x /= y;
// x contient maintenant la valeur 5
/= (affectation de division)
257
[] (accès tableau)
Disponibilité
Flash Player 4.
Usage
mon_array = ["a0", a1,...aN];
MultiDimensionnel_array = [["a0",...aN],...["a0",...aN]]
mon_array[E] = valeur
MultiDimensionnel_array[E][E] = valeur
object["valeur"];
Paramètres
mon_array
Le nom d’un tableau.
a0, a1,...aN
Eléments d’un tableau.
MultiDimensionnel_array
E
Le nom d’un tableau multidimensionnel simulé.
Le nombre (ou index) d’un élément d’un tableau.
object
Le nom d’un objet.
valeur
A Une chaîne ou une expression évaluée comme chaîne qui nomme une propriété de
l’objet.
Renvoie
Rien.
Description
Opérateur : initialise un nouveau tableau ou un tableau multidimensionnel avec les éléments
spécifiés (a0, etc.) ou accède aux éléments d’un tableau. L’opérateur d’accès tableau vous permet
de définir et récupérer dynamiquement les noms d’occurrences, variables et objets. Il vous permet
également d’accéder aux propriétés des objets.
Usage 1 : un tableau est un objet dont les propriétés sont appelées éléments, qui sont chacune
identifiées par un nombre appelé index. Lorsque vous créez un tableau, vous encadrez ses éléments
par l’opérateur d’accès tableau (ou crochets). Un tableau peut contenir des éléments de divers
types. Par exemple, le tableau suivant, appelé personnel, contient trois éléments ; le premier est
un nombre et les deux suivants sont des chaînes (entre guillemets).
personnel = [15, "Barbara", "Eric"];
Usage 2 : vous pouvez imbriquer des crochets pour simuler des tableaux multidimensionnels. Le
code suivant crée un tableau, appelé ticTacToe, avec trois éléments ; chaque élément est
également un tableau contenant trois éléments.
ticTacToe = [[1,2,3],[4,5,6],[7,8,9]];
// choisissez Déboguer > Lister les variables en mode de test d’animation
// pour afficher une liste des éléments du tableau
Usage 3 : encadrez l’index de chaque élément avec des crochets pour y accéder directement ; vous
pouvez ajouter un nouvel élément à un tableau, changer ou récupérer la valeur d’un élément
existant. Le premier élément d’un tableau est toujours 0 :
258
Chapitre 12 : Dictionnaire ActionScript
mon_array[0] = 15;
mon_array[1] = "Bonjour";
mon_array[2] = true;
Vous pouvez utiliser des crochets pour ajouter un quatrième élément, comme dans l’exemple
suivant :
mon_array[3] = "George";
Usage 4 : vous pouvez utiliser des crochets pour accéder à un élément dans un tableau
multidimensionnel. Le premier jeu de crochets identifie l’élément dans le tableau d’origine, le
second jeu identifiant l’élément dans le tableau imbriqué. La ligne de code suivante envoie 6 au
panneau de sortie.
ticTacToe = [[1,2,3],[4,5,6],[7,8,9]];
trace(ticTacToe[1][2]);
// renvoie 6
Usage 5 : vous pouvez utiliser l’opérateur d’accès tableau au lieu de la fonction eval pour définir
et récupérer dynamiquement des valeurs pour des noms de clip ou n’importe quelle propriété
d’un objet :
nom["mc" + i] = "coin_gauche";
Exemple
Usage 1 : les exemples de code suivants indiquent deux manières différentes de créer un objet
Array vide (la première ligne utilisant des crochets).
mon_array =[];
mon_array = new Array();
Usages 1 et 2 : l’exemple suivant crée un tableau appelé personnel_array et utilise une action
trace() pour envoyer les éléments au panneau de sortie. A la quatrième ligne, un élément du
tableau est changé, et la cinquième ligne envoie le tableau nouvellement modifié au panneau de
sortie :
personnel_array = ["Barbara", "George", "Mary"];
trace(personnel_array);
// Barbara, George, Mary
personnel_array[2]="Sam";
trace(personnel_array);
// Barbara, George, Sam
Usage 3 : dans l’exemple suivant, l’expression entre crochets ("morceau" + i) est évaluée et le
résultat est utilisé comme nom de la variable qui doit être récupérée du clip monClip_mc. Dans cet
exemple, la variable i doit exister dans le même scénario que le bouton. Si la variable i est égale
à 5, par exemple, la valeur de la variable morceau5 dans le clip monClip_mc s’affiche dans le
panneau de sortie :
on(release) {
x = monClip_mc["morceau"+i];
trace(x);
}
Usage 3 : dans le code suivant, l’expression entre crochets est évaluée et le résultat est utilisé
comme nom de la variable qui doit être récupérée à partir du clip nom_mc :
nom_mc["A" + i];
[] (accès tableau)
259
Si vous êtes habitué(e) à la syntaxe ActionScript à barre oblique de Flash 4, vous pouvez obtenir le
même résultat en utilisant la fonction eval :
eval("nom.A" & i);
Usage 3 : vous pouvez également utiliser l’opérateur d’accès tableau sur le côté gauche d’une
instruction d’affectation pour définir dynamiquement des noms d’occurrences, de variables et
d’objets :
nom[index] = "Gary";
Consultez également
Classe Array, Classe Object, eval()
^ (XOR au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 ^ expression2
Paramètres
expression1,expression2
Un nombre.
Renvoie
Rien.
Description
Opérateur (au niveau du bit) : convertit expression1 et expression2 en entiers 32 bits non
signés et renvoie un 1 dans chaque position de bit où les bits correspondants dans expression1
ou expression2, mais pas les deux, sont 1.
Exemple
L’exemple suivant utilise l’opérateur XOR au niveau du bit sur les décimales 15 et 9 et affecte le
résultat à la variable x.
// 15 décimal = 1111 binaire
// 9 décimal = 1001 binaire
x = 15 ^ 9
trace (x)
// 1111 ^ 1001 = 0110
// renvoie 6 décimal (= 0110 binaire)
260
Chapitre 12 : Dictionnaire ActionScript
^= (affectation XOR au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 ^= expression2
Paramètres
expression1,expression2
Entiers et variables.
Renvoie
Rien.
Description
Opérateur (affectation composée au niveau du bit) : affecte à expression1 la valeur de
expression1 ^ expression2. Par exemple, les deux instructions suivantes sont équivalentes :
x ^= y
x = x ^ y
Exemple
L’exemple suivant illustre une opération ^=.
// 15 décimal = 1111 binaire
x = 15;
// 9 décimal = 1001 binaire
y = 9;
trace(x ^= y);
// renvoie 6 décimal ( = 0110 binaire)
Consultez également
^ (XOR au niveau du bit)
^= (affectation XOR au niveau du bit)
261
{} (initialisateur d’objet)
Disponibilité
Flash Player 5.
Usage
objet = {nom1: valeur1, nom2: valeur2,...nomN: valeurN}
Paramètres
objet
L’objet à créer.
nom1,2,...N
Les noms des propriétés.
valeur1,2,...N
Les valeurs correspondantes pour chaque propriété de nom.
Renvoie
Aucun.
Description
Opérateur : crée un objet et l’initialise avec les paires de propriétés nom et valeur spécifiées.
L’utilisation de cet opérateur est identique à l’utilisation de la syntaxe new Object et la
distribution des paires de propriétés avec l’opérateur d’affectation. Le prototype de l’objet
nouvellement créé est nommé de façon générique Object.
Exemple
La première ligne du code suivant crée un objet vide à l’aide de l’opérateur initialisateur d’objet, la
seconde ligne créant un nouvel objet avec une fonction constructeur.
objet = {};
objet = new Object();
L’exemple suivant crée un objet compte et initialise les propriétés nom, adresse, ville, pays,
codePostal et solde avec les valeurs associées.
compte = { nom : "Betty Skate",
adresse : "123 rue Grande",
ville : "Une ville",
pays : "France",
codePostal : "12345",
solde : "1000" };
L’exemple suivant illustre l’imbrication d’initialisateurs d’objet et de tableau les uns dans les
autres.
personne = { nom : "Gina Vechio",
enfants : [ "Emilie", "Alice", "Charlotte"] };
262
Chapitre 12 : Dictionnaire ActionScript
L’exemple suivant utilise les informations de l’exemple précédent et produit le même résultat avec
des fonctions constructeur.
personne = new Object();
personne.nom = 'Gina Vechio';
personne.enfants = new Array();
personne.enfants[0] = 'Emilie';
personne.enfants[1] = 'Alice';
personne.enfants[2] = 'Charlotte';
Consultez également
[] (accès tableau), new,
Classe Object
| (OR au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 | expression2
Paramètres
expression1,expression2
Un nombre.
Renvoie
Rien.
Description
Opérateur (au niveau du bit) : convertit expression1 et expression2 en entiers 32 bits non
signés et renvoie un 1 à chaque position de bit où les bits correspondants de expression1 ou de
expression2 sont 1.
Exemple
L’exemple suivant illustre une opération OR au niveau du bit.
// 15 décimal = 1111 binaire
x = 15;
// 9 décimal = 1001 binaire
y = 9;
trace(x | y);
// 1111 | 0011 = 1111
// renvoie 15 décimal (= 1111 binaire)
| (OR au niveau du bit)
263
|| (OR logique)
Disponibilité
Flash Player 4.
Usage
expression1 || expression2
Paramètres
expression1,expression2
Une valeur booléenne ou une expression convertie en valeur
booléenne.
Renvoie
Une valeur booléenne.
Description
Opérateur (logique) : évalue expression1 et expression2. Le résultat est true si une des deux
ou les deux expressions sont true. Le résultat est false seulement si les deux expressions sont
false. Vous pouvez utiliser l’opérateur logique OR avec n’importe quel nombre d’opérandes ; si
un opérande est évalué comme true, le résultat est true.
Avec des expressions non booléennes, l’opérateur logique OR oblige Flash à évaluer l’expression
de gauche ; si elle peut être convertie en true, le résultat est true. Sinon, il évalue l’expression de
droite et le résultat est la valeur de cette expression.
Exemple
Usage 1 : l’exemple suivant utilise l’opérateur || dans une instruction if. La deuxième expression
est true, le résultat final étant donc true
x = 10
y = 250
start = false
if(x > 25 || y > 200 || start){
trace('le test de OR logique a réussi');
}
Usage 2 : cet exemple illustre la façon dont une expression non booléenne peut produire un
résultat inattendu. Si l’expression de gauche est convertie en true, ce résultat est renvoyé sans
convertir l’expression de droite.
function fx1(){
trace ("fx1 appelé");
return true;
}
function fx2(){
trace ("fx2 appelé");
return true;
}
if (fx1() || fx2()){
trace ("instruction IF entrée");
}
// Le résultat suivant est affiché dans le panneau de sortie :
// fx1 appelé
// instruction IF entrée
264
Chapitre 12 : Dictionnaire ActionScript
|= (affectation OR au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 |= expression2
Paramètres
expression1,expression2
Un nombre ou variable.
Renvoie
Rien.
Description
Opérateur (affectation composée au niveau du bit) : affecte à expression1 la valeur de
expression1 | expression2. Par exemple, les deux instructions suivantes sont équivalentes :
x |= y;
x = x | y;
Exemple
L’exemple suivant utilise l’opérateur |= :
// 15 décimal = 1111 binaire
x = 15;
// 9 décimal = 1001 binaire
y = 9;
trace(x |= y);
// 1111 |= 1001
// renvoie 15 décimal (= 1111 binaire)
Consultez également
| (OR au niveau du bit)
|= (affectation OR au niveau du bit)
265
~ (NOT au niveau du bit)
Disponibilité
Flash Player 5.
Usage
~ expression
Paramètres
expression
Un nombre.
Renvoie
Rien.
Description
Opérateur (au niveau du bit) : convertit l’expression en entier 32 bits non signé, puis inverse les
bits. Une opération NOT au niveau du bit change le signe d’un nombre et soustrait 1.
Exemple
L’exemple suivant illustre une opération NOT au niveau du bit effectuée sur une variable.
a = 0;
trace ("lorsque a
// lorsque a = 0,
a = 1;
trace ("lorsque a
// lorsque a = 0,
// donc, ~0=-1 et
266
= 0, ~a = "+~a);
~a = -1
= 0, ~a = "+~a);
~a = -2
~1=-2
Chapitre 12 : Dictionnaire ActionScript
+ (addition)
Disponibilité
Flash Player 4 ; Flash Player 5. Dans Flash 5 et les versions suivantes, + est un opérateur
numérique ou un concaténateur de chaînes, selon le type de données du paramètre. Dans Flash 4,
+ est seulement un opérateur numérique. Les fichiers Flash 4 importés dans l’environnement
auteur de Flash 5 ou d’une version ultérieure subissent un processus de conversion visant à
préserver l’intégrité des types de données. L’exemple suivant illustre la conversion d’un fichier
Flash 4 contenant une comparaison de qualité numérique :
Fichier Flash 4 :
x + y
Fichier converti Flash 5 ou version ultérieure :
Number(x) + Number(y)
Usage
expression1 + expression2
Paramètres
expression1,expression2
Un nombre ou une chaîne.
Renvoie
Rien.
Description
Opérateur : additionne des expressions numériques ou concatène (combine) des chaînes. Si une
expression est une chaîne, toutes les autres expressions sont converties en chaînes et concaténées.
Si les deux expressions sont des entiers, la somme est un entier ; si une des deux ou les deux
expressions sont des nombres à virgule flottante, la somme est un nombre à virgule flottante.
Exemple
Usage 1 : l’exemple suivant concatène deux chaînes et affiche le résultat dans le panneau de sortie.
nom = "Cola";
instrument = "percussions";
trace (nom + " joue des " + instrument);
Usage 2 : les variables associées à des champs de texte dynamique et de saisie ont le type de
données String. Dans l’exemple suivant, la variable dépôt est un champ de texte de saisie sur la
scène. Une fois qu’un utilisateur a entré un montant de dépôt, le script essaie d’ajouter dépôt à
ancienSolde. Cependant, étant donné que dépôt est du type de données String, le script
concatène (combine pour former une seule chaîne) les valeurs des variables plutôt que de les
additionner.
ancienSolde = 1345.23;
soldeActuel = dépôt + ancienSolde;
trace (soldeActuel);
Par exemple, si l’utilisateur entre 475 dans le champ de texte de dépôt, l’action trace() envoie la
valeur 4751345.23 au panneau de sortie.
+ (addition)
267
Pour corriger cela, utilisez la fonction Number pour convertir la chaîne en un nombre, comme
dans l’exemple suivant :
soldeActuel = Number(dépôt) + ancienSolde;
Usage 3 : cette instruction additionne les entiers 2 et 3 et affiche ensuite le résultat, l’entier 5, dans
le panneau de sortie :
trace (2 + 3);
Cette instruction additionne les nombres à virgule flottante 2,5 et 3,25 et affiche le résultat, 5,75,
un nombre à virgule flottante, dans le panneau de sortie :
trace (2,5 + 3,25);
Consultez également
_accProps
+= (affectation d’addition)
Disponibilité
Flash Player 4.
Usage
expression1 += expression2
Paramètres
expression1,expression2
Un nombre ou une chaîne.
Renvoie
Rien.
Description
Opérateur (affectation composée arithmétique) : affecte à expression1 la valeur de
expression1 + expression2. Par exemple, les deux instructions suivantes produisent le même
résultat :
x += y;
x = x + y;
Cet opérateur effectue également la concaténation de chaînes. Toutes les règles de l’opérateur
addition (+) s’appliquent à l’opérateur d’affectation d’addition (+=).
268
Chapitre 12 : Dictionnaire ActionScript
Exemple
L’exemple suivant illustre une utilisation numérique de l’opérateur +=.
x = 5;
y = 10;
x += y;
trace(x);
// x renvoie 15
Cet exemple utilise l’opérateur += avec une expression chaîne et envoie « Je m’appelle Gilbert » au
panneau de sortie.
x = "Je m’appelle "
x += "Gilbert"
trace (x)
// renvoie "Je m’appelle Gilbert"
Consultez également
+ (addition)
<(inférieur à)
Disponibilité
Flash Player 4 ; Flash Player 5. Dans Flash 5 et les versions suivantes, l’opérateur < (inférieur à) est
un opérateur de comparaison capable de manipuler divers types de données. Dans Flash 4, < est
un opérateur numérique. Les fichiers Flash 4 importés dans l’environnement auteur de Flash 5 ou
d’une version ultérieure subissent un processus de conversion visant à préserver l’intégrité des
types de données. L’exemple suivant illustre la conversion d’un fichier Flash 4 contenant une
comparaison de qualité numérique.
Fichier Flash 4 :
x < y
Fichier converti Flash 5 ou version ultérieure :
Number(x) < Number(y)
Usage
expression1 < expression2
Paramètres
expression1,expression2
Un nombre ou une chaîne.
Description
Opérateur (comparaison) : compare deux expressions et détermine si expression1 est inférieure
à expression2 le cas échéant, renvoie true. Si expression1 est supérieure ou égale à
expression2, l’opérateur renvoie false. Les expressions chaînes sont évaluées par ordre
alphabétique ; les majuscules apparaissant avant les minuscules.
<(inférieur à)
269
Exemple
Les exemples suivants illustrent les renvois true et false pour des comparaisons numériques et
chaînes.
3 < 10;
// true
10 < 3;
// false
"Alain" < "Jacques";
// true
"Jacques" < "Alain";
// false
"11" < "3";
//true
"11" < 3;
// comparaison numérique
// false
"C" < "abc";
// false
"A" < "a";
// true
<< (décalage gauche au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 << expression2
Paramètres
expression1
Un nombre ou une expression devant être décalé(e) vers la gauche.
expression2
Un nombre ou une expression converti(e) en entier de 0 à 31.
Renvoie
Rien.
Description
Opérateur (au niveau du bit) : convertit expression1 et expression2 en entiers 32 bits et décale
tous les bits de expression1 vers la gauche du nombre de places spécifié par l’entier résultant de
la conversion de expression2. Les emplacements des bits vidés par cette opération sont remplis
par des 0. Le décalage d’une valeur vers la gauche de une position revient à la multiplier par deux.
270
Chapitre 12 : Dictionnaire ActionScript
Exemple
Dans l’exemple suivant, l’entier 1 est décalé de 10 bits vers la gauche.
x = 1 << 10
Le résultat de cette opération est x = 1024. Cela est dû au fait que 1 décimal est égal à 1 binaire,
1 binaire décalé sur la gauche de 10 est 10000000000 binaire, et 10000000000 binaire est 1024
décimal.
Dans l’exemple suivant, l’entier 7 est décalé de 8 bits vers la gauche.
x = 7 << 8
Le résultat de cette opération est x = 1792. Cela est dû au fait que 7 décimal est égal à 111
binaire, 111 binaire décalé sur la gauche de 8 bits est 11100000000 binaire, et 11100000000
binaire est 1792 décimal.
Consultez également
>>= (décalage droit au niveau du bit et affectation), >> (décalage droit au
niveau du bit), <<= (décalage gauche au niveau du bit et affectation)
<<= (décalage gauche au niveau du bit et affectation)
Disponibilité
Flash Player 5.
Usage
expression1 <<= expression2
Paramètres
expression1
Un nombre ou une expression devant être décalé(e) vers la gauche.
expression2
Un nombre ou une expression converti(e) en entier de 0 à 31.
Renvoie
Rien.
Description
Opérateur (affectation composée au niveau du bit) : cet opérateur effectue une opération de
décalage gauche au niveau du bit et stocke le contenu comme résultat dans expression1. Les
deux expressions suivantes sont équivalentes.
A <<= B
A = (A << B)
Consultez également
<< (décalage gauche au niveau du bit), >>= (décalage droit au niveau du bit et
affectation), >> (décalage droit au niveau du bit)
<<= (décalage gauche au niveau du bit et affectation)
271
<= (inférieur ou égal à)
Disponibilité
Flash Player 4.
Fichier Flash 4 :
x <= y
Fichier converti Flash 5 ou version ultérieure :
Number(x) < Number(y)
Usage
expression1 <= expression2
Paramètres
expression1,expression2
Un nombre ou une chaîne.
Renvoie
Une valeur booléenne.
Description
Opérateur (comparaison) : compare deux expressions et détermine si expression1 est inférieure
ou égale à expression2 le cas échéant, renvoie true. Si expression1 est supérieure à
expression2, l’opérateur renvoie false. Les expressions chaînes sont évaluées par ordre
alphabétique ; les majuscules apparaissant avant les minuscules.
Dans Flash 5 ou ses versions ultérieures, l’opérateur inférieur ou égal à (<=) est un opérateur de
comparaison capable de manipuler divers types de données. Dans Flash 4, <= est un opérateur
numérique. Les fichiers Flash 4 importés dans l’environnement auteur de Flash 5 ou d’une
version ultérieure subissent un processus de conversion visant à préserver l’intégrité des types de
données. L’exemple suivant illustre la conversion d’un fichier Flash 4 contenant une comparaison
de qualité numérique.
272
Chapitre 12 : Dictionnaire ActionScript
Exemple
Les exemples suivants illustrent les résultats true et false pour des comparaisons numériques et
chaînes :
5 <= 10;
// true
2 <= 2;
// true
10 <= 3;
// false
"Alain" <= "Jacques";
// true
"Jacques" <= "Alain";
// false
"11" <= "3";
//true
"11" <= 3;
// comparaison numérique
// false
"C" <= "abc";
// false
"A" <= "a";
// true
<> (inégalité)
Disponibilité
Flash 2.
Usage
expression1 <> expression2
Paramètres
Un nombre, une chaîne, une valeur booléenne, une variable, un
objet, un tableau ou une fonction.
expression1,expression2
Renvoie
Une valeur booléenne.
Description
Opérateur (inégalité) : teste l’opposé exact de l’opérateur ==. Si expression1 est égale à
expression2, le résultat est false. Tout comme pour l’opérateur ==, la définition du terme
égalité dépend des types de données comparés :
• Les nombres, les chaînes et les valeurs booléennes sont comparés par valeur.
• Les variables, les objets, les tableaux et les fonctions sont comparés par référence.
Cet opérateur est déconseillé dans Flash 5 ; Macromedia recommande l’utilisation de l’opérateur
!=.
Consultez également
!= (inégalité)
<> (inégalité)
273
= (affectation)
Disponibilité
Flash Player 4.
Fichier Flash 4 :
x = y
Fichier converti Flash 5 ou version ultérieure :
Number(x) == Number(y)
Usage
expression1 = expression2
Paramètres
expression1
Une variable, un élément d’un tableau ou une propriété d’un objet.
expression2
Une valeur de tout type.
Renvoie
Rien.
Description
Opérateur : affecte le type de expression2 (le paramètre de droite) à la variable, à l’élément de
tableau ou à la propriété dans expression1.
Dans Flash 5 ou les versions ultérieures, = est un opérateur d’affectation et l’opérateur == est
utilisé pour évaluer une égalité. Dans Flash 4, = est un opérateur d’égalité numérique. Les fichiers
Flash 4 importés dans l’environnement auteur de Flash 5 ou d’une version ultérieure subissent un
processus de conversion visant à préserver l’intégrité des types de données.
Exemple
L’exemple suivant utilise l’opérateur d’affectation pour affecter le type de données Number à la
variable x.
x = 5
L’exemple suivant utilise l’opérateur d’affectation pour affecter le type de données String à la
variable x.
x = "Bonjour"
Consultez également
== (égalité)
274
Chapitre 12 : Dictionnaire ActionScript
-= (affectation de soustraction)
Disponibilité
Flash Player 4.
Usage
expression1 -= expression2
Paramètres
expression1,expression2
Un nombre ou une expression évaluée comme nombre.
Renvoie
Rien.
Description
Opérateur (affectation composée arithmétique) : affecte à expression1 la valeur de
expression1 - expression2. Par exemple, les deux instructions suivantes sont équivalentes :
x -= y;
x = x - y;
Les expressions chaînes doivent être converties en nombres, sinon NaN est renvoyé.
Exemple
Usage 1 : l’exemple suivant utilise l’opérateur -= pour soustraire 10 de 5 et affecter le résultat à la
variable x.
x = 5;
y = 10;
x -= y
trace(x);
//renvoie -5
Usage 2 : l’exemple suivant montre comment des chaînes sont converties en nombres.
x = "5";
y = "10";
x -= y;
trace(x);
// renvoie -5
-= (affectation de soustraction)
275
== (égalité)
Disponibilité
Flash Player 5.
Usage
expression1 == expression2
Paramètres
Un nombre, une chaîne, une valeur booléenne, une variable, un
objet, un tableau ou une fonction.
expression1,expression2
Renvoie
Une valeur booléenne.
Description
Opérateur (égalité) : teste l’égalité de deux expressions. Le résultat est true si les deux expressions
sont égales.
La définition du terme égalité dépend du type de données du paramètre :
• Les nombres et les valeurs booléennes sont comparés par valeur et sont considérés égaux s’ils
possèdent les mêmes valeurs.
• Les expressions chaînes sont égales si elles possèdent le même nombre de caractères
(identiques).
• Les variables, les objets, les tableaux et les fonctions sont comparés par référence. Deux
variables sont égales si elles font référence au même objet ou tableau ou à la même fonction.
Deux tableaux distincts ne sont jamais considérés égaux, même s’ils comportent le même
nombre d’éléments.
Exemple
Usage 1 : l’exemple suivant utilise l’opérateur == avec une instruction if :
a = "David" , b = "David";
if (a == b){
trace("David est David");
}
Usage 2 : ces exemples montrent les résultats d’opérations qui comparent des types différents.
x = "5"; y = "5";
trace (x == y);
// true
x = "5"; y = "66";
trace (x == y);
// false
x = "chris"; y = "steve";
trace (x == y);
//false
Consultez également
!= (inégalité), === (égalité stricte), !== (inégalité stricte)
276
Chapitre 12 : Dictionnaire ActionScript
=== (égalité stricte)
Disponibilité
Flash Player 6.
Usage
expression1 === expression2
Renvoie
Une valeur booléenne.
Description
Opérateur : teste l’égalité de deux expressions – l’opérateur d’égalité stricte fonctionne de la même
façon que l’opérateur d’égalité, à ceci près que les types de données ne sont pas convertis. Le
résultat est true si les deux expressions, y compris leurs types de données, sont égales.
La définition du terme égalité dépend du type de données du paramètre :
• Les nombres et les valeurs booléennes sont comparés par valeur et sont considérés égaux s’ils
•
•
possèdent les mêmes valeurs.
Les expressions chaînes sont égales si elles possèdent le même nombre de caractères
(identiques).
Les variables, les objets, les tableaux et les fonctions sont comparés par référence. Deux
variables sont égales si elles font référence au même objet ou tableau ou à la même fonction.
Deux tableaux distincts ne sont jamais considérés égaux, même s’ils comportent le même
nombre d’éléments.
Exemple
Le code suivant affiche la valeur renvoyée par les opérations utilisant les opérateurs d’égalité,
d’égalité stricte et d’inégalité stricte.
s1 = new String("5");
s2 = new String("5");
s3 = new String("Bonjour");
n = new Number(5);
b = new Boolean(true);
s1
s1
s1
s1
==
==
==
==
s2; // true
s3; // false
n; // true
b; // false
s1
s1
s1
s1
===
===
===
===
s2; // true
s3; // false
n; // false
b; // false
s1
s1
s1
s1
!==
!==
!==
!==
s2; // false
s3; // true
n; // true
b; // true
Consultez également
== (égalité), != (inégalité), === (égalité stricte)
=== (égalité stricte)
277
> (supérieur à)
Disponibilité
Flash Player 4.
Fichier Flash 4 :
x > y
Fichier converti Flash 5 ou version ultérieure :
Number(x) > Number(y)
Usage
expression1 > expression2
Paramètres
expression1,expression2
Un nombre ou une chaîne.
Renvoie
Une valeur booléenne.
Description
Opérateur (comparaison) : compare deux expressions et détermine si expression1 est supérieure
à expression2 ; dans ce cas, l’opérateur renvoie true. Si expression1 est inférieure ou égale à
expression2, l’opérateur renvoie false. Les expressions chaînes sont évaluées par ordre
alphabétique ; les majuscules apparaissant avant les minuscules.
Dans Flash 5 ou ses versions ultérieures, l’opérateur inférieur ou égal à (<=) est un opérateur de
comparaison capable de manipuler divers types de données. Dans Flash 4, <= est un opérateur
numérique. Les fichiers Flash 4 importés dans l’environnement auteur de Flash 5 ou d’une
version ultérieure subissent un processus de conversion visant à préserver l’intégrité des types de
données.
278
Chapitre 12 : Dictionnaire ActionScript
>= (supérieur ou égal à)
Disponibilité
Flash Player 4.
Fichier Flash 4 :
x > y
Fichier converti Flash 5 ou version ultérieure :
Number(x) > Number(y)
Usage
expression1 >= expression2
Paramètres
expression1, expression2
Une chaîne, un entier ou un nombre à virgule flottante.
Renvoie
Une valeur booléenne.
Description
Opérateur (comparaison) : compare deux expressions et détermine si expression1 est supérieure
ou égale à expression2 (true) ou si expression1 est inférieure à expression2 (false).
Dans Flash 5 ou les versions ultérieures, supérieur ou égal à (>) est un opérateur de comparaison
capable de manipuler divers types de données. Dans Flash 4, > est un opérateur numérique. Les
fichiers Flash 4 importés dans l’environnement auteur de Flash 5 ou d’une version ultérieure
subissent un processus de conversion visant à préserver l’intégrité des types de données.
>= (supérieur ou égal à)
279
>> (décalage droit au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 >> expression2
Paramètres
expression1
Un nombre ou une expression devant être décalé(e) vers la droite.
expression2
Un nombre ou une expression converti(e) en entier de 0 à 31.
Renvoie
Rien.
Description
Opérateur (au niveau du bit) : convertit expression1 et expression2 en entiers 32 bits et décale
tous les bits de expression1 vers la droite du nombre de places spécifié par l’entier résultant de la
conversion de expression2. Les bits décalés vers la droite sont éliminés. Pour préserver le signe
de l’expression d’origine, les bits de gauche sont remplis de 0 si le bit le plus significatif (le bit le
plus à gauche) de expression1 est 0 et remplis de 1 si le bit le plus significatif est 1. Le décalage
d’une valeur à droite d’une position revient à la diviser par 2 et à éliminer le reste.
Exemple
L’exemple suivant convertit 65535 en entier de 32 bits et le décale de 8 bits vers la droite.
x = 65535 >> 8
Le résultat de l’opération précédente est :
x = 255
Ceci est dû au fait que 65535 décimal est égal à 1111111111111111 binaire (seize 1),
1111111111111111 binaire décalé à droite de 8 bits est 11111111 binaire, et 11111111 binaire
est 255 décimal. Le bit le plus significatif est 0 car les entiers sont 32 bits, le bit de remplissage
étant donc 0.
L’exemple suivant convertit -1 en un entier de 32 bits et le décale de 1 bit vers la droite.
x = 1 >>1
Le résultat de l’opération précédente est :
x = -1
Ceci est dû au fait que -1 décimal est égal à 11111111111111111111111111111111 binaire
(trente-deux 1), le décalage vers la droite de 1 bit fait que le bit le moins significatif (le bit le plus
à droite) est éliminé et que le bit le plus significatif est rempli de 1. Le résultat est
11111111111111111111111111111111 (trente-deux 1) binaire, ce qui représente l’entier de
32 bits -1.
Consultez également
>>= (décalage droit au niveau du bit et affectation)
280
Chapitre 12 : Dictionnaire ActionScript
>>= (décalage droit au niveau du bit et affectation)
Disponibilité
Flash Player 5.
Usage
expression1 =>>expression2
Paramètres
expression1
Un nombre ou une expression devant être décalé(e) vers la gauche.
expression2
Un nombre ou une expression converti(e) en entier de 0 à 31.
Renvoie
Rien.
Description
Opérateur (affectation composée au niveau du bit) : cet opérateur effectue une opération de
décalage droit au niveau du bit et stocke le contenu comme résultat dans expression1.
Exemple
Les deux expressions suivantes sont équivalentes.
A >>= B
A = (A >> B)
Le code commenté suivant utilise l’opérateur (>>=) au niveau du bit. Cet exemple illustre
également l’utilisation de tous les opérateurs au niveau du bit.
function convertToBinary(number){
var result = "";
for (var i=0; i<32; i++) {
// extraire le bit le moins significatif avec AND au niveau du bit
var lsb = number & 1;
// ajouter ce bit à la chaîne de résultat
result = (lsb ? "1" : "0") + result;
// décaler le nombre de un bit vers la droite, pour voir le bit suivant
number >>= 1;}
return result;
}
trace(convertToBinary(479));
// renvoie la chaîne 00000000000000000000000111011111
// la chaîne ci-dessus est une représentation binaire
// du décimal 479
Consultez également
<< (décalage gauche au niveau du bit)
>>= (décalage droit au niveau du bit et affectation)
281
>>> (décalage droit non signé au niveau du bit)
Disponibilité
Flash Player 5.
Usage
expression1 >>> expression2
Paramètres
expression1
Un nombre ou une expression devant être décalé(e) vers la droite.
expression2
Un nombre ou une expression converti(e) en entier de 0 à 31.
Renvoie
Rien.
Description
Opérateur (au niveau du bit) : identique à l’opérateur de décalage droit au niveau du bit (>>)
excepté qu’il ne conserve pas le signe de l’expression d’origine car les bits de gauche sont
toujours remplis avec des 0.
Exemple
L’exemple suivant convertit -1 en un entier de 32 bits et le décale de 1 bit vers la droite.
x = 1 >>>1
Le résultat de l’opération précédente est :
x = 2147483647
Cela est dû au fait que -1 décimal est 11111111111111111111111111111111 binaire (trentedeux 1) et, quand vous le décalez vers la droite (non signé) de 1 bit, le bit le moins significatif
(le plus à droite) est éliminé et le bit le plus significatif (le plus à gauche) est rempli avec un 0. Le
résultat est 01111111111111111111111111111111 binaire, qui représente l’entier de 32 bits
2147483647.
Consultez également
>>= (décalage droit au niveau du bit et affectation)
282
Chapitre 12 : Dictionnaire ActionScript
>>>= (décalage droit non signé au niveau du bit et affectation)
Disponibilité
Flash Player 5.
Usage
expression1 >>>= expression2
Paramètres
expression1
Un nombre ou une expression devant être décalé(e) vers la gauche.
expression2
Un nombre ou une expression converti(e) en entier de 0 à 31.
Renvoie
Rien.
Description
Opérateur (affectation composée au niveau du bit) : effectue une opération de décalage vers la
droite au niveau du bit non signé et stocke le contenu comme résultat dans expression1. Les
deux expressions suivantes sont équivalentes :
A >>>= B
A = (A >>> B)
Consultez également
>>> (décalage droit non signé au niveau du bit), >>= (décalage droit au niveau
du bit et affectation)
Classe Accessibility
Disponibilité
Flash Player 6 version 65.
Description
La classe Accessibility gère la communication avec les lecteurs d’écran. Les méthodes de la classe
Accessibility sont statiques, c’est-à-dire qu’il n’est pas nécessaire de créer une occurrence de la
classe afin d’en utiliser les méthodes.
Afin de récupérer et de définir les propriétés accessibles pour un objet spécifique, tel qu’un
bouton, un clip, un champ de texte, utilisez la propriété _accProps. Pour déterminer si le lecteur
est exécuté dans un environnement supportant les aides d’accessibilité, utilisez
System.capabilities.hasAccessibility.
Méthode de la classe Accessibility
Méthode
Description
Accessibility.isActive()
Indique si un programme de lecture d’écran est actif.
Accessibility.updateProperties()
Met à jour la description des objets sur l’écran pour les
logiciels de lecture d’écran.
Classe Accessibility
283
Accessibility.isActive()
Disponibilité
Flash Player 6 version 65.
Usage
Accessibility.isActive()
Paramètres
Aucun.
Renvoie
Une valeur booléenne de true s’il existe des clients Microsoft Active Accessibility (MSAA) actifs
et si le lecteur est exécuté dans un environnement supportant une communication entre Flash
Player et des aides d’accessibilité, sinon false.
Description
Méthode : indique si un programme de lecture d’écran MSAA est actif et si le lecteur est exécuté
dans un environnement supportant une communication entre Flash Player et des aides
d’accessibilité. Utilisez cette méthode lorsque vous voulez que votre animation se comporte
différemment en présence d’un lecteur d’écran.
Pour déterminer si le lecteur est exécuté dans un environnement supportant les aides
d’accessibilité, utilisez System.capabilities.hasAccessibility.
Remarque : Si vous appelez cette méthode dans les une ou deux secondes suivant la première
apparition de la fenêtre Flash dans laquelle votre document est lu, vous pourrez obtenir une valeur de
renvoi false même s’il existe un client MSAA actif. Cela est dû à un mécanisme de communication
asynchrone entre les clients Flash et MSAA. Pour éviter le problème, attendez une à deux secondes
après avoir chargé votre document pour appeler cette méthode.
Consultez également
Accessibility.updateProperties(), _accProps,
System.capabilities.hasAccessibility
284
Chapitre 12 : Dictionnaire ActionScript
Accessibility.updateProperties()
Disponibilité
Flash Player 6 version 65.
Usage
Accessibility.updateProperties()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : Flash Player réexamine toutes les propriétés d’accessibilité, met à jour sa description
des objets pour les lecteurs d’écran et, si nécessaire, envoie des événements aux lecteurs d’écran
afin de signifier que des changements ont eu lieu. Pour plus d’informations sur la définition de
propriétés d’accessibilité, consultez _accProps.
Pour déterminer si le lecteur est exécuté dans un environnement supportant les aides
d’accessibilité, utilisez System.capabilities.hasAccessibility.
Si vous modifiez les propriétés d’accessibilité de plusieurs objets, un seul appel de
Accessibility.updateProperties() est nécessaire ; plusieurs appels peuvent réduire les
performances et donner des résultats de lecture d’écran incompréhensibles.
Exemple
Le code ActionScript suivant tire profit des propriétés d’accessibilité dynamiques. Cet exemple est
celui d’un bouton non texte pouvant changer l’icône affiché.
function definirIcone( numNouvelIcone, nouvelEquivalentTexte )
{
this.imageIcone = this.imagesIcone[ numNouvelIcone ];
if ( nouvelEquivalentTexte != undefined )
{
if ( this._accProps == undefined )
this._accProps = new Object();
this._accProps.name = newTextEquivalent;
Accessibility.updateProperties()
}
}
Consultez également
Accessibility.isActive(), _accProps, System.capabilities.hasAccessibility
Accessibility.updateProperties()
285
_accProps
Disponibilité
Flash Player 6 version 65.
Usage
_accProps.nomDeProp
nomDoccurrence._accProps.nomDeProp
Paramètres
nomDeProp Un nom de propriété d’accessibilité (consultez la description suivante pour
connaître les noms valides).
nomDoccurrence Le nom d’occurrence attribué à une occurrence d’un clip, d’un bouton, d’un
champ de texte dynamique ou d’un champ de texte de saisie.
Description
Propriété : vous permet de contrôler les options d’accessibilité de lecture d’écran des fichiers SWF,
des clips, des boutons, des champs de texte dynamiques et des champs de texte de saisie au
moment de l’exécution. Ces propriétés remplacent les paramètres correspondants disponibles
dans le panneau Accessibilité au cours de la programmation. Pour que les changements de ces
propriétés prennent effet, vous devez appeler Accessibility.updateProperties(). Pour plus
d’informations sur le panneau Accessibilité, consultez « Panneau Accessibilité de Flash », dans le
guide Utilisation de Flash de l’aide.
Pour déterminer si le lecteur est exécuté dans un environnement supportant les aides
d’accessibilité, utilisez System.capabilities.hasAccessibility.
Le tableau suivant répertorie le nom et le type de données de chaque propriété _accProps, son
paramètre correspondant dans le panneau Accessibilité, ainsi que les types d’objets auxquels la
propriété peut être appliquée. Le terme logique inverse signifie que le paramètre de propriété est
l’inverse du paramètre correspondant dans le panneau Accessibilité. Par exemple, définir la
propriété silent sur true revient à désactiver l’option Rendre l’animation accessible ou Rendre
l’objet accessible.
286
Propriété
Type de
données
Equivalent dans le panneau
Accessibilité
S’applique à
silent
Boolean
Rendre l’animation accessible/
Rendre l’objet accessible
(logique inverse)
Animations entières
Clips
Boutons
Texte dynamique
Texte de saisie
forceSimple
Boolean
Rendre les objets enfants accessibles Animations entières
(logique inverse)
Clips
name
String
Nom
Chapitre 12 : Dictionnaire ActionScript
Animations entières
Clips
Boutons
Texte de saisie
Propriété
Type de
données
Equivalent dans le panneau
Accessibilité
S’applique à
description
String
Description
Animations entières
Clips
Boutons
Texte dynamique
Texte de saisie
raccourci
String
Raccourci*
Clips
Boutons
Texte de saisie
*
Pour plus d’informations sur l’affectation d’un raccourci clavier à un objet accessible, consultez
Key.addListener().
Pour définir des paramètres correspondant au paramètre Ordre des tabulations du panneau
Accessibilité, utilisez la propriété Button.tabIndex, MovieClip.tabIndex, ou
TextField.tabIndex.
Il n’est pas possible de définir un paramètre d’étiquetage automatique au moment de l’exécution.
Lorsqu’elles sont faites sans le paramètre nomDoccurrence, les modifications apportées aux
propriétés _accProps s’appliquent à l’animation entière. Par exemple, le code suivant définit la
chaîne "Magasin animalier" en tant que propriété d’accessibilité nom pour l’animation entière,
puis appelle Accessibility.updateProperties() pour appliquer cette modification.
_accprops.name = "Magasin animalier";
Accessbility.updateProperties();
Au contraire, le code suivant définit la chaîne "Prix" en tant que propriété nom d’un clip avec le
nom d’occurrence prix_mc :
prix_mc._accProps.name = "Prix";
Accessbility.updateProperties();
Si vous définissez plusieurs propriétés d’accessibilité, apportez autant de modifications que
nécessaire avant d’appeler Accessibility.updateProperties(), plutôt que de l’appeler après
chaque instruction de propriété :
_accprops.name = "Magasin animalier";
animal_mc._accProps.name = "Animal";
animal_mc._accProps.description = "Chat, chien, poisson, etc.";
prix_mc._accProps.name = "Prix";
price_mc._accProps.description = "Coût d’un article";
Accessbility.updateProperties();
Si vous ne définissez pas de propriété d’accessibilité pour une animation ou un objet, toutes les
valeurs définies dans le panneau Accessibilité sont appliquées.
Lorsque vous avez défini une propriété d’accessibilité, vous ne pouvez plus reprendre la valeur
définie dans le panneau Accessibilité. Vous pouvez cependant définir la propriété à sa valeur par
défaut (false pour les valeurs booléennes, chaînes vides pour des valeurs de chaînes) en
supprimant l’objet _accProps :
monClip_mc._accProps.silent = true; // définir une propriété
// autre code ici
delete monClip_mc._accProps.silent; // récupérer la valeur par défaut
_accProps
287
Pour remplacer toutes les valeurs d’accessibilité d’un objet par les valeurs par défaut, vous pouvez
supprimer l’objet nomDoccurrence._accProps :
delete mon_btn._accProps;
Pour remplacer toutes les valeurs d’accessibilité de tous les objets par les valeurs par défaut, vous
pouvez supprimer l’objet global accProps :
delete _accProps;
Si vous définissez une propriété pour un type d’objet qui ne supporte pas cette propriété,
l’affectation de la propriété est ignorée et aucune erreur n’est retournée. Par exemple, la propriété
forceSimple n’est pas supportée pour les boutons. Une ligne similaire à la suivante est donc
ignorée :
mon_btn._accProps.forceSimple = false; //ignorée
Exemple
Vous trouverez ci-après un exemple de code ActionScript tirant profit des propriétés d’accessibilité
dynamiques. Vous pourriez affecter ce code à un bouton icône non texte pouvant changer l’icône
affiché.
function definirIcone( numNouvelIcone, nouvelEquivalentTexte )
{
this.imageIcone = this.imagesIcone[ numNouvelIcone ];
if ( nouvelEquivalentTexte != undefined )
{
if ( this._accProps == undefined )
this._accProps = new Object();
this._accProps.name = newTextEquivalent;
Accessibility.updateProperties()
}
}
Consultez également
Accessibility.isActive(), Accessibility.updateProperties(),
System.capabilities.hasAccessibility
288
Chapitre 12 : Dictionnaire ActionScript
add
Disponibilité
Flash Player 4.
Usage
chaîne1 add chaîne2
Paramètres
chaîne1, chaîne2
Une chaîne.
Renvoie
Rien.
Description
Opérateur : concatène (combine) deux ou plusieurs chaînes. L’opérateur add remplace l’opérateur
d’addition (&) de Flash 4. Les fichiers Flash 4 utilisant l’opérateur & sont automatiquement
convertis de façon à utiliser l’opérateur add pour la concaténation de chaînes lorsqu’ils sont
importés dans l’environnement auteur de Flash 5 ou d’une version ultérieure. Toutefois,
l’opérateur add n’est pas conseillé dans Flash Player5 ; Macromedia recommande l’utilisation de
l’opérateur + pour la création de contenu pour Flash Player 5 ou une version ultérieure. Utilisez
l’opérateur add pour concaténer des chaînes si vous créez des contenus pour Flash Player 4 ou une
version antérieure de ce lecteur.
Consultez également
+ (addition)
and
Disponibilité
Flash Player 4.
Usage
condition1 and condition2
Paramètres
condition1,condition2
Conditions ou expressions qui équivalent à true ou false.
Renvoie
Rien.
Description
Opérateur : effectue une opération AND logique dans Flash Player 4. Si les deux expressions
équivalent à true, l’expression entière est alors true. Cet opérateur n’est pas recommandé dans
Flash 5 ; Macromedia recommande l’utilisation de l’opérateur &&.
Consultez également
&& (AND logique)
and
289
Classe Arguments
Disponibilité
Flash Player 5 ; propriété ajoutée à Flash Player 6.
Description
La classe Arguments est un tableau qui contient les valeurs qui ont été transmises comme
paramètres à une fonction. Un objet Arguments est automatiquement créé à chaque fois qu’une
fonction est appelée dans ActionScript. Une variable locale, arguments, est également créée et
vous permet de faire référence à l’objet Arguments.
Propriétés de la classe Arguments
Propriété
Description
arguments.callee
Fait référence à la fonction appelée.
arguments.caller
Fait référence à la fonction appelante.
arguments.length
Le nombre de paramètres transmis à une fonction.
arguments.callee
Disponibilité
Flash Player 5.
Usage
arguments.callee
Description
Propriété : fait référence à la fonction qui est actuellement appelée.
Exemple
Vous pouvez utiliser la propriété arguments.callee pour créer une fonction anonyme
récurrente, comme dans l’exemple suivant :
factorial = function (x) {
if (x <= 1) {
return 1;
} else {
return x * arguments.callee(x-1);
}
};
L’exemple suivant est une fonction récurrente nommée :
function factorial (x) {
if (x <= 1) {
return 1;
} else {
return x * factorial(x-1);
}
}
290
Chapitre 12 : Dictionnaire ActionScript
arguments.caller
Disponibilité
Flash Player 6.
Usage
arguments.caller
Description
Propriété : fait référence à la fonction d’appel.
arguments.length
Disponibilité
Flash Player 5.
Usage
arguments.length
Description
Propriété : le nombre de paramètres transmis à une fonction.
Classe Array
Disponibilité
Flash Player 5 (est devenu un objet natif dans Flash Player 6, améliorant ainsi les performances de
manière significative).
Description
La classe Array vous permet d’accéder à des tableaux et de les manipuler. Un tableau est un objet
dont les propriétés sont identifiées par un nombre représentant leur position dans le tableau. Ce
nombre est appelé index. Tous les tableaux sont basés sur zéro, ce qui signifie que le premier
élément du tableau est [0], le second élément est [1], et ainsi de suite. Dans l’exemple suivant,
mon_array contient les mois de l’année.
mon_array[0]
mon_array[1]
mon_array[2]
mon_array[3]
=
=
=
=
"Janvier"
"Février"
"Mars"
"Avril"
Pour créer un objet Array, utilisez le constructeur new Array ou l’opérateur d’accès tableau ([]).
Pour accéder aux éléments d’un tableau, utilisez l’opérateur d’accès tableau ([]).
Classe Array
291
Méthodes de la classe Array
Méthode
Description
Array.concat
Concatène les paramètres et les renvoie sous forme de nouveau tableau.
Array.join()
Joint tous les éléments d’un tableau dans une chaîne.
Array.pop()
Supprime le dernier élément d’un tableau et renvoie sa valeur.
Array.push()
Ajoute un ou plusieurs éléments à la fin d’un tableau et renvoie la nouvelle
longueur du tableau.
Array.reverse()
Inverse la direction d’un tableau.
Array.shift
Supprime le premier élément d’un tableau et renvoie sa valeur.
Array.slice
Extrait une section d’un tableau et la renvoie sous forme de nouveau tableau.
Array.sort
Trie un tableau en place.
Array.sortOn()
Trie un tableau en fonction d’un champ du tableau.
Array.splice()
Ajoute et supprime des éléments d’un tableau.
Array.toString()
Renvoie une valeur de chaîne représentant les éléments dans l’objet Array.
Array.unshift()
Ajoute un ou plusieurs éléments au début d’un tableau et renvoie la nouvelle
longueur du tableau.
Méthodes de la classe Array
Propriété
Description
Array.length
Un entier non basé sur zéro spécifiant le nombre d’éléments dans un tableau.
Constructeur de l’objet Array
Disponibilité
Flash Player 5.
Usage
new Array()
new Array(longueur)
new Array(élément0, élément1, élément2,...élémentN)
Paramètres
Un entier spécifiant le nombre d’éléments dans un tableau. Dans le cas d’éléments
non contigus, le paramètre longueur spécifie le numéro d’index du dernier élément du tableau
plus 1.
Longueur
Une liste de deux ou plusieurs valeurs arbitraires. Les valeurs peuvent
être des nombres, des chaînes, des objets ou d’autres tableaux. Le premier élément d’un tableau a
toujours un index ou une position de 0.
élément0...élémentN
292
Chapitre 12 : Dictionnaire ActionScript
Renvoie
Rien.
Description
Constructeur : permet de créer un tableau. Vous pouvez utiliser le constructeur pour créer
différents types de tableaux : un tableau vide, un tableau avec une longueur spécifique, mais dont
les éléments n’ont pas de valeur, ou un tableau dont les éléments ont des valeurs spécifiques.
Usage 1 : si vous ne spécifiez aucun paramètre, un tableau de longueur zéro est créé.
Usage 2 : si vous spécifiez seulement une longueur, un tableau est créé avec le nombre longueur
d’éléments sans valeur.
Usage 3 : si vous utilisez les paramètres élément pour spécifier des valeurs, le tableau est créé avec
des valeurs spécifiques.
Exemple
Usage 1 : l’exemple suivant crée un nouvel objet Array avec une longueur initiale de 0.
mon_array = new Array();
trace(mon_array.length); // renvoie 0
Usage 2 : l’exemple suivant crée un nouvel objet Array avec une longueur initiale de 4.
mon_array = new Array(4);
trace(mon_array.length); // renvoie 4
Usage 3 : l’exemple suivant crée le nouvel objet Array go_gos_array, avec une longueur initiale
de 5.
go_gos_array = new Array("Belinda", "Gina", "Kathy", "Charlotte", "Jane");
trace(mon_array.length); // renvoie 5
trace(go_gos_array.join(", ")); // affiche les éléments
Les éléments initiaux du tableau go_gos sont identifiés comme suit :
go_gos_array[0]
go_gos_array[1]
go_gos_array[2]
go_gos_array[3]
go_gos_array[4]
=
=
=
=
=
"Belinda";
"Gina";
"Kathy";
"Charlotte";
"Jane";
Le code suivant ajoute un sixième élément au tableau go-gos_array et change le deuxième
élément :
go_gos_array[5] = "Donna";
go_gos_array[1] = "Nina"
trace(go_gos_array.join(" + "));
Consultez également
Array.length, [] (accès tableau)
Classe Array
293
Array.concat
Disponibilité
Flash Player 5.
Usage
mon_array.concat( [ valeur0,valeur1,...valeurN ])
Paramètres
valeur0,...valeurN Nombres, éléments ou chaînes devant être concaténés dans un nouveau
tableau. Si vous ne définissez aucune valeur, une copie de mon_array est créée.
Renvoie
Rien.
Description
Méthode : concatène les éléments spécifiés dans les paramètres avec les éléments de mon_array et
crée un nouveau tableau. Si les paramètres valeur spécifient un tableau, ce sont les éléments de ce
tableau qui sont concaténés et non le tableau même. Le tableau mon_array reste inchangé.
Exemple
Le code suivant concatène deux tableaux.
alpha_array = new Array("a","b","c");
numeric_array = new Array(1,2,3);
alphaNumeric_array=alpha_array.concat(numeric_array);
trace(alphaNumeric_array);
// crée le tableau ["a","b","c",1,2,3]
Le code suivant concatène trois tableaux.
num1_array = [1,3,5];
num2_array = [2,4,6];
num3_array = [7,8,9];
nums_array=num1_array.concat(num2_array,num3_array)
trace(nums_array);
// crée le tableau [1,3,5,2,4,6,7,8,9]
Les tableaux imbriqués ne sont pas aplatis de la même façon que les tableaux normaux. Les
éléments d’un tableau imbriqué ne sont pas divisés en éléments séparés dans le x_array, comme
dans l’exemple suivant.
a_array = new Array ("a","b","c");
// 2 et 3 sont des éléments d’un tableau imbriqué
n_array = new Array(1, [2, 3], 4);
x_array = a_array.concat(n_array);
trace(x_array[0]); // "a"
trace(x_array[1]); // "b"
trace(x_array[2]); // "c"
trace(x_array[3]); // 1
trace(x_array[4]); // 2, 3
trace(x_array[5]); // 4
294
Chapitre 12 : Dictionnaire ActionScript
Array.join()
Disponibilité
Flash Player 5.
Usage
mon_array.join([séparateur])
Paramètres
Un caractère ou une chaîne qui sépare les éléments de tableau dans la chaîne
renvoyée. Si vous omettez ce paramètre, une virgule est utilisée comme séparateur par défaut.
Séparateur
Renvoie
Chaînes.
Description
Méthode : convertit les éléments d’un tableau en chaînes, insère le séparateur spécifié entre les
éléments, les concatène, et renvoie la chaîne résultante. Un tableau imbriqué est toujours séparé
par une virgule et non par le séparateur transmis à la méthode join().
Exemple
L’exemple suivant crée un tableau avec trois éléments : Terre, Lune et Soleil. Il joint ensuite le
tableau trois fois —d’abord en utilisant le séparateur par défaut (une virgule et un espace), puis en
utilisant un tiret, puis le signe plus (+)— et les affiche dans le panneau de sortie :
a_array = new Array("Terre","Lune","Soleil")
trace(a_array.join());
// renvoie Terre, Lune, Soleil
trace(a_array.join(" - "));
// renvoie Terre - Lune - Soleil
trace(a_array.join(" + "));
// renvoie Terre + Lune + Soleil
Array.join()
295
Array.length
Disponibilité
Flash Player 5.
Usage
mon_array.length
Description
Propriété : un entier non basé sur zéro spécifiant le nombre d’éléments dans un tableau. Cette
propriété est automatiquement mise à jour lorsque de nouveaux éléments sont ajoutés au tableau.
Lorsque vous affectez une valeur à un élément de tableau (par exemple, mon_array[index] =
valeur), si index est un nombre et index+1 est supérieur à la propriété length, la propriété
length est mise à jour à index+1.
Exemple
Le code suivant explique la façon dont la propriété length est mise à jour.
mon_array = new Array();
trace(mon_array.length);
mon_array[0] = 'a';
trace(mon_array.length);
mon_array[1] = 'b';
trace(mon_array.length);
mon_array[9] = 'c';
trace(mon_array.length);
// la longueur initiale est 0
// mon_array.length est mis à jour à 1
// mon_array.length est mis à jour à 2
// mon_array.length est mis à jour à 10
Array.pop()
Disponibilité
Flash Player 5.
Usage
mon_array.pop()
Paramètres
Aucun.
Renvoie
La valeur du dernier élément dans le tableau spécifié.
Description
Méthode : supprime le dernier élément d’un tableau et renvoie la valeur de cet élément.
Exemple
Le code suivant crée le tableau mesAnimaux contenant quatre éléments et supprime le dernier
élément.
mesAnimaux = ["chat", "chien", "oiseau", "poisson"];
popped = mesAnimaux.pop();
trace(popped);
// renvoie poisson
296
Chapitre 12 : Dictionnaire ActionScript
Array.push()
Disponibilité
Flash Player 5.
Usage
mon_array.push(valeur,...)
Paramètres
Valeur
Une ou plusieurs valeurs à ajouter au tableau.
Renvoie
La longueur du nouveau tableau.
Description
Méthode : ajoute un ou plusieurs éléments à la fin du tableau et renvoie la nouvelle longueur du
tableau.
Exemple
L’exemple suivant crée le tableau mesAnimaux contenant deux éléments, chat et chien. La
deuxième ligne ajoute deux éléments au tableau. Après l’appel de la méthode push(), la variable
pushed contient quatre éléments. La méthode push() renvoyant la nouvelle longueur du tableau,
l’action trace() de la dernière ligne envoie la nouvelle longueur de mesAnimaux (4) au panneau
de sortie :
mesAnimaux = ["chat", "chien"];
pushed = mesAnimaux.push("oiseau", "poisson");
trace(pushed);
Array.push()
297
Array.reverse()
Disponibilité
Flash Player 5.
Usage
mon_array.reverse()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : inverse le tableau en place.
Exemple
L’exemple suivant illustre cette méthode.
var numbers_array = [1, 2, 3, 4, 5, 6];
trace(numbers_array.join()); //1,2,3,4,5,6
numbers_array.reverse();
trace(numbers_array.join()); // 6,5,4,3,2,1
298
Chapitre 12 : Dictionnaire ActionScript
Array.shift
Disponibilité
Flash Player 5.
Usage
mon_array.shift()
Paramètres
Aucun.
Renvoie
Le premier élément d’un tableau.
Description
Méthode : supprime le premier élément d’un tableau et renvoie sa valeur.
Exemple
Le code suivant crée le tableau mesAnimaux puis supprime le premier élément du tableau et
l’affecte à la variable shifted.
var mesAnimaux_array = ["chat", "chien", "oiseau", "poisson"];
shifted = mesAnimaux_array.shift();
trace(shifted); // renvoie "chat"
Consultez également
Array.pop()
Array.shift
299
Array.slice
Disponibilité
Flash Player 5.
Usage
mon_array.slice( [ debut [ , fin ] ] )
Paramètres
Un nombre spécifiant l’index du point de début de la section. Si debut est un nombre
négatif, le point de début commence à la fin du tableau, où -1 est le dernier élément.
debut
Un nombre spécifiant l’index du point de fin de la section. Si vous omettez ce paramètre, la
section comprend tous les éléments du début à la fin du tableau. Si fin est un nombre négatif, le
point de fin est spécifié depuis la fin du tableau, où -1 est le dernier élément.
fin
Renvoie
Un tableau.
Description
Méthode : extrait une section ou une sous-chaîne du tableau et la renvoie sous forme de nouveau
tableau sans modifier le tableau original. Le tableau renvoyé comprend l’élément debut et tous les
éléments jusqu’à l’élément fin (exclu).
Si vous ne définissez aucun paramètre, une copie de mon_array est créée.
300
Chapitre 12 : Dictionnaire ActionScript
Array.sort
Disponibilité
Flash Player 5 ; fonctionnalités supplémentaires ajoutées à Flash Player 7.
Usage
mon_array.sort()
mon_array.sort(fonctionDeComparaison)
mon_array.sort(option | option |... )
mon_array.sort(fonctionDeComparaison, option | option |... )
Paramètres
Une fonction de comparaison facultative utilisée pour déterminer
l’ordre de tri des éléments d’un tableau. Etant donné les éléments A et B, le résultat de
fonctionDeComparaison peut prendre l’une des trois valeurs suivantes :
fonctionDeComparaison
• -1 si A doit apparaître avant B dans la séquence triée
• 0 si A = B
• -1 si A doit apparaître après B dans la séquence triée
Un ou plusieurs nombres ou chaînes, séparés par l’opérateur | (OR au niveau du bit)
qui modifie le comportement du tri par rapport au tri par défaut. Les valeurs suivantes sont
possibles pour option :
option
•
•
•
•
•
1 ou Array.CASEINSENSITIVE
2 ou Array.DESCENDING
4 ou Array.UNIQUE
8 ou Array.RETURNINDEXEDARRAY
16 ou Array.NUMERIC
Pour plus d’informations sur ce paramètre, consultez Array.sortOn().
Renvoie
La valeur renvoyée dépend de la définition des paramètres :
• Si vous définissez une valeur de 4 ou Array.UNIQUE pour option et que deux éléments ou
•
•
plus triés comportent des champs de tri identiques, Flash renvoie une valeur de 0 et ne modifie
pas le tableau.
Si vous définissez une valeur de 8 ou Array.RETURNINDEXEDARRAY pour option, Flash
renvoie un tableau illustrant les résultats du tri et ne modifie pas le tableau.
Sinon, Flash ne renvoie aucune donnée et modifie le tableau d’après l’ordre du tri.
Description
Méthode : trie les éléments dans un tableau. Flash trie en fonction des valeurs ASCII (Unicode).
Si l’un ou l’autre des éléments comparés ne comprend pas le champ défini dans le paramètre
nomDeChamp, le champ est considéré undefined et les éléments sont placés les uns à la suite des
autres dans le tableau trié, sans ordre particulier.
Array.sort
301
Par défaut, Array.sort() fonctionne comme suit :
• Le tri est sensible à la casse (Z précède a).
• Le tri est croissant (a précède b).
• Le tableau est modifié d’après l’ordre de tri ; si plusieurs éléments comportent des champs de
•
•
tri identiques, ils sont placés les uns à la suite des autres dans le tableau trié, sans ordre
particulier.
Les champs numériques sont triés comme s’il s’agissait de chaînes, 100 précède donc 99 car
« 1 » constitue une valeur de chaîne inférieure à « 9 ».
Aucune donnée n’est renvoyée.
Si vous souhaitez trier différemment, créez une fonction de tri et transmettez son nom dans le
paramètre fonctionDeComparaison. Par exemple, créez une fonction de tri si vous souhaitez
trier par ordre alphabétique par le dernier nom, par ordre croissant, puis par code postal, par ordre
décroissant.
Si vous souhaitez définir un ou plusieurs champs sur lesquels procéder au tri, en utilisant le tri par
défaut ou le paramètre options, utilisez Array.sortOn().
Exemple
Usage 1 : l’exemple suivant illustre l’utilisation de Array.sort avec et sans valeur définie pour
option :
var fruits_array = ["oranges", "pommes", "fraises", "ananas", "cerises"];
trace(fruits_array.join());
fruits_array.sort();
trace(fruits_array.join());
fruits_array.sort(Array.DESCENDING);
trace(fruits_array.join());
Le panneau de sortie affiche les résultats suivants :
oranges,pommes,fraises,ananas,cerises// tableau d’origine
pommes,cerises,oranges,ananas,fraises// tri par défaut
fraises,ananas,oranges,cerises,pommes// tri décroissant
Usage 2 : l’exemple suivant utilise Array.sort() avec une fonction de comparaison.
var motsDePasse =
["maman:séduisante","anna:bague","jacques:magazine","anne:maison","régina:s
tupide"];
function order (a,b){
//Les entrées à trier se présentent sous la forme nom:mot de passe
//Trier en n’utilisant que la partie du nom de l’entrée comme clé.
var nom1 =a.split(":")[0 ];
var nom2 =b.split(":")[0 ];
if (nom1 <nom2) {
return -1;
}
else if (nom1 >nom2) {
return 1;
}
else
return 0;
}
}
trace ("Non trié :");
trace (motsDePasse.join());
302
Chapitre 12 : Dictionnaire ActionScript
motsDePasse.sort(order);
trace ("Trié :");
trace (motsDePasse.join());
Le panneau de sortie affiche les résultats suivants :
Non trié :
maman:séduisante,anna:bague,jacques:magazine,anne:maison,régine:stupide
Trié :
anna:bague,anne:maison,jacques:magazine,maman:séduisante,régine:stupide
Consultez également
| (OR au niveau du bit), Array.sortOn()
Array.sortOn()
Disponibilité
Flash Player 6 ; fonctionnalités supplémentaires ajoutées à Flash Player 7.
Usage
mon_array.sortOn("nomDeChamp")
mon_array.sortOn("nomDeChamp", option | option |... )
mon_array.sortOn( [ "nomDeChamp", "nomDeChamp" , ... ] )
mon_array.sortOn( [ "nomDeChamp", "nomDeChamp" , ... ] , option | option |... )
Remarque : Lorsqu’il y a des crochets ([]), vous devez obligatoirement les inclure dans le code, c’està-dire que les crochets ne représentent pas des paramètres facultatifs.
Paramètres
nomDeChamp
Une chaîne qui identifie un champ (dans un élément du tableau) à utiliser comme
valeur de tri.
Un ou plusieurs nombres ou chaînes, séparés par l’opérateur | (OR au niveau du bit)
qui modifie le comportement du tri par rapport au tri par défaut. Les valeurs suivantes sont
possibles pour option :
option
•
•
•
•
•
1 ou Array.CASEINSENSITIVE
2 ou Array.DESCENDING
4 ou Array.UNIQUE
8 ou Array.RETURNINDEXEDARRAY
16 ou Array.NUMERIC
Chacune de ces options est décrite plus en détail dans la section « Description » ci-dessous.
Array.sortOn()
303
Renvoie
La valeur renvoyée dépend de la définition des paramètres :
• Si vous définissez une valeur de 4 ou Array.UNIQUE pour option et que deux éléments ou
•
•
plus triés comportent des champs de tri identiques, Flash renvoie une valeur de 0 et ne modifie
pas le tableau.
Si vous définissez une valeur de 8 ou Array.RETURNINDEXEDARRAY pour option, Flash
renvoie un tableau illustrant les résultats du tri et ne modifie pas le tableau.
Sinon, Flash ne renvoie aucune donnée et modifie le tableau d’après l’ordre du tri.
Description
Méthode : trie les éléments d’un tableau en fonction d’un ou plusieurs champs du tableau. Si vous
définissez plusieurs paramètres nomDeChamp, le premier champ représente le champ de tri
principal, le deuxième représente le champ de tri suivant, etc. Flash trie en fonction des valeurs
ASCII (Unicode). Si l’un ou l’autre des éléments comparés ne comprend pas le champ défini dans
le paramètre nomDeChamp, le champ est considéré undefined et les éléments sont placés les uns à
la suite des autres dans le tableau trié, sans ordre particulier.
Par défaut, Array.sortOn() fonctionne comme suit :
• Le tri est sensible à la casse (Z précède a).
• Le tri est croissant (a précède b).
• Le tableau est modifié d’après l’ordre de tri ; si plusieurs éléments comportent des champs de
•
•
tri identiques, ils sont placés les uns à la suite des autres dans le tableau trié, sans ordre
particulier.
Les champs numériques sont triés comme s’il s’agissait de chaînes, 100 précède donc 99 car
« 1 » constitue une valeur de chaîne inférieure à « 9 ».
Aucune donnée n’est renvoyée.
Vous pouvez utiliser les indicateurs option pour remplacer ces valeurs par défaut. Les exemples
suivants utilisent différentes formes de l’indicateur option à titre d’illustration. Si vous souhaitez
trier un tableau simple (un tableau avec un seul champ par exemple) ou si vous souhaitez définir
un ordre de tri non supporté par le paramètre options, utilisez Array.sort.
Pour définir plusieurs indicateurs au format numérique, séparez-les à l’aide de l’opérateur | (OR
ou regroupez les indicateurs. Le code suivant illustre les diverses méthodes
permettant de définir un tri décroissant numérique :
au niveau du bit)
mon_array.sortOn(unNomDeChamp, 2 | 16);
mon_array.sortOn(unNomDeChamp, 18);
mon_array.sortOn(unNomDeChamp, Array.DESCENDING | Array.NUMERIC);
Des conseils de code (consultez Utilisation des conseils de code, page 68) sont activés si vous utilisez
la forme de chaîne de l’indicateur (DESCENDING par exemple) plutôt que la forme numérique (2).
Considérons par exemple le tableau suivant :
var mon_array:Array = new Array();
mon_array.push({motDePasse: "Bob", age:29});
mon_array.push({motDePasse: "abcd", age:3});
mon_array.push({motDePasse: "barb", age:35});
mon_array.push({motDePasse: "catchy", age:4});
304
Chapitre 12 : Dictionnaire ActionScript
L’application d’un tri par défaut sur le champ du mot de passe génère les résultats suivants :
mon_array.sortOn("motDePasse")
// Bob
// abcd
// barb
// catchy
L’application d’un tri non sensible à la casse sur le champ du mot de passe génère les résultats
suivants :
mon_array.sortOn("motDePasse", Array.CASEINSENSITIVE)
// abcd
// barb
// Bob
// catchy
L’application d’un tri décroissant non sensible à la casse sur le champ du mot de passe génère les
résultats suivants :
mon_array.sortOn("motDePasse", 1|2)
// catchy
// Bob
// barb
// abcd
L’application d’un tri par défaut sur le champ d’âge génère les résultats suivants :
mon_array.sortOn("age")
// 29
// 3
// 35
// 4
L’application d’un tri numérique sur le champ d’âge génère les résultats suivants :
mon_array.sortOn("age", 16)
// 3
// 4
// 29
// 35
L’application d’un tri numérique décroissant sur le champ d’âge génère les résultats suivants :
mon_array.sortOn("age", 18)
// 35
// 29
// 4
// 3
L’application d’un tri modifie les éléments du tableau comme suit :
//
//
//
//
//
Avant le tri
mon_array[0].age
mon_array[1].age
mon_array[2].age
mon_array[3].age
=
=
=
=
29;
3;
35;
4;
// Après un tri ne définissant pas la valeur 8 pour option
mon_array.sortOn("age", Array.NUMERIC);
// mon_array[0].age = 3;
// mon_array[1].age = 4;
// mon_array[2].age = 29;
// mon_array[3].age = 35;
Array.sortOn()
305
L’application d’un tri qui renvoie un tableau d’index ne modifie pas les éléments du tableau :
//
//
//
//
//
Avant le tri
mon_array[0].age
mon_array[1].age
mon_array[2].age
mon_array[3].age
=
=
=
=
29;
3;
35;
4;
// Après un tri qui renvoie un tableau contenant des valeurs d’index
// Notez que le tableau d’origine reste inchangé.
// Vous pouvez ensuite utiliser le tableau renvoyé pour afficher les
informations triées
// sans modifier le tableau d’origine.
var indexArray:Array = mon_array.sortOn("age", Array.RETURNINDEXEDARRAY);
// mon_array[0].age = 29;
// mon_array[1].age = 3;
// mon_array[2].age = 35;
// mon_array[3].age = 4;
Exemple
Cet exemple crée un nouveau tableau et le trie en fonction des champs nom et ville : le premier
tri utilise nom comme première valeur de tri et ville comme la seconde. Le second tri utilise
ville comme première valeur de tri et nom comme la seconde.
var enr_array = new Array();
enr_array.push( { nom: "john", ville: "omaha", codePostal: 68144 } );
enr_array.push( { nom: "john", ville: "kansas city", codePostal: 72345 } );
enr_array.push( { nom: "bob", ville: "omaha", codePostal: 94010 } );
for(i=0; i<enr_array.length; i++) {
trace(enr_array[i].nom + ", " + enr_array[i].ville);
}
// a le résultat suivant
// john, omaha
// john, kansas city
// bob, omaha
rec_array.sortOn( [ "nom", "ville" ]);
for(i=0; i<enr_array.length; i++) {
trace(enr_array[i].nom + ", " + enr_array[i].ville);
}
// a le résultat suivant
// bob, omaha
// john, kansas city
// john, omaha
rec_array.sortOn( ["ville", "nom" ]);
for(i=0; i<enr_array.length; i++) {
trace(enr_array[i].nom + ", " + enr_array[i].ville);
}
// a le résultat suivant
// john, kansas city
// bob, omaha
// john, omaha
Consultez également
| (OR au niveau du bit), Array.sort
306
Chapitre 12 : Dictionnaire ActionScript
Array.splice()
Disponibilité
Flash Player 5.
Usage
mon_array.splice(debut, nombreAsupprimer [, valeur0, valeur1...valeurN])
Paramètres
debut
L’index de l’élément dans le tableau dans lequel commence l’insertion ou la suppression.
Le nombre d’éléments à supprimer. Ce nombre comprend l’élément
spécifié dans le paramètre debut. Si aucune valeur n’est spécifiée pour nombreAsupprimer, la
méthode supprime toutes les valeurs en commençant par l’élément debut jusqu’au dernier
élément du tableau. Si la valeur est 0, aucun élément n’est supprimé.
nombreAsupprimer
valeur Paramètre facultatif spécifiant les valeurs à insérer dans le tableau au point d’insertion
spécifié dans le paramètre start.
Renvoie
Rien.
Description
Méthode : ajoute et supprime des éléments d’un tableau. Cette méthode modifie le tableau sans
en faire de copie.
Array.splice()
307
Array.toString()
Disponibilité
Flash Player 5.
Usage
mon_array.toString()
Paramètres
Aucun.
Renvoie
Une chaîne.
Description
Méthode : renvoie une valeur chaîne représentant les éléments de l’objet Array spécifié. Chaque
élément du tableau, à compter de l’index 0 et jusqu’à l’index mon_array.length-1, est converti
en chaîne concaténée séparée par des virgules.
Exemple
L’exemple suivant crée mon_array, le convertit en une chaîne et affiche 1,2,3,4,5 dans le panneau
de sortie.
mon_array = new Array();
mon_array[0] = 1;
mon_array[1] = 2;
mon_array[2] = 3;
mon_array[3] = 4;
mon_array[4] = 5;
trace(mon_array.toString());
Array.unshift()
Disponibilité
Flash Player 5.
Usage
mon_array.unshift(valeur1,valeur2,...valeurN)
Paramètres
valeur1,...valeurN
Un ou plusieurs nombres, éléments ou variables devant être insérés au
début du tableau.
Renvoie
La nouvelle longueur du tableau.
Description
Méthode : ajoute un ou plusieurs éléments au début d’un tableau et renvoie la nouvelle longueur
du tableau.
308
Chapitre 12 : Dictionnaire ActionScript
Array()
Disponibilité
Flash Player 6
Usage
Array()
Array( [élément0 [, élément1 , élément2,...élémentN ] ])
Paramètres
élément
Un ou plusieurs éléments à placer dans le tableau.
Renvoie
Un tableau.
Description
Fonction de conversion : crée un nouveau tableau vide ou convertit des éléments spécifiés en un
tableau. L’utilisation de cette fonction revient à créer un tableau à l’aide du constructeur de
tableau (consultez Constructeur de l’objet Array, page 292).
Array()
309
asfunction
Disponibilité
Flash Player 5.
Usage
asfunction:fonction,"paramètre"
Paramètres
fonction
paramètre
Un identifiant pour une fonction.
Une chaîne qui est transmise à la fonction nommée dans le paramètre fonction.
Renvoie
Rien.
Description
Protocole : un protocole spécial pour les adresses URL dans les champs de texte HTML. Dans les
champs de texte HTML, un hyperlien peut être créé avec la balise HTML A. L’attribut HREF de la
balise A contient une URL qui peut être pour un protocole standard comme HTTP, HTTPS ou
FTP. Le protocole asfunction est un protocole supplémentaire spécifique à Flash, selon lequel le
lien invoque une fonction ActionScript.
Exemple
Dans cet exemple, la fonction MaFonc() est définie dans les trois premières lignes de code. L’objet
TextField monChampDeTexte est associé à un champ de texte HTML. Le texte « Cliquez-moi ! »
est un hyperlien à l’intérieur du champ de texte. La fonction MaFonc() est appelée lorsque
l’utilisateur clique sur l’hyperlien :
function maFonc(param){
trace("Vous avez cliqué sur moi !" Le paramètre était "+arg);
}
DehtmlText ="<A HREF=\"asfunction:MaFonc,Foo \">Cliquez sur moi!</A>";
Lorsque l’hyperlien est activé, le résultat suivant est affiché dans le panneau de sortie :
Vous m’avez cliqué !
Le paramètre était unParam
Classe Boolean
Disponibilité
Flash Player 5 (est devenu un objet natif dans Flash Player 6, améliorant ainsi les performances de
manière significative).
Description
La classe Boolean est un objet enveloppe ayant la même fonctionnalité que l’objet Boolean
standard de JavaScript. Utilisez l’objet Boolean pour récupérer le type de données primitif ou la
représentation chaîne d’un objet Boolean.
Vous devez utiliser le constructeur new Boolean() pour créer un objet Boolean avant d’en
appeler les méthodes.
310
Chapitre 12 : Dictionnaire ActionScript
Méthodes de la classe Boolean
Méthode
Description
Boolean.toString
Renvoie la représentation chaîne ("true" ou "false") de l’objet Boolean.
Boolean.valueOf()
Renvoie le type de valeur primitif de l’objet Boolean spécifié.
Constructeur de la classe Boolean
Disponibilité
Flash Player 5.
Usage
new Boolean([x])
Paramètres
x
Toute expression. Ce paramètre est facultatif.
Renvoie
Rien.
Description
Constructeur : crée un objet Boolean. Si vous omettez le paramètre x, l’objet Boolean est initialisé
avec la valeur false. Si vous spécifiez une valeur pour le paramètre x, la méthode l’évalue et
renvoie le résultat sous forme de valeur booléenne selon les règles de la fonction Boolean().
Exemple
Le code suivant crée un objet booléen vide appelé maValeurBooléenne.
maValeurBooléenne = new Boolean();
Boolean.toString
Disponibilité
Flash Player 5.
Usage
maValeurBooléenne.toString()
Paramètres
Aucun.
Renvoie
Une valeur booléenne.
Description
Méthode : renvoie la représentation chaîne, ("true” ou "false”), de l’objet Boolean.
Boolean.toString
311
Boolean.valueOf()
Disponibilité
Flash Player 5.
Usage
maValeurBooléenne.valueOf()
Paramètres
Aucun.
Renvoie
Une valeur booléenne.
Description
Méthode : renvoie true si le type de valeur primitive de l’objet Boolean défini est vrai, false s’il
est sur faux.
Exemple
var x:Boolean = new Boolean();
trace(x.valueOf());
// faux
x = (6==3+3);
trace(x.valueOf());
// vrai
312
Chapitre 12 : Dictionnaire ActionScript
Boolean()
Disponibilité
Flash Player 5 ; comportement mis à jour dans Flash Player 7.
Usage
Boolean(expression)
Paramètres
expression
Une expression à convertir en valeur booléenne.
Renvoie
Une valeur booléenne ou expression de la valeur, comme décrit ci-dessous.
Description
Fonction : convertit le paramètre expression en valeur booléenne et renvoie une valeur comme
suit :
Si expression est une valeur booléenne, la valeur renvoyée est expression.
Si expression est un nombre, la valeur renvoyée est true si le nombre n’est pas zéro ; sinon, la
valeur renvoyée est false.
Si expression est une chaîne, la valeur renvoyée est comme suit :
• Dans les fichiers publiés pour Flash Player 6 ou une version antérieure, la chaîne est tout
d’abord convertie en un numéro ; la valeur est true si le numéro est non zéro, sinon false.
• Dans les fichiers publiés pour Flash Player 7 ou une version ultérieure, le résultat est true si la
chaîne présente une longueur supérieure à zéro ; la valeur est false pour une chaîne vide.
Si expression est undefined, la valeur renvoyée est false.
Si expression est un clip ou un objet, la valeur renvoyée est true.
Consultez également
Classe Boolean
Boolean()
313
break
Disponibilité
Flash Player 4.
Usage
break
Paramètres
Aucun.
Renvoie
Rien.
Description
Instruction : apparaît dans une boucle (for, for..in, do while ou while) ou dans un bloc
d’instructions associé à un cas particulier dans une action switch. L’action break indique à Flash
d’ignorer le reste du corps de la boucle, de stopper l’action de boucle et d’exécuter l’instruction
qui suit l’instruction de boucle. Lors de l’emploi d’une action break, l’interprète de Flash ignore
le reste des instructions dans ce bloc case et passe à la première instruction suivant l’action
switch le contenant. Utilisez l’action break pour sortir d’une série de boucles imbriquées.
Exemple
L’exemple suivant utilise l’action break pour sortir d’une boucle sans fin.
i = 0;
while (true) {
if (i >= 100) {
break;
}
i++;
}
Consultez également
break, for, for..in, do while, while, switch, case
Classe Button
Disponibilité
Flash Player 6.
Description
Tous les symboles bouton d’un fichier SWF sont des occurrences de l’objet Button. Vous pouvez
donner un nom d’occurrence à un bouton dans l’inspecteur des propriétés et utiliser les méthodes
et propriétés de la classe Button pour le manipuler avec ActionScript. Les noms d’occurrence de
bouton sont affichés dans l’explorateur d’animations et dans la boîte de dialogue Insérer un
chemin cible du panneau Actions.
La classe Button hérite de la Classe Object.
314
Chapitre 12 : Dictionnaire ActionScript
Méthodes de la classe Button
Méthode
Description
Button.getDepth
Renvoie la profondeur d’une occurrence de bouton.
Propriétés de la classe Button
Propriété
Description
Button._alpha
La valeur de transparence d’une occurrence de bouton.
Button.enabled
Indique si un bouton est actif.
Button._focusrect
Indique si un bouton avec focus est encadré d’un rectangle jaune.
Button._height
La hauteur d’une occurrence de bouton, en pixels.
Button._highquality
Le niveau d’un anti-aliasing appliqué au fichier SWF en cours.
Button.menu
Associe un objet ContextMenu à l’objet button.
Button._name
Le nom d’occurrence d’une occurrence de bouton.
Button._parent
Une référence au clip ou à l’objet contenant le clip ou objet courant.
Button._quality
Indique la qualité de rendu du fichier SWF.
Button._rotation
Le degré de rotation d’une occurrence de bouton.
Button._soundbuftime
Nombre de secondes nécessaires au pré-chargement d’un son.
Button.tabEnabled
Indique si un bouton est inclus dans l’ordre de tabulation automatique.
Button.tabIndex
Indique l’ordre de tabulation d’un objet.
Button._target
Le chemin cible d’une occurrence de bouton.
Button.trackAsMenu
Indique si d’autres boutons peuvent recevoir des événements de
relâchement du bouton de la souris.
Button._url
L’URL du fichier SWF créateur de l’occurrence de bouton.
Button.useHandCursor
Indique si le curseur de main est affiché lorsque la souris passe au-dessus
d’un bouton.
Button._visible
Une valeur booléenne déterminant si l’occurrence d’un bouton est
masquée ou visible.
Button._width
La largeur d’une occurrence de bouton, en pixels.
Button._x
La coordonnée x d’une occurrence de bouton.
Button._xmouse
La coordonnée x du curseur par rapport à une occurrence de bouton.
Button._xscale
La valeur spécifiant le pourcentage de redimensionnement horizontal
d’une occurrence de bouton.
Button._y
La coordonnée y d’une occurrence de bouton.
Button._ymouse
La coordonnée y du curseur par rapport à une occurrence de bouton.
Button._yscale
La valeur spécifiant le pourcentage de redimensionnement vertical d’une
occurrence de bouton.
Classe Button
315
Gestionnaire d’événement de la classe Button
Gestionnaire
d’événement
Description
Button.onDragOut
Invoqué lorsqu’une pression est exercée sur le bouton de la souris alors
que le pointeur se trouve sur le bouton et qu’il passe ensuite en dehors
du bouton.
Button.onDragOver
Invoqué lorsque l’utilisateur appuie sur le bouton de la souris et la fait
glisser en dehors du bouton, puis revient au-dessus de celui-ci.
Button.onKeyUp
Invoqué lorsqu’une touche est relâchée.
Button.onKillFocus
Invoqué lorsque le focus est retiré d’un bouton.
Button.onPress
Invoqué lorsque le bouton de la souris est enfoncé alors que le pointeur
au-dessus d’un bouton.
Button.onRelease
Invoqué lorsque le bouton de la souris est relâché alors que le pointeur
au-dessus d’un bouton.
Button.onReleaseOutside
Invoqué lorsque la souris est relâchée alors que le pointeur se trouve au
dehors du bouton après l’enfoncement du bouton pendant que le
pointeur est à l’intérieur du bouton.
Button.onRollOut
Invoqué lorsque le pointeur passe à l’extérieur d’un bouton.
Button.onRollOver
Invoqué lorsque le pointeur de la souris passe au-dessus d’un bouton.
Button.onSetFocus
Invoqué lorsqu’un bouton a le focus de saisie et qu’une touche est
relâchée.
Button._alpha
Disponibilité
Flash Player 6.
Usage
mon_btn._alpha
Description
Propriété : la valeur de transparence alpha du bouton spécifié par mon_btn. Les valeurs valides
vont de 0 (transparence complète) à 100 (opacité complète). La valeur par défaut est 100. Les
objets d’un bouton avec _alpha défini sur 0 sont actifs, même s’ils sont invisibles.
Exemple
Le code suivant définit la propriété _alpha d’un bouton nommé star_btn à 30 % lorsque
l’utilisateur clique sur ce bouton :
on(release) {
star_btn._alpha = 30;
}
Consultez également
MovieClip._alpha, TextField._alpha
316
Chapitre 12 : Dictionnaire ActionScript
Button.enabled
Disponibilité
Flash Player 6.
Usage
mon_btn.enabled
Description
Propriété : une valeur booléenne spécifiant si un bouton est activé. La valeur par défaut est true.
Button._focusrect
Disponibilité
Flash Player 6.
Usage
mon_btn._focusrect
Description
Propriété : une valeur booléenne spécifiant si un rectangle jaune apparaît autour du bouton avec
focus clavier. Cette propriété peut annuler la propriété _focusrect globale.
Button.getDepth
Disponibilité
Flash Player 6.
Usage
mon_btn.getDepth()
Renvoie
Un entier.
Description
Méthode : renvoie la profondeur d’une occurrence de bouton.
Button.getDepth
317
Button._height
Disponibilité
Flash Player 6.
Usage
mon_btn._height
Description
Propriété : hauteur du bouton, en pixels.
Exemple
L’exemple de code suivant définit la hauteur et la largeur d’un bouton lorsque l’utilisateur clique
sur la souris :
mon_btn._width = 200;
mon_btn._height = 200;
Button._highquality
Disponibilité
Flash Player 6.
Usage
mon_btn._highquality
Description
Propriété (globale) : spécifie le niveau d’anti-aliasing appliqué au fichier SWF en cours. Spécifiez
2 (qualité maximum) pour appliquer une qualité élevée avec le lissage bitmap toujours actif.
Spécifiez 1 (qualité élevée) pour appliquer l’anti-aliasing ; cela permettra de lisser les bitmaps si le
fichier SWF ne contient pas d’animation. Spécifiez 0 (faible qualité) pour empêcher l’antialiasing.
Consultez également
_quality
318
Chapitre 12 : Dictionnaire ActionScript
Button.menu
Disponibilité
Flash Player 7.
Utilisation
mon_bouton.menu = menuContextuel
Paramètres
menuContextuel
Un objet ContextMenu.
Description
Propriété : associe le menuContextuel de l’objet ContextMenu au bouton mon_bouton. La classe
ContextMenu vous permet de modifier le menu contextuel qui apparaît quand l’utilisateur clique
avec le bouton droit de la souris (Windows) ou enfonce la touche Contrôle (Macintosh) dans
Flash Player.
Exemple
L’exemple suivant affecte un objet ContextMenu à un objet Button nommé enregistrer_btn.
L’objet ContextMenu contient une seule commande de menu (étiqueté « Enregistrer » avec une
fonction gestionnaire de rappel appelée doSave (masquée).
var menu_cm = new ContextMenu();
menu_cm.customItems.push(new ContextMenuItem("Enregistrer...", doSave));
function doSave(menu, obj) {
// "Enregistrer" code ici
}
enregistrer_btn.menu = menu_cm;
Voir aussi
Classe ContextMenu, Classe ContextMenuItem, MovieClip.menu, TextField.menu
Button._name
Disponibilité
Flash Player 6.
Usage
mon_btn._name
Description
Propriété : nom de l’occurrence du bouton spécifié par mon_btn.
Button._name
319
Button.onDragOut
Disponibilité
Flash Player 6.
Usage
mon_btn.onDragOut = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’une pression est exercée sur le bouton de la souris
alors que le pointeur se trouve sur le bouton et qu’il passe ensuite en dehors du bouton.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
320
Chapitre 12 : Dictionnaire ActionScript
Button.onDragOver
Disponibilité
Flash Player 6.
Usage
mon_btn.onDragOver = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque l’utilisateur appuie sur le bouton de la souris et la fait
glisser en dehors du bouton, puis revient au-dessus de celui-ci.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour le gestionnaire onKeyDown qui envoie une action
trace() au panneau de sortie :
mon_btn.onDragOver = function () {
trace ("onDragOver appelé");
};
Consultez également
Button.onKeyUp
Button.onDragOver
321
Button.onKeyDown
Disponibilité
Flash Player 6.
Usage
mon_btn.onKeyDown = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un bouton a le focus clavier et qu’une touche est
enfoncée. Le gestionnaire d’événement onKeyDown est invoqué sans paramètres. Vous pouvez
utiliser Key.getAscii() et Key.getCode() afin de déterminer quelle touche a été enfoncée.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
Dans l’exemple suivant, une fonction envoyant une action trace() au panneau de sortie est
définie pour le gestionnaire onKeyDown.
mon_btn.onKeyDown = function () {
trace ("onKeyDown appelé");
};
Consultez également
Button.onKeyUp
322
Chapitre 12 : Dictionnaire ActionScript
Button.onKeyUp
Disponibilité
Flash Player 6.
Usage
mon_btn.onKeyUp = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un bouton a le focus de saisie et qu’une touche est
relâchée. Le gestionnaire d’événement onKeyUp est invoqué sans paramètres. Vous pouvez utiliser
Key.getAscii() et Key.getCode() afin de déterminer quelle touche a été enfoncée.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
Dans l’exemple suivant, une fonction envoyant une action trace() au panneau de sortie est
définie pour le gestionnaire onKeyPress.
mon_btn.onKeyUp = function () {
trace ("onKeyUp appelé");
};
Button.onKillFocus
Disponibilité
Flash Player 6.
Usage
mon_btn.onKillFocus = function (nouveauFocus) {
// vos instructions
}
Paramètres
nouveauFocus
L’objet recevant le focus.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un bouton perd le focus clavier. La méthode
onKillFocus reçoit un paramètre, nouveauFocus, qui est un objet représentant le nouvel objet
recevant le focus. Si aucun objet ne reçoit le focus, nouveauFocus contient la valeur null.
Button.onKillFocus
323
Button.onPress
Disponibilité
Flash Player 6.
Usage
mon_btn.onPress = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un bouton est enfoncé. Vous devez définir une
fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
Dans l’exemple suivant, une fonction envoyant une action trace() au panneau de sortie est
définie pour le gestionnaire onPress.
mon_btn.onPress = function () {
trace ("onPress appelé");
};
324
Chapitre 12 : Dictionnaire ActionScript
Button.onRelease
Disponibilité
Flash Player 6.
Usage
mon_btn.onRelease = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un bouton est relâché. Vous devez définir une
fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
Dans l’exemple suivant, une fonction envoyant une action trace() au panneau de sortie est
définie pour le gestionnaire onRelease.
mon_btn.onRelease = function () {
trace ("onRelease appelé");
};
Button.onRelease
325
Button.onReleaseOutside
Disponibilité
Flash Player 6.
Usage
mon_btn.onReleaseOutside = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : après que le pointeur de la souris ait été placé à l’intérieur du bouton
et le bouton enfoncé, ce gestionnaire est invoqué au moment où le pointeur se trouve en dehors
du bouton et que la souris est relâchée.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
Dans l’exemple suivant, une fonction envoyant une action trace() au panneau de sortie est
définie pour le gestionnaire onReleaseOutside.
mon_btn.onReleaseOutside = function () {
trace ("onReleaseOutside appelé");
};
326
Chapitre 12 : Dictionnaire ActionScript
Button.onRollOut
Disponibilité
Flash Player 6.
Usage
mon_btn.onRollOut = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le pointeur ne survole plus la zone d’un bouton.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
Dans l’exemple suivant, une fonction envoyant une action trace() au panneau de sortie est
définie pour le gestionnaire onRollOut.
mon_btn.onRollOut = function () {
trace ("onRollOut appelé");
};
Button.onRollOut
327
Button.onRollOver
Disponibilité
Flash Player 6.
Usage
mon_btn.onRollOver = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le pointeur passe au-dessus d’un bouton. Vous devez
définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
Dans l’exemple suivant, une fonction envoyant une action trace() au panneau de sortie est
définie pour le gestionnaire onRollOver.
mon_btn.onRollOver = function () {
trace ("onRollOver appelé");
};
Button.onSetFocus
Disponibilité
Flash Player 6.
Usage
mon_btn.onSetFocus = function(ancienFocus){
// vos instructions
}
Paramètres
ancienFocus
L’objet devant perdre le focus clavier.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un bouton reçoit le focus clavier. Le paramètre
ancienFocus est l’objet perdant le focus. Par exemple, si l’utilisateur appuie sur la touche Tab
pour faire passer le focus de saisie d’un champ de texte à un bouton, ancienFocus contient
l’occurrence de champ de texte.
Si aucun objet n’a précédemment reçu le focus, ancienFocus contient une valeur null.
328
Chapitre 12 : Dictionnaire ActionScript
Button._parent
Disponibilité
Flash Player 6.
Usage
mon_btn._parent.property
_parent.propriété
Description
Propriété : une référence au clip ou à l’objet contenant le clip ou objet courant. L’objet courant est
celui contenant le code ActionScript faisant référence à _parent.
Utilisez _parent pour spécifier un chemin relatif aux clips ou objets qui se trouvent au-dessus du
clip ou objet actuel. Vous pouvez utiliser _parent pour monter de plusieurs niveaux dans la liste
d’affichage, comme dans l’exemple suivant :
_parent._parent._alpha = 20;
Consultez également
MovieClip._parent, _root, targetPath
Button._quality
Disponibilité
Flash Player 6.
Usage
mon_btn._quality
Description
Propriété (globale) : définit ou récupère la qualité de rendu utilisée pour un fichier SWF. Les
polices de périphérique sont toujours aliasées et ne sont donc pas affectées par la propriété
_quality.
Remarque : Bien qu’il soit possible de spécifier cette propriété pour un objet Button, il s’agit d’une
propriété globale ; vous pouvez tout simplement spécifier sa valeur comme _quality. Pour plus
d’informations, consultez _quality.
Button._quality
329
Button._rotation
Disponibilité
Flash Player 6.
Usage
mon_btn._rotation
Description
Propriété : la rotation du bouton, exprimée en degrés, à partir de son orientation d’origine. Les
valeurs de 0 à 180 représentent une rotation dans le sens horaire ; les valeurs de 0 à -180
représentent une rotation dans le sens antihoraire. Les valeurs en dehors de cette plage sont
ajoutées à ou soustraites de 360 pour obtenir une valeur comprise dans la plage. Par exemple,
l’instruction mon_btn._rotation = 450 revient à l’instruction mon_btn._rotation = 90.
Consultez également
MovieClip._rotation, TextField._rotation
Button._soundbuftime
Disponibilité
Flash Player 6.
Usage
monBouton._soundbuftime
Description
Propriété (globale) : un entier spécifiant le nombre de secondes de mise en tampon d’un son avant
sa lecture en flux continu.
Remarque : Bien qu’il soit possible de spécifier cette propriété pour un objet Button, il s’agit d’une
propriété globale ; vous pouvez tout simplement spécifier sa valeur comme _soundbuftime. Pour plus
d’informations, consultez _soundbuftime.
330
Chapitre 12 : Dictionnaire ActionScript
Button.tabEnabled
Disponibilité
Flash Player 6.
Usage
mon_btn.tabEnabled
Description
Propriété : spécifie si mon_btn est inclus dans l’ordre de tabulation automatique. Valeur
undefined par défaut.
Si la propriété tabEnabled est undefined ou true, l’objet est inclus dans l’ordre de tabulation
automatique. Si la propriété tabIndex est également définie avec une valeur, l’objet est également
inclus dans l’ordre de tabulation automatique. Si tabEnabled est false, l’objet n’est pas inclus
dans l’ordre de tabulation automatique ou personnalisé, même si la propriété tabIndex est
définie.
Consultez également
Button.tabIndex, mon_mc.tabEnabled, TextField.tabEnabled
Button.tabEnabled
331
Button.tabIndex
Disponibilité
Flash Player 6.
Usage
mon_btn.tabIndex
Description
Propriété : permet de personnaliser l’ordre de tabulation des objets d’un fichier SWF. Vous pouvez
définir la propriété tabIndex, qui est undefined par défaut, pour une occurrence de bouton, clip
ou champ de texte.
Si l’un des objets affichés dans le fichier SWF contient une propriété tabIndex, l’ordre de
tabulation automatique est désactivé, et l’ordre de tabulation est alors calculé en fonction des
propriétés tabIndex des objets du fichier SWF. L’ordre de tabulation personnalisé n’inclut que les
objets possédant des propriétés tabIndex.
La propriété tabIndex peut être un entier non-négatif. Les objets sont placés dans l’ordre
correspondant à leurs propriétés tabIndex, dans un ordre croissant. Un objet dont la valeur
tabIndex est 1 précède un objet dont la valeur tabIndex est de 2. Si deux objets ont la même
valeur tabIndex, celui qui précède l’autre dans l’ordre de tabulation est undefined.
L’ordre de tabulation personnalisé défini par la propriété tabIndex est flat. Cela signifie que la
relation hiérarchique des objets du fichier SWF n’a pas importance. Tous les objets du fichier
SWF possédant des propriétés tabIndex sont placés dans l’ordre de tabulation, qui est déterminé
par l’ordre des valeurs tabIndex. Si deux objets ont la même valeur tabIndex, celui qui précède
l’autre dans l’ordre de tabulation est undefined. Vous ne devriez pas utiliser la même valeur
tabIndex pour plusieurs objets.
Consultez également
Button.tabEnabled, MovieClip.tabChildren, mon_mc.tabEnabled, MovieClip.tabIndex,
TextField.tabIndex
Button._target
Disponibilité
Flash Player 6.
Usage
mon_btn._target
Description
Propriété (lecture seule) : renvoie le chemin cible de l’occurrence du bouton spécifiée par
mon_btn.
Consultez également
targetPath
332
Chapitre 12 : Dictionnaire ActionScript
Button.trackAsMenu
Disponibilité
Flash Player 6.
Usage
mon_btn.trackAsMenu
Description
Propriété : une valeur booléenne qui indique si d’autres boutons ou clips peuvent recevoir des
événements de relâchement de bouton de souris. Cela vous permet de créer des menus. Vous
pouvez définir la propriété trackAsMenu pour n’importe quel objet de bouton ou clip. Si la
propriété trackAsMenu n’est pas définie, le comportement par défaut est false.
Vous pouvez changer la propriété trackAsMenu à tout moment, le bouton modifié prenant
immédiatement le nouveau comportement.
Consultez également
MovieClip.trackAsMenu
Button._url
Disponibilité
Flash Player 6.
Usage
mon_btn._url
Description
Propriété (lecture seule) : récupère l’URL du fichier SWF créateur de ce bouton.
Button.useHandCursor
Disponibilité
Flash Player 6.
Usage
mon_btn.useHandCursor
Description
Propriété : une valeur booléenne qui, lorsqu’elle est définie sur la valeur true (par défaut),
indique si un curseur en forme de main s’affiche lorsque la souris passe au-dessus d’un bouton. Si
cette propriété est définie sur la valeur false, le curseur de flèche est utilisé.
Vous pouvez changer la propriété useHandCursor à tout moment, le bouton modifié prenant
immédiatement le nouveau comportement. La propriété useHandCursor peut être lue à partir
d’un objet prototype.
Button.useHandCursor
333
Button._visible
Disponibilité
Flash Player 6.
Usage
mon_btn._visible
Description
Propriété : une valeur booléenne indiquant si le bouton spécifié par mon_btn est visible. Les
boutons qui ne sont pas visibles (propriété _visible définie sur false) sont désactivés.
Consultez également
MovieClip._visible, TextField._visible
Button._width
Disponibilité
Flash Player 6.
Usage
mon_btn._width
Description
Propriété : la largeur du bouton, en pixels.
Exemple
L’exemple suivant définit les propriétés de hauteur et de largeur d’un bouton.
mon_btn._width=200;
mon_btn._height=200;
Consultez également
MovieClip._width
334
Chapitre 12 : Dictionnaire ActionScript
Button._x
Disponibilité
Flash Player 6.
Usage
mon_btn._x
Description
Propriété : un entier définissant la coordonnée x du bouton par rapport aux coordonnées locales
du clip parent. Si un bouton se trouve dans le scénario principal, son système de coordonnées fait
référence au coin supérieur gauche de la scène, sous la forme (0, 0). Si le bouton se trouve dans un
clip qui a subi des transformations, le bouton est dans le système de coordonnées local du clip le
contenant. Donc, pour un clip ayant pivoté de 90 degrés dans le sens inverse des aiguilles d’une
montre, le bouton inclus hérite d’un système de coordonnées qui a pivoté de 90 degrés dans le
sens inverse des aiguilles d’une montre. Les coordonnées du bouton font référence à la position du
point d’alignement.
Consultez également
Button._xscale, Button._y, Button._yscale
Button._xmouse
Disponibilité
Flash Player 6.
Usage
mon_btn._xmouse
Description
Propriété (lecture seule) : renvoie la coordonnée x de la position de la souris par rapport au
bouton.
Consultez également
Button._ymouse
Button._xmouse
335
Button._xscale
Disponibilité
Flash Player 6.
Usage
mon_btn._xscale
Description
Propriété : le redimensionnement horizontal du bouton appliqué à partir de son point
d’alignement, exprimé sous forme de pourcentage. Le point d’alignement par défaut est (0,0).
Le redimensionnement du système de coordonnées locales affecte les paramètres de propriété _x
et _y, définis en pixels. Par exemple, si le clip parent est dimensionné à 50 %, la définition de la
propriété _x déplace un objet du bouton de la moitié du nombre de pixels d’un fichier SWF à
100 %.
Consultez également
Button._x, Button._y, Button._yscale
Button._y
Disponibilité
Flash Player 6.
Usage
mon_btn._y
Description
Propriété : la coordonnée y du bouton par rapport aux coordonnées locales du clip parent. Si un
bouton se trouve dans le scénario principal, son système de coordonnées fait référence au coin
supérieur gauche de la scène, sous la forme (0, 0). Si le bouton se trouve dans un autre clip qui a
subi des transformations, le bouton est dans le système de coordonnées local du clip le contenant.
Donc, pour un clip ayant pivoté de 90 degrés dans le sens inverse des aiguilles d’une montre, le
bouton inclus hérite d’un système de coordonnées qui a pivoté de 90 degrés dans le sens inverse
des aiguilles d’une montre. Les coordonnées du bouton font référence à la position du point
d’alignement.
Consultez également
Button._x, Button._xscale, Button._yscale
336
Chapitre 12 : Dictionnaire ActionScript
Button._ymouse
Disponibilité
Flash Player 6.
Usage
mon_btn._ymouse
Description
Propriété (lecture seule) : indique la coordonnée y de la position de la souris par rapport au
bouton.
Consultez également
Button._xmouse
Button._yscale
Disponibilité
Flash Player 6.
Usage
mon_btn._yscale
Description
Propriété : le redimensionnement vertical du bouton appliqué à partir de son point d’alignement,
exprimé sous forme de pourcentage. Le point d’alignement par défaut est (0,0).
Consultez également
Button._y, Button._x, Button._xscale
Button._yscale
337
call()
Disponibilité
Flash Player 4. Cette action est déconseillée dans Flash 5 ; Macromedia recommande l’utilisation
de l’action function.
Usage
call(image)
Paramètres
image
L’étiquette ou le numéro d’une image du scénario.
Renvoie
Rien.
Description
Action à éviter : exécute le script dans l’image appelée sans déplacer la tête de lecture jusqu’à cette
image. Les variables locales n’existent plus après l’exécution du script.
Consultez également
function, Function.call
Classe Camera
Disponibilité
Flash Player 6.
Description
La classe Camera est principalement conçue pour une utilisation avec Macromedia Flash
Communication Server, mais elle peut être utilisée de façon limitée sans le serveur.
La classe Camera permet de capturer une vidéo à partir d’une caméra vidéo connectée à un
ordinateur qui exécute Macromedia Flash Player, par exemple, pour contrôler une vidéo issue
d’une webcam associée à votre système local. (Flash fournit les mêmes fonctionnalités audio. Pour
plus d’informations, consultez l’entrée Classe Microphone.)
Pour créer ou référencer un objet Camera, utilisez Camera.get().
338
Chapitre 12 : Dictionnaire ActionScript
Méthodes de la classe Camera
Méthode
Description
Camera.get()
Renvoie un objet Camera par défaut ou spécifié, ou null si la caméra
n’est pas disponible.
Camera.setMode()
Définit les aspects du mode de capture de la caméra, tels que la
hauteur, la largeur et les images par seconde.
Camera.setMotionLevel()
Spécifie les mouvements nécessaires pour invoquer
Camera.onActivity(true) et le temps qui doit s’écouler sans
mouvement avant l’invocation de Camera.onActivity(false).
Camera.setQuality()
Un entier qui spécifie la bande passante maximale que la vidéo actuelle
sortante peut utiliser, en octets par seconde.
Propriétés de la classe Camera
Propriété (lecture seule) Description
Camera.activityLevel
La quantité de mouvements que la caméra détecte.
Camera.bandwidth
La bande passante maximale que la vidéo actuelle sortante peut utiliser,
en octets.
Camera.currentFps
Le taux auquel la caméra capture les données, en images par seconde.
Camera.fps
Le taux auquel vous souhaitez que la caméra capture les données, en
images par seconde.
Camera.height
La hauteur de la capture actuelle, en pixels.
Camera.index
L’index de la caméra, comme indiqué dans le tableau renvoyé par
Camera.names.
Camera.motionLevel
La quantité de mouvements nécessaire pour invoquer
Camera.onActivity(true).
Camera.motionTimeOut
Le nombre de millisecondes entre le moment où la caméra arrête de
détecter les mouvements et le moment où Camera.onActivity(false)
est invoqué.
Camera.muted
Une valeur booléenne qui spécifie si l’utilisateur a autorisé ou refusé
l’accès à la caméra.
Camera.name
Le nom de la caméra tel qu’il est spécifié par le matériel de la caméra.
Camera.names
Propriété de classe : un tableau de chaînes indiquant les noms de tous
les appareils de capture vidéo disponibles, y compris les cartes vidéo et
les caméras.
Camera.quality
Un entier spécifiant le niveau nécessaire de qualité d’image, tel que
déterminé par le montant de compression appliqué à chaque image
vidéo.
Camera.width
La largeur de la capture actuelle, en pixels.
Classe Camera
339
Gestionnaires d'événement de la classe Camera
Gestionnaire
d’événement
Description
Camera.onActivity
Invoqué lorsque la caméra commence ou arrête de détecter des
mouvements.
Camera.onStatus
Invoqué lorsque l’utilisateur autorise ou refuse l’accès à la caméra.
Constructeur de la classe Camera
Pour plus d’informations, consultez Camera.get().
Camera.activityLevel
Disponibilité
Flash Player 6.
Usage
active_cam.activityLevel
Description
Propriété (lecture seule) : une valeur numérique spécifiant la quantité de mouvements que la
caméra détecte. Les valeurs vont de 0 (aucun mouvement détecté) à 100 (nombreux mouvements
détectés). La valeur de cette propriété peut vous aider à déterminer si vous devez transmettre un
paramètre à Camera.setMotionLevel().
Si la caméra est disponible mais qu’elle n’est pas encore utilisée car Video.attachVideo() n’a pas
encore été appelé, cette propriété est définie sur -1.
Si vous transmettez en continu une vidéo locale non compressée, cette propriété n’est définie que
si vous avez affecté une fonction au gestionnaire d’événement Camera.onActivity. Dans le cas
contraire, elle est undefined.
Consultez également
Camera.motionLevel, Camera.setMotionLevel()
340
Chapitre 12 : Dictionnaire ActionScript
Camera.bandwidth
Disponibilité
Flash Player 6.
Usage
active_cam.bandwidth
Description
Propriété (lecture seule) : un entier qui spécifie la bande passante maximale que la vidéo actuelle
sortante peut utiliser, en octets par seconde. Une valeur 0 signifie que la vidéo Flash peut utiliser
autant de bande passante que nécessaire pour conserver la qualité d’image souhaitée.
Pour définir cette propriété, utilisez Camera.setQuality().
Exemple
L’exemple suivant charge un autre fichier SWF si la bande passante de la caméra est de 32 kilooctets ou plus.
if(maCam.bandwidth >= 32768){
loadMovie("splat.swf",_root.hiddenvar);
}
Consultez également
Camera.setQuality()
Camera.currentFps
Disponibilité
Flash Player 6.
Usage
active_cam.currentFps
Description
Propriété (lecture seule) : le taux auquel la caméra capture les données, en images par seconde.
Cette propriété ne peut pas être définie. Cependant, vous pouvez utiliser la méthode
Camera.setMode() pour définir une propriété associée —Camera.fps—qui spécifie la cadence
maximale à laquelle vous souhaitez que la caméra capture les données.
Consultez également
Camera.fps, Camera.setMode()
Camera.currentFps
341
Camera.fps
Disponibilité
Flash Player 6.
Usage
active_cam.fps
Description
Propriété (lecture seule) : le taux maximum auquel vous souhaitez que la caméra capture les
données, en images par seconde. Le taux maximal possible dépend des capacités de la caméra : si
la caméra ne supporte pas la valeur que vous avez définie ici, la cadence ne sera pas atteinte.
• Pour définir la valeur souhaitée de cette propriété, utilisez Camera.setMode().
• Pour définir le taux auquel la caméra capture actuellement les données, utilisez la propriété
Camera.currentFps.
Exemple
L’exemple suivant définit le taux fps de la caméra active, maCam.fps à la valeur fournie par le
champ de texte de l’utilisateur this.config.txt_fps.
if (this.config.txt_fps != undefined) {
maCam.setMode(maCam.width, maCam.height, this.config.txt_fps, false);
}
Remarque : La fonction setMode ne garantit pas la définition fps demandée ; elle définit le fps
demandé ou le fps le plus rapide disponible.
Consultez également
Camera.currentFps, Camera.setMode()
342
Chapitre 12 : Dictionnaire ActionScript
Camera.get()
Disponibilité
Flash Player 6.
Usage
Camera.get([index])
Remarque : La syntaxe correcte est Camera.get(). Pour affecter l’objet Camera à une variable,
utilisez une syntaxe telle que active_cam=Camera.get().
Paramètres
Un entier de base zéro facultatif qui spécifie la caméra à récupérer, comme l’indique le
tableau renvoyé par la propriété Camera.names. Pour récupérer la caméra par défaut (ce qui est
recommandé pour la plupart des applications), omettez ce paramètre.
index
Renvoie
• Si index n’est pas spécifié, cette méthode renvoie une référence à la caméra par défaut ou, si
•
elle est utilisée par une autre application, à la première caméra disponible. Si plus d’une caméra
est installée, l’utilisateur peut spécifier la caméra par défaut dans le panneau Camera Settings
de Flash Player. Si aucune caméra n’est disponible ou installée, la méthode renvoie null.
Si index est spécifié, cette méthode renvoie une référence demandée ou null si elle n’est pas
disponible.
Description
Méthode : renvoie une référence à un objet Camera pour la capture de vidéo. Pour commencer à
capturer la vidéo, vous devez lier l’objet Camera à un objet Video (consultez
Video.attachVideo()).
Contrairement aux objets créés à l’aide du constructeur new, les appels multiples à Camera.get()
font référence à la même caméra. Ainsi, si votre script contient les lignes first_cam =
Camera.get() et second_cam = Camera.get(), first_cam et second_cam font référence à la
même caméra (par défaut).
De manière générale, vous ne devez pas transmettre une valeur pour index ; utilisez tout
simplement Camera.get() pour renvoyer une référence à la caméra par défaut. A l’aide du
panneau Camera Settings (abordé plus loin dans cette même section), l’utilisateur peut spécifier la
caméra par défaut que Flash doit utiliser. Si vous transmettez une valeur pour index, vous pourrez
tenter de faire référence à une caméra autre que la caméra préférée de l’utilisateur. index ne sera
utilisé que rarement, par exemple, si votre application capture de la vidéo à partir de deux caméras
en même temps.
Camera.get()
343
Lorsqu’un fichier SWF essaie d’accéder à la caméra renvoyée par Camera.get(), Flash Player
affiche le panneau de contrôle de l’accès qui permet à l’utilisateur de choisir s’il doit autoriser ou
refuser l’accès à la caméra. (Vérifiez que la scène mesure au moins 215 x 138 pixels ; c’est la taille
minimale requise par Flash pour afficher la boîte de dialogue.)
Lorsque l’utilisateur répond à cette boîte de dialogue, le gestionnaire d’événement
renvoie un objet information indiquant la réponse. Afin de déterminer si
l’utilisateur a refusé ou accepté l’accès à la caméra sans traiter le gestionnaire d’événement, utilisez
la propriété Camera.muted.
Camera.onStatus
Pour spécifier des paramètres de contrôle de l’accès permanents pour un domaine particulier,
l’utilisateur peut également cliquer avec le bouton droit de la souris (Windows) ou en appuyant
sur la touche Contrôle (Macintosh) pendant la lecture d’un fichier SWF, puis choisir Paramètres,
ouvrir le panneau de contrôle de l’accès et sélectionner Mémoriser.
Vous ne pouvez pas utiliser ActionScript pour définir la valeur Autoriser ou Refuser pour un
utilisateur mais vous pouvez afficher le panneau de contrôle de l’accès pour l’utilisateur en
utilisant System.showSettings(0). Si l’utilisateur sélectionne Mémoriser, Flash Player ferme le
panneau de contrôle de l’accès pour les animations de ce domaine.
Si Camera.get renvoie null, soit la caméra est utilisée par une autre application, soit aucune
caméra n’est installée sur le système. Pour déterminer s’il existe des caméras installées, utilisez
Camera.names.length. Pour afficher le panneau Paramètres de la caméra Flash Player
permettant à l’utilisateur de choisir la caméra devant être référencée par Camera.get(), utilisez
System.showSettings(3).
344
Chapitre 12 : Dictionnaire ActionScript
L’opération consistant à analyser le matériel afin de détecter la présence de caméras prend du
temps. Si Flash trouve au moins une caméra, il n’analyse plus le matériel pendant toute la durée de
l’occurrence du lecteur. Cependant, si Flash ne trouve pas de caméra, il analyse le matériel chaque
fois que Camera.get est appelé. Cette étape s’avère utile si un utilisateur a oublié de connecter la
caméra ; si votre fichier SWF fournit un bouton Nouvelle tentative qui appelle Camera.get,
Flash peut trouver la caméra sans que l’utilisateur n’ait à redémarrer le fichier SWF.
Exemple
L’exemple suivant capture et affiche la vidéo localement dans un objet Video nommé ma_video
sur la scène.
var ma_cam = Camera.get();
ma_video.attachVideo(maCam);
Consultez également
Camera.index, Camera.muted, Camera.names, Camera.onStatus, Camera.setMode(),
System.showSettings(), Video.attachVideo()
Camera.height
Disponibilité
Flash Player 6.
Usage
cam_active.height
Description
Propriété (lecture seule) : la hauteur de capture actuelle, en pixels. Pour définir la valeur de cette
propriété, utilisez Camera.setMode().
Exemple
La ligne de code suivante met à jour un champ de texte dans l’interface utilisateur avec la valeur
de la hauteur actuelle.
mon_txt._height = myCam.height;
Veuillez également consulter l’exemple pour Camera.setMode().
Consultez également
Camera.setMode(), Camera.width
Camera.height
345
Camera.index
Disponibilité
Flash Player 6.
Usage
active_cam.index
Description
Propriété (lecture seule) : un entier basé sur zéro qui spécifie l’index de la caméra, comme
mentionné dans le tableau renvoyé par Camera.names.
Exemple
L’exemple suivant récupère la caméra ayant la valeur index.
ma_cam = Camera.get(index);
Consultez également
Camera.get(), Camera.names
Camera.motionLevel
Disponibilité
Flash Player 6.
Usage
active_cam.motionLevel
Description
Propriété (lecture seule) : une valeur numérique qui spécifie la quantité de mouvements nécessaire
pour invoquer Camera.onActivity(true). Les valeurs valides sont comprises entre 0 et 100. La
valeur par défaut est 50.
La vidéo peut être affichée, quelle que soit la valeur de la propriété motionLevel. Pour plus
d’informations, consultez Camera.setMotionLevel().
Consultez également
Camera.activityLevel, Camera.onActivity, Camera.onStatus, Camera.setMotionLevel()
346
Chapitre 12 : Dictionnaire ActionScript
Camera.motionTimeOut
Disponibilité
Flash Player 6.
Usage
active_cam.motionTimeOut
Description
Propriété (lecture seule) : le nombre de millisecondes entre le moment où la caméra arrête de
détecter les mouvements et le moment où Camera.onActivity(false) est invoqué. La valeur
par défaut est 2 000 (2 secondes).
Pour définir cette valeur, utilisez Camera.setMotionLevel().
Exemple
L’exemple suivant définit le nombre de millisecondes entre le moment où la caméra arrête de
détecter les mouvements et le moment où Camera.onActivity(false) est invoqué à 1 000
millisecondes ou une seconde.
if(ma_cam.motionTimeOut >= 1000){
ma_cam.setMotionLevel(myCam.motionLevel, 1000);
}
Consultez également
Camera.onActivity, Camera.setMotionLevel()
Camera.muted
Disponibilité
Flash Player 6.
Usage
active_cam.muted
Description
Propriété (lecture seule) : une valeur booléenne spécifiant si l’utilisateur a refusé l’accès à la caméra
(true) ou permis l’accès à la caméra (false) dans le panneau des paramètres de contrôle de l’accès
de Flash Player. Lorsque cette valeur change, Camera.onStatus est invoqué. Pour plus
d’informations, consultez Camera.get().
Consultez également
Camera.get(), Camera.onStatus
Camera.muted
347
Camera.name
Disponibilité
Flash Player 6.
Usage
active_cam.name
Description
Propriété (lecture seule) : une chaîne qui spécifie le nom de la caméra actuelle, tel que renvoyé par
le matériel de la caméra.
Exemple
L’exemple suivant affiche le nom de la caméra par défaut dans le panneau de sortie. Sous
Windows, ce nom est le même que le nom de l’appareil apparaissant dans la page de propriétés
des scanners et des caméras.
ma_cam = Camera.get();
trace("Le nom de la caméra est : " + ma_cam.name);
Consultez également
Camera.get(), Camera.names
348
Chapitre 12 : Dictionnaire ActionScript
Camera.names
Disponibilité
Flash Player 6.
Usage
Camera.names
Remarque : La syntaxe correcte est Camera.names. Pour affecter la valeur de renvoi à une variable,
utilisez une syntaxe telle que cam_array = Camera.names. Pour déterminer le nom de la caméra
actuelle, utilisez active_cam.name.
Description
Propriété de classe (lecture seule) : récupère un tableau de chaînes répertoriant le nom de toutes
les caméras disponibles sans afficher le panneau des paramètres de contrôle de l’accès de Flash
Player. Ce tableau se comporte comme tout autre tableau ActionScript : il fournit implicitement
l’index basé sur zéro de chaque caméra et le nombre de caméras dans le système (au moyen de
Camera.names.length). Pour plus d’informations, consultez l’entrée Classe Array.
L’appel de la propriété Camera.names requiert un examen attentif du matériel : c’est pourquoi la
construction du tableau peut prendre plusieurs secondes. Dans la plupart des cas, vous pouvez
tout simplement utiliser la caméra par défaut.
Exemple
L’exemple suivant utilise la caméra par défaut à moins qu’il n’existe plusieurs caméras disponibles,
auquel cas l’utilisateur peut choisir la caméra par défaut.
cam_array = Camera.names;
if (tableau_cam.length == 1){
ma_cam = Camera.get();
}
else {
System.showSettings(3);
ma_cam = Camera.get();
}
Consultez également
Camera.get(), Camera.index, Camera.name
Camera.names
349
Camera.onActivity
Disponibilité
Flash Player 6.
Usage
active_cam.onActivity = function(activité) {
// vos instructions
}
Paramètres
Une valeur booléenne définie sur true lorsque la caméra commence à détecter les
mouvements et sur false lorsqu’elle s’arrête.
activité
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque la caméra commence ou arrête de détecter le
mouvement. Si vous souhaitez répondre à ce gestionnaire d’événement, vous devez créer une
fonction afin de traiter sa valeur activité.
Pour spécifier la quantité de mouvements nécessaire pour invoquer Camera.onActivity(true),
ainsi que le temps devant s’écouler sans aucune activité avant l’invocation de
Camera.onActivity(false), utilisez Camera.setMotionLevel().
Exemple
L’exemple suivant affiche true ou false dans le panneau de sortie lorsque la caméra commence
ou arrête de détecter les mouvements.
// Suppose qu’un objet Video nommé "monObjetVidéo" est sur la scène
ma_cam = Camera.get();
monObjetVidéo.attachVideo(ma_cam);
ma_cam.setMotionLevel(10, 500);
ma_cam.onActivity = function(mode)
{
trace(mode);
}
Consultez également
Camera.onActivity, Camera.setMotionLevel()
350
Chapitre 12 : Dictionnaire ActionScript
Camera.onStatus
Disponibilité
Flash Player 6.
Usage
active_cam.onStatus = function(objetInfo) {
// vos instructions
}
Paramètres
objetInfo
Un paramètre défini selon le message d’état.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque l’utilisateur autorise ou refuse l’accès à la caméra. Si
vous souhaitez répondre à ce gestionnaire d’événement, vous devez créer une fonction afin de
traiter l’objet information généré par la caméra.
Lorsqu’un fichier SWF essaie d’accéder à la caméra, Flash Player affiche le panneau de contrôle de
l’accès qui permet à l’utilisateur de choisir s’il doit autoriser ou refuser l’accès à la caméra.
• Si l’utilisateur autorise l’accès, la propriété Camera.muted est définie sur false ; ce
•
gestionnaire est invoqué avec un objet information dont la propriété code est
"Camera.Unmuted" et dont la propriété niveau est "Etat".
Si l’utilisateur refuse l’accès, la propriété Camera.muted est définie sur true ; ce gestionnaire
est invoqué avec un objet information dont la propriété code est "Camera.Muted" et dont la
propriété niveau est "Etat".
Afin de déterminer si l’utilisateur a refusé ou accepté l’accès à la caméra sans traiter le gestionnaire
d’événement, utilisez la propriété Camera.muted.
Remarque : Si l’utilisateur choisit d’autoriser ou de refuser définitivement l’accès à tous les fichiers
SWF à partir d’un domaine spécifique, ce gestionnaire n’est pas invoqué pour les fichiers SWF de ce
domaine, à moins que l’utilisateur ne modifie ultérieurement les paramètres de contrôle de l’accès.
Pour plus d’informations, consultez Camera.get().
Camera.onStatus
351
Exemple
Le gestionnaire d’événement suivant affiche un message dès que l’utilisateur autorise ou refuse
l’accès à la caméra.
maCam = Camera.get();
monObjetVidéo.attachVideo(maCam);
maCam.onStatus = function(infoMsg) {
if(infoMsg.code == "Caméra.Désactivée"){
trace("L’utilisateur refuse l’accès à la caméra");
}
else
trace("L’utilisateur autorise l’accès à la caméra");
}
// Change la valeur Autoriser ou Refuser pour invoquer la fonction
System.showSettings(0);
Consultez également
Camera.get(), Camera.muted
Camera.quality
Disponibilité
Flash Player 6.
Usage
active_cam.quality
Description
Propriété (lecture seule) : un entier spécifiant le niveau nécessaire de qualité d’image, tel que
déterminé par le montant de compression appliqué à chaque image vidéo. Les valeurs de qualité
valides sont comprises entre 1 (qualité minimale, compression maximale) et 100 (qualité
maximale, pas de compression). La valeur par défaut est 0, qui signifie que la qualité d’image peut
varier en fonction des besoins afin d’éviter un excès de bande passante disponible.
Consultez également
Camera.setQuality()
352
Chapitre 12 : Dictionnaire ActionScript
Camera.setMode()
Disponibilité
Flash Player 6.
Usage
active_cam.setMode(largeur, hauteur, fps [,Taillefavor])
Paramètres
largeur
La largeur de capture demandée, en pixels. La valeur par défaut est 160.
hauteur
La hauteur de capture demandée, en pixels. La valeur par défaut est 120.
Le taux requis auquel la caméra doit capturer les données, en images par seconde. La valeur
par défaut est 15.
fps
(facultatif ) : une valeur booléenne qui spécifie comment manipuler la largeur, la
hauteur et la cadence si la caméra n’a aucun mode natif correspondant aux conditions requises. La
valeur par défaut est true : cela signifie que la conservation de la taille de la capture est favorisée ;
l’utilisation de ce paramètre sélectionne le mode qui correspond le mieux aux valeurs largeur et
hauteur, bien qu’une telle action affecte négativement les performances en réduisant la cadence.
Afin d’optimiser la cadence aux dépens de la hauteur et de la largeur, définissez le paramètre
Taillefavor sur false.
Taillefavor
Renvoie
Rien.
Description
Méthode : définit le mode de capture de la caméra sur le mode natif qui correspond le mieux aux
conditions requises. Si la caméra n’a pas de mode natif qui correspond à tous les paramètres
définis, Flash sélectionne un mode capture qui correspond le mieux au mode requis. Cette
manipulation peut nécessiter le rognage de l’image et l’omission d’images.
Par défaut, Flash omet les images de sorte que la taille de l’image soit conservée. Pour minimiser le
nombre d’images omises, même s’il faut pour cela réduire la taille de l’image, définissez le
paramètre Taillefavor sur false.
Lors du choix du mode natif, Flash tente de conserver les proportions demandées si possible. Par
exemple, si vous communiquez la commande active_cam.setMode(400,400,30) et que les
valeurs largeur et hauteur maximales disponibles sur la caméra sont 320 et 288, Flash définit à la
fois la largeur et la hauteur sur 288 ; en définissant ces propriétés sur la même valeur, Flash
conserve les proportions 1:1 que vous avez demandées.
Pour déterminer les valeurs affectées à ces propriétés dès que Flash a sélectionné le mode qui
correspond le mieux aux valeurs requises, utilisez Camera.width, Camera.height et
Camera.fps.
Camera.setMode()
353
Exemple
L’exemple suivant définit la largeur, la hauteur et fps en fonction des entrées de l’utilisateur, s’il
clique sur le bouton. Le paramètre facultatif Taillefavor n’est pas inclus car la valeur par défaut
true fournit les paramètres les plus proches des préférences de l’utilisateur sans sacrifier la qualité
d’image. Cependant, il se peut que fps soit sacrifié. L’interface utilisateur est alors mise à jour avec
les nouveaux paramètres.
on (press)
{
// Définit la largeur, la hauteur et fps en fonction des entrées de
l’utilisateur.
_root.myCam.setMode(txt_width, my_txt._height, txt_fps);
// Mettre à jour le champ de texte de l’utilisateur avec les nouveaux
paramètres.
_root.txt_width = maCam.width;
_root.txt_height = maCam.height;
_root.txt_fps = maCam.fps;
}
Consultez également
Camera.currentFps, Camera.fps, Camera.height, Camera.width
354
Chapitre 12 : Dictionnaire ActionScript
Camera.setMotionLevel()
Disponibilité
Flash Player 6.
Usage
active_cam.setMotionLevel(sensibilité [, timeout])
Paramètres
sensibilité Une valeur numérique qui spécifie la quantité de mouvements nécessaire pour
invoquer Camera.onActivity(true). Les valeurs valides sont comprises entre 0 et 100. La
valeur par défaut est 50.
Un paramètre numérique facultatif qui spécifie le nombre de millisecondes devant
s’écouler sans activité avant que Flash ne considère que l’activité est stoppée et invoque le
gestionnaire d’événement Camera.onActivity(false). La valeur par défaut est 2 000
(2 secondes).
timeout
Renvoie
Rien.
Description
Méthode : spécifie les mouvements nécessaires pour invoquer Camera.onActivity(true).
Définit de façon facultative le nombre de millisecondes devant s’écouler sans activité avant que
Flash ne considère que les mouvements sont stoppés et invoque Camera.onActivity(false).
Remarque : La vidéo peut être affichée, quelle que soit la valeur du paramètre sensibilité. Ce
paramètre ne détermine que le moment où et dans quelle circonstance Camera.onActivity est
invoqué ; il ne détermine pas si la vidéo est en cours de capture ou d’affichage.
• Afin d’empêcher la caméra de détecter tout mouvement, définissez le paramètre de
•
sensibilité sur 100 ; Camera.onActivity n’est jamais invoqué. (Vous n’utiliserez
probablement cette valeur que pour des tests, par exemple, pour désactiver temporairement les
actions définies devant se produire lorsque Camera.onActivity est invoqué.)
Pour déterminer le nombre de mouvements en cours que la caméra détecte, utilisez la propriété
Camera.activityLevel.
Les valeurs de sensibilité aux mouvements correspondent directement aux valeurs d’activité.
L’absence totale de mouvements correspond à une valeur d’activité de 0. Un mouvement constant
correspond à une valeur d’activité de 100. Votre valeur d’activité est inférieure à votre valeur de
sensibilité de mouvement lorsque vous êtes immobile ; en mouvement, les valeurs d’activité
dépassent fréquemment la valeur de sensibilité de mouvement.
Cette méthode a le même objectif que Microphone.setSilenceLevel() ; les deux méthodes
permettent de déterminer à quel moment le gestionnaire d’événement onActivity doit être
invoqué. Cependant, ces méthodes ont un impact très différent sur la publication en flux
continus :
Camera.setMotionLevel()
355
•
•
Microphone.setSilenceLevel() est conçu pour optimiser la bande passante. Lorsqu’un flux
continu audio est considéré comme silencieux, aucune donnée audio n’est envoyée. Un
message unique est envoyé, indiquant le début du silence.
Camera.setMotionLevel() est conçu pour détecter les mouvements et n’affecte pas
l’utilisation de la bande passante. Même lorsqu’un flux continu vidéo ne détecte pas de
mouvement, la vidéo est envoyée.
Exemple
L’exemple suivant envoie des messages au panneau de sortie lorsque l’activité de vidéo commence
ou s’arrête. Modifiez la valeur de la sensibilité de mouvement définie à 30 (en l’augmentant ou en
la diminuant) afin de voir comment les différentes valeurs affectent la détection du mouvement.
// Suppose qu’un objet Video nommé "monObjetVidéo" est sur la scène
c = Camera.get();
x = 0;
function motion(mode)
{
trace(x + ": " + mode);
x++;
}
c.onActivity = function(mode) {motion(mode);};
c.setMotionLevel(30, 500);
monObjetVidéo.attachVideo(c);
Consultez également
Camera.activityLevel, Camera.motionLevel, Camera.motionTimeOut, Camera.onActivity
356
Chapitre 12 : Dictionnaire ActionScript
Camera.setQuality()
Disponibilité
Flash Player 6.
Usage
active_cam.setQuality(bandePassante, qualitéDimage)
Paramètres
Un entier qui spécifie la bande passante maximale que la vidéo actuelle
sortante peut utiliser, en octets par seconde. Pour indiquer que la vidéo Flash peut utiliser autant
de bande passante que nécessaire pour conserver la valeur qualitéDimage, définissez
bandePassante sur la valeur 0. La valeur par défaut est 16384.
bandePassante
qualitéDimage Un entier spécifiant le niveau nécessaire de qualité d’image, tel que déterminé
par le montant de compression appliqué à chaque image vidéo. Les valeurs de qualité acceptables
vont de 1 (qualité minimale, compression maximale) à 100 (qualité maximale, pas de
compression). Pour indiquer que la qualité d’image peut varier en fonction des besoins et pour
éviter une bande passante excessive, définissez qualitéDimage sur la valeur 0. La valeur par
défaut est 0.
Renvoie
Rien.
Description
Méthode : définit la bande passante maximale par seconde ou la qualité d’image nécessaire pour la
vidéo sortante actuelle. En principe, cette méthode n’est applicable que si vous transmettez la
vidéo à l’aide de Flash Communication Server.
Utilisez cette méthode pour spécifier quel élément de la vidéo sortante est le plus important pour
votre application (utilisation de la bande passante ou qualité d’image).
• Pour indiquer que l’utilisation de la bande passante est prioritaire, définissez une valeur pour
et paramétrez qualitéDimage sur 0. Flash transmettra ainsi la vidéo à la
meilleure qualité possible dans la limite de la bande passante spécifiée. Si nécessaire, Flash
réduira la qualité d’image afin d’éviter de dépasser la bande passante spécifiée. En général, la
qualité décroît à mesure que le mouvement s’accroît.
Pour indiquer que la qualité est prioritaire, définissez bandePassante sur 0 et indiquez une
valeur numérique pour qualitéDimage. Flash utilise autant de bande passante que nécessaire
afin de conserver la qualité spécifiée. Si nécessaire, Flash réduira la cadence pour conserver la
qualité d’image. En général, l’utilisation de bande passante augmente à mesure que le
mouvement augmente.
Pour spécifier que la bande passante et la qualité sont aussi importantes l’une que l’autre,
transmettez des valeurs numériques aux deux paramètres. Flash transmet une vidéo qui atteint
la qualité requise et qui ne dépasse pas la bande passante spécifiée. Si nécessaire, Flash réduira la
cadence afin de conserver la qualité d’image sans dépasser la bande passante spécifiée.
bandePassante
•
•
Camera.setQuality()
357
Exemple
Les exemples suivantes illustrent comment utiliser cette méthode afin de contrôler l’utilisation de
la bande passante et la qualité d’image.
// Assurer qu’un maximum de 8 192 (8 K/secondes) est utilisé pour l’envoi de la
vidéo
active_cam.setQuality(8192,0);
// Assurer qu’un maximum de 8 192 (8 K/secondes) est utilisé pour l’envoi de la
vidéo
// avec une qualité minimale de 50
active_cam.setQuality(8192,50);
// Assurer une qualité minimale de 50, quelle que soit la bande passante
utilisée
active_cam.setQuality(0,50);
Consultez également
Camera.bandwidth, Camera.quality
Camera.width
Disponibilité
Flash Player 6.
Usage
active_cam.width
Description
Propriété (lecture seule) : la largeur de capture actuelle, en pixels. Pour définir la valeur souhaitée
de cette propriété, utilisez Camera.setMode().
Exemple
La ligne de code suivante met à jour un champ de texte dans l’interface utilisateur avec la valeur
de la hauteur actuelle.
monChampDeTexte.text=maCam.width;
Veuillez également consulter l’exemple pour Camera.setMode().
Consultez également
Camera.height
358
Chapitre 12 : Dictionnaire ActionScript
case
Disponibilité
Flash Player 4.
Usage
case expression: instructions
Paramètres
expression
instructions
Toute expression.
Toute instruction.
Renvoie
Rien.
Description
Instruction : définit une condition pour l’action switch. Les instructions du paramètre
instructions sont exécutées si le paramètre expression qui suit le mot-clé case est égal au
paramètre expression de l’action switch avec une égalité stricte (===).
L’action case utilisée en dehors d’une instruction switch produit une erreur et la compilation du
script échouera si elle est utilisée comme telle.
Consultez également
break, default, === (égalité stricte), switch
case
359
chr
Disponibilité
Flash Player 4. Cette fonction est déconseillée dans Flash 5 ; utilisez plutôt
String.fromCharCode().
Usage
chr(nombre)
Paramètres
nombre
Un nombre de code ASCII.
Renvoie
Rien.
Description
Fonction de chaîne : convertit les codes ASCII en caractères.
Exemple
L’exemple suivant convertit le nombre 65 en la lettre A et l’affecte à la variable maVar.
maVar = chr(65);
Consultez également
String.fromCharCode()
360
Chapitre 12 : Dictionnaire ActionScript
class
Disponibilité
Flash Player 6.
Usage
[dynamic] class nomDeLaClasse [ extends superClasse ]
[ implements nomDinterface [, nomDinterface... ] ]
{
// définition de la classe ici
}
Remarque : Pour utiliser ce mot-clé, vous devez définir ActionScript 2.0 et Flash Player 6 ou version
ultérieure dans l’onglet Flash de la boîte de dialogue Paramètres de publication de votre fichier FLA.
Ce mot-clé n’est supporté que lorsqu’il est utilisé dans des fichiers de scripts externes et non dans
des scripts écrits dans le panneau Actions.
Paramètres
nomDeLaClasse
superClasse
nomDinterface
Le nom pleinement qualifié de la classe.
Facultatif : le nom de la classe que nomDeLaClasse étend (qui hérite de).
Facultatif : le nom de l’interface dont nomDeLaClasse doit implémenter les
méthodes.
Description
Instruction : définit une classe personnalisée, qui permet d’instancier des objets qui partagent les
méthodes et propriétés définies. Par exemple, si vous développez un système de suivi de factures,
vous pouvez créer une classe facture définissant les méthodes et les propriétés de chaque facture.
Vous devez alors utiliser la commande new invoice() pour créer des objets facture.
Le nom de la classe doit être identique au nom du fichier externe contenant la classe. Par exemple,
si vous nommez une classe Etudiant, le fichier définissant la classe doit être nommé Etudiant.as.
Le nom de classe doit être pleinement qualifié dans le fichier dans lequel il est déclaré, c’est-à-dire
qu’il doit référencer le répertoire dans lequel il est stocké. Par exemple, pour créer une classe
nommée ClasseRequise stockée dans le répertoire myClasses/education/curriculum, vous devez
déclarer la classe dans le fichier ClasseRequise.as comme suit :
classe myClasses.education.curriculum.ClasseRequise {
}
Pour cela, il est préférable de planifier la structure de votre répertoire avant de créer les classes. Si
vous décidez de déplacer les fichiers de classe après les avoir créés, vous devrez modifier les
instructions de déclaration de la classe pour référencer leur nouvel emplacement.
Vous ne pouvez pas imbriquer les définitions de classe ; autrement dit, vous ne pouvez pas définir
de classe supplémentaire au sein d’une définition de classe.
Pour signaler les objets pouvant ajouter des propriétés dynamiques et y accéder au moment de
l’exécution, spécifiez le mot-clé dynamic avant l’instruction de la classe. Pour créer des classes
basées sur les interfaces, utilisez le mot-clé implements. Pour créer des sous-classes, utilisez le
mot-clé extends. (Une classe peut étendre une classe seulement, mais peut implémenter plusieurs
interfaces.) Vous pouvez utiliser implements et extends dans une seule et même instruction.
class
361
class C implements Interface_i, Interface_j
// OK
class C extends Class_d implements Interface_i, Interface_j
class C extends Class_d, Class_e
// pas OK
// OK
Pour plus d’informations, consultez Création et utilisation de classes, page 169.
Exemple
L’exemple suivant crée une classe nommée Plant. Son constructeur prend deux paramètres.
// Nom de fichier Plant.as
class Plant {
// Définissez les noms et les types de propriété
var typeDeFeuille:String;
var saisonDeFloraison:String;
// La ligne qui suit est le constructeur
// parce qu’elle a le même nom que la classe
function Plant (param_typeDeFeuille:String, param_saisonDeFloraison:String)
{
// Affectez des valeurs transmises aux propriétés lorsque le nouvel objet
Plant est créé
typeDeFeuille = param_typeDeFeuille;
saisonDeFloraison = param_saisonDeFloraison;
}
// Créez des méthodes pour renvoyer les valeurs de propriété, parce qu’il
s’agit de la meilleure façon,
// comparé au référencement direct d’une propriété d’une classe
function getLeafType():String {return le typeDeFeuille};
function getBloomSeason():String {return la saisonDeFloraison};
}
Dans un fichier de script externe ou dans le panneau Actions, utilisez l’opérateur new pour créer
un objet Plant.
var pin:Plant = new Plant("Persistant","N/A");
// Confirmez que les paramètres ont été transmis correctement
trace(pin.getLeafType());
trace(pin.getBloomSeason());
Consultez également
dynamic, extends, implements, import, interface, new, Object.registerClass()
362
Chapitre 12 : Dictionnaire ActionScript
clearInterval()
Disponibilité
Flash Player 6.
Usage
clearInterval( idDintervalle )
Paramètres
idDintervalle
Un objet renvoyé à partir d’un appel à setInterval().
Renvoie
Rien.
Description
Fonction : annule un appel à setInterval().
Exemple
L’exemple suivant définir d’abord, puis annule un appel d’intervalle :
function callback() {
trace("intervalle appelé");
}
var idDintervalle;
idDintervalle = setInterval( callback, 1000 );
// plus tard
clearInterval( idDintervalle );
Consultez également
setInterval()
Classe Color
Disponibilité
Flash Player 5.
Description
La classe Color vous permet de définir la valeur de la couleur RVB et de récupérer les valeurs une
fois qu’elles ont été définies.
Vous devez utiliser le constructeur new Color() pour créer un objet Color avant d’en appeler les
méthodes.
Classe Color
363
Méthodes de la classe Color
Méthode
Description
Color.getRGB()
Renvoie la valeur numérique RVB définie par le dernier appel setRGB().
Color.getTransform()
Renvoie les informations de transformation définies par le dernier appel
setTransform().
Color.setRGB()
Définit la représentation hexadécimale de la valeur RVB pour un objet
Color.
Color.setTransform()
Définit la transformation de couleur pour un objet Color.
Constructeur de la classe Color
Disponibilité
Flash Player 5.
Usage
new Color(cible)
Paramètres
cible
Le nom d’occurrence d’un clip.
Renvoie
Rien.
Description
Constructeur : crée un objet Color pour le clip spécifié par le paramètre cible. Vous pouvez alors
utiliser les méthodes de cet objet Color pour changer la couleur du clip cible.
Exemple
L’exemple suivant crée un objet Color nommé ma_color pour le clip monClip_mc et définit sa
valeur RVB :
ma_color = new Color(mon_mc);
ma_color.setRGB(0xff9933);
364
Chapitre 12 : Dictionnaire ActionScript
Color.getRGB()
Disponibilité
Flash Player 5.
Usage
ma_color.getRGB()
Paramètres
Aucun.
Renvoie
Un nombre représentant la valeur numérique RVB pour la couleur spécifiée.
Description
Méthode : renvoie les valeurs numériques définies par le dernier appel setRGB().
Exemple
Le code suivant récupère la valeur RVB de l’objet couleur ma_color, la convertit en une chaîne
hexadécimale et l’affecte à la variable value.
value = ma_color.getRGB().toString(16);
Consultez également
Color.setRGB()
Color.getTransform()
Disponibilité
Flash Player 5.
Usage
ma_color.getTransform()
Paramètres
Aucun.
Renvoie
Un objet dont les propriétés contiennent le décalage actuel et les valeurs de pourcentage de la
couleur spécifiée.
Description
Méthode : renvoie la valeur de transformation définie par le dernier appel de
Color.setTransform().
Consultez également
Color.setTransform()
Color.getTransform()
365
Color.setRGB()
Disponibilité
Flash Player 5.
Usage
ma_color.setRGB(0xRRGGBB)
Paramètres
La couleur hexadécimale ou RVB à définir. RR, VV et BB consistent chacun en deux
chiffres hexadécimaux spécifiant le décalage de chaque composante de couleur. Le 0x indique au
compilateur ActionScript que le nombre est une valeur hexadécimale.
0xRRGGBB
Description
Méthode : spécifie une couleur RVB pour un objet Color. L’appel de cette méthode annule les
paramètres Color.setTransform() précédents.
Renvoie
Rien.
Exemple
Cet exemple définit la valeur de couleur RVB pour le clip mon_mc. Pour voir ce code fonctionner,
placez un clip sur la scène avec le nom d’occurrence mon_mc. Placez ensuite le code suivant sur
l’image 1 du scénario principal et choisissez Contrôle > Tester l’animation.
ma_color = new Color(mon_mc);
ma_color.setRGB(0x993366);
Consultez également
Color.setTransform()
366
Chapitre 12 : Dictionnaire ActionScript
Color.setTransform()
Disponibilité
Flash Player 5.
Usage
ma_color.setTransform(objetDeTransformationDeCouleur)
Paramètres
objetDeTransformationDeCouleur Un objet créé à l’aide du constructeur new Object. Cette
occurrence de Classe Object doit avoir les propriétés suivantes, qui spécifient les valeurs de
transformation de couleur : ra, rb, ga, gb, ba, bb, aa, ab. Ces propriétés sont expliquées cidessous.
Renvoie
Rien.
Description
Méthode : définit les informations de transformation de couleur pour un objet Color. Le
paramètre objetDeTransformationDeCouleur est un objet générique que vous créez à partir du
constructeur new Object. Il a des paramètres spécifiant les valeurs de pourcentage et de décalage
pour les composantes rouge, verte, bleue et alpha (transparence) d’une couleur, entrées suivant le
format 0xRRVVBBAA.
Les paramètres pour un objet de transformation de couleur correspondent aux paramètres définis
dans la boîte de dialogue Effet avancé et sont définis comme suit :
•
•
•
•
•
•
•
•
est le pourcentage de la composante rouge (-100 à 100).
rb est le décalage de la composante rouge (-255 à 255).
ga est le pourcentage de la composante verte (-100 à 100).
gb est le décalage de la composante verte (-255 à 255).
ba est le pourcentage de la composante bleue (-100 à 100).
bb est le décalage de la composante bleue (-255 à 255).
aa est le pourcentage pour alpha (-100 à 100).
ab est le décalage pour alpha (-255 à 255).
ra
Vous créez un paramètre objetDeTransformationDeCouleur comme suit :
maTransformationDeCouleur = new Object();
maTransformationDeCouleur.ra = 50;
maTransformationDeCouleur.rb = 244;
maTransformationDeCouleur.ga = 40;
maTransformationDeCouleur.gb = 112;
maTransformationDeCouleur.ba = 12;
maTransformationDeCouleur.bb = 90;
maTransformationDeCouleur.aa = 40;
maTransformationDeCouleur.ab = 70;
Vous pouvez également utiliser la syntaxe suivante pour créer un paramètre
objetDeTransformationDeCouleur :
maTransformationDeCouleur = { ra: ‘50’, rb: ‘244’, ga: ‘40’, gb: ‘112’, ba:
‘12’, bb: ‘90’, aa: ‘40’, ab: ‘70’}
Color.setTransform()
367
Exemple
Cet exemple crée un nouvel objet Color pour un fichier SWF cible, crée un objet générique
appelé maTransformationDeCouleur avec les propriétés définies ci-dessus et utilise la méthode
setTransform() pour transmettre objetDeTransformationDeCouleur à un objet Color. Pour
utiliser ce code dans un document Flash (FLA), placez-le sur l’image 1 du scénario principal et
placez un clip sur la scène avec le nom d’occurrence mon_mc, comme dans le code suivant :
// Créez un objet Color appelé ma_color pour la cible mon_mc
ma_color = new Color(mon_mc);
// Créez un objet de transformation de couleur appelé
maTransformationDeCouleur
// avec l’objet générique Object
maTransformationDeCouleur = new Object();
// définir les valeurs de maTransformationDeCouleur
maTransformationDeCouleur = { ra: ‘50’, rb: ‘244’, ga: ‘40’, gb: ‘112’, ba:
‘12’, bb: ‘90’, aa: ‘40’, ab: ‘70’};
// associer l’objet de transformation de couleur à l’objet Color
// créé pour mon_mc
ma_color.setTransform(maTransformationDeCouleur);
Classe ContextMenu
Disponibilité
Flash Player 7.
Description
La classe ContextMenu fournit un contrôle d’exécution des éléments du menu contextuel de
Flash Player, qui apparaît lorsqu’un utilisateur clique avec le bouton droit (Windows) ou appuie
sur la touche Contrôle (Macintosh) dans Flash Player. Vous pouvez utiliser les méthodes et les
propriétés de la classe ContextMenu pour ajouter des éléments de menu personnalisés, contrôler
l’affichage des éléments du menu contextuel intégré (par exemple Zoom avant et Imprimer) ou
créer des copies de menus.
Vous pouvez associer un objet ContextMenu à un bouton spécifique, un clip ou un objet de
champ de texte. Pour ce faire, utilisez la propriété menu de la classe Button, MovieClip ou
TextField. Pour plus d’informations sur la propriété menu, consultez Button.menu,
MovieClip.menu et TextField.menu.
Pour ajouter de nouveaux éléments à un objet ContextMenu, vous créez un objet
ContextMenuItem, puis vous ajoutez cet objet au tableau ContextMenu.customItems. Pour plus
d’informations sur la création d’éléments de menu contextuel, consultez l’entrée Classe
ContextMenuItem.
Flash Player dispose de trois types de menus contextuels : le menu Standard (qui apparaît lorsque
vous cliquez avec le bouton droit de la souris dans Flash Player), le menu Edition (qui apparaît
lorsque vous cliquez avec le bouton droit de la souris sur un champ de texte sélectionnable ou
modifiable) et le menu Erreur (qui apparaît lorsque le chargement d’un fichier SWF a échoué
dans Flash Player.) Seuls les menus Standard et Edition peuvent être modifiés à l’aide de la classe
ContextMenu.
Les éléments de menu personnalisés apparaissent toujours en haut du menu contextuel Flash
Player, au-dessus de tout élément de menu intégré ; une barre de séparation distingue les éléments
de menu intégrés des éléments personnalisés. Un menu contextuel peut contenir jusqu’à 15
éléments personnalisés.
368
Chapitre 12 : Dictionnaire ActionScript
Vous devez utiliser le constructeur new ContextMenu() pour créer un objet ContextMenu avant
d’en appeler les méthodes.
Méthodes de la classe ContextMenu
Méthode
Description
ContextMenu.copy()
Renvoie une copie de l’objet ContextMenu spécifié.
ContextMenu.hideBuiltInItems() Masque la plupart des éléments intégrés dans le menu
contextuel de Flash Player.
Propriétés de la classe ContextMenu
Propriété
Description
ContextMenu.builtInItems
Un objet dont les membres correspondent aux éléments intégrés
du menu contextuel.
ContextMenu.customItems
Un tableau, non défini par défaut, qui contient des objets
ContextMenuItem.
Gestionnaires d’événement de la classe ContextMenu
Propriété
Description
ContextMenu.onSelect
Invoqué avec l’affichage du menu.
Constructeur de la classe ContextMenu
Disponibilité
Flash Player 7.
Usage
new ContextMenu ([fonctionDeRappel])
Paramètres
Une référence à une fonction appelée lorsque l’utilisateur clique avec le
bouton droit ou appuie sur la touche Contrôle, avant l’affichage du menu. Ce paramètre est
facultatif.
fonctionDeRappel
Renvoie
Rien.
Description
Constructeur : crée un nouvel objet ContextMenu. Facultativement, à la création de l’objet, vous
pouvez définir un identifiant pour un gestionnaire d’événements. La fonction spécifiée est appelée
lorsque l’utilisateur invoque le menu contextuel, mais avant l’affichage de ce dernier. Cette
information est utile pour personnaliser le contenu des menus en fonction de l’état de
l’application ou du type d’objet (clip, champ de texte ou bouton) sur lequel l’utilisateur clique
avec le bouton droit ou pour lequel il appuie sur la touche Contrôle. (Pour obtenir un exemple de
création d’un gestionnaire d’événements, consultez ContextMenu.onSelect.)
Classe ContextMenu
369
Exemple
L’exemple suivant masque tous les objets intégrés dans le menu contextuel. (Cependant, les
éléments Paramètres et A propos de apparaissent encore, car il est impossible de les désactiver.)
var nouveauMenu = new ContextMenu();
nouveauMenu.hideBuiltInItems();
_root.menu = nouveauMenu;
Dans cet exemple, le gestionnaire d’événements spécifié, menuHandler, active ou désactive un
élément du menu personnalisé (à l’aide du tableau ContextMenu.customItems) en fonction de la
valeur de la variable booléenne nommée showItem. Si cette dernière est false, l’élément du
menu personnalisé est désactivé ; dans le cas contraire, il est activé.
var afficherElement = false; // Changez la valeur en true pour visualiser
l’effet
mon_cm = new ContextMenu(gestionnaireDeMenu);
mon_cm.customItems.push(new ContextMenuItem("Bonjour", itemHandler));
function menuHandler(obj, menuObj) {
if (showItem == false) {
menuObj.customItems[0].enabled = false;
} else {
menuObj.customItems[0].enabled = true;
}
}
function itemHandler(obj, item) {
}
_root.menu = mon_cm;
Consultez également
Button.menu, ContextMenu.onSelect, ContextMenu.customItems,
ContextMenu.hideBuiltInItems(), MovieClip.menu, TextField.menu
370
Chapitre 12 : Dictionnaire ActionScript
ContextMenu.builtInItems
Disponibilité
Flash Player 7.
Usage
mon_cm.builtInItems
Description
Propriété : un objet ayant les propriétés booléennes suivantes : save, zoom, quality, play, loop,
rewind, forward_back et print. La définition de ces variables sur false ôte les éléments
correspondants du menu de l’objet ContextMenu spécifié. Ces propriétés sont énumérables et
sont définies sur true par défaut.
Exemple
Dans cet exemple, les éléments intégrés Quality et Print sont désactivés pour l’objet
ContextMenu mon_cm, qui est lié au scénario principal du fichier SWF.
var mon_cm = new ContextMenu ();
mon_cm.builtInItems.quality=false;
mon_cm.builtInItems.print=false;
_root.menu = mon_cm;
Dans l’exemple suivant, une boucle for..in énumère tous les noms et les valeurs des éléments
intégrés du menu de l’objet ContextMenu, mon_cm.
mon_cm = new ContextMenu();
for(eachProp dans mon_cm.builtInItems) {
var nomProp = eachProp;
var valeurProp = mon_cm.builtInItems[nomProp];
trace(nomProp + ": " + valeurProp;
}
ContextMenu.builtInItems
371
ContextMenu.copy()
Disponibilité
Flash Player 7.
Usage
mon_cm.copy()
Paramètres
Aucun.
Renvoie
Un objet ContextMenu.
Description
Méthode : crée une copie de l’objet ContextMenu spécifié. La copie hérite de toutes les propriétés
de l’objet du menu original.
Exemple
Cet exemple crée une copie de l’objet ContextMenu nommé mon_cm dont les éléments intégrés
sont masqués et ajoute un élément du menu avec le texte « Enregistrer... ». Il crée ensuite une
copie de mon_cm et l’affecte à la variable clone_cm, qui hérite de toutes les propriétés du menu
original.
mon_cm = new ContextMenu();
mon_cm.hideBuiltInItems();
mon_cm.customItems.push(new ContextMenuItem("Enregistrer...", saveHandler);
function saveHandler (obj, menuItem) {
saveDocument(); // fonction personnalisée (masquée)
}
clone_cm = mon_cm.copy();
372
Chapitre 12 : Dictionnaire ActionScript
ContextMenu.customItems
Disponibilité
Flash Player 7.
Usage
mon_cm.customItems
Description
Propriété : un tableau d’objets ContextMenuItem. Chaque objet du tableau représente un menu
contextuel que vous avez défini. Utilisez cette propriété pour ajouter, ôter ou modifier ces
éléments personnalisés du menu.
Pour ajouter des nouveaux éléments de menu, vous devez d’abord créer un nouvel objet
ContextMenuItem, puis l’ajouter au tableau menu_mc.customItems (à l’aide de Array.push(),
par exemple). Pour plus d’informations sur la création d’éléments de menu, consultez l’entrée
Classe ContextMenuItem.
Exemple
L’exemple suivant crée un nouvel élément de menu personnalisé nommé élémentDuMenu_cm avec
la légende « Envoyer un courriel » et un gestionnaire de rappel nommé emailHandler (masqué).
Le nouvel élément de menu est ensuite ajouté à l’objet ContextMenu, mon_cm, à l’aide du tableau
customItems. Enfin, le nouveau menu est attaché à un clip nommé courriel_mc.
var mon_cm = new ContextMenu();
var élémentDuMenu_cm = new ContextMenuItem("Envoyer un courriel",
emailHandler);
mon_cm.customItems.push(élémentDuMenu_cm);
email_mc.menu = mon_cm;
Consultez également
Button.menu,
Classe ContextMenu, MovieClip.menu, TextField.menu
ContextMenu.customItems
373
ContextMenu.hideBuiltInItems()
Disponibilité
Flash Player 7.
Usage
mon_cm.hideBuiltInItems();
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : masque tous les éléments intégrés du menu (excepté Paramètres) dans l’objet
ContextMenu spécifié. Si Flash Debug Player est en cours d’exécution, l’élément de menu
Débogage apparaît, mais il est grisé pour les fichiers SWF dont le débogage à distance est
désactivé.
Cette méthode masque seulement les éléments du menu qui apparaissent dans le menu contextuel
standard ; elle n’affecte pas les éléments apparaissant dans les menus d’édition ou d’erreur. Pour
plus d’informations sur les différents types de menus, veuillez vous référer à l’entrée Classe
ContextMenu.
Cette méthode consiste à définir tous les membres booléens de mon_cm.builtInItems sur
false. Vous pouvez choisir de rendre visible un élément intégré en définissant son membre
correspondant dans mon_cm.builtInItems sur true (comme dans l’exemple suivant).
Exemple
L’exemple suivant crée un nouvel objet ContextMenu nommé mon_cm dont les éléments intégrés
du menu sont masqués, excepté pour Print. L’objet du menu est lié au scénario principal.
mon_cm = new ContextMenu();
mon_cm.hideBuiltInItems();
mon_cm.builtInItems.print = true;
_root.menu = mon_cm;
374
Chapitre 12 : Dictionnaire ActionScript
ContextMenu.onSelect
Disponibilité
Flash Player 7.
Usage
mon_cm.onSelect = function (item:Object, item_menu:ContextMenu) {
// votre code ici
}
Paramètres
Une référence à l’objet (clip, bouton ou champ de texte sélectionnable) que le pointeur
de la souris survolait lorsque le menu contextuel de Flash Player a été invoqué et dont la propriété
menu est définie en tant qu’objet ContextMenu valide.
élément
menuElément
Une référence à l’objet ContextMenu affecté à la propriété menu de l’objet.
Renvoie
Rien.
Description
Gestionnaire d’événement : appelé quand un utilisateur invoque le menu contextuel de Flash
Player, mais avant l’affichage de ce dernier. Vous pouvez ainsi personnaliser le contenu du menu
contextuel en fonction de l’état actuel de l’application.
Vous pouvez également spécifier le gestionnaire de rappel pour un objet ContextMenu quand
vous construisez un nouvel objet ContextMenu. Pour plus d’informations, consultez l’entrée
Classe ContextMenu.
Exemple
L’exemple suivant détermine sur quel type d’objet le menu contextuel a été invoqué.
mon_cm = new ContextMenu();
menuHandler = function (obj:Object, menu:ContextMenu) {
if(obj instanceof MovieClip) {
trace("Clip : " + obj);
}
if(obj instanceof TextField) {
trace("Champ de texte : " + obj);
}
if(obj instanceof TextField) {
trace("Bouton : " + obj);
}
}
mon_cm.onSelect = menuHandler;
ContextMenu.onSelect
375
Classe ContextMenuItem
Disponibilité
Flash Player 7.
Description
Utilisez la classe ContextMenuItem afin de créer des éléments de menus personnalisés à afficher
dans le menu contextuel de Flash Player. Chaque objet ContextMenuItem a une légende (texte)
affichée dans le menu contextuel, ainsi qu’un gestionnaire de rappel (une fonction) invoqué
quand l’élément du menu sélectionné. Pour ajouter un nouvel élément à un menu contextuel,
vous devez l’ajouter dans le tableau customItems de l’objet ContextMenu.
Vous pouvez activer ou désactiver des éléments spécifiques du menu, rendre les éléments visibles
ou invisibles, ou encore changer la légende ou le gestionnaire de rappel associé à un élément du
menu.
Les éléments de menu personnalisés apparaissent en haut du menu contextuel, au-dessus des
éléments intégrés. Une barre de séparation distingue toujours les éléments personnalisés des
éléments intégrés. Vous pouvez ajouter jusqu’à 15 éléments personnalisés au menu contextuel de
Flash Player. Chaque élément doit contenir au moins un caractère visible ; les caractères de
contrôle, sauts de lignes et autres espaces blancs sont ignorés. Aucun élément ne peut contenir
plus de 100 caractères. Les éléments identiques aux éléments intégrés ou à d’autres éléments
personnalisés sont ignorés, que l’élément correspondant soit visible ou non. Les éléments du
menu sont comparés sans tenir compte de la casse, de la ponctuation et des espaces blancs.
Aucun des mots suivants ne peut apparaître dans un élément personnalisé : Macromedia, Flash
Player, Settings.
Méthode de la classe ContextMenuItem
Méthode
Description
ContextMenuItem.copy()
Renvoie une copie de l’objet ContextMenuItem spécifié.
Propriétés de la classe ContextMenuItem
Propriété
Description
ContextMenuItem.caption
Spécifie le texte affiché dans l’élément du menu.
ContextMenuItem.enabled
Spécifie si l’élément du menu est activé ou désactivé.
ContextMenuItem.separatorBefore Spécifie si une barre de séparation doit apparaître au-dessus
de l’élément du menu.
ContextMenuItem.visible
Spécifie si l’élément du menu est visible ou non.
Gestionnaire d’événement de la classe ContextMenuItem
Gestionnaire
d’événement
Description
ContextMenuItem.onSelect Invoqué quand l’élément du menu est sélectionné.
376
Chapitre 12 : Dictionnaire ActionScript
Constructeur de la classe ContextMenuItem
Disponibilité
Flash Player 7.
Usage
new ContextMenuItem(légende, fonctionDeRappel, [séparateurAvant,] [activé,]
[visible] ] ] )
Paramètres
légende
Une chaîne qui spécifie le texte associé à l’élément du menu.
fonctionDeRappel
Une fonction que vous définissez et qui est appelée lorsque l’élément de
menu est sélectionné.
Une valeur booléenne qui indique si une barre de séparation doit apparaître
au-dessus de l’élément du menu dans le menu contextuel. Ce paramètre est facultatif ; sa valeur
par défaut est false.
séparateurAvant
activé Une valeur booléenne qui indique si l’élément du menu est activé ou désactivé dans le
menu contextuel. Ce paramètre est facultatif ; sa valeur par défaut est true.
Une valeur booléenne qui indique si l’élément du menu est visible ou invisible. Ce
paramètre est facultatif ; sa valeur par défaut est true.
visible
Renvoie
Rien.
Description
Constructeur : crée un nouvel objet ContextMenuItem qui peut être ajouté au tableau
ContextMenu.customItems.
Exemple
Cet exemple ajoute les éléments du menu Démarrer et Arrêter, séparés par une barre, à l’objet
ContextMenu mon_cm. La fonction startHandler() est appelée quand Démarrer est sélectionné
dans le menu contextuel ; stopHandler() est appelée quand Arrêter est sélectionné. L’objet
ContextMenu du menu est appliqué au scénario principal.
mon_cm = new ContextMenu();
mon_cm.customItems.push(new ContextMenuItem("Démarrer", startHandler));
mon_cm.customItems.push(new ContextMenuItem("Arrêter", stopHandler, true));
function itemHandler(obj, item) {
trace("Arrêt...");
}
function itemHandler(obj, item) {
trace("Démarrage...");
}
_root.menu = mon_cm;
Classe ContextMenuItem
377
ContextMenuItem.caption
Disponibilité
Flash Player 7.
Usage
élémentDuMenu_cmi.caption
Description
Propriété : une chaîne qui spécifie la légende de l’élément du menu (texte) affichée dans le menu
contextuel.
Exemple
Cet exemple affiche la légende de l’élément du menu sélectionné (Mettre le jeu en pause) dans le
panneau de sortie.
mon_cm = new ContextMenu();
élémentDuMenu_cmi = new ContextMenuItem("Mettre le jeu en pause", onPause);
mon_cm.customItems.
function onPause(obj, menuItem) {
trace("Vous choisissez : " + menuItem.caption);
}
ContextMenuItem.copy()
Disponibilité
Flash Player 7.
Usage
élémentDuMenu_cmi.copy();
Renvoie
Un objet ContextMenuItem.
Description
Méthode : crée et renvoie une copie de l’objet ContextMenuItem spécifié. La copie inclut toutes
les propriétés de l’objet original.
Exemple
Cet exemple crée un nouvel objet ContextMenuItem nommé original_cmi avec le texte Pause
en tant que légende et un gestionnaire d’événement défini sur la fonction onPause. L’exemple
crée ensuite une copie de l’objet ContextMenuItem et l’affecte à la variable copier_cmi.
original_cmi = new ContextMenuItem("Pause", onPause);
function onPause(obj, menu) {
_root.stop();
}
original_cmi.visible = false;
copy_cmi = orig_cmi.copy();
378
Chapitre 12 : Dictionnaire ActionScript
ContextMenuItem.enabled
Disponibilité
Flash Player 7.
Usage
élémentDuMenu_cmi.enabled
Description
Propriété : une valeur booléenne qui indique si l’élément du menu spécifié est activé ou désactivé.
Par défaut, cette propriété est true.
Exemple
L’exemple suivant crée un nouvel élément du menu contextuel, puis désactive l’élément du menu.
var saveMenuItem = new ContextMenuItem("Enregistrer...", doSave);
saveMenuItem.enabled = false;
ContextMenuItem.onSelect
Disponibilité
Flash Player 7.
Usage
élémentDuMenu_cmi.onSelect = function (obj, élémentDuMenu) {
// vos instructions
}
Paramètres
obj Une référence au clip (ou scénario), au bouton ou au champ de texte modifiable sur lequel
l’utilisateur a cliqué avec le bouton droit de la souris ou en appuyant sur la touche Contrôle.
élémentDuMenu
Une référence à l’objet ContextMenuItem sélectionné.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque l’élément du menu spécifié est sélectionné à partir du
menu contextuel de Flash Player. Le gestionnaire de rappel spécifié reçoit deux paramètres : obj,
une référence à l’objet situé sous le pointeur de la souris quand l’utilisateur a invoqué le menu
contextuel Flash Player, et élémentDuMenu, une référence à l’objet ContextMenuItem
représentant l’élément du menu sélectionné.
ContextMenuItem.onSelect
379
Exemple
L’exemple suivant affecte une fonction au gestionnaire onSelect pour un objet
ContextMenuItem nommé démarrer_cmi. La fonction affiche la légende de l’élément du menu
sélectionné.
démarrer_cmi.onSelect = function (obj, item) {
trace("Vous choisissez : " + item.caption);
}
Consultez également
ContextMenu.onSelect
ContextMenuItem.separatorBefore
Disponibilité
Flash Player 7.
Usage
élémentDuMenu_cmi.separatorBefore
Description
Propriété : une valeur booléenne qui indique si une barre de séparation doit apparaître au-dessus
de l’élément du menu spécifié. Cette propriété est false par défaut.
Remarque : Une barre de séparation apparaît toujours entre les éléments du menu personnalisés et
les éléments intégrés.
Exemple
Cet exemple crée trois éléments du menu étiquetés Ouvrir, Enregistrer et Imprimer. Une barre de
séparation sépare les éléments Enregistrer et Imprimer. Les éléments du menu sont ensuite ajoutés
au tableau customItems de l’objet ContextMenu. Enfin, le menu est associé au scénario principal
du fichier SWF.
mon_cm = new ContextMenu();
ouvrir_cmi = new ContextMenuItem("Ouvrir", itemHandler);
enregistrer_cmi = new ContextMenuItem("Enregistrer", itemHandler);
imprimer_cmi = new ContextMenuItem("Imprimer", itemHandler);
imprimer_cmi.separatorBefore = true;
mon_cm.customItems.push(ouvrir_cmi, enregistrer_cmi, imprimer_cmi);
function itemHandler(obj, menuItem) {
trace("Vous choisissez : " + menuItem.caption);
};
_root.menu = mon_cm;
Consultez également
ContextMenu.onSelect
380
Chapitre 12 : Dictionnaire ActionScript
ContextMenuItem.visible
Disponibilité
Flash Player 7.
Usage
élémentDuMenu_cmi.visible
Description
Propriété : une valeur booléenne qui indique si le menu spécifié est visible quand le menu
contextuel Flash Player s’affiche. Par défaut, cette propriété est true.
continue
Disponibilité
Flash Player 4.
Usage
continue
Paramètres
Aucun.
Renvoie
Rien.
Description
Instruction : apparaît dans plusieurs types d’instructions de boucle et se comporte différemment
dans chaque type de boucle.
Dans une boucle while, continue oblige l’interprète de Flash à ignorer le reste du corps de la
boucle et à atteindre le haut de la boucle, où la condition est testée.
Dans une boucle do while, continue oblige l’interprète de Flash à ignorer le reste du corps de la
boucle et à atteindre le bas de la boucle, où la condition est testée.
Dans une boucle for, continue oblige l’interprète de Flash à ignorer le reste du corps de la
boucle et à atteindre l’évaluation de la post-expression for de la boucle.
Dans une boucle for...in, continue oblige l’interprète de Flash à ignorer le reste du corps de la
boucle et à retourner au début de la boucle, où la valeur suivante dans l’énumération est traitée.
Consultez également
do while, for, for..in, while
continue
381
Classe CustomActions
Disponibilité
Flash Player 6.
Description
Les méthodes de la classe CustomActions permettent à un fichier SWF lu dans l’outil de
programmation Flash de gérer toutes les actions personnalisées qui sont enregistrées à l’aide de
l’outil de programmation. Un fichier SWF peut installer et désinstaller des actions personnalisées,
récupérer la définition XML d’une action personnalisée et récupérer la liste des actions
personnalisées enregistrées.
Vous pouvez utiliser ces méthodes pour développer des fichiers SWF qui constituent des
extensions de l’outil de programmation Flash. Une telle extension pourrait, par exemple, utiliser
le protocole d’application Flash pour naviguer dans un référentiel UDDI et télécharger des
services web dans la boîte à outils Actions.
Méthodes de la classe CustomActions
382
Méthode
Description
CustomActions.get()
Lit le contenu du fichier XML de définition d’actions personnalisées.
CustomActions.install()
Installe un nouveau fichier XML de définition d’actions
personnalisées.
CustomActions.list()
Renvoie une liste de toutes les actions personnalisées enregistrées.
CustomActions.uninstall
Supprime un fichier XML de définition d’actions personnalisées.
Chapitre 12 : Dictionnaire ActionScript
CustomActions.get()
Disponibilité
Flash Player 6.
Usage
CustomActions.get(définitionDactionsPersonnalisées)
Paramètres
définitionDactionsPersonnalisées
Le nom de la définition d’action personnalisée à
récupérer.
Renvoie
Si la définition personnalisée de l’action XML est située, renvoie une chaîne ; dans le cas
contraire, renvoie undefined.
Description
Méthode : lit le contenu du fichier XML de définition d’actions personnalisées nommé
définitionDactionsPersonnalisées.
Le nom du fichier de définition doit être un nom de fichier simple, sans l’extension .xml et sans
séparateurs de répertoires (« : :», « :/ :» ou « :\ :»).
Si le fichier de définition spécifié par définitionDactionsPersonnalisées est introuvable, une
valeur de undefined est renvoyée. Si la définition XML des actions personnalisées spécifiée par le
paramètre définitionDactionsPersonnalisées est trouvée, elle est lue en totalité et renvoyée
sous forme de chaîne.
CustomActions.get()
383
CustomActions.install()
Disponibilité
Flash Player 6.
Usage
CustomActions.install(définitionDactionsPersonnalisées,
définitionXMLPersonnalisée)
Paramètres
définitionDactionsPersonnalisées
Le nom de la définition d’action personnalisée à
installer.
définitionXMLPersonnalisée
Le texte de la définition XML à installer.
Renvoie
Une valeur booléenne false si une erreur se produit lors de l’installation : sinon, une valeur true
est retournée pour indiquer que l’installation de l’action personnalisée est réussie.
Description
Méthode : installe un nouveau fichier XML de définition d’actions personnalisées indiqué par le
paramètre définitionDactionsPersonnalisées. Le contenu du fichier est spécifié par la
chaîne définitionXMLPersonnalisée.
Le nom du fichier de définition doit être un nom de fichier simple, sans l’extension .xml et sans
séparateurs de répertoires (« : :», « :/ :» ou « :\ :»).
Si un fichier d’actions personnalisées existe déjà avec le nom
il est écrasé.
définitionDactionsPersonnalisées,
Si le répertoire Configuration/ActionsPanel/CustomActions n’existe pas lorsque cette méthode est
invoquée, il est créé.
384
Chapitre 12 : Dictionnaire ActionScript
CustomActions.list()
Disponibilité
Flash Player 6.
Usage
CustomActions.list()
Paramètres
Aucun.
Renvoie
Un tableau.
Description
Méthode : renvoie un objet Array contenant les noms de toutes les actions personnalisées qui sont
enregistrées avec l’outil de programmation Flash. Les éléments du tableau sont de simples noms,
sans extension .xml et sans séparateurs de répertoires (par exemple, « : », « / » ou « \ »). Si aucune
action personnalisée n’est enregistrée, la méthode list() renvoie un tableau de longueur zéro. Si
une erreur se produit, la méthode list() renvoie la valeur undefined.
CustomActions.uninstall
Disponibilité
Flash Player 6.
Usage
CustomActions.uninstall(définitionDactionsPersonnalisées)
Paramètres
définitionDactionsPersonnalisées
Le nom de la définition d’action personnalisée à
désinstaller.
Renvoie
Une valeur booléenne false si aucune action personnalisée nommée
définitionDactionsPersonnalisées n’est rencontrée. Si les actions personnalisées ont été
correctement retirées, une valeur de true est renvoyée.
Description
Méthode : supprime le fichier XML de définition d’actions personnalisées nommé
définitionDactionsPersonnalisées.
Le nom du fichier de définition doit être un nom de fichier simple, sans l’extension .xml et sans
séparateurs de répertoires (« : :», « :/ :» ou « :\ :»).
CustomActions.uninstall
385
Classe Date
Disponibilité
Flash Player 5.
Description
La classe Date permet de récupérer les valeurs de dates et d’heures en fonction du temps universel
(Temps moyen de Greenwich, maintenant appelé Temps Universel Coordonné) ou en fonction
du système d’exploitation sur lequel Flash Player est exécuté. Les méthodes de la classe Date ne
sont pas statiques, mais ne s’appliquent qu’à l’objet Date individuel spécifié à l’appel de la
méthode. La méthode Date.UTC()est une exception : c’est une méthode statique.
La classe Date gère l’heure d’été différemment suivant le système d’exploitation et la version de
Flash Player. Flash Player 6 et les versions suivantes gèrent l’heure d’été sur les systèmes
d’exploitation suivants comme suit :
• Windows – l’objet Date ajuste automatiquement son résultat pour refléter l’heure d’été. L’objet
•
Date détecte si l’heure d’été est employée à l’endroit en question et, si c’est le cas, détecte les
dates et heures de transition de l’heure d’hiver à l’heure d’été. Cependant, les dates de
transition actuellement en vigueur sont appliquées aux dates passées et futures, et l’écart dû à
l’heure d’été peut donc être calculé de façon incorrecte pour les dates passées lorsque le lieu en
question avait des dates de transition différentes.
Mac OS X – l’objet Date ajuste automatiquement son résultat pour refléter l’heure d’été. La
base de données d’informations de fuseau horaire sous Mac OS X est utilisée pour déterminer
si un écart dû à l’heure d’été devrait être appliqué à une date ou à une heure présente ou passée.
Flash Player 5 gère l’heure d’été sur les systèmes d’exploitation suivants comme suit :
• Windows : les réglementations américaines relatives à l’heure d’été sont toujours appliquées.
Cela entraîne des transitions incorrectes en Europe et dans d’autres régions qui utilisent l’heure
d’été mais dont les transitions diffèrent par rapport aux Etats-Unis. Flash détecte correctement
si l’heure d’été est employée dans les paramètres régionaux en question.
Pour appeler les méthodes de la classe Date, vous devez d’abord créer un objet Date à l’aide du
constructeur de la classe Date, décrit plus loin dans cette même section.
Méthodes de la classe Date
386
Méthode
Description
Date.getDate
Renvoie le jour du mois, en fonction de l’heure locale.
Date.getDay()
Renvoie le jour de la semaine, en fonction de l’heure locale.
Date.getFullYear
Renvoie l’année (quatre chiffres), en fonction de l’heure locale.
Date.getHours()
Renvoie l’heure, en fonction de l’heure locale.
Date.getMilliseconds()
Renvoie les millisecondes, en fonction de l’heure locale.
Date.getMinutes()
Renvoie les minutes, en fonction de l’heure locale.
Date.getMonth
Renvoie le mois, en fonction de l’heure locale.
Date.getSeconds
Renvoie les secondes, en fonction de l’heure locale.
Chapitre 12 : Dictionnaire ActionScript
Méthode
Description
Date.getTime()
Renvoie le nombre de millisecondes écoulées depuis le premier
janvier 1970 à minuit, temps universel.
Date.getTimezoneOffset()
Renvoie la différence, en minutes, entre l’heure locale de l’ordinateur
et le temps universel.
Date.getUTCDate()
Renvoie le jour (date) du mois, en fonction du temps universel.
Date.getUTCDay()
Renvoie le jour de la semaine, en fonction du temps universel.
Date.getUTCFullYear()
Renvoie l’année (quatre chiffres), en fonction du temps universel.
Date.getUTCHours()
Renvoie l’heure, en fonction du temps universel.
Date.getUTCMilliseconds()
Renvoie les millisecondes, en fonction du temps universel.
Date.getUTCMinutes()
Renvoie les minutes, en fonction du temps universel.
Date.getUTCMonth()
Renvoie le mois, en fonction du temps universel.
Date.getUTCSeconds()
Renvoie les secondes, en fonction du temps universel.
Date.getYear()
Renvoie l’année, en fonction de l’heure locale.
Date.setDate()
Définit le jour du mois, en fonction de l’heure locale. Renvoie les
nouvelles informations horaires, en millisecondes.
Date.setFullYear()
Définit l’année complète, en fonction de l’heure locale. Renvoie les
nouvelles informations horaires, en millisecondes.
Date.setHours()
Définit l’heure, en fonction de l’heure locale. Renvoie les nouvelles
informations horaires, en millisecondes.
Date.setMilliseconds()
Définit les millisecondes, en fonction de l’heure locale. Renvoie les
nouvelles informations horaires, en millisecondes.
Date.setMinutes()
Définit les minutes, en fonction de l’heure locale. Renvoie les
nouvelles informations horaires, en millisecondes.
Date.setMonth()
Définit le mois, en fonction de l’heure locale. Renvoie les nouvelles
informations horaires, en millisecondes.
Date.setSeconds()
Définit les secondes, en fonction de l’heure locale. Renvoie les
nouvelles informations horaires, en millisecondes.
Date.setTime()
Définit la date, en millisecondes. Renvoie les nouvelles informations
horaires, en millisecondes.
Date.setUTCDate()
Définit la date, en fonction du temps universel. Renvoie les nouvelles
informations horaires, en millisecondes.
Date.setUTCFullYear()
Définit l’année, en fonction du temps universel. Renvoie les nouvelles
informations horaires, en millisecondes.
Date.setUTCHours()
Définit l’heure, en fonction du temps universel. Renvoie les nouvelles
informations horaires, en millisecondes.
Date.setUTCMilliseconds()
Définit les millisecondes, en fonction du temps universel. Renvoie les
nouvelles informations horaires, en millisecondes.
Classe Date
387
Méthode
Description
Date.setUTCMinutes()
Définit les minutes, en fonction du temps universel. Renvoie les
nouvelles informations horaires, en millisecondes.
Date.setUTCMonth()
Définit le mois, en fonction du temps universel. Renvoie les nouvelles
informations horaires, en millisecondes.
Date.setUTCSeconds()
Définit les secondes, en fonction du temps universel. Renvoie les
nouvelles informations horaires, en millisecondes.
Date.setYear()
Définit l’année, en fonction de l’heure locale.
Date.toString()
Renvoie une valeur de chaîne représentant la date et l’heure stockées
dans l’objet Date spécifié.
Date.UTC()
Renvoie le nombre de millisecondes écoulées entre le premier janvier
1970 à minuit, temps universel, et l’heure spécifiée.
Constructeur de la classe Date
Disponibilité
Flash Player 5.
Usage
new Date()
new Date(année, mois [, date [, heure [, minute [, seconde [, milliseconde
]]]]])
Paramètres
Une valeur entre 0 et 99 indique une année entre 1900 et 1999, sinon, les quatre chiffres
de l’année doivent être spécifiés.
année
mois
Un entier compris entre 0 (janvier) et 11 (décembre).
date
Un entier compris entre 1 et 31. Ce paramètre est facultatif.
heure
Un entier compris entre 0 (minuit) et 23 (23h00).
minute
seconde
Un entier compris entre 0 et 59. Ce paramètre est facultatif.
Un entier compris entre 0 et 59. Ce paramètre est facultatif.
milliseconde
Un entier compris entre 0 et 999. Ce paramètre est facultatif.
Renvoie
Rien.
Description
Objet : construit un nouvel objet Date contenant les informations horaires actuelles ou la date
spécifiée.
Exemple
L’exemple suivant récupère l’heure et la date actuelles.
maintenant_date = new Date();
388
Chapitre 12 : Dictionnaire ActionScript
L’exemple suivant crée un nouvel objet Date pour l’anniversaire de Gary, le 12 août 1974. (Le
paramètre du mois étant basé sur zéro, l’exemple utilise 7 pour le mois et non 8)
annivGary_date = new Date (74, 7, 12);
L’exemple suivant crée un nouvel objet Date, concatène la valeur renvoyée de
Date.getMonth, Date.getDate et Date.getFullYear et les affiche dans le champ de texte
spécifié par la variable date_str.
aujourdhui_date = new Date();
date_str = ((aujourdhui_date.getMonth() + 1) + "/" + aujourdhui_date.getDate()
+ "/" + aujourdhui_date.getFullYear());
Date.getDate
Disponibilité
Flash Player 5.
Usage
ma_date.getDate()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le jour du mois (un entier compris entre 1 et 31) de l’objet Date spécifié, en
fonction de l’heure locale. L’heure locale est déterminée par le système d’exploitation sur lequel
Flash Player est exécuté.
Date.getDay()
Disponibilité
Flash Player 5.
Usage
ma_date.getDay()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le jour de la semaine (0 pour dimanche, 1 pour lundi, et ainsi de suite) de
l’objet Date spécifié, en fonction de l’heure locale. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
Date.getDay()
389
Date.getFullYear
Disponibilité
Flash Player 5.
Usage
ma_date.getFullYear()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie l’année complète (un nombre à quatre chiffres, tel que 2002) de l’objet Date
spécifié, en fonction de l’heure locale. L’heure locale est déterminée par le système d’exploitation
sur lequel Flash Player est exécuté.
Exemple
L’exemple suivant utilise le constructeur pour créer un nouvel objet Date et envoie la valeur
renvoyée par la méthode getFullYear au panneau de sortie :
ma_date = new Date();
trace(ma_date.getFullYear());
Date.getHours()
Disponibilité
Flash Player 5.
Usage
ma_date.getHours()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie l’heure (un entier compris entre 0 et 23) de l’objet Date spécifié, en fonction
de l’heure locale. L’heure locale est déterminée par le système d’exploitation sur lequel Flash Player
est exécuté.
390
Chapitre 12 : Dictionnaire ActionScript
Date.getMilliseconds()
Disponibilité
Flash Player 5.
Usage
ma_date.getMilliseconds()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie les millisecondes (un entier compris entre 0 et 999) de l’objet Date spécifié, en
fonction de l’heure locale. L’heure locale est déterminée par le système d’exploitation sur lequel
Flash Player est exécuté.
Date.getMinutes()
Disponibilité
Flash Player 5.
Usage
ma_date.getMinutes()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie les minutes (un entier compris entre 0 et 59) de l’objet Date spécifié, en
fonction de l’heure locale. L’heure locale est déterminée par le système d’exploitation sur lequel
Flash Player est exécuté.
Date.getMinutes()
391
Date.getMonth
Disponibilité
Flash Player 5.
Usage
ma_date.getMonth()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le mois (0 pour janvier, 1 pour février, et ainsi de suite) de l’objet Date spécifié,
en fonction de l’heure locale. L’heure locale est déterminée par le système d’exploitation sur lequel
Flash Player est exécuté.
Date.getSeconds
Disponibilité
Flash Player 5.
Usage
ma_date.getSeconds()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie les secondes (un entier compris entre 0 et 59) de l’objet Date spécifié, en
fonction de l’heure locale. L’heure locale est déterminée par le système d’exploitation sur lequel
Flash Player est exécuté.
392
Chapitre 12 : Dictionnaire ActionScript
Date.getTime()
Disponibilité
Flash Player 5.
Usage
ma_date.getTime()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit,
temps universel, pour l’objet Date spécifié. Utilisez cette méthode pour représenter un instant
spécifique dans le temps lors d’une comparaison entre deux ou plusieurs objets Date.
Date.getTimezoneOffset()
Disponibilité
Flash Player 5.
Usage
ma_date.getTimezoneOffset()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie la différence, en minutes, entre l’heure locale de l’ordinateur et le temps
universel.
Exemple
L’exemple suivant renvoie la différence entre l’heure d’été locale de San Francisco et le temps
universel. L’heure d’été est prise en compte dans le résultat renvoyé uniquement si la date définie
dans l’objet Date se produit durant l’heure d’été.
trace(new Date().getTimezoneOffset());
// 420 est affiché dans le panneau de sortie
// (7 heures * 60 minutes/heure = 420 minutes)
// cet exemple est donné dans le fuseau horaire de la Californie (PDT, GMT0700).
// le résultat peut varier en fonction du lieu et de la date.
Date.getTimezoneOffset()
393
Date.getUTCDate()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCDate()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le jour du mois (un entier compris entre 1 et 31) de l’objet Date spécifié, en
fonction du temps universel.
Date.getUTCDay()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCDay()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le jour de la semaine (0 pour dimanche, 1 pour lundi, et ainsi de suite) de
l’objet Date spécifié, en fonction du temps universel.
394
Chapitre 12 : Dictionnaire ActionScript
Date.getUTCFullYear()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCFullYear()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie l’année complète (quatre chiffres) de l’objet Date spécifié, en fonction du
temps universel.
Date.getUTCHours()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCHours()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie les heures de l’objet Date spécifié, en fonction du temps universel.
Date.getUTCHours()
395
Date.getUTCMilliseconds()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCMilliseconds()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie les millisecondes de l’objet Date spécifié, en fonction du temps universel.
Date.getUTCMinutes()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCMinutes()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie les minutes de l’objet Date spécifié, en fonction du temps universel.
396
Chapitre 12 : Dictionnaire ActionScript
Date.getUTCMonth()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCMonth()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le mois (0 pour janvier, 1 pour février, et ainsi de suite) de l’objet Date spécifié,
en fonction du temps universel.
Date.getUTCSeconds()
Disponibilité
Flash Player 5.
Usage
ma_date.getUTCSeconds()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie les secondes dans l’objet Date spécifié, en fonction du temps universel.
Date.getUTCSeconds()
397
Date.getYear()
Disponibilité
Flash Player 5.
Usage
ma_date.getYear()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie l’année de l’objet Date spécifié, en fonction de l’heure locale. L’heure locale est
déterminée par le système d’exploitation sur lequel Flash Player est exécuté. L’année est l’année
complète moins 1900. Par exemple, l’an 2000 est représenté par 100.
Consultez également
Date.getFullYear
Date.setDate()
Disponibilité
Flash Player 5.
Usage
ma_date.setDate(date)
Paramètres
date
Un entier compris entre 1 et 31.
Renvoie
Un entier.
Description
Méthode : définit le jour du mois pour l’objet Date spécifié, en fonction de l’heure locale et
renvoie les nouvelles informations, en millisecondes. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
398
Chapitre 12 : Dictionnaire ActionScript
Date.setFullYear()
Disponibilité
Flash Player 5.
Usage
ma_date.setFullYear(année [, mois [, date]] )
Paramètres
Un nombre à quatre chiffres spécifiant une année. Les nombres à deux chiffres ne
représentent pas les années : par exemple, 99 n’est pas l’année 1999, mais l’année 99.
année
mois
Un entier compris entre 0 (janvier) et 11 (décembre). Ce paramètre est facultatif.
date
Un nombre entre 1 et 31. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : définit l’année pour l’objet Date spécifié, en fonction de l’heure locale et renvoie les
nouvelles informations, en millisecondes. Si les paramètres mois et date sont spécifiés, ils sont
également définis sur l’heure locale. L’heure locale est déterminée par le système d’exploitation sur
lequel Flash Player est exécuté.
L’appel de cette méthode ne modifie pas les autres champs de l’objet Date spécifié, mais
et Date.getDay() peuvent rapporter une nouvelle valeur si le jour de la
semaine change suite à l’appel de cette méthode.
Date.getUTCDay()
Date.setHours()
Disponibilité
Flash Player 5.
Usage
ma_date.setHours(heure)
Paramètres
heure
Un entier compris entre 0 (minuit) et 23 (23h00).
Renvoie
Un entier.
Description
Méthode : définit les heures pour l’objet Date spécifié, en fonction de l’heure locale et renvoie les
nouvelles informations, en millisecondes. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
Date.setHours()
399
Date.setMilliseconds()
Disponibilité
Flash Player 5.
Usage
ma_date.setMilliseconds(milliseconde)
Paramètres
milliseconde
Un entier compris entre 0 et 999.
Renvoie
Un entier.
Description
Méthode : définit les millisecondes pour l’objet Date spécifié, en fonction du temps universel et
renvoie les nouvelles informations, en millisecondes. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
Date.setMinutes()
Disponibilité
Flash Player 5.
Usage
ma_date.setMinutes(minute)
Paramètres
minute
Un entier compris entre 0 et 59.
Renvoie
Un entier.
Description
Méthode : définit les minutes pour l’objet Date spécifié, en fonction du temps universel et renvoie
les nouvelles informations, en millisecondes. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
400
Chapitre 12 : Dictionnaire ActionScript
Date.setMonth()
Disponibilité
Flash Player 5.
Usage
ma_date.setMonth(mois [, date ])
Paramètres
mois
Un entier compris entre 0 (janvier) et 11 (décembre).
date
Un entier compris entre 1 et 31. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : définit le mois pour l’objet Date spécifié, en fonction de l’heure locale et renvoie les
nouvelles informations, en millisecondes. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
Date.setSeconds()
Disponibilité
Flash Player 5.
Usage
ma_date.setSeconds(seconde)
Paramètres
seconde
Un entier compris entre 0 et 59.
Renvoie
Un entier.
Description
Méthode : définit les secondes pour l’objet Date spécifié, en fonction de l’heure locale et renvoie
les nouvelles informations, en millisecondes. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
Date.setSeconds()
401
Date.setTime()
Disponibilité
Flash Player 5.
Usage
ma_date.setTime(millisecondes)
Paramètres
millisecondes
Une valeur entière où 0 est le 1er janvier 1970 à 0h00 GMT.
Renvoie
Un entier.
Description
Méthode : définit la date pour l’objet Date spécifié en millisecondes depuis le 1er janvier 1970 à
minuit et renvoie les nouvelles informations horaires, en millisecondes.
Date.setUTCDate()
Disponibilité
Flash Player 5.
Usage
ma_date.setUTCDate(date)
Paramètres
date
Un entier compris entre 1 et 31.
Renvoie
Un entier.
Description
Méthode : définit la date pour l’objet Date spécifié, en fonction du temps universel et renvoie les
nouvelles informations, en millisecondes. L’appel de cette méthode ne modifie pas les autres
champs de l’objet Date spécifié, mais Date.getUTCDay() et Date.getDay() peuvent rapporter
une nouvelle valeur si le jour de la semaine change suite à l’appel de cette méthode.
402
Chapitre 12 : Dictionnaire ActionScript
Date.setUTCFullYear()
Disponibilité
Flash Player 5.
Usage
ma_date.setUTCFullYear(année [, mois [, date]] )
Paramètres
L’année spécifiée à l’aide d’un nombre à quatre chiffres, tel que 2000.
année
mois
Un entier compris entre 0 (janvier) et 11 (décembre). Ce paramètre est facultatif.
date
Un entier compris entre 1 et 31. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : définit l’année pour l’objet Date spécifié (ma_date), en fonction de l’heure locale et
renvoie les nouvelles informations, en millisecondes.
En option, cette méthode peut également définir le mois et la date représentés par l’objet Date
spécifié. L’appel de cette méthode ne modifie pas les autres champs de l’objet Date spécifié, mais
Date.getUTCDay() et Date.getDay() peuvent rapporter une nouvelle valeur si le jour de la
semaine change suite à l’appel de cette méthode.
Date.setUTCHours()
Disponibilité
Flash Player 5.
Usage
ma_date.setUTCHours(heure [, minute [, seconde [, milliseconde]]])
Paramètres
heure
Un entier compris entre 0 (minuit) et 23 (23h00).
minute
seconde
Un entier compris entre 0 et 59. Ce paramètre est facultatif.
Un entier compris entre 0 et 59. Ce paramètre est facultatif.
milliseconde
Un entier compris entre 0 et 999. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : définit l’heure pour l’objet Date spécifié, en fonction du temps universel et renvoie les
nouvelles informations, en millisecondes.
Date.setUTCHours()
403
Date.setUTCMilliseconds()
Disponibilité
Flash Player 5.
Usage
ma_date.setUTCMilliseconds(milliseconde)
Paramètres
milliseconde
Un entier compris entre 0 et 999.
Renvoie
Un entier.
Description
Méthode : définit les millisecondes pour l’objet Date spécifié, en fonction du temps universel et
renvoie les nouvelles informations, en millisecondes.
Date.setUTCMinutes()
Disponibilité
Flash Player 5.
Usage
ma_date.setUTCMinutes(minute [, seconde [, milliseconde]])
Paramètres
minute
seconde
Un entier compris entre 0 et 59.
Un entier compris entre 0 et 59. Ce paramètre est facultatif.
milliseconde
Un entier compris entre 0 et 999. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : définit la minute pour l’objet Date spécifié, en fonction du temps universel et renvoie
les nouvelles informations, en millisecondes.
404
Chapitre 12 : Dictionnaire ActionScript
Date.setUTCMonth()
Disponibilité
Flash Player 5.
Usage
ma_date.setUTCMonth(mois [, date ])
Paramètres
mois
Un entier compris entre 0 (janvier) et 11 (décembre).
date
Un entier compris entre 1 et 31. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : définit le mois et, éventuellement, le jour (date) pour l’objet Date spécifié, en fonction
du temps universel et renvoie les nouvelles informations, en millisecondes. L’appel de cette
méthode ne modifie pas les autres champs de l’objet Date spécifié, mais Date.getUTCDay() et
Date.getDay() peuvent rapporter une nouvelle valeur si le jour de la semaine change suite à la
spécification d’une valeur pour le paramètre date.
Date.setUTCSeconds()
Disponibilité
Flash Player 5.
Usage
ma_date.setUTCSeconds(seconde [, milliseconde]))
Paramètres
seconde
Un entier compris entre 0 et 59.
milliseconde
Un entier compris entre 0 et 999. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : définit les secondes pour l’objet Date spécifié, en fonction du temps universel et
renvoie les nouvelles informations, en millisecondes.
Date.setUTCSeconds()
405
Date.setYear()
Disponibilité
Flash Player 5.
Usage
ma_date.setYear(année)
Paramètres
année
année.
Si année est un entier compris entre 0 et 99, setYear définit l’année comme 1900 +
Sinon, l’année est la valeur du paramètre année.
Renvoie
Un entier.
Description
Méthode : définit l’année pour l’objet Date spécifié, en fonction de l’heure locale et renvoie les
nouvelles informations, en millisecondes. L’heure locale est déterminée par le système
d’exploitation sur lequel Flash Player est exécuté.
Date.toString()
Disponibilité
Flash Player 5.
Usage
ma_date.toString()
Paramètres
Aucun.
Renvoie
Une chaîne.
Description
Méthode : renvoie une valeur chaîne pour l’objet Date spécifié dans un format lisible et renvoie
les nouvelles informations, en millisecondes.
Exemple
L’exemple suivant renvoie les informations de l’objet Date annéeDeNaissance_date sous forme
de chaîne.
var annéeDeNaissance_date = new Date(74, 7, 12, 18, 15);
trace (annéeDeNaissance_date.toString());
Résultat (pour l’heure standard du Pacifique) :
Mois août 12 18:15:00 GMT-0700 1974
406
Chapitre 12 : Dictionnaire ActionScript
Date.UTC()
Disponibilité
Flash Player 5.
Usage
Date.UTC(année, mois [, date [, heure [, minute [, seconde [, milliseconde
]]]]])
Paramètres
Un nombre à quatre chiffres, tel que 2000.
année
mois
Un entier compris entre 0 (janvier) et 11 (décembre).
date
Un entier compris entre 1 et 31. Ce paramètre est facultatif.
heure
Un entier compris entre 0 (minuit) et 23 (23h00).
minute
seconde
Un entier compris entre 0 et 59. Ce paramètre est facultatif.
Un entier compris entre 0 et 59. Ce paramètre est facultatif.
milliseconde
Un entier compris entre 0 et 999. Ce paramètre est facultatif.
Renvoie
Un entier.
Description
Méthode : renvoie le nombre de millisecondes écoulées entre le premier janvier 1970 à minuit,
temps universel, et la date spécifiée dans les paramètres. Ceci est une méthode statique invoquée
avec le constructeur d’objet Date et non avec un objet Date spécifique. Cette méthode vous
permet de créer un objet Date qui adopte le temps universel, alors que le constructeur Date
adopte l’heure locale.
Exemple
L’exemple suivant crée un nouvel objet Date annivGary_date, défini en fonction du temps
universel. Il s’agit de la variante en temps universel de l’exemple utilisé pour la méthode
constructeur new Date.
annivGary_date = new Date(Date.UTC(1974, 7, 12));
Date.UTC()
407
default
Disponibilité
Flash Player 6.
Usage
default: instructions
Paramètres
instructions
Toute instruction.
Renvoie
Rien.
Description
Instruction : définit la casse par défaut pour une action switch. Les instructions sont exécutées si
le paramètre Expression de l’action switch n’est pas égal (avec égalité stricte) à l’un des
paramètres Expression qui suit les mots-clés case pour une action switch donnée.
Une action switch n’est pas nécessaire pour avoir une hauteur de casse par défaut (default). Une
hauteur de casse par défaut (default) n’a pas besoin d’être la dernière dans la liste. L’utilisation
d’une action default en dehors d’une action switch est une erreur, et la compilation du script
échoue.
Exemple
Dans l’exemple suivant, l’expression A n’est pas égale aux expressions B ou D. L’instruction qui
suit le mot-clé default est donc exécutée et l’action trace() est envoyée au panneau de sortie.
switch ( A ) {
case B:
C;
break
case D:
E;
break
default
trace ("aucune casse spécifique");
}
Consultez également
switch, case, break
408
Chapitre 12 : Dictionnaire ActionScript
delete
Disponibilité
Flash Player 5.
Usage
delete référence
Paramètres
référence
Le nom de la variable ou de l’objet à éliminer.
Renvoie
Une valeur booléenne.
Description
Opérateur : détruit l’objet ou la variable spécifié par le paramètre référence et renvoie true si
l’objet a été supprimé avec succès : sinon, renvoie false. Cet opérateur est utile pour libérer de la
mémoire utilisée par des scripts. Quoique delete soit un opérateur, il est généralement utilisé
comme instruction, comme dans l’exemple suivant :
delete x;
L’opérateur delete peut échouer et renvoyer false si le paramètre référence n’existe pas ou ne
peut pas être effacé. Les objets et propriétés prédéfinis, et les variables déclarées avec var, ne
peuvent pas être supprimés. Vous ne pouvez pas utiliser l’opérateur delete pour retirer des clips.
Exemple
Usage 1 : l’exemple suivant crée un objet, l’utilise et le supprime une fois qu’il n’est plus
nécessaire.
compte = new Object();
compte.nom = 'Jon';
compte.solde = 10000;
delete compte;
Usage 2 : l’exemple suivant supprime une propriété d’un objet.
// créer l’objet "compte"
compte = new Object();
// affecter le nom de propriété au compte
compte.nom = 'Jon';
// supprimer la propriété
delete compte.nom;
delete
409
Usage 3 : l’exemple suivant illustre une autre façon de supprimer une propriété d’objet.
// créer un objet Array de longueur 0
mon_array = new Array();
// ajouter un élément au tableau. // Array.length est maintenant 1
mon_array[0] = "abc";
// ajouter un autre élément au tableau. // Array.length est maintenant 2
mon_array[1] = "def";
// ajouter un autre élément au tableau. // Tableau.length est maintenant 3
mon_array[1] = "ghi";
// mon_array[2] est supprimé, mais Array.length n’est pas changé
delete monTableau[2];
trace(mon_array.length);
Usage 4 : l’exemple suivant illustre le comportement de delete sur les références d’objets.
// créer un objet et affecter la variable ref1
// pour faire référence à l’objet
ref1 = new Object();
ref1.nom = "Jody";
// copier la variable de référence dans une nouvelle variable
// et supprimer ref1
ref2 = ref1;
delete ref1;
Si ref1 n’avait pas été copié dans ref2, l’objet aurait été supprimé à la suppression de ref1, car il
n’y aurait plus eu de référence à l’objet. Si vous supprimiez ref2, il n’y aurait plus de référence à
l’objet, qui serait détruit et la mémoire qu’il utilisait serait à nouveau disponible.
Consultez également
var
do while
Disponibilité
Flash Player 4.
Usage
do {
instruction(s)
} while (condition)
Paramètres
condition
La condition à évaluer.
instruction(s)
comme true.
La ou les instructions à exécuter tant que le paramètre condition est évalué
Renvoie
Rien.
410
Chapitre 12 : Dictionnaire ActionScript
Description
Instruction : exécute les instructions, puis évalue la condition dans une boucle, tant que la
condition est true.
Consultez également
break, continue
duplicateMovieClip()
Disponibilité
Flash Player 4.
Usage
duplicateMovieClip(cible, nouveauNom, profondeur)
Paramètres
cible
Le chemin cible de l’animation à dupliquer.
nouveauNom
Un identifiant unique pour le clip dupliqué.
Un niveau de profondeur unique pour le clip dupliqué. Le niveau de profondeur
est un ordre d’empilement des clips dupliqués. Cet ordre d’empilement est similaire à l’ordre
d’empilement des calques dans le scénario, les clips de niveau de profondeur plus faible étant
masqués sous des clips d’ordre d’empilement plus élevé. Vous devez affecter à chaque clip
dupliqué un niveau de profondeur unique pour l’empêcher de remplacer des fichiers SWF sur des
profondeurs occupées.
profondeur
Renvoie
Une référence au clip dupliqué.
Description
Fonction : crée une occurrence de clip pendant la lecture du fichier SWF. Dans les clips
dupliqués, la tête de lecture commence toujours à l’image 1, quel que soit l’endroit où se trouve la
tête de lecture dans le clip original (ou « : parent : »). Les variables du clip parent ne sont pas
copiées dans le clip dupliqué. Si le clip parent est effacé, le clip dupliqué l’est également. Utilisez
l’action ou la méthode removeMovieClip() pour supprimer une occurrence de clip créée avec
duplicateMovieClip().
Consultez également
MovieClip.duplicateMovieClip, removeMovieClip(), MovieClip.removeMovieClip()
duplicateMovieClip()
411
dynamic
Disponibilité
Flash Player 6.
Usage
dynamic class nomDeLaClasse [ extends superClasse ]
[ implements nomDinterface [, nomDinterface... ] ]
{
// définition de la classe ici
}
Remarque : Pour utiliser ce mot-clé, vous devez définir ActionScript 2.0 et Flash Player 6 ou version
ultérieure dans l’onglet Flash de la boîte de dialogue Paramètres de publication de votre fichier FLA.
Ce mot-clé n’est supporté que lorsqu’il est utilisé dans des fichiers de scripts externes et non dans
des scripts écrits dans le panneau Actions.
Description
Mot-clé : définit que les objets basés sur la classe spécifiée peuvent ajouter des propriétés
dynamiques et y accéder au moment de l’exécution.
La vérification du type sur les classes dynamiques est moins stricte que sur les classes non
dynamiques, car les membres auxquels vous accédez dans la définition et les occurrences de classe
ne sont pas comparés à ceux définis dans le domaine des classes. Il est toutefois toujours possible
de vérifier le type de retour et les types de paramètres de ces fonctions de membre de classe. Ce
comportement s’avère particulièrement utile pour la manipulation des objets MovieClip, car il
existe plusieurs façons d’ajouter de manière dynamique des propriétés et des objets à un clip, par
exemple MovieClip.createEmptyMovieClip() et MovieClip.createTextField().
Les sous-classes de classes dynamiques sont également dynamiques.
Pour plus d’informations, consultez Création de classes dynamiques, page 182.
Exemple
Dans l’exemple suivant, la classe B a été marquée comme dynamique ; ainsi, l’appel d’une
fonction non déclarée ne génèrera pas d’erreur au moment de la compilation.
// dans B.as
dynamic class B extends class_A {
function B() {
/*il s’agit du constructeur*/
}
function m():Number {return 25;}
function o(s:String):Void {trace(s);}
}
// dans C.as
class C extends class_A {
function C() {
/*il s’agit du constructeur*/
}
function m():Number {return 25;}
function o(s:String):Void {trace(s);}
}
// dans un autre script
var var1 = B.n();
// pas d’erreur
var var2 = C.n()
// erreur puisqu’il n’existe pas de fonction n dans C.as
412
Chapitre 12 : Dictionnaire ActionScript
Consultez également
class, extends
else
Disponibilité
Flash Player 4.
Usage
if (condition){
instruction(s);
} else (condition){
instruction(s);
}
Paramètres
condition
Une expression évaluée en tant que true ou false.
instruction(s) Une série alternative d’instructions à exécuter si la condition spécifiée dans
l’instruction if est false.
Renvoie
Rien.
Description
Instruction : spécifie les instructions à exécuter si la condition de l’instruction if renvoie false.
Consultez également
if
else
413
else if
Disponibilité
Flash Player 4.
Usage
if (condition){
instruction(s);
} else if (condition){
instruction(s);
}
Paramètres
condition
Une expression évaluée en tant que true ou false.
instruction(s) Une série alternative d’instructions à exécuter si la condition spécifiée dans
l’instruction if est false.
Renvoie
Rien.
Description
Instruction : évalue une condition et spécifie les instructions à exécuter si la condition de
l’instruction if initiale renvoie false. Si la condition else if renvoie true, l’interprète de Flash
exécute les instructions suivant la condition entre accolades ({}). Si la condition else if est
false, Flash ignore les instructions entre accolades et exécute les instructions suivant les
accolades. Utilisez l’action else if pour créer une logique de branchement dans vos scripts.
Exemple
L’exemple suivant utilise des actions else if pour vérifier si chaque côté d’un objet se trouve à
l’intérieur d’une limite spécifique :
// si l’objet sort des limites,
// le renvoyer et inverser sa vitesse de déplacement
if (this._x>limiteDroite) {
this._x = limiteDroite;
xInc = -xInc;
} else if (this._x<limiteGauche) {
this._x = limiteGauche;
xInc = -xInc;
} else if (this._y>limiteInf) {
this._y = limiteInf;
yInc = -yInc;
} else if (this._y<limiteSup) {
this._y = limiteSup;
yInc = -yInc;
}
Consultez également
if
414
Chapitre 12 : Dictionnaire ActionScript
#endinitclip
Disponibilité
Flash Player 6.
Usage
#endinitclip
Paramètres
Aucun.
Renvoie
Rien.
Description
Directive du compilateur : indique la fin d’un bloc d’actions d’initialisation de composant.
Exemple
#initclip
...les actions d’initialisation de composant sont placées ici...
#endinitclip
Consultez également
#initclip
eq (égal à — spécifique à la chaîne)
Disponibilité
Flash Player 4. Cet opérateur est déconseillé dans Flash 5 et remplacé par l’opérateur ==
(égalité).
Usage
expression1 eq expression2
Paramètres
expression1, expression2
Nombres, chaînes ou variables.
Renvoie
Rien.
Description
Opérateur de comparaison : compare l’égalité de deux expressions et renvoie true si la
représentation chaîne de expression1 est égale à la représentation chaîne de expression2 :
sinon, l’opération renvoie false.
Consultez également
== (égalité)
eq (égal à — spécifique à la chaîne)
415
Classe Error
Disponibilité
Flash Player 7.
Description
Contient les informations concernant une erreur qui s’est produite dans un script. Vous créez une
objet Error à l’aide de la fonction constructeur Error. Généralement, vous « émettez » un nouvel
objet Error à partir d’un bloc de code try qui est ensuite « saisi » par un bloc de code catch ou
finally.
Vous pouvez également créer une sous-classe de la classe Error et émettre des occurrences de cette
sous-classe.
Méthode de la classe Error
Méthode
Description
Error.toString()
Renvoie la représentation chaîne d’un objet Error.
Propriétés de la classe Error
Propriété
Description
Error.message
Une chaîne qui contient un message d’erreur associé à une erreur.
Error.name
Une chaîne qui contient le nom de l’objet Error.
Constructeur de la classe Error
Disponibilité
Flash Player 7.
Usage
new Error([message])
Paramètres
message
Une chaîne associée à l’objet Error ; ce paramètre est facultatif.
Renvoie
Rien.
Description
Constructeur : crée un nouvel objet Error. Si le message est spécifié, sa valeur est affectée à la
propriété Error.message de l’objet.
Exemple
Dans l’exemple suivant, une fonction émet une erreur (avec un message spécifié) si les deux
chaînes auxquelles elle est transmise ne sont pas identiques.
416
Chapitre 12 : Dictionnaire ActionScript
function compareStrings(string_1, string_2) {
if(string_1 != string_2) {
throw new Error("Les chaînes ne correspondent pas.");
}
}
try
compareStrings("Chien","chien");
} catch (e) {
trace(e.toString());
}
Consultez également
throw, try..catch..finally
Error.message
Disponibilité
Flash Player 7.
Usage
monErreur.message
Description
Propriété : contient le message associé à l’objet Error. Par défaut, la valeur de la propriété est
"Error". Vous pouvez spécifier une propriété message quand vous créez un nouvel objet Error en
transmettant la chaîne d’erreur à la fonction du constructeur Error.
Consultez également
throw, try..catch..finally
Error.name
Disponibilité
Flash Player 7.
Usage
monErreur.name
Description
Propriété : contient le nom de l’objet Error. Par défaut, la valeur de la propriété est "Error".
Consultez également
throw, try..catch..finally
Error.name
417
Error.toString()
Disponibilité
Flash Player 7.
Usage
mon_err.toString()
Renvoie
Une chaîne.
Description
Méthode : renvoie la chaîne "Error" par défaut ou la valeur contenue dans Error.message, si
défini.
Consultez également
Error.message, throw, try..catch..finally
escape
Disponibilité
Flash Player 5.
Usage
escape(expression)
Paramètres
expression L’expression à convertir en chaîne et à coder dans un format de code URL.
Renvoie
Rien.
Description
Fonction : convertit le paramètre en une chaîne et l’encode dans un format d’URL encodée où
tous les caractères non-alphanumériques sont échappés avec des séquences % hexadécimales.
Exemple
L’exécution du code suivant donne le résultat Bonjour%7B%5BMonde%5D%7D.
escape("Bonjour{[Monde]}");
Consultez également
unescape
418
Chapitre 12 : Dictionnaire ActionScript
eval()
Disponibilité
Flash Player 5 et versions suivantes pour une pleine utilisation de la fonctionnalité. Vous pouvez
utiliser la fonction eval() lors de l’exportation vers Flash Player 4, mais devez utiliser une
notation à barre oblique et ne pouvez accéder qu’aux variables, pas aux propriétés ni aux objets.
Usage
eval(expression);
Paramètres
expression Une chaîne contenant le nom d’une variable, d’une propriété, d’un objet ou d’un
clip à récupérer.
Renvoie
Une valeur, une référence à un objet ou à un clip, ou undefined.
Description
Fonction : accède aux variables, propriétés, objets ou clips par nom. Si expression est une
variable ou une propriété, la valeur de la variable ou de la propriété est renvoyée. Si expression
est un objet ou un clip, une référence à l’objet ou au clip est renvoyée. Si l’élément nommé dans
expression est introuvable, undefined est renvoyé.
Dans Flash 4, la fonction eval() était utilisée pour simuler des tableaux ; dans Flash 5 et les
versions suivantes, il est recommandé d’utiliser la classe pour simuler des tableaux.
Dans Flash 4, vous pouvez également utiliser la fonction eval() pour définir et récupérer
dynamiquement la valeur d’une variable ou d’un nom d’occurrence. Cependant, vous pouvez
également obtenir le même résultat avec l’opérateur d’accès tableau ([]).
Dans Flash 5 et les versions suivantes, vous ne pouvez pas utiliser la fonction eval() pour définir
et récupérer dynamiquement la valeur d’une variable ou d’un nom d’occurrence car vous ne
pouvez pas utiliser la fonction eval() dans la partie gauche d’une équation. Par exemple,
remplacez le code suivant :
eval ("var" + i) = "premier";
par celui-ci :
this["var"+i] = "premier"
ou :
set ("var" + i, "premier");
eval()
419
Exemple
L’exemple suivant utilise la fonction eval() pour déterminer la valeur de l’expression "morceau"
+ x. Le résultat étant un nom de variable, morceau3, eval() renvoie la valeur de la variable et
l’affecte à y :
morceau3 = "dangereux";
x = 3;
y = eval("morceau" + x);
trace(y);
// Résultat : dangereux
Consultez également
Classe Array
extends
Disponibilité
Flash Player 6.
Usage
class nomDeLaClasse extends autreNomDeClasse {}
interface nomDinterface extends autreNomDinterface {}
Remarque : Pour utiliser ce mot-clé, vous devez définir ActionScript 2.0 et Flash Player 6 ou version
ultérieure dans l’onglet Flash de la boîte de dialogue Paramètres de publication de votre fichier FLA.
Ce mot-clé n’est supporté que lorsqu’il est utilisé dans des fichiers de scripts externes et non dans
des scripts écrits dans le panneau Actions.
Paramètres
nomDeLaClasse
Le nom de la classe que vous définissez.
autreNomDeClasse
nomDinterface
Le nom de la classe sur laquelle nomDeLaClasse est basé.
Le nom de l’interface que vous définissez.
autreNomDinterface
Le nom de l’interface sur laquelle nomDinterface est basé.
Description
Mot-clé : définit une classe ou une interface qui est une sous-classe d’une autre classe ou
interface ; la dernière est une superclasse. La sous-classe hérite de toutes les méthodes, propriétés,
fonctions, etc., qui sont définies dans la super-classe.
Pour plus d’informations, consultez Création de sous-classes, page 171.
420
Chapitre 12 : Dictionnaire ActionScript
Exemple
Dans la classe B, telle que définie ci-dessous, un appel au constructeur de la classe A sera
automatiquement inséré comme première instruction de la fonction du constructeur de B,
puisque aucun appel n’existe à cet endroit. (C’est-à-dire qu’il est commenté dans l’exemple.)
class B extends class A
{
function B() { // il s’agit du constructeur
//
super(); // facultatif; inséré durant la compilation si omis
}
function m():Number {return 25;}
function o(s:String):Void {trace(s);}
}
Consultez également
class, implements, interface
false
Disponibilité
Flash Player 5.
Usage
false
Description
Constante : Une valeur booléenne unique représentant l’opposé de true.
Consultez également
true
_focusrect
Disponibilité
Flash Player 4.
Usage
_focusrect = booléen;
Description
Propriété (globale) : spécifie si un rectangle jaune apparaît autour du bouton ou du clip avec focus
clavier. La valeur par défaut, true, affiche un rectangle jaune autour du bouton ou du clip avec
focus, à mesure que l’utilisateur appuie sur la touche de tabulation pour parcourir les objets du
fichier SWF. Spécifiez false si vous ne voulez pas afficher le rectangle jaune. Il s’agit d’une
propriété globale qui peut être annulée dans des cas spécifiques.
Consultez également
Button._focusrect, MovieClip._focusrect
_focusrect
421
for
Disponibilité
Flash Player 5.
Usage
for(init; condition; next) {
instruction(s);
}
Paramètres
init Une expression à évaluer avant de commencer la séquence de boucle, généralement une
expression d’affectation. Une instruction var est également autorisée pour ce paramètre.
condition Une expression évaluée en tant que true ou false. La condition est évaluée avant
chaque itération de boucle : la boucle sort lorsque la condition est évaluée comme false.
Une expression à évaluer après chaque itération de boucle ; généralement une expression
d’affectation utilisant les opérateurs ++ (incrémentation) ou -- (décrémentation).
next
instruction(s)
Une instruction ou des instructions à exécuter à l’intérieur du corps de la
boucle.
Description
Instruction : une construction de boucle qui évalue l’expression init (initialiser) une fois, puis
commence une séquence de boucle par laquelle, tant que condition est évaluée comme true,
instruction est exécutée et l’expression suivante évaluée.
Certaines propriétés ne peuvent pas être énumérées par les actions for ou for..in. Par exemple,
les méthodes intégrées de la classe Array (comme Array.sort et Array.reverse()) ne sont pas
comprises dans l’énumération d’un objet Array, et les propriétés du clip, comme _x et _y, ne sont
pas énumérées. Dans des fichiers de classe externes, les membres d’occurrence ne peuvent pas être
énumérés : seuls les membres dynamiques et statiques peuvent être énumérés.
Exemple
L’exemple suivant utilise for pour additionner les éléments d’un tableau :
mon_array=new Array();
for(i=0; i<10; i++) {
mon_array [i] = (i + 5)*10;
trace(mon_array[i]);
}
Les résultats suivants sont affichés dans le panneau de sortie :
50
60
70
80
90
100
110
120
130
140
422
Chapitre 12 : Dictionnaire ActionScript
L’exemple suivant utilise for pour effectuer la même action de façon répétée. Dans le code cidessous, la boucle for additionne les nombres de 1 à 100 :
var somme = 0;
for (var i=1; i<=100; i++) {
somme = somme + i;
}
Consultez également
++ (incrémentation), –– (décrémentation), for..in, var
for..in
Disponibilité
Flash Player 5.
Usage
for(itérantDeVariable in objet){
instruction(s);
}
Paramètres
itérantDeVariable Le nom d’une variable qui joue le rôle d’itérant, référençant chaque
propriété d’un objet ou chaque élément d’un tableau.
objet
Le nom d’un objet à répéter.
instruction(s)
Une instruction à exécuter pour chaque itération.
Renvoie
Rien.
Description
Instruction : effectue une boucle sur les propriétés d’un objet ou sur les éléments d’un tableau et
exécute l’instruction pour chaque propriété d’un objet.
Certaines propriétés ne peuvent pas être énumérées par les actions for ou for..in. Par exemple,
les méthodes intégrées de la classe Array (comme Array.sort et Array.reverse()) ne sont pas
comprises dans l’énumération d’un objet Array, et les propriétés du clip, comme _x et _y, ne sont
pas énumérées. Dans des fichiers de classe externes, les membres d’occurrence ne peuvent pas être
énumérés : seuls les membres dynamiques et statiques peuvent être énumérés.
La construction for..in itère sur les propriétés des objets dans la chaîne prototype de l’objet
itéré. Si le prototype de l’enfant est parent, l’itération sur les propriétés de l’enfant avec for..in
itérera également sur les propriétés de parent.
L’action for..in énumère tous les objets de la chaîne prototype d’un objet. Les propriétés de
l’objet sont énumérées en premier, puis les propriétés de son prototype immédiat, puis les
propriétés du prototype du prototype, et ainsi de suite. L’action for..in n’énumère pas deux fois
le même nom de propriété. Si l’objet child a le prototype parent et que tous deux contiennent la
propriété prop, l’action for..in appelée pour child énumère prop de child mais ignore celle
de parent.
for..in
423
Exemple
L’exemple suivant utilise for..in pour itérer sur les propriétés d’un objet :
monObjet = { nom:'Tara', age:27, ville:'San Francisco' };
for (nom in monObjet) {
trace ("monObjet." + nom + " = " + monObjet[nom]);
}
Le résultat de cet exemple est le suivant :
monObjet.nom = Tara
monObjet.age = 27
monObjet.ville = San Francisco
L’exemple suivant utilise l’opérateur typeof avec for..in pour itérer sur un enfant particulier :
for (nom in mon_mc) {
if (typeof (mon_mc[nom]) = "clip") {
trace ("J’ai un clip appelé " + nom);
}
}
L’exemple suivant énumère les enfants d’un clip et envoie chacun dans l’image 2 de leurs scénarios
respectifs. Le clip GroupeDeBoutonsRadio est un parent de plusieurs enfants,
_BoutonRadioRouge_, _BoutonRadioVert_ et _BoutonRadioBleu.
for (nom de variable in GroupeDeBoutonsRadio) {
GroupeDeBoutonsRadio[nom].gotoAndStop(2);
}
fscommand()
Disponibilité
Flash Player 3.
Usage
fscommand("commande", "paramètres")
Paramètres
Une chaîne transmise à l’application hôte pour toute utilisation ou une commande
transmise à Flash Player.
commande
Une chaîne transmise à l’application hôte pour toute utilisation ou une valeur
transmise à Flash Player.
paramètres
Renvoie
Rien.
Description
Fonction : permet au fichier SWF de communiquer avec Flash Player ou avec le programme qui
héberge Flash Player, tel qu’un navigateur web. Vous pouvez également utiliser l’action
fscommand pour transmettre des messages à Macromedia Director, ou à Visual Basic, Visual C++
et tout autre programme capable d’héberger les contrôles ActiveX.
424
Chapitre 12 : Dictionnaire ActionScript
Usage 1 : pour envoyer un message à Flash Player, vous devez utiliser des commandes et
paramètres prédéfinis. Le tableau suivant indique les valeurs que vous pouvez spécifier pour les
paramètres commande et paramètres de l’action fscommand pour contrôler un fichier SWF lu
dans Flash Player autonome (y compris les projections) :
Commande
Paramètres
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 A propos de
Flash Player.
exec
Chemin de
l’application
Exécute une application depuis la projection.
trapallkeys
true ou false
La spécification de true envoie tous les éléments de touche, y
compris les raccourcis, au gestionnaire onClipEvent(keyDown/
keyUp) de Flash Player.
La commande exec ne peut contenir que les caractères A–Z, a–z, 0–9, point (.) et trait de
soulignement (_). La commande exec n’est exécutée que dans le sous-répertoire fscommand. En
d’autres termes, si vous utilisez la commande fscommand exec pour appeler une application,
cette dernière doit résider dans un sous-dosser nommé fscommand.
Usage 2 : pour utiliser l’action fscommand pour envoyer un message à un langage de
programmation tel que JavaScript dans un navigateur web, vous pouvez transmettre deux
paramètres quelconques dans les paramètres commande et paramètres. Ces paramètres peuvent
être des chaînes ou des expressions et sont utilisés dans une fonction JavaScript qui traite l’action
fscommand.
Dans un navigateur web, l’action fscommand appelle la fonction JavaScript
dans la page HTML contenant le fichier SWF. moviename est le
nom de Flash Player, tel qu’affecté par l’attribut NAME de la balise EMBED ou la propriété ID de la
balise OBJECT. Si vous affectez le nom monDocument à Flash Player, la fonction JavaScript appelée
est monDocument_DoFScommand.
nomanimation_DoFScommand
Usage 3 : l’action 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 rédiger le code Lingo pour le recevoir depuis
l’action 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.
fscommand()
425
Usage 4 : 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 motsclés méthode Flash pour effectuer une recherche sur le centre de support de Flash à l’adresse
www.macromedia.com/go/flash_support_fr.
Exemple
Usage 1 : dans l’exemple suivant, l’action fscommand définit Flash Player de sorte que l’animation
soit affichée en mode plein écran lorsque le bouton est relâché.
on(release) {
fscommand("fullscreen", true);
}
Usage 2 : l’exemple suivant utilise l’action fscommand appliquée à un bouton dans Flash pour
ouvrir une boîte de message JavaScript dans une page HTML. Le message même est envoyé à
JavaScript en tant que paramètre de fscommand.
Vous devez ajouter une fonction à la page HTML contenant le fichier SWF. Cette fonction,
monDocument_DoFSCommand, réside dans la page HTML et attend une action fscommand dans
Flash. Lorsqu’une action fscommand est déclenchée dans Flash (par exemple, lorsqu’un utilisateur
clique sur le bouton), les chaînes commande et paramètres sont transmises à la fonction
monDocument_DoFSCommand. Vous pouvez utiliser les chaînes transmises dans votre code
JavaScript ou VBScript comme vous l’entendez. Dans cet exemple, la fonction contient une
instruction conditionnelle if qui vérifie si la chaîne de commande est "fenêtreMessage". Le cas
échéant, une fenêtre d’alerte JavaScript s’ouvre et affiche le contenu de la chaîne paramètres.
function monDocument_DoFSCommand(commande, args) {
if (commande == "fenêtreMessage") {
alert(args);
}
}
Dans le document Flash, ajoutez l’action fscommand à un bouton :
fscommand("fenêtreMessage", "Ceci est une fenêtre de message appelée depuis
Flash.")
Vous pouvez également utiliser des expressions pour l’action et les paramètres fscommand, comme
dans l’exemple suivant :
fscommand("fenêtreMessage", "Bonjour, " + nom + ", bienvenue sur notre site
web!")
Pour tester l’animation, choisissez Fichier >Aperçu avant publication > HTML.
Remarque : Si vous publiez votre fichier SWF avec le modèle Flash et FSCommand dans les
paramètres de publication HTML, la fonction monDocument_DoFSCommand est automatiquement
insérée. Les attributs NAME et ID du fichier SWF seront le nom du fichier. Par exemple, pour le fichier
monDocument.fla, les attributs seront définis sur monDocument.
426
Chapitre 12 : Dictionnaire ActionScript
function
Disponibilité
Flash Player 5.
Usage
function nomDeFonction ([paramètre0, paramètre1,...paramètreN]){
instruction(s)
}
function ([paramètre0, paramètre1,...paramètreN]){
instruction(s)
}
Paramètres
nomDeFonction
Le nom de la nouvelle fonction.
paramètre Un identifiant représentant un paramètre à transmettre à la fonction. Ces
paramètres sont facultatifs.
instruction(s)
fonction.
Toute instruction ActionScript que vous avez définie pour le corps de la
Renvoie
Rien.
Description
Instruction : un jeu d’instructions que vous définissez pour effectuer une certaine tâche. Vous
pouvez déclarer, ou définir, une fonction à un emplacement et l’appeler, ou l’invoquer, depuis
différents scripts dans un fichier SWF. Lorsque vous définissez une fonction, vous pouvez
également spécifier ses paramètres. Les paramètres sont des supports pour les valeurs sur lesquelles
la fonction opère. Vous pouvez transmettre différents paramètres à une fonction à chaque fois que
vous l’appelez. Ceci vous permet de réutiliser une fonction dans de nombreuses situations
différentes.
Utilisez l’action return dans les instruction(s) d’une fonction pour obliger une fonction à
renvoyer, ou générer, une valeur.
Usage 1 : déclare une function avec les nomDeFonction, paramètres et instruction(s)
spécifiés. Lorsqu’une fonction est appelée, la déclaration de la fonction est invoquée. La référence
en aval est autorisée : au sein d’une même liste d’actions, une fonction peut être déclarée après
avoir été appelée. Une déclaration de fonction remplace toute déclaration précédente de cette
même fonction. Vous pouvez utiliser cette syntaxe partout où une instruction est autorisée.
Usage 2 : crée une fonction anonyme et la renvoie. Cette syntaxe est utilisée dans les expressions et
est particulièrement utile pour installer des méthodes dans des objets.
function
427
Exemple
Usage 1 : l’exemple suivant définit la fonction sqr, qui accepte un argument et renvoie la valeur
square(x*x) du paramètre. Si la fonction est déclarée et utilisée dans le même script, la
déclaration de la fonction doit apparaître après l’utilisation de la fonction.
y=sqr(3);
function sqr(x) {
return x*x;
}
Usage 2 : la fonction suivante définit un objet Cercle :
function Cercle(rayon) {
this.rayon = rayon;
}
L’instruction suivante définit une fonction anonyme qui calcule l’aire d’un cercle et l’associe à
l’objet Cercle comme méthode :
Cercle.prototype.area = function () {return Math.PI * this.radius *
this.radius}
Classe Function
Disponibilité
Flash Player 6.
Méthodes de la classe Function
Méthode
Description
Function.apply()
Active l’appel d’une fonction par le code ActionScript.
Function.call
Invoque la fonction représentée par un objet Function.
Propriétés de la classe Function
428
Propriété
Description
Function.prototype
Fait référence à un objet qui est le prototype d’une classe.
Chapitre 12 : Dictionnaire ActionScript
Function.apply()
Disponibilité
Flash Player 6.
Usage
maFonction.apply(cetObjet, objetArguments)
Paramètres
cetObjet
L’objet auquel est appliqué maFonction.
objetArguments
Un tableau dont les éléments sont transmis à maFonction en tant que
paramètres.
Renvoie
Toute valeur spécifiée par la fonction appelée.
Description
Méthode : spécifie la valeur de this comme devant être utilisée avec toute fonction appelée par
ActionScript. Cette méthode spécifie également les paramètres à transmettre à toute fonction
appelée. La méthode apply() étant une méthode de la classe Function, elle est également une
méthode de chaque objet de fonction dans ActionScript.
Les paramètres sont spécifiés sous forme d’objet Array. Ceci est souvent utile lorsque le nombre de
paramètres à transmettre n’est pas connu avant l’exécution du script.
Exemple
Les invocations de fonction suivantes sont équivalentes :
Math.atan2(1, 0)
Math.atan2.apply(null, [1, 0])
Vous pouvez construire un fichier SWF contenant des champs de saisie qui permettent à
l’utilisateur d’entrer le nom d’une fonction à invoquer, ainsi que des paramètres zéro ou plus à
transmettre à la fonction. Une pression sur un bouton d’appel utiliserait alors la méthode apply
pour appeler la fonction spécifiant les paramètres.
Dans cet exemple, l’utilisateur spécifie le nom d’une fonction dans un champ de saisie de texte
appelé nomDeFonction. Le nombre de paramètres est spécifié dans un champ de saisie de texte
appelé nombreParamètres. Jusqu’à 10 paramètres sont spécifiés dans des champs de texte appelés
paramètre1, paramètre2, jusqu’à paramètre10.
Function.apply()
429
on (release) {
callTheFunction();
}
...
function callTheFunction()
{
var laFonction = eval(nomDeFonction.text);
var n = Number(nombreParamètres);
var paramètres = [];
for (var i = 0; i <n; i++) {
paramètres.push(eval("paramètre" + i));
}
laFonction.apply(null, paramètres);
}
Function.call
Disponibilité
Flash Player 6.
Usage
maFonction.call(cetObjet, paramètre1, ..., paramètreN)
Paramètres
cetObjet
paramètre1
Spécifie la valeur de this dans le corps de la fonction.
Un paramètre à transmettre à maFonction. Vous pouvez spécifier zéro ou plusieurs
paramètres.
paramètreN
Renvoie
Rien.
Description
Méthode : invoque la fonction représentée par un objet Function. Chaque fonction dans
ActionScript est représentée par un objet Function, toutes les fonctions supportent donc cette
méthode.
Dans presque tous les cas, l’opérateur d’appel de la fonction (()) peut être utilisé au lieu de cette
méthode. L’opérateur d’appel de la fonction permet de rédiger le code de façon concise et lisible.
Cette méthode est surtout utile lorsque le paramètre this de l’invocation de fonction doit être
explicitement contrôlé. Normalement, si une fonction est invoquée en tant que méthode d’un
objet, dans le corps de la fonction, this est défini sur monObjet, comme dans l’exemple suivant :
monObjet.maMéthode(1, 2, 3);
Dans certaines situations, vous pourrez vouloir que this désigne autre chose : par exemple, si une
fonction doit être invoquée en tant que méthode d’un objet, mais n’est pas effectivement stockée
comme méthode de cet objet.
monObjet.maMéthode.call(monAutreObjet, 1, 2, 3);
430
Chapitre 12 : Dictionnaire ActionScript
Vous pouvez transmettre la valeur null pour le paramètre cetObjet pour invoquer une fonction
en tant que fonction ordinaire et pas en tant que méthode d’un objet. Par exemple, les invocations
de fonction suivantes sont équivalentes :
Math.sin(Math.PI / 4)
Math.sin.call(null, Math.PI / 4)
Exemple
Cet exemple utilise la méthode Function.call() pour imposer à une fonction un
comportement identique à celui d’une méthode d’un autre objet, sans stocker la fonction dans
l’objet.
function MonObjet() {
}
function MaMéthode(obj) {
trace("this == obj? " + (this == obj));
}
var obj = new MonObjet();
MaMéthode.call(obj, obj);
L’action trace() envoie le code suivant vers le panneau de sortie :
this == obj? true
Function.prototype
Disponibilité
Flash Player 5. Si vous utilisez ActionScript 2.0, vous ne devez pas utiliser cette propriété : elle
représente l’implémentation de l’héritage de ActionScript 1.
Usage
maFonction.prototype
Description
Propriété : dans une fonction constructeur ActionScript 1, la propriété prototype fait référence à
un objet qui est le prototype de la classe construite. Chaque occurrence de la classe, créée par la
fonction constructeur, hérite de toutes les propriétés et méthodes de l’objet prototype.
ge (supérieur ou égal à – spécifique aux chaînes)
Disponibilité
Flash Player 4. Cet opérateur est déconseillé dans Flash 5 et remplacé par l’opérateur >=
(supérieur ou égal à).
Usage
expression1 ge expression2
Paramètres
expression1, expression2
Nombres, chaînes ou variables.
Renvoie
Rien.
ge (supérieur ou égal à – spécifique aux chaînes)
431
Description
Opérateur (comparaison) : compare la représentation chaîne de expression1 avec la
représentation chaîne de expression2 et renvoie true si expression1 est supérieure ou égale à
expression2 : sinon, renvoie false.
Consultez également
>= (supérieur ou égal à)
get
Disponibilité
Flash Player 6.
Usage
function get property() {
// vos instructions
}
Remarque : Pour utiliser ce mot-clé, vous devez définir ActionScript 2.0 et Flash Player 6 ou version
ultérieure dans l’onglet Flash de la boîte de dialogue Paramètres de publication de votre fichier FLA.
Ce mot-clé n’est supporté que lorsqu’il est utilisé dans des fichiers de scripts externes et non dans
des scripts écrits dans le panneau Actions.
Paramètres
Le mot que vous souhaitez utiliser pour faire référence à la propriété à laquelle get
accède ; cette valeur doit être identique à celle utilisée dans la commande set correspondante.
propriété
Renvoie
La valeur de la propriété spécifiée par nomDeProp.
Description
Mot-clé : permet une « obtention » implicite des propriétés associées aux objets basés sur des
classes définies dans des fichiers de classe externes. L’utilisation de méthodes d’obtention
implicites vous permet d’accéder aux propriétés d’objets sans accéder directement à ces objets. Les
méthodes get/set implicites sont des abréviations syntaxiques de la méthode
Object.addProperty() dans ActionScript 1.
Pour plus d’informations, consultez Méthodes get/set implicites, page 181.
Consultez également
Object.addProperty(), set
432
Chapitre 12 : Dictionnaire ActionScript
getProperty
Disponibilité
Flash Player 4.
Usage
getProperty(mon_mc, propriété)
Paramètres
mon_mc
Le nom d’occurrence d’un clip dont la propriété est récupérée.
propriété
La propriété d’un clip.
Renvoie
La valeur de la propriété spécifiée.
Description
Fonction : renvoie la valeur de la propriété spécifiée pour le clip mon_mc.
Exemple
L’exemple suivant récupère la coordonnée de l’axe horizontal (_x) pour le clip mon_mc et l’affecte à
la variable mon_mc_x :
mon_mc_x = getProperty(_root.mon_mc, _x);
getTimer
Disponibilité
Flash Player 4.
Usage
getTimer()
Paramètres
Aucun.
Renvoie
Le nombre de millisecondes écoulées depuis le démarrage de la lecture du fichier SWF.
Description
Fonction : renvoie le nombre de millisecondes écoulées depuis le démarrage de la lecture du
fichier SWF.
getTimer
433
getURL()
Disponibilité
Flash 2. Les options GET et POST ne sont disponibles que dans Flash Player 4 et les versions
ultérieures du lecteur.
Usage
getURL(url [, fenêtre [, "variables"]])
Paramètres
url
L’URL où se trouve le document à obtenir.
Un paramètre facultatif spécifiant la fenêtre ou le cadre HTML dans laquelle ou lequel
le document doit être chargé. Vous pouvez entrer le nom d’une fenêtre spécifique ou choisir
parmi les noms cibles réservés suivants :
fenêtre
•
•
•
•
spécifie l’image courante dans la fenêtre courante.
spécifie une nouvelle fenêtre.
_parent spécifie le parent de l’image courante.
_top spécifie l’image de premier niveau dans la fenêtre courante.
_self
_blank
variables Une méthode GET ou POST pour envoyer des variables. Omettez ce paramètre s’il n’y
a aucune variable. La méthode GET ajoute les variables à la fin de l’URL et est utilisée pour des
petits nombres de variables. La méthode POST envoie les variables dans un en-tête HTTP distinct
et est utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Fonction : charge un document depuis une URL spécifique dans une fenêtre ou transmet les
variables à une autre application, à une URL définie. Pour tester cette action, assurez-vous que le
fichier à charger se trouve à l’emplacement spécifié. Pour utiliser une URL absolue (par exemple,
http://www.monServeur.fr), il vous faut une connexion de réseau.
Exemple
Cet exemple charge une nouvelle URL dans une fenêtre de navigateur vide. L’action getURL()
cible la variable incomingAd comme paramètre url de sorte que vous pouvez changer l’URL
chargée sans avoir à modifier le fichier SWF. La valeur de la variable incomingAd est transmise à
Flash plus tôt dans le fichier SWF avec une action loadVariables().
on(release) {
getURL(incomingAd, "_blank");
}
Consultez également
loadVariables(), XML.send, XML.sendAndLoad, XMLSocket.send
434
Chapitre 12 : Dictionnaire ActionScript
getVersion
Disponibilité
Flash Player 5.
Usage
getVersion()
Paramètres
Aucun.
Renvoie
Une chaîne contenant la version de Flash Player et les informations de plate-forme.
Description
Fonction : renvoie une chaîne contenant la version de Flash Player et les informations de plateforme.
La fonction getVersion renvoie uniquement les informations pour Flash Player 5 ou les versions
ultérieures.
Exemple
L’exemple suivant illustre une chaîne renvoyée par la fonction getVersion.
WIN 5,0,17,0
Ceci indique que la plate-forme est Microsoft Windows et que la version de Flash Player est la
version principale 5, avec une version mineure de 17 (5.0r17).
Consultez également
System.capabilities.os, System.capabilities.version
getVersion
435
_global object
Disponibilité
Flash Player 6.
Usage
_global.identifiant
Paramètres
Aucun.
Renvoie
Une référence à l’objet global contenant les classes ActionScript principales, telles que String,
Object, Math et Array.
Description
Identifiant : crée des variables, des objets ou des classes globaux. Par exemple, vous pourriez créer
une bibliothèque exposée comme objet ActionScript global, comme l’objet Math ou Date. A la
différence des variables et fonctions déclarées dans un scénario ou déclarées localement, les
variables et fonctions globales sont visibles dans chaque scénario et étendue du fichier SWF, à
condition qu’elles ne soient pas masquées par des identifiants portant le même nom dans des
étendues internes.
Exemple
L’exemple suivant crée une fonction de haut niveau, factorial(), qui est disponible à chaque
scénario et étendue d’un fichier SWF :
_global.factorial = function (n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
Consultez également
var, Variable set
436
Chapitre 12 : Dictionnaire ActionScript
gotoAndPlay
Disponibilité
Flash 2.
Usage
gotoAndPlay([séquence], image)
Paramètres
séquence
Une chaîne facultative spécifiant le nom de la séquence vers laquelle la tête de lecture
est envoyée.
Un nombre représentant le numéro de l’image ou une chaîne représentant l’étiquette de
l’image vers laquelle la tête de lecture est envoyée.
image
Renvoie
Rien.
Description
Fonction : envoie la tête de lecture vers l’image spécifiée d’une séquence et lit à partir de cette
image. Si aucune séquence n’est spécifiée, la tête de lecture passe à l’image spécifiée de la séquence
courante.
Exemple
Lorsque l’utilisateur clique sur un bouton auquel l’action gotoAndPlay() est affectée, la tête de
lecture est envoyée vers l’image 16 et commence la lecture.
on(release) {
gotoAndPlay(16);
}
Consultez également
MovieClip.gotoAndPlay()
gotoAndPlay
437
gotoAndStop()
Disponibilité
Flash 2.
Usage
gotoAndStop([séquence], image)
Paramètres
séquence
Une chaîne facultative spécifiant le nom de la séquence vers laquelle la tête de lecture
est envoyée.
Un nombre représentant le numéro de l’image ou une chaîne représentant l’étiquette de
l’image vers laquelle la tête de lecture est envoyée.
image
Renvoie
Rien.
Description
Fonction : envoie la tête de lecture vers l’image spécifiée d’une séquence et l’arrête. Si aucune
séquence n’est spécifiée, la tête de lecture passe à l’image spécifiée de la séquence courante.
Exemple
Lorsque l’utilisateur clique sur un bouton auquel l’action gotoAndStop() est affectée, la tête de
lecture est envoyée vers l’image 5 dans la séquence actuelle et le fichier SWF arrête la lecture.
on(release) {
gotoAndStop(5);
}
Consultez également
stop()
438
Chapitre 12 : Dictionnaire ActionScript
gt (supérieur à — spécifique aux chaînes)
Disponibilité
Flash Player 4. Cet opérateur est déconseillé dans Flash 5 et remplacé par le nouvel opérateur >
(supérieur à).
Usage
expression1 gt expression2
Paramètres
expression1, expression2
Nombres, chaînes ou variables.
Description
Opérateur (comparaison) : compare la représentation chaîne de expression1 avec la
représentation chaîne de expression2 et renvoie true si expression1 est supérieure à
expression2 : sinon, renvoie false.
Consultez également
> (supérieur à)
_highquality
Disponibilité
Flash Player 4 : déconseillé et remplacé par _quality.
Usage
_highquality
Description
Propriété déconseillée (globale) : spécifie le niveau d’anti-aliasing appliqué au fichier SWF en
cours. Spécifiez 2 (qualité maximum) pour appliquer une qualité élevée avec le lissage bitmap
toujours actif. Spécifiez 1 (qualité élevée) pour appliquer l’anti-aliasing ; cela permettra de lisser
les bitmaps si le fichier SWF ne contient pas d’animation. Spécifiez 0 (faible qualité) pour
empêcher l’anti-aliasing.
Exemple
_highquality = 1;
Consultez également
_quality, toggleHighQuality()
_highquality
439
if
Disponibilité
Flash Player 4.
Usage
if(condition) {
instruction(s);
}
Paramètres
condition
Une expression évaluée en tant que true ou false.
instruction(s)
Les instructions à exécuter si ou lorsque la condition est évaluée comme true.
Renvoie
Rien.
Description
Fonction : évalue une condition pour déterminer la prochaine action dans un fichier SWF. Si la
condition est true, Flash exécute les instructions qui suivent la condition entre accolades ({}). Si
la condition est false, Flash ignore les instructions entre accolades et exécute les instructions
suivant les accolades. Utilisez l’action if pour créer une logique de branchement dans vos scripts.
Exemple
Dans l’exemple suivant, la condition entre parenthèses évalue la variable nom pour déterminer si
elle a la valeur littérale "Erica". Le cas échéant, l’action play() entre accolades est exécutée.
if(nom == "Erica"){
play();
}
L’exemple suivant utilise une action if pour évaluer le moment auquel un objet déplaçable du
fichier SWF est relâché par l’utilisateur. Si l’objet est relâché moins de 300 millisecondes après
avoir été déplacé, la condition est évaluée comme true et les instructions entre accolades sont
exécutées. Ces instructions définissent des variables pour stocker le nouvel emplacement de
l’objet, la force avec laquelle il a été lancé et la vitesse à laquelle il a été lancé. La variable
tempsEnfoncé est également réinitialisée. Si l’objet est relâché plus de 300 millisecondes après
avoir été déplacé, la condition est évaluée comme false et aucune des instructions n’est exécutée.
if (getTimer()<tempsEnfoncé+300) {
// si la condition est true,
// l’objet a été lancé.
// quelle est la nouvelle position de l’objet ?
xNouvEmpl = this._x;
yNouvEmpl = this._y;
// avec quelle force a-t-il été lancé ?
xDéplac = xNouvEmpl-xEmpl;
yDéplac = yNouvEmpl-yEmpl;
// la définition de la vitesse de l’objet dépend de
// la distance de son déplacement
xInc = xDéplac/2;
yInc = yDéplac/2;
tempsEnfoncé = 0;
}
440
Chapitre 12 : Dictionnaire ActionScript
Consultez également
else
ifFrameLoaded
Disponibilité
Flash Player 3. L’action ifFrameLoaded est déconseillée dans Flash 5 ; Macromedia recommande
l’utilisation de la propriété MovieClip._framesloaded.
Usage
ifFrameLoaded([séquence], image) {
instruction(s);
}
Paramètres
séquence
Une chaîne facultative spécifiant le nom de la séquence devant être chargée.
image Le numéro ou l’étiquette de l’image à charger avant l’exécution de la prochaine
instruction.
instruction(s) Les instructions à exécuter si la séquence (ou la séquence et l’image)
spécifiée(s) sont chargées.
Renvoie
Rien.
Description
Action à éviter : vérifie si le contenu d’une image est disponible localement. Utilisez
ifFrameLoaded pour commencer la lecture d’une animation simple pendant que le reste du
fichier SWF est téléchargé sur l’ordinateur local. La différence entre l’utilisation de
_framesloaded et de ifFrameLoaded est que _framesloaded vous permet d’ajouter vos propres
instructions if ou else.
Consultez également
MovieClip._framesloaded
ifFrameLoaded
441
implements
Disponibilité
Flash Player 6.
Usage
maClasse implements interface01 [, interface02, ...]
Remarque : Pour utiliser ce mot-clé, vous devez définir ActionScript 2.0 et Flash Player 6 ou version
ultérieure dans l’onglet Flash de la boîte de dialogue Paramètres de publication de votre fichier FLA.
Ce mot-clé n’est supporté que lorsqu’il est utilisé dans des fichiers de scripts externes et non dans
des scripts écrits dans le panneau Actions.
Description
Mot-clé : définit une classe qui doit fournir des implémentations pour toutes les méthodes
définies dans l’interface (ou les interfaces) implémentée(s). Pour plus d’informations, consultez
Interfaces comme types de données, page 177.
Exemple
Pour plus d’informations, consultez interface.
Consultez également
class, extends, interface
442
Chapitre 12 : Dictionnaire ActionScript
import
Disponibilité
Flash Player 6.
Usage
import nomDeLaClasse
import nomPaquet.*
Remarque : Pour utiliser ce mot-clé, vous devez définir ActionScript 2.0 et Flash Player 6 ou version
ultérieure dans l’onglet Flash de la boîte de dialogue Paramètres de publication de votre fichier FLA.
Cette instruction est prise en charge dans le panneau Actions ainsi que dans les fichiers de classe
externes.
Paramètres
nomDeLaClasse
Le nom pleinement qualifié d’une classe définie dans un fichier de classe
externe.
nomPaquet
Un répertoire dans lequel vous avez stocké des fichiers de classe liés.
Description
Mot-clé : vous permet d’accéder à des classes sans définir leurs noms pleinement qualifiés. Par
exemple, si vous souhaitez utiliser la classe macr.util.users.UserClass.as dans un script, vous devez
y faire référence à l’aide de son nom pleinement qualifié ou en l’important : si vous l’importez,
vous pouvez y faire référence à l’aide du nom de classe simple :
// avant importation
var monUtilisateur:UserClass = new macr.util.users.UserClass();
// après importation
import macr.util.users.ClasseUtilisateur;
var monUtilisateur:ClasseUtilisateur = new ClasseUtilisateur();
S’il existe plusieurs fichiers de classe dans le répertoire auquel vous souhaitez accéder, vous pouvez
les importer via une seule instruction :
import macr.util.users.*;
Vous devez émettre l’instruction import avant de tenter d’accéder à la classe importée dans définir
pleinement son nom.
Si vous importez une classe mais que vous ne l’utilisez pas ultérieurement dans votre script, la
classe n’est pas exportée comme partie du fichier SWF. Cela signifie que vous importez des
paquets volumineux sans vous soucier de la taille de votre fichier SWF : le code d’octet associé à
une classe n’est inséré dans un fichier SWF que si cette classe est réellement utilisée.
L’instruction import s’applique uniquement au script courant (image ou objet) dans lequel elle
est appelée. Supposons par exemple que vous importiez toutes les classes du paquet macr.util sur
l’image 1 d’un document Flash. Sur cette image, vous pouvez référencer les classes par leur simple
nom dans ce paquet.
// sur l’image 1 d’un fichier FLA :
import macr.util.*;
var myFoo:foo = new foo();
import
443
Sur un autre script d’image, vous devrez cependant référencer des classes dans ce paquet par leurs
noms pleinement qualifiés (var myFoo:foo = new macr.util.foo();) ou ajouter une
instruction import à l’autre image qui importe également les classes dans ce paquet.
Pour plus d’informations sur l’importation, consultez Importation de classes, page 180 et
Utilisation de paquets, page 179.
#include
Disponibilité
Flash Player 4.
Usage
#include "[chemin] nomDeFichier.as"
Remarque : Ne placez pas de point virgule (;) à la fin de la ligne contenant l’instruction #include.
Paramètres
[chemin] nomDeFichier.as Le nom de fichier et le chemin facultatif pour le script à ajouter
au panneau Actions ; .as est l’extension de fichier recommandée.
Renvoie
Rien.
Description
Directive du compilateur : inclut le contenu du fichier spécifié, comme si les commandes du
fichier faisait partie du script d’appel lui-même. La directive #include est invoquée lors de la
compilation. De plus, si vous modifiez un fichier externe, vous devez l’enregistrer et recompiler
tous les fichiers FLA qui l’utilisent.
Si vous utilisez le bouton Vérifier la syntaxe pour un script contenant des instructions #include,
la syntaxe du fichier inclus est également vérifiée.
Vous pouvez utiliser #include dans les fichiers FLA et les fichiers de script externes, mais pas
dans les fichiers de classe ActionScript 2.0.
Vous pouvez ne spécifier aucun chemin, indiquer un chemin relatif ou un chemin absolu pour le
fichier à inclure.
• Si vous ne spécifiez aucun chemin, le fichier AS doit se situer dans le même répertoire que le
•
•
444
fichier FLA ou le script contenant l’instruction #include.
Pour définir un chemin pour le fichier AS par rapport au fichier FLA ou au script, utilisez un
point (.) pour indiquer le répertoire en cours, deux points (..) pour indiquer un répertoire
parent et des barres obliques (/). Consultez les exemples suivants.
Pour spécifier un chemin absolu pour le fichier AS, utilisez le format supporté par votre plateforme (Macintosh ou Windows). Consultez les exemples suivants. Cependant, cet utilisation
n’est pas recommandée, car elle nécessite que la structure du répertoire soit la même sur toutes
les machines utilisées pour compiler le script.
Chapitre 12 : Dictionnaire ActionScript
Exemple
Les exemples suivants montrent diverses façons de spécifier un chemin pour un fichier à inclure
dans votre script.
// Notez que les instructions #include ne se terminent pas par un point virgule
(;)
// le fichier AS est dans le même répertoire que le fichier ou le script FLA
#include "init_script.as"
// le fichier AS se trouve dans un sous-répertoire du répertoire
//
contenant le fichier ou le script FLA
// Le sous-répertoire est nommé "FLA_includes"
#include "FLA_includes/init_script.as"
// Le fichier AS se trouve dans un répertoire au même niveau que le fichier ou
le script FLA
// Le répertoire est nommé "ALL_includes"
#include "../ALL_includes/init_script.as"
// Le fichier AS est spécifié par un chemin absolu dans Windows
// Notez l’utilisation de barres obliques et non de barres obliques inverses
#include "C:/Flash_scripts/init_script.as"
// Le fichier AS est spécifié par un chemin absolu dans Macintosh
#include "Mac HD:Flash_scripts:init_script.as"
Consultez également
import
Infinity
Disponibilité
Flash Player 5.
Usage
Infinity
Description
Constante : spécifie la valeur IEEE-754 représentant l’infini positif. La valeur de cette constante
est la même que Number.POSITIVE_INFINITY.
-Infinity
Disponibilité
Flash Player 5.
Usage
-Infinity
Description
Constante : spécifie la valeur IEEE-754 représentant l’infini négatif. La valeur de cette constante
est la même que Number.NEGATIVE_INFINITY.
-Infinity
445
#initclip
Disponibilité
Flash Player 6.
Usage
#initclip ordre
Paramètres
ordre Un entier qui spécifie l’ordre d’exécution des blocs de code #initclip. Ce paramètre est
facultatif.
Description
Directive du compilateur : indique le début d’un bloc d’actions d’initialisation. Lorsque plusieurs
clips sont initialisés en même temps, vous pouvez utiliser le paramètre order pour spécifier
l’initialisation ayant lieu en premier. Les actions d’initialisation sont exécutées lors de la définition
d’un symbole de clip. Si le clip est un symbole exporté, les actions d’initialisation sont exécutées
avant les actions de l’image 1 du fichier SWF. Sinon, elles sont exécutées immédiatement avant les
actions s’appliquant à l’image qui contient la première occurrence du symbole de clip associé.
Les actions d’initialisation sont exécutées une seule fois lors de la lecture d’un fichier SWF ;
utilisez-les en tant qu’initialisations ponctuelles, par exemple, pour la définition et
l’enregistrement de classes.
Consultez également
#endinitclip
446
Chapitre 12 : Dictionnaire ActionScript
instanceof
Disponibilité
Flash Player 6.
Usage
objet instanceof classe
Paramètres
objet
Un objet ActionScript.
classe
Une référence à une fonction du constructeur ActionScript, telle que String ou Date.
Renvoie
Si objet est une occurrence de classe, instanceof renvoie true : sinon, instanceof renvoie
false. De même, _global instanceof Object renvoie false.
Description
Opérateur : détermine si un objet appartient à une classe spécifiée. Teste si objet est une
occurrence de classe.
L’opérateur instanceof ne convertit pas les types primitifs en objets enveloppes. Par exemple, le
code suivant renvoie true
new String("Bonjour") instanceof String;
Le code suivant renvoie false
"Bonjour" instanceof String;
Consultez également
typeof
instanceof
447
int
Disponibilité
Flash Player 4. Cette fonction est déconseillée dans Flash 5 ; utilisez plutôt Math.round().
Usage
int(valeur)
Paramètres
valeur
Un nombre devant être arrondi à un entier.
Renvoie
Rien.
Description
Fonction : convertit un nombre décimal à la valeur de l’entier le plus proche.
Consultez également
Math.floor
448
Chapitre 12 : Dictionnaire ActionScript
interface
Disponibilité
Flash Player 6.
Usage
interface nomDinterface {}
interface nomDinterface [extends nomDinterface [, nomDinterface ...] {}
Remarque : Pour utiliser ce mot-clé, vous devez définir ActionScript 2.0 et Flash Player 6 ou version
ultérieure dans l’onglet Flash de la boîte de dialogue Paramètres de publication de votre fichier FLA.
Ce mot-clé n’est supporté que lorsqu’il est utilisé dans des fichiers de scripts externes et non dans
des scripts écrits dans le panneau Actions.
Description
Mot-clé : définit une interface. Une interface est similaire à une classe, mais présente les
différences notables ci-dessous :
• Les interfaces contiennent seulement des déclarations de méthodes et non leurs
•
•
implémentations. Autrement dit, chaque classe qui implémente une interface doit fournir une
implémentation pour chaque méthode déclarée dans l’interface.
Seuls les membres publics sont autorisés dans une définition d’interface. De plus, les membres
d’occurrence et de classe ne sont pas autorisés.
Les instructions get et set ne sont pas autorisées dans les définitions d’interface.
Pour plus d’informations, consultez Création et utilisation d’interfaces, page 175.
Exemple
L’exemple suivant illustre plusieurs méthodes de définition et d’implémentation d’interfaces.
(dans les fichiers .as du paquet de premier niveau Ia, B, C, Ib, D, Ic, E)
// nom de fichier Ia.as
interface Ia
{
function k():Nombre;
// déclaration de méthode seulement
function n(x:Nombre):Nombre; // sans implémentation
}
// nomDeFichier B.as
class B implements Ia
{
function k():Nombre {return 25;}
function n(x:Nombre):Nombre {return x+5;}
}
// script externe ou panneau Actions
var mvar:B = new B();
trace(mvar.k());
// 25
trace(mvar.n(7)); // 12
// nomDeFichier c.as
class C implements Ia
{
function k():Nombre {return 25;}
} // erreur: la classe doit implémenter toutes les méthodes d’interface
// nomDeFichier Ib.as
interface
449
interface Ib
{
function o():Void;
}
class D implements Ia, Ib
{
function k():Nombre {return 15;}
function n(x:Nombre):Nombre {return x*x;}
function o():Void {trace("o");}
}
// script externe ou panneau Actions
mvar = new D();
trace(D.k()); // 15
trace(D.n(7)); // 49
trace(D.o()); // "o"
interface Ic extends Ia
{
function p():Void;
}
class E implements Ib, Ic
{
function k():Nombre {return 25;}
function n(x:Nombre):Nombre {return x+5;}
function o():Void {trace("o");}
function p():Void {trace("p");}
}
Consultez également
class, extends, implements
450
Chapitre 12 : Dictionnaire ActionScript
isFinite
Disponibilité
Flash Player 5.
Usage
isFinite(expression)
Paramètres
expression
Une valeur booléenne, une variable ou une autre expression à évaluer.
Renvoie
Une valeur booléenne.
Description
Fonction : évalue expression et renvoie true s’il s’agit d’un nombre fini et false s’il s’agit
d’infini ou d’infini négatif. La présence d’infini, ou d’infini négatif, indique une condition
d’erreur mathématique (une division par 0, par exemple).
Exemple
Les exemples suivants sont des exemples de valeurs renvoyées pour isFinite :
isFinite(56)
// renvoie true
isFinite(Number.POSITIVE_INFINITY)
// renvoie false
isFinite
451
isNaN()
Disponibilité
Flash Player 5.
Usage
isNaN(expression)
Paramètres
expression
Une valeur booléenne, une variable ou une autre expression à évaluer.
Renvoie
Une valeur booléenne.
Description
Fonction : évalue le paramètre et renvoie true si la valeur n’est pas un nombre (NaN), indiquant la
présence d’erreurs mathématiques.
Exemple
Le code suivant illustre les valeurs renvoyées pour la fonction isNaN :
isNaN("Tree")
// renvoie true
isNan(56)
// renvoie false
isNaN(Number.POSITIVE_INFINITY)
// renvoie false
Consultez également
NaN, Number.NaN
Classe Key
Disponibilité
Flash Player 6.
Description
La classe Key est une classe de premier niveau dont les méthodes et les propriétés sont utilisables
sans instructeur. Utilisez les méthodes de la classe Key pour construire une interface qui peut être
contrôlée par un utilisateur possédant un clavier standard. Les propriétés de la classe Key sont des
constantes représentant les touches les plus souvent utilisées pour contrôler les jeux. Pour
consulter la liste complète des valeurs des codes key, consultez l’Annexe C, Touches du clavier et
valeurs de code correspondantes, page 901.
452
Chapitre 12 : Dictionnaire ActionScript
Méthodes de la classe Key
Méthode
Description
Key.addListener()
Enregistre un objet pour la réception de notification lorsque les méthodes
onKeyDown et onKeyUp sont invoquées.
Key.getAscii()
Renvoie la valeur ASCII de la dernière touche enfoncée.
Key.getCode()
Renvoie le code virtuel de la dernière touche enfoncée.
Key.isDown()
Renvoie true si la touche spécifiée dans le paramètre est enfoncée.
Key.isToggled()
Renvoie true si les touches Verr Num ou Verr Maj sont activées.
Key.removeListener() Supprime un objet précédemment enregistré avec Key.addListener().
Propriétés de la classe Key
Toutes les propriétés de la classe Key sont des constantes.
Propriété
Description
Key.BACKSPACE
Constante associée à la valeur de code de touche pour la touche Rappel
arrière (8).
Key.CAPSLOCK
Constante associée à la valeur de code de touche pour la touche
Verrouillage des majuscules (20).
Key.CONTROL
Constante associée à la valeur de code de touche pour la touche Ctrl (17).
Key.DELETEKEY
Constante associée à la valeur de code de touche pour la touche
Suppression (46).
Key.DOWN
Constante associée à la valeur de code de touche pour la touche Flèche
vers le bas (40).
Key.END
Constante associée à la valeur de code de touche pour la touche Fin (35).
Key.ENTER
Constante associée à la valeur de code de touche pour la touche Entrée
(13).
Key.ESCAPE
Constante associée à la valeur de code de touche pour la touche Echap
(27).
Key.HOME
Constante associée à la valeur de code de touche pour la touche Origine
(36).
Key.INSERT
Constante associée à la valeur de code de touche pour la touche Insertion
(45).
Key.LEFT
Constante associée à la valeur de code de touche pour la touche Flèche
vers la gauche (37).
Key.PGDN
Constante associée à la valeur de code de touche pour la touche Page
suivante (34).
Key.PGUP
Constante associée à la valeur de code de touche pour la touche Page
précédente (33).
Key.RIGHT
Constante associée à la valeur de code de touche pour la touche Flèche
vers la droite (39).
Classe Key
453
Propriété
Description
Key.SHIFT
Constante associée à la valeur de code de touche pour la touche Maj (16).
Key.SPACE
Constante associée à la valeur de code de touche pour la touche Barre
d’espacement (32).
Key.TAB
Constante associée à la valeur de code de touche pour la touche Tab (9).
Key.UP
Constante associée à la valeur de code de touche pour la touche Flèche
vers le haut (38).
Ecouteurs de la classe Key
454
Méthode
Description
Key.onKeyDown
Notifié lorsqu’une touche est enfoncée.
Key.onKeyUp
Notifié lorsqu’une touche est relâchée.
Chapitre 12 : Dictionnaire ActionScript
Key.addListener()
Disponibilité
Flash Player 6.
Usage
Key.addListener (nouvelEcouteur)
Paramètres
nouvelEcouteur
Un objet avec les méthodes onKeyDown et onKeyUp.
Renvoie
Rien.
Description
Méthode : enregistre un objet pour la réception de notifications onKeyDown et onKeyUp.
Lorsqu’une touche est enfoncée ou relâchée, quel que soit le focus de saisie, la méthode
onKeyDown ou onKeyUp de tous les objets écouteurs enregistrés avec addListener() est invoquée.
Plusieurs objets peuvent attendre des notifications de clavier. Si l’écouteur nouvelEcouteur est
déjà enregistré, aucun changement n’a lieu.
Exemple
L’exemple suivant crée un nouvel objet d’écoute et définit une fonction pour onKeyDown et
onKeyUp. La dernière ligne utilise la méthode addListener() pour enregistrer l’écouteur avec
l’objet Key, afin qu’il puisse recevoir une notification des événements de touche enfoncée et de
touche relâchée.
monEcouteur = new Object();
monEcouteur.onKeyDown = function () {
trace ("Vous avez appuyé sur une touche.");
}
monEcouteur.onKeyUp = function () {
trace ("Vous avez relâché une touche.");
}
Key.addListener(monEcouteur);
L’exemple suivant attribue le raccourci clavier Ctrl+7 à un bouton avec un nom d’occurrence de
monBouton, et rend les informations sur le raccourci accessibles aux lecteurs d’écran (consultez
_accProps). Dans cet exemple, lorsque vous appuyez sur Ctrl+7, la fonction myOnPress affiche
le texte « bonjour » dans le panneau de sortie ; dans votre fichier, vous devez créer une fonction
plus explicite.
function myOnPress() {
trace( "bonjour" );
}
function myOnKeyDown() {
if (Key.isDown(Key.CONTROL) && Key.getCode() == 55) // 55 est le code de
touche de 7
{
Selection.setFocus( monBouton );
monBouton.onPress();
}
}
Key.addListener()
455
var monEcouteur = new Object();
monEcouteur.onKeyDown = myOnKeyDown;
Key.addListener( monEcouteur );
monBouton.onPress = myOnPress;
monBouton._accProps.shortcut = "Ctrl+F"
Accessibility.updateProperties()
Consultez également
Key.getCode(), Key.isDown(), Key.onKeyDown, Key.onKeyUp, Key.removeListener()
Key.BACKSPACE
Disponibilité
Flash Player 5.
Usage
Key.BACKSPACE
Description
Propriété : associée à la valeur de code de touche pour la touche Retour arrière (8).
Key.CAPSLOCK
Disponibilité
Flash Player 5.
Usage
Key.CAPSLOCK
Description
Propriété : associée à la valeur de code de touche pour la touche Verr Maj (20).
Key.CONTROL
Disponibilité
Flash Player 5.
Usage
Key.CONTROL
Description
Propriété : associée à la valeur de code de touche pour la touche Ctrl (17).
456
Chapitre 12 : Dictionnaire ActionScript
Key.DELETEKEY
Disponibilité
Flash Player 5.
Usage
Key.DELETEKEY
Description
Propriété : associée à la valeur de code de touche pour la touche Suppr (46).
Key.DOWN
Disponibilité
Flash Player 5.
Usage
Key.DOWN
Description
Propriété : associée à la valeur de code de touche pour la touche Flèche vers le bas (40).
Key.END
Disponibilité
Flash Player 5.
Usage
Key.END
Description
Propriété : associée à la valeur de code de touche pour la touche Fin (35).
Key.ENTER
Disponibilité
Flash Player 5.
Usage
Key.ENTER
Description
Propriété : associée à la valeur de code de touche pour la touche Entrée (13).
Key.ENTER
457
Key.ESCAPE
Disponibilité
Flash Player 5.
Usage
Key.ESCAPE
Description
Propriété : associée à la valeur de code de touche pour la touche Echap (27).
Key.getAscii()
Disponibilité
Flash Player 5.
Usage
Key.getAscii();
Paramètres
Aucun.
Renvoie
Un entier représentant la valeur ASCII de la dernière touche enfoncée.
Description
Méthode : renvoie le code ASCII de la dernière touche enfoncée ou relâchée. Les valeurs ASCII
renvoyées sont les valeurs du clavier anglais. Par exemple, si vous appuyez sur Maj+2,
Key.getAscii() renvoie @ sur un clavier japonais, de la même façon que sur un clavier anglais.
Key.getCode()
Disponibilité
Flash Player 5.
Usage
Key.getCode();
Paramètres
Aucun.
Renvoie
Un entier représentant le code de touche de la dernière touche enfoncée.
Description
Méthode : renvoie la valeur de code de la dernière touche enfoncée. Pour faire correspondre la
valeur du code touche renvoyée avec la touche sur un clavier standard, consultez
l’Annexe C, Touches du clavier et valeurs de code correspondantes, page 901.
458
Chapitre 12 : Dictionnaire ActionScript
Key.HOME
Disponibilité
Flash Player 5.
Usage
Key.HOME
Description
Propriété : associée à la valeur de code de touche pour la touche Origine (36).
Key.INSERT
Disponibilité
Flash Player 5.
Usage
Key.INSERT
Description
Propriété : associée à la valeur de code de touche pour la touche Insertion (45).
Key.INSERT
459
Key.isDown()
Disponibilité
Flash Player 5.
Usage
Key.isDown(codeDeTouche)
Paramètres
codeDeTouche La valeur de code affectée à une touche spécifique ou une propriété de classe Key
associée à une touche spécifique. Pour faire correspondre la valeur du code touche renvoyée avec la
touche sur un clavier standard, consultez l’Annexe C, Touches du clavier et valeurs de code
correspondantes, page 901.
Renvoie
Une valeur booléenne.
Description
Méthode : renvoie true si la touche spécifiée dans codeDeTouche est enfoncée, false si elle ne
l’est pas. Sur Macintosh, les valeurs de codes des touches Verr Maj et Verr Num sont identiques.
Exemple
Le script suivant permet à l’utilisateur de contrôler l’emplacement d’un clip.
onClipEvent (enterFrame) {
if(Key.isDown(Key.RIGHT)) {
this._x=_x+10;
} else if (Key.isDown(Key.DOWN)) {
this._y=_y+10;
}
}
460
Chapitre 12 : Dictionnaire ActionScript
Key.isToggled()
Disponibilité
Flash Player 5.
Usage
Key.isToggled(codeDeTouche)
Paramètres
codeDeTouche
Le code de touche Verr Maj (20) ou Verr Num (144).
Renvoie
Une valeur booléenne.
Description
Méthode : renvoie true si la touche Verr Maj ou Verr Num est activée (activée), false si elle ne
l’est pas. Sur Macintosh, les valeurs de codes des touches Verr Maj et Verr Num sont identiques.
Key.LEFT
Disponibilité
Flash Player 5.
Usage
Key.LEFT
Description
Propriété : associée à la valeur de code de touche pour la touche Flèche vers la gauche (37).
Key.LEFT
461
Key.onKeyDown
Disponibilité
Flash Player 6.
Usage
unEcouteur.onKeyDown
Description
Ecouteur : notifié lorsqu’une touche est enfoncée. Pour utiliser onKeyDown, vous devez créer un
objet d’écoute. Vous pouvez alors définir une fonction pour onKeyDown et utiliser
addListener() pour enregistrer l’écouteur avec l’objet Key, comme dans l’exemple suivant :
unEcouteur = new Object();
unEcouteur.onKeyDown = function () { ... };
Key.addListener(unEcouteur);
Les écouteurs permettent à différents morceaux de code de coopérer étant donné que plusieurs
écouteurs peuvent recevoir une notification concernant un seul événement.
Consultez également
Key.addListener()
Key.onKeyUp
Disponibilité
Flash Player 6.
Usage
unEcouteur.onKeyUp
Description
Ecouteur : notifié lorsqu’une touche est relâchée. Pour utiliser onKeyUp, vous devez créer un objet
d’écoute. Vous pouvez alors définir une fonction pour onKeyUp et utiliser addListener() pour
enregistrer l’écouteur avec l’objet Key, comme dans l’exemple suivant :
unEcouteur = new Object();
unEcouteur.onKeyUp = function () { ... };
Key.addListener(unEcouteur);
Les écouteurs permettent à différents morceaux de code de coopérer étant donné que plusieurs
écouteurs peuvent recevoir une notification concernant un seul événement.
Consultez également
Key.addListener()
462
Chapitre 12 : Dictionnaire ActionScript
Key.PGDN
Disponibilité
Flash Player 5.
Usage
Key.PGDN
Description
Propriété : associée à la valeur de code de touche pour la touche Page suivante (34).
Key.PGUP
Disponibilité
Flash Player 5.
Usage
Key.PGUP
Description
Propriété : associée à la valeur de code de touche pour la touche Page vers le haut (33).
Key.removeListener()
Disponibilité
Flash Player 6.
Usage
Key.removeListener (écouteur)
Paramètres
écouteur
Un objet.
Renvoie
Si l’écouteur a été correctement retiré de la méthode renvoie true. Si l’écouteur n’a pas été
correctement retiré, par exemple si l’écouteur n’apparaissait pas dans la liste des écouteurs de
l’objet Key, la méthode renvoie false.
Description
Méthode : retire un objet précédemment enregistré avec Key.addListener().
Key.removeListener()
463
Key.RIGHT
Disponibilité
Flash Player 5.
Usage
Key.RIGHT
Description
Propriété : associée à la valeur de code de touche pour la touche Flèche vers la droite (39).
Key.SHIFT
Disponibilité
Flash Player 5.
Usage
Key.SHIFT
Description
Propriété : associée à la valeur de code de touche pour la touche Maj (16).
Key.SPACE
Disponibilité
Flash Player 5.
Usage
Key.SPACE
Description
Propriété : associée à la valeur de code de touche pour la touche Barre d’espacement (32).
Key.TAB
Disponibilité
Flash Player 5.
Usage
Key.TAB
Description
Propriété : associée à la valeur de code de touche pour la touche Tab (9).
464
Chapitre 12 : Dictionnaire ActionScript
Key.UP
Disponibilité
Flash Player 5.
Usage
Key.UP
Description
Propriété : associée à la valeur de code de touche pour la touche Flèche vers le haut (38).
le (inférieur ou égal à — spécifique aux chaînes)
Disponibilité
Flash Player 4. Cet opérateur est déconseillé dans Flash 5 et remplacé par l’opérateur <=
(inférieur ou égal à).
Usage
expression1 le expression2
Paramètres
expression1, expression2
Nombres, chaînes ou variables.
Renvoie
Rien.
Description
Opérateur (comparaison) : compare expression1 avec expression2 et renvoie true si
expression1 est inférieure ou égale à expression2 ; sinon, renvoie false.
Consultez également
<= (inférieur ou égal à)
le (inférieur ou égal à — spécifique aux chaînes)
465
length
Disponibilité
Flash Player 4. Cette fonction, de même que toutes les fonctions de chaînes, est déconseillée dans
Flash 5. Macromedia recommande l’utilisation des méthodes de la classe String et de la
propriété String.length pour effectuer les mêmes opérations.
Usage
length(expression)
length(variable)
Paramètres
expression
variable
Une chaîne.
Le nom d’une variable.
Renvoie
La longueur de la chaîne spécifiée ou du nom de la variable.
Description
Fonction de chaîne : renvoie la longueur de la chaîne ou variable spécifiée.
Exemple
L’exemple suivant renvoie la valeur de la chaîne "Bonjour".
length("Bonjour");
Le résultat est 5.
Consultez également
" " (délimiteur de chaîne),
466
Classe String, String.length
Chapitre 12 : Dictionnaire ActionScript
_level
Disponibilité
Flash Player 4.
Usage
_levelN
Description
Identifiant : une référence au scénario racine de _levelN. Vous devez utiliser loadMovieNum()
pour charger les fichiers SWF dans Flash Player avant d’utiliser la propriété _level pour les
cibler. Vous pouvez également utiliser _levelN pour cibler un fichier SWF chargé au niveau
affecté par N.
Le fichier SWF initial qui est chargé dans une occurrence de Flash Player est automatiquement
chargé dans _level0. Le fichier SWF dans _level0 définit la cadence, la couleur d’arrière-plan et
la taille des images pour tous les autres fichiers SWF chargés. Les fichiers SWF sont alors empilés
à des niveaux plus élevés au-dessus du fichier SWF dans _level0.
Vous devez affecter un niveau à chaque fichier SWF que vous chargez dans Flash Player à l’aide de
l’action loadMovieNum(). Vous pouvez affecter des niveaux dans n’importe quel ordre. Si vous
affectez un niveau qui contient déjà un fichier SWF (y compris _level0), le fichier SWF qui se
trouve à ce niveau est purgé et remplacé par le nouveau fichier SWF.
Exemple
L’exemple suivant arrête la tête de lecture du scénario principal du fichier SWF de _level9.
_level9.stop();
L’exemple suivant envoie la tête de lecture du scénario principal du fichier SWF de _level4 vers
l’image 5. Le fichier SWF de _level4 doit avoir été chargé avec une action loadMovieNum().
_level4.gotoAndStop(5);
Consultez également
loadMovie(), MovieClip.swapDepths()
_level
467
loadMovie()
Disponibilité
Flash Player 3.
Usage
loadMovie("url",cible [, méthode])
Paramètres
L’URL absolue ou relative du fichier SWF ou JPEG à charger. Un chemin relatif doit être
relatif au fichier SWF au niveau 0. Des URL absolues doivent inclure la référence au protocole,
comme http:// ou file:///.
url
cible Un chemin vers la cible d’un clip. Le clip cible sera remplacé par l’image ou le fichier
SWF chargé.
méthode Un paramètre facultatif spécifiant une méthode HTTP d’envoi des variables. Le
paramètre doit être la chaîne GET ou POST. Omettez ce paramètre si aucune variable ne doit être
envoyée. La méthode GET ajoute les variables à la fin de l’URL et est utilisée pour des petits
nombres de variables. La méthode POST envoie les variables dans un en-tête HTTP distinct et est
utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Fonction : charge un fichier SWF ou JPEG dans Flash Player en cours de lecture du fichier SWF
d’origine.
Conseil : Si vous souhaitez suivre la progression du téléchargement, utilisez
MovieClipLoader.loadClip() au lieu de cette fonction.
La fonction loadMovie() vous permet d’afficher plusieurs fichiers SWF simultanément et de
basculer entre les fichiers SWF sans charger un autre document HTML. Sans la fonction
loadMovie(), Flash Player affiche un seul fichier SWF avant de quitter.
Si vous souhaitez charger un fichier SWF ou JPEG dans un niveau spécifique,
utilisez loadMovieNum() au lieu de loadMovie().
Si un fichier SWF est chargé dans un clip cible, vous pouvez utiliser le chemin cible de ce clip
pour cibler le fichier chargé. Un fichier SWF ou une image chargée dans une cible hérite de ses
propriétés de position, rotation et échelle. Le coin supérieur gauche de l’image ou du fichier SWF
chargé s’aligne avec le point d’alignement du clip ciblé. Ou bien, si la cible est le scénario _root,
le coin supérieur gauche de l’image ou du fichier SWF s’aligne avec le coin supérieur gauche de la
scène.
Utilisez unloadMovie() pour supprimer les fichiers SWF chargés avec loadMovie().
Exemple
L’instruction loadMovie() suivante est associée à un bouton de navigation intitulé Produits. Un
clip invisible se trouve sur la scène et porte le nom d’occurrence zoneCible. La fonction
loadMovie() utilise ce clip comme paramètre cible pour charger les produits du fichier SWF à la
position correcte sur la Scène.
468
Chapitre 12 : Dictionnaire ActionScript
on(release) {
loadMovie("produits.swf",_root.zoneCible);
}
L’exemple suivant charge une image JPEG à partir du même répertoire que le fichier SWF qui
appelle la fonction loadMovie() :
loadMovie("image45.jpeg", "notreClip");
Consultez également
_level, loadMovieNum(), MovieClipLoader.loadClip(), unloadMovie()
loadMovieNum()
Disponibilité
Flash Player 4. Les fichiers Flash 4 ouverts dans Flash 5 ou ultérieur sont convertis de manière à
utiliser la syntaxe correcte.
Usage
loadMovieNum("url",niveau[, variables])
Paramètres
url Une URL absolue ou relative du fichier SWF ou JPEG à charger. Un chemin relatif doit
être relatif au fichier SWF au niveau 0. Pour une utilisation dans Flash Player autonome ou pour
un test en mode test d’animation dans l’application auteur Flash, tous les fichiers SWF doivent
être stockés dans le même répertoire et les noms de fichier ne peuvent pas inclure des
spécifications de répertoire ou de lecteur de disque.
niveau
Un entier spécifiant le niveau Flash Player auquel le fichier SWF sera chargé.
variables Un paramètre facultatif spécifiant une méthode HTTP d’envoi des variables. Le
paramètre doit être la chaîne GET ou POST. Omettez ce paramètre si aucune variable ne doit être
envoyée. La méthode GET ajoute les variables à la fin de l’URL et est utilisée pour des petits
nombres de variables. La méthode POST envoie les variables dans un en-tête HTTP distinct et est
utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Fonction : charge un fichier SWF ou JPEG dans un niveau de Flash Player en cours de lecture du
fichier SWF d’origine.
Conseil : Si vous souhaitez suivre la progression du téléchargement, utilisez
MovieClipLoader.loadClip() au lieu de cette fonction.
Normalement, Flash Player affiche un seul fichier SWF avant de quitter. L’action loadMovie()
vous permet d’afficher plusieurs fichiers SWF simultanément et de basculer entre les fichiers SWF
sans charger un autre document HTML.
Si vous souhaitez spécifier une cible au lieu d’un niveau, utilisez loadMovie() au lieu de
loadMovieNum().
loadMovieNum()
469
Flash Player a un ordre d’empilement des niveaux qui commence au niveau 0. Ces niveaux sont
comme des calques : ils sont transparents, à l’exception des objets qui se trouvent sur chaque
niveau. Lorsque vous utilisez loadMovieNum(), vous devez spécifier un niveau Flash Player dans
lequel charger le fichier SWF. Lorsqu’un fichier SWF est chargé dans un niveau, vous pouvez
utiliser la syntaxe _levelN pour cibler le fichier SWF, où N est le numéro de niveau.
Lorsque vous chargez un fichier SWF, vous pouvez spécifier un quelconque numéro et charger des
fichiers SWF dans un niveau dans lequel un fichier SWF a déjà été chargé. Si tel est le cas, le
nouveau fichier SWF remplacera le fichier SWF existant. Si vous chargez un fichier SWF dans le
niveau 0, tous les niveaux de Flash Player sont vidés et le niveau 0 est remplacé par le nouveau
fichier. Le fichier SWF dans le niveau 0 définit la cadence, la couleur d’arrière-plan et la taille des
images pour tous les autres fichiers SWF chargés.
L’action loadMovieNum() vous permet également de charger des fichiers JPEG dans un fichier
SWF en cours de lecture. Le coin supérieur gauche de l’image s’aligne, aussi bien pour les images
que pour les fichiers SWF, avec le coin supérieur gauche de la scène lors du chargement du fichier.
De plus, dans les deux cas, le fichier chargé hérite de la rotation et de l’échelle, le contenu original
étant écrasé.
Utilisez unloadMovieNum() pour supprimer des fichiers SWF ou des images chargés avec
loadMovieNum().
Exemple
Cet exemple charge l’image JPEG image45.jpg dans le niveau 2 de Flash Player.
loadMovieNum("http://www.blag.com/image45.jpg", 2);
Consultez également
loadMovie(), unloadMovieNum(), _level
470
Chapitre 12 : Dictionnaire ActionScript
loadVariables()
Disponibilité
Flash Player 4 ; comportement modifié dans Flash Player 7.
Usage
loadVariables ("url" , cible [, variables])
Paramètres
url Une URL absolue ou relative où se trouvent les variables. Si le fichier SWF résultant de cet
appel est ouvert dans un navigateur web, l’url doit être du même domaine que le fichier SWF ;
pour plus de détails, consultez la description ci-dessous.
cible
Le chemin cible d’un clip qui reçoit les variables chargées.
variables Un paramètre facultatif spécifiant une méthode HTTP d’envoi des variables. Le
paramètre doit être la chaîne GET ou POST. Omettez ce paramètre si aucune variable ne doit être
envoyée. La méthode GET ajoute les variables à la fin de l’URL et est utilisée pour des petits
nombres de variables. La méthode POST envoie les variables dans un en-tête HTTP distinct et est
utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Fonction : lit des données depuis un fichier externe, tel qu’un fichier texte ou du texte généré par
un script CGI, ASP, PHP ou Perl, et définit les valeurs des variables dans un clip cible. Cette
action peut également être utilisée pour affecter de nouvelles valeurs aux variables du fichier SWF
actif.
Le texte de l’URL spécifiée doit être au format standard MIME application/x-www-formurlencoded (un format standard utilisé par les scripts CGI). Tout nombre de variables peut être
spécifié. Par exemple, la séquence suivante définit plusieurs variables :
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103
Dans des fichiers SWF exécutés dans une version du lecteur antérieure à Flash Player 7, l’url doit
être du même super-domaine que le fichier SWF résultant de cet appel. Par exemple, un fichier
SWF à l’adresse www.Domaine.com peut charger des variables d’un fichier SWF à l’adresse
store.Domaine.com car les deux fichiers sont du même super-domaine de Domaine.com.
Dans des fichiers SWF d’une quelconque version exécutée dans Flash Player 7 ou ultérieur, l’url
doit être exactement du même domaine (consultez Fonctions de sécurité de Flash Player, page 199).
Par exemple, un fichier SWF à l’adresse www.Domaine.com peut uniquement charger des
variables de fichiers SWF également à l’adresse www.Domaine.com. Si vous souhaitez charger des
variables d’un autre domaine, vous pouvez placer un fichier de régulation inter-domaines sur le
serveur hébergeant le fichier SWF auquel vous accédez actuellement. Pour plus d’informations,
consultez A propos de l’autorisation de chargement de données inter-domaines, page 201.
Si vous souhaitez charger des variables dans un niveau spécifique, utilisez loadvariablesNum()
au lieu de loadVariables().
loadVariables()
471
Exemple
Cet exemple charge des informations depuis un fichier texte vers des champs de texte dans le clip
varCible du scénario principal. Les noms de variables des champs de texte doivent correspondre
aux noms de variables du fichier données.txt.
on(release) {
loadVariables("donnees.txt", "_root.varCible");
}
Consultez également
loadvariablesNum(), loadMovie(), loadMovieNum(), getURL(), MovieClip.loadMovie,
MovieClip.loadVariables()
loadvariablesNum()
Disponibilité
Flash Player 4. Les fichiers Flash 4 ouverts dans Flash 5 ou ultérieur sont convertis de manière à
utiliser la syntaxe correcte. Comportement modifié dans Flash Player 7.
Usage
loadVariablesNum("url",niveau[, variables])
Paramètres
url Une URL absolue ou relative où se trouvent les variables. Si le fichier SWF résultant de cet
appel est ouvert dans un navigateur web, l’url doit être du même domaine que le fichier SWF ;
pour plus de détails, consultez la description ci-dessous.
niveau
Un entier spécifiant le niveau Flash Player de réception des variables.
variables Un paramètre facultatif spécifiant une méthode HTTP d’envoi des variables. Le
paramètre doit être la chaîne GET ou POST. Omettez ce paramètre si aucune variable ne doit être
envoyée. La méthode GET ajoute les variables à la fin de l’URL et est utilisée pour des petits
nombres de variables. La méthode POST envoie les variables dans un en-tête HTTP distinct et est
utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Fonction : lit des données depuis un fichier externe, tel qu’un fichier texte ou un texte généré par
un script CGI, ASP, PHP ou Perl, et définit les valeurs des variables dans un niveau Flash Player.
Vous pouvez également utiliser cette fonction pour mettre à jour les variables du fichier SWF actif
à l’aide de nouvelles valeurs.
Le texte de l’URL spécifiée doit être au format MIME standard application/x-www-formurlencoded (un format standard utilisé par les scripts CGI). Tout nombre de variables peut être
spécifié. Par exemple, la séquence suivante définit plusieurs variables :
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103
472
Chapitre 12 : Dictionnaire ActionScript
Dans des fichiers SWF exécutés dans une version du lecteur antérieure à Flash Player 7, l’url doit
être du même super-domaine que le fichier SWF résultant de cet appel. Par exemple, un fichier
SWF à l’adresse www.Domaine.com peut charger des variables d’un fichier SWF à l’adresse
store.Domaine.com car les deux fichiers sont du même super-domaine de Domaine.com.
Dans des fichiers SWF d’une quelconque version exécutée dans Flash Player 7 ou ultérieur, l’url
doit être exactement du même domaine (consultez Fonctions de sécurité de Flash Player, page 199).
Par exemple, un fichier SWF à l’adresse www.Domaine.com peut uniquement charger des
variables de fichiers SWF également à l’adresse www.Domaine.com. Si vous souhaitez charger des
variables d’un autre domaine, vous pouvez placer un fichier de régulation inter-domaines sur le
serveur hébergeant le fichier SWF auquel vous accédez actuellement. Pour plus d’informations,
consultez A propos de l’autorisation de chargement de données inter-domaines, page 201.
Si vous souhaitez charger des variables dans un clip spécifique, utilisez loadVariables() au lieu
de loadVariablesNum().
Exemple
Cet exemple charge des informations depuis un fichier texte vers des champs de texte dans le
scénario principal du fichier SWF (niveau 0) de Flash Player. Les noms de variables des champs de
texte doivent correspondre aux noms de variables du fichier données.txt.
on(release) {
loadVariablesNum("donnees.txt", 0);
}
Consultez également
getURL(), loadMovie(), loadMovieNum(), loadVariables(), MovieClip.loadMovie,
MovieClip.loadVariables()
Classe LoadVars
Disponibilité
Flash Player 6.
Description
La classe LoadVars constitue une alternative à la fonction loadVariables() pour transférer des
variables entre une application Flash et un serveur.
Vous pouvez utiliser cette classe pour obtenir la vérification du chargement réussi des données, les
indications de progression et les données de flux pendant le téléchargement. La classe LoadVars
fonctionne de manière semblable à Classe XML : elle utilise les méthodes load(), send() et
sendAndLoad() pour communiquer avec un serveur. La principale différence entre la classe
LoadVars et la classe XML est que LoadVars transfère des paires nom et valeur ActionScript, au
lieu de l’arborescence DOM XML stockée dans l’objet XML.
La classe LoadVars est soumise aux mêmes restrictions de sécurité que la classe XML.
Classe LoadVars
473
Méthodes de la classe LoadVars
Méthode
Description
LoadVars.addRequestHeader() Ajoute ou modifie les en-têtes HTTP pour les opérations POST.
LoadVars.getBytesLoaded()
Renvoie le nombre d’octets téléchargés par LoadVars.load() ou
LoadVars.sendAndLoad().
LoadVars.getBytesTotal()
Renvoie le nombre total d’octets téléchargés par une opération load
ou une méthode sendAndLoad.
LoadVars.load()
Télécharge des variables à partir d’une URL spécifiée.
LoadVars.send()
Publie des variables d’un objet LoadVars à une URL.
LoadVars.sendAndLoad()
Publie les variables d’un objet LoadVars à une URL et télécharge la
réponse du serveur vers un objet cible.
LoadVars.toString()
Renvoie une chaîne encodée URL qui contient toutes les variables
énumérables de l’objet LoadVars.
Propriétés de la classe LoadVars
Propriété
Description
LoadVars.contentType
Indique le type MIME des données.
LoadVars.loaded
Une valeur booléenne indiquant si une opération load ou
sendAndLoad est terminée.
Gestionnaires d’événement de la classe LoadVars
474
Gestionnaire
d’événement
Description
LoadVars.onData
Invoqué lorsque les données ont été complètement téléchargées du
serveur ou lorsqu’une erreur se produit au cours de ce
téléchargement.
LoadVars.onLoad
Invoqué lorsqu’une opération load ou sendAndLoad est terminée.
Chapitre 12 : Dictionnaire ActionScript
Constructeur de la classe LoadVars
Disponibilité
Flash Player 6.
Usage
new LoadVars()
Paramètres
Aucun.
Renvoie
Rien.
Description
Constructeur : crée un objet LoadVars Vous pouvez ensuite utiliser les méthodes de cet objet
LoadVars pour envoyer et charger des données.
Exemple
L’exemple suivant crée un objet LoadVars nommé mes_lv :
var mes_lv = new LoadVars();
Classe LoadVars
475
LoadVars.addRequestHeader()
Disponibilité
Flash Player 6.
Usage
mon_lv.addRequestHeader(nomDentête, valeurDentête)
mon_lv.addRequestHeader(["nomDentête_1", "valeurDentête_1" ... "nomDentête_n",
"valeurDentête_n"])
Paramètres
nomDentête
Un nom d’en-tête de requête HTTP.
valeurDentête
La valeur associée à nomDentête.
Renvoie
Rien.
Description
Méthode : ajoute ou modifie les en-têtes de requête HTTP (telles que Content-type ou
SOAPAction) envoyés avec les actions POST. Dans la première utilisation, vous transmettez deux
chaînes à la méthode : nomDentête et valeurDentête. Dans la seconde utilisation, vous
transmettez un tableau de chaînes, alternant noms et valeurs d’en-têtes.
Si des appels multiples sont définis pour un seul et même nom d’en-tête, chaque valeur successive
remplace la valeur définie dans le précédent appel.
Les en-têtes HTTP standard suivantes ne peuvent pas être ajoutées ou modifiées dans cette
méthode : Accept-Ranges, Age, Allow, Allowed, Connection, Content-Length, ContentLocation, Content-Range, ETag, Host, Last-Modified, Locations, Max-Forwards, ProxyAuthenticate, Proxy-Authorization, Public, Range, Retry-After, Server, TE, Trailer,
Transfer-Encoding, Upgrade, URI, Vary, Via, Warning et WWW-Authenticate.
Exemple
Cet exemple ajoute un en-tête HTTP personnalisé nommé SOAPAction avec une valeur Foo à
l’objet mon_lv.
mon_lv.addRequestHeader("SOAPAction", "'Foo'");
L’exemple suivant crée un tableau nommé en-têtes contenant deux en-têtes secondaires et leurs
valeurs associées. Le tableau est transmis en tant qu’argument à addRequestHeader().
var en-têtes = ["Content-type", "texte/normal", "X-ClientAppVersion", "2.0"];
mon_lv.addRequestHeader(headers);
Voir aussi
XML.addRequestHeader()
476
Chapitre 12 : Dictionnaire ActionScript
LoadVars.contentType
Disponibilité
Flash Player 6.
Usage
mes_lv.contentType
Description
Propriété : le type MIME envoyé au serveur lorsque vous appelez LoadVars.send()ou
LoadVars.sendAndLoad(). La valeur par défaut est application/x-www-urlform-encoded.
Consultez également
LoadVars.send(), LoadVars.sendAndLoad()
LoadVars.getBytesLoaded()
Disponibilité
Flash Player 6.
Usage
mes_lv.getBytesLoaded()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le nombre d’octets téléchargés par LoadVars.load() ou
LoadVars.sendAndLoad(). Cette méthode renvoie undefined si aucune opération load n’est en
cours ou si une opération load n’a pas encore été initiée.
LoadVars.getBytesLoaded()
477
LoadVars.getBytesTotal()
Disponibilité
Flash Player 6.
Usage
mes_lv.getBytesTotal()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie le nombre total d’octets téléchargés par LoadVars.load() ou
LoadVars.sendAndLoad(). Cette méthode renvoie undefined si aucune opération load n’est en
cours ou si une opération load n’a pas encore été initiée. Cette méthode renvoie également
undefined si le nombre total d’octets ne peut pas être déterminé (par exemple, si le
téléchargement a été initié mais que le serveur n’a pas transmis de longueur de contenu HTTP).
478
Chapitre 12 : Dictionnaire ActionScript
LoadVars.load()
Disponibilité
Flash Player 6 ; comportement modifié dans Flash Player 7.
Usage
mes_lv.load(url)
Paramètres
url L’URL où se trouvent les variables à télécharger. Si le fichier SWF résultant de cet appel est
ouvert dans un navigateur web, l’url doit être du même domaine que le fichier SWF ; pour plus
de détails, consultez la description ci-dessous.
Renvoie
Une chaîne.
Description
Méthode : télécharge des variables depuis l’URL spécifiée, analyse les données et place les variables
résultantes dans mes_lv. Les propriétés de mes_lv avec les mêmes noms que les variables
téléchargées sont supprimées. Les propriétés de mes_lv avec des noms différents des variables
téléchargées ne sont pas supprimées. Il s’agit d’une action asynchrone.
Les données téléchargées doivent être au format de contenu MIME application/x-www-formurlencoded. Il s’agit du même format que celui utilisé par loadVariables().
Dans des fichiers SWF exécutés dans une version du lecteur antérieure à Flash Player 7, l’url doit
être du même super-domaine que le fichier SWF résultant de cet appel. Par exemple, un fichier
SWF à l’adresse www.Domaine.com peut charger des variables d’un fichier SWF à l’adresse
store.Domaine.com car les deux fichiers sont du même super-domaine de Domaine.com.
Dans des fichiers SWF d’une quelconque version exécutée dans Flash Player 7 ou ultérieur, l’url
doit être exactement du même domaine (consultez Fonctions de sécurité de Flash Player, page 199).
Par exemple, un fichier SWF à l’adresse www.Domaine.com peut uniquement charger des
variables de fichiers SWF également à l’adresse www.Domaine.com. Si vous souhaitez charger des
variables d’un autre domaine, vous pouvez placer un fichier de régulation inter-domaines sur le
serveur hébergeant le fichier SWF auquel vous accédez actuellement. Pour plus d’informations,
consultez A propos de l’autorisation de chargement de données inter-domaines, page 201.
De même, dans des fichiers publiés pour Flash Player 7, la sensibilité à la casse (consultez Hauteur
de casse, page 32) est prise en charge pour les variables externes chargées à l’aide de
LoadVars.load().
Cette méthode est similaire à XML.load().
LoadVars.load()
479
LoadVars.loaded
Disponibilité
Flash Player 6.
Usage
mes_lv.loaded
Description
Propriété : undefined par défaut. Lorsqu’une opération LoadVars.load() ou
LoadVars.sendAndLoad() est initiée, la propriété loaded est définie sur la valeur false ; lorsque
l’opération est terminée, la propriété loaded est définie sur la valeur true. Si une opération de
chargement n’est pas encore terminée ou a échoué avec une erreur, la propriété loaded reste
définie sur la valeur false.
Cette propriété est similaire à la propriété XML.loaded.
LoadVars.onData
Disponibilité
Flash Player 6.
Usage
mon_lv.onData = function(src) {
// vos instructions
}
Paramètres
src Les données brutes (non analysées) à partir de l’appel d’une méthode LoadVars.load() ou
LoadVars.sendAndLoad().
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque les données ont été complètement téléchargées du
serveur ou lorsqu’une erreur se produit au cours de ce téléchargement. Ce gestionnaire est invoqué
avant l’analyse des données ; ainsi, il peut être utilisé pour appeler une routine d’analyse
personnalisée au lieu d’une routine intégrée dans Flash Player. La valeur du paramètre src
transmise à la fonction affectée à LoadVars.onData peut être soit undefined, soit une chaîne
contenant les paires nom-valeur encodées URL téléchargées depuis le serveur. Si la valeur
renvoyée est undefined, une erreur a eu lieu pendant le téléchargement à partir du serveur.
L’implémentation par défaut de LoadVars.onData invoque LoadVars.onLoad. Vous pouvez
écraser cette implémentation par défaut en affectant une fonction personnalisée à
LoadVars.onData, mais LoadVars.onLoad ne sera plus appelé à moins que vous ne l’appeliez
dans votre implémentation de LoadVars.onData.
480
Chapitre 12 : Dictionnaire ActionScript
LoadVars.onLoad
Disponibilité
Flash Player 6.
Usage
mon_lv.onLoad = function(success) {
// vos instructions
}
Paramètres
succès Le paramètre
non (false).
indique si l’opération de chargement s’est déroulée avec succès (true) ou
Renvoie
Une valeur booléenne.
Description
Gestionnaire d’événement : invoqué lorsqu’une opération LoadVars.load() ou
LoadVars.sendAndLoad() est terminée. Si l’opération est réussi, mes_lv est renseigné par des
variables téléchargées par l’opération ; ces variables sont disponibles lorsque ce gestionnaire est
invoqué.
Par défaut, ce gestionnaire n’est pas défini.
Cette méthode est similaire à XML.onLoad.
LoadVars.onLoad
481
LoadVars.send()
Disponibilité
Flash Player 6.
Usage
mes_lv.send(url [,cible, méthode] )
Paramètres
url
L’URL à laquelle télécharger les variables.
cible
La fenêtre du navigateur dans laquelle les réponses seront affichées.
méthode
La méthode GET ou POST du protocole HTTP.
Renvoie
Une chaîne.
Description
Méthode : envoie les variables de l’objet mes_lv à l’URL spécifiée. Toutes les variables
énumérables dans mes_lv sont concaténées dans une chaîne au format application/x-www-formurlencoded par défaut et la chaîne est envoyée à l’URL à l’aide de la méthode HTTP POST. Il s’agit
du même format que celui utilisé par l’action loadVariables(). Le type de contenu MIME
envoyé dans les en-têtes de requête HTTP est la valeur mes_lv.contentType ou la valeur par
défaut application/x-www-form-urlencoded. La méthode POST est utilisée si GET n’est pas spécifiée.
Si le paramètre cible n’est pas spécifié, la réponse du serveur est affichée dans la fenêtre nommée
cible du navigateur. Si le paramètre cible est omis, la réponse du serveur n’est pas prise en
compte.
Cette méthode est similaire à XML.send.
482
Chapitre 12 : Dictionnaire ActionScript
LoadVars.sendAndLoad()
Disponibilité
Flash Player 6 ; comportement modifié dans Flash Player 7.
Usage
mes_lv.sendAndLoad(url, objetCible[,méthode])
Paramètres
L’URL à laquelle télécharger les variables. Si le fichier SWF résultant de cet appel est ouvert
dans un navigateur web, l’url doit être du même domaine que le fichier SWF ; pour plus de
détails, consultez la description ci-dessous.
url
objetCible
méthode
L’objet LoadVars qui reçoit les variables chargées.
La méthode GET ou POST du protocole HTTP.
Renvoie
Une chaîne.
Description
Méthode : envoie les variables de l’objet mes_lv à l’URL spécifiée. La réponse du serveur est
téléchargée, analysée en tant que données de variables, et les variables résultantes sont placées dans
l’objet objetCible.
Les variables sont envoyées de la même façon que LoadVars.send(). Les variables sont
téléchargées dans objetCible de la même façon que LoadVars.load().
Dans des fichiers SWF exécutés dans une version du lecteur antérieure à Flash Player 7, l’url doit
être du même super-domaine que le fichier SWF résultant de cet appel. Par exemple, un fichier
SWF à l’adresse www.Domaine.com peut charger des variables d’un fichier SWF à l’adresse
store.Domaine.com car les deux fichiers sont du même super-domaine de Domaine.com.
Dans des fichiers SWF d’une quelconque version exécutée dans Flash Player 7 ou ultérieur, l’url
doit être exactement du même domaine (consultez Fonctions de sécurité de Flash Player, page 199).
Par exemple, un fichier SWF à l’adresse www.Domaine.com peut uniquement charger des
variables de fichiers SWF également à l’adresse www.Domaine.com. Si vous souhaitez charger des
variables d’un autre domaine, vous pouvez placer un fichier de régulation inter-domaines sur le
serveur hébergeant le fichier SWF auquel vous accédez actuellement. Pour plus d’informations,
consultez A propos de l’autorisation de chargement de données inter-domaines, page 201.
Cette méthode est similaire à XML.sendAndLoad.
LoadVars.sendAndLoad()
483
LoadVars.toString()
Disponibilité
Flash Player 6.
Usage
mes_lv.toString()
Paramètres
Aucun.
Renvoie
Une chaîne.
Description
Méthode : renvoie une chaîne contenant toutes les variables énumérables dans mes_lv, dans le
contenu MIME encodant application/x-www-form-urlencoded.
Exemple
var mesVars = new LoadVars();
mesVars.nom = "Gary";
mesVars.age = 26;
trace (mesVars.toString());
// donnerait le résultat
//nom=Gary&age=26
Classe LocalConnection
Disponibilité
Flash Player 6.
Description
La classe LocalConnection permet de développer des fichiers SWF pouvant échanger des
instructions sans l’utilisation de fscommand() ou JavaScript. Les objets LocalConnection ne
peuvent communiquer qu’entre des fichiers SWF exécutées sur le même ordinateur client, mais ils
peuvent être exécutés dans deux applications différentes, par exemple, un fichier SWF exécuté
dans un navigateur et un autre exécuté dans une projection. Vous pouvez utiliser les objets
LocalConnection pour envoyer et recevoir des données au sein d’un seul et même fichier SWF,
mais il ne s’agit pas là d’une implémentation standard ; tous les exemples contenus dans cette
section illustrent la communication entre les différents fichiers SWF.
Les principales méthodes utilisées pour envoyer et recevoir des données sont
LocalConnection.send() et LocalConnection.connect(). De la façon la plus simple, votre
code implémente les commandes suivantes ; notez que les commandes
LocalConnection.send() et LocalConnection.connect() spécifient le même nom de
connexion, nom_lc :
484
Chapitre 12 : Dictionnaire ActionScript
// Code dans l’animation de réception
Réception_lc = new LocalConnection();
Réception_lc.methodToExecute = function(param1, param2)
{
// Code à exécuter
}
Réception_lc.connect("nom_lc");
// Code dans l’animation d’envoi
Envoi_lc = new LocalConnection();
Envoi_lc.send("nom_lc", "méthodeAExécuter", donnée1, donnée2)
La façon la plus simple d’utiliser un objet LocalConnection est de n’autoriser la communication
qu’entre les objets LocalConnection situés dans le même domaine, puisque vous n’aurez pas à
vous occuper des questions de sécurité. Cependant, si vous devez autoriser la communication
entre les domaines, vous disposez de plusieurs façons d’implémenter les mesures de sécurité. Pour
plus d’informations, consultez la discussion concernant le paramètre nomDeConnexion dans
LocalConnection.send() et les entrées LocalConnection.allowDomain et
LocalConnection.domain().
Méthodes de la classe LocalConnection
Méthode
Description
LocalConnection.close()
Ferme (déconnecte) l’objet LocalConnection.
LocalConnection.connect()
Prépare l’objet LocalConnection à recevoir les
commandes d’une commande LocalConnection.send().
LocalConnection.domain()
Renvoie une chaîne représentant le super-domaine de
l’emplacement du fichier SWF actuel.
LocalConnection.send()
Invoque une méthode sur un objet LocalConnection
spécifié.
Gestionnaires d’événement de la classe LocalConnection
Gestionnaire d’événement
Description
LocalConnection.allowDomain
Invoque si l’objet actuel LocalConnection spécifié (de
réception) reçoit une requête pour invoquer une méthode
à partir d’un objet d’envoi LocalConnection.
LocalConnection.allowInsecureDomain
Invoqué si l’objet LocalConnection (de réception) actuel,
qui se trouve dans un fichier SWF hébergé dans un
domaine utilisant un protocole sécurisé (HTTPS), reçoit
une requête pour invoquer une méthode à partir de l’objet
LocalConnection d’envoi qui se trouve dans un fichier
SWF hébergé sur un protocole non sécurisé.
LocalConnection.onStatus
Invoqué après qu’un objet d’envoi LocalConnection ait
essayé d’envoyer une commande à un objet
LocalConnection de réception.
Classe LocalConnection
485
Constructeur de la classe LocalConnection
Disponibilité
Flash Player 6.
Usage
new LocalConnection()
Paramètres
Aucun.
Renvoie
Rien.
Description
Constructeur : crée un objet LocalConnection
Exemple
L’exemple suivant montre comment un fichier SWF d’envoi et de réception crée des objets
LocalConnnection. Notez que les deux fichiers SWF peuvent utiliser le même nom ou des noms
différents pour leurs objets LocalConnection respectifs. Dans cet exemple, ils utilisent le même
nom, ma_lc.
// Code dans le fichier SWF de réception
ma_lc = new LocalConnection();
ma_lc.uneMéthode = function()
// Vos instructions
}
ma_lc.connect("nomDeConnexion");
// Code dans le fichier SWF d’envoi
ma_lc = new LocalConnection();
ma_lc.send("nomDeConnexion", "uneMéthode");
Consultez également
LocalConnection.connect(), LocalConnection.send()
486
Chapitre 12 : Dictionnaire ActionScript
LocalConnection.allowDomain
Disponibilité
Flash Player 6 ; comportement modifié dans Flash Player 7.
Usage
Réception_lc.allowDomain = function([domaineDenvoi]) {
// Vos instructions renvoient true ou false
}
Paramètres
Un paramètre facultatif spécifiant le domaine du fichier SWF contenant l’objet
d’envoi LocalConnection.
domaineDenvoi
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué dès que Réception_lc reçoit une requête pour invoquer une
méthode à partir d’un objet d’envoi LocalConnection. Flash attend le code que vous implémentez
dans ce gestionnaire pour renvoyer une valeur booléenne true ou false. Si le gestionnaire ne
revoie pas true, la requête de l’objet d’envoi est ignorée et la méthode n’est pas invoquée.
Utilisez cette commande pour autoriser explicitement les objets LocalConnection des domaines
spécifiés, ou de tout domaine, à exécuter les méthodes de réception de l’objet LocalConnection. Si
vous ne déclarez pas le paramètre domaineDenvoi, vous aurez probablement à accepter les
commandes de tous les domaines ; le code de votre gestionnaire sera tout simplement return
true. Si vous déclarez domaineDenvoi, vous aurez probablement à comparer la valeur de
domaineDenvoi avec les domaines dont vous voulez accepter les commandes. Les exemples
suivants illustrent ces deux implémentations.
Dans des fichiers exécutés dans Flash Player 6, le paramètre domaineDenvoi contient le superdomaine de l’appelant. Dans des fichiers exécutés dans Flash Player 7 ou ultérieur, le paramètre
domaineDenvoi contient le domaine exact de l’appelant. Dans ce dernier cas, pour autoriser
l’accès par des fichiers SWF hébergés à l’adresse www.domaine.com ou store.domaine.com, vous
devez autoriser explicitement l’accès à partir des deux domaines.
// Pour Flash Player 6
Réception_lc.allowDomain = function(domaineDenvoi) {
return(domaineDenvoi=="domaine.com");
}
// Commandes correspondantes pour autoriser l’accès à partir de fichiers SWF
// exécutés dans Flash Player 7 ou ultérieur
Réception_lc.allowDomain = function(domaineDenvoi) {
return(domaineDenvoi=="www.domaine.com");
domaineDenvoi=="store.domaine.com");
}
De même, pour des fichiers exécutés dans Flash Player 7 ou ultérieur, vous ne pouvez pas utiliser
cette méthode pour autoriser des fichiers SWF hébergés à l’aide d’un protocole sécurisé (HTTPS)
de permettre l’accès à partir de fichiers SWF hébergés par des protocoles non sécurisés ; vous
devez plutôt utiliser le gestionnaire d’événement LocalConnection.allowInsecureDomain.
LocalConnection.allowDomain
487
Exemple
L’exemple suivant montre comment un objet LocalConnection dans un fichier SWF de réception
peut autoriser les fichiers SWF de tout domaine à invoquer ses méthodes. Comparez ceci à
l’exemple de LocalConnection.connect(), dans lequel seuls les fichiers SWF du même
domaine peuvent invoquer la méthode Trace dans le fichier SWF de réception. Pour une
discussion concernant l’utilisation du trait de soulignement (_) dans le nom de connexion,
consultez LocalConnection.send().
var uneConnexionLocale = new LocalConnection();
uneConnexionLocale.Trace = function(uneChaîne)
{
unChampDeTexte = unChampDeTexte + uneChaîne + newline;
}
uneConnexionLocale.allowDomain = function() {
// Tout domaine peut invoquer des méthodes sur cet objet LocalConnection
return true;
}
uneConnexionLocale.connect("_trace");
Dans l’exemple suivant, le fichier SWF de réception n’accepte que les commandes des fichiers
SWF situés dans ceDomaine.fr ou ceDomaineLa.fr.
var uneConnexionLocale = new LocalConnection();
uneConnexionLocale.Trace = function(uneChaîne)
{
unChampDeTexte = unChampDeTexte + uneChaîne + newline;
}
uneConnexionLocale.allowDomain = function(domaineDenvoi)
{
return(domaineDenvoi=="ceDomaine.fr" || domaineDenvoi=="ceDomaineLa.fr");
}
uneConnexionLocale.connect("_trace");
Consultez également
LocalConnection.connect(), LocalConnection.domain(), LocalConnection.send()
488
Chapitre 12 : Dictionnaire ActionScript
LocalConnection.allowInsecureDomain
Disponibilité
Flash Player 7.
Usage
Réception_lc.allowInsecureDomain = function([domaineDenvoi]) {
// Vos instructions renvoient true ou false
}
Paramètres
Un paramètre facultatif spécifiant le domaine du fichier SWF contenant l’objet
d’envoi LocalConnection.
domaineDenvoi
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué si Réception_lc, qui se trouve dans un fichier SWF hébergé
dans un domaine utilisant un protocole sécurisé (HTTPS), reçoit une requête pour invoquer une
méthode à partir de l’objet LocalConnection d’envoi qui se trouve dans un fichier SWF hébergé
sur un protocole non sécurisé. Flash attend le code que vous implémentez dans ce gestionnaire
pour renvoyer une valeur booléenne true ou false. Si le gestionnaire ne revoie pas true, la
requête de l’objet d’envoi est ignorée et la méthode n’est pas invoquée.
Par défaut, les fichiers SWF hébergés utilisant le protocole HTTPS ne sont accessibles que par
d’autres fichiers SWF hébergés utilisant le protocole HTTPS. Cette implémentation garantit
l’intégrité fournie par le protocole HTTPS.
L’utilisation de cette méthode pour remplacer le comportement par défaut n’est pas recommandée
car elle compromet la sécurité HTTPS. Vous pouvez devoir cependant l’utiliser, par exemple, si
vous devez autoriser l’accès à des fichiers HTTPS publiés pour Flash Player 7 ou ultérieur à partir
de fichiers HTTP publiés pour Flash Player 6.
Un fichier SWF publié pour Flash Player 6 peut utiliser le gestionnaire d’événement
LocalConnection.allowDomain pour autoriser un accès HTTP à HTTPS. Cependant, étant
donné que la sécurité est implémentée différemment dans Flash Player 7, vous devez utiliser la
méthode LocalConnection.allowInsecureDomain() pour autoriser un tel accès dans des
fichiers SWF publiés pour Flash Player 7 ou ultérieur.
Consultez également
LocalConnection.allowDomain, LocalConnection.connect()
LocalConnection.allowInsecureDomain
489
LocalConnection.close()
Disponibilité
Flash Player 6.
Usage
Réception_lc.close
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : ferme (déconnecte) un objet LocalConnection. Emettez cette commande lorsque vous
ne voulez plus que l’objet accepte les commandes, par exemple, lorsque vous souhaitez émettre
une commande LocalConnection.connect() à l’aide du même paramètre nomDeConnexion
dans un autre fichier SWF.
Consultez également
LocalConnection.connect()
490
Chapitre 12 : Dictionnaire ActionScript
LocalConnection.connect()
Disponibilité
Flash Player 6.
Usage
Réception_lc.connect(nomDeConnexion)
Paramètres
nomDeConnexion Une chaîne
LocalConnection.send() qui
qui correspond au nom de connexion spécifié dans la commande
veut communiquer avec Réception_lc.
Renvoie
La valeur booléenne est true si aucun autre traitement en cours sur la même machine client n’a
déjà émis cette commande à l’aide de la même valeur pour le paramètre nomDeConnexion ; dans le
cas contraire, la valeur est false.
Description
Méthode : prépare un objet LocalConnection pour recevoir les commandes à partir d’une
commande LocalConnection.send() (nommée « objet d’envoi LocalConnection »). L’objet
utilisé avec cette commande est nommé « objet de réception LocalConnection ». Les objets de
réception et d’envoi doivent être exécutés sur la même machine client.
Assurez-vous de définir les méthodes liées à Réception_lc avant d’appeler cette méthode,
comme indiqué dans les exemples de cette section.
Par défaut, Flash Player résout nomDeConnexion en une valeur "superdomaine:nomDeConnexion", où super-domaine est le super-domaine du fichier SWF contenant
la commande LocalConnection.connect(). Par exemple, si le fichier SWF contenant l’objet de
réception LocalConnection est situé dans www.Domaine.com, nomDeConnexion indique
"unDomain.com:nomDeConnexion". (Si un fichier SWF est situé sur l’ordinateur client, la valeur
affectée à super-domaine est "localhost".)
Par défaut également, Flash Player permet à l’objet de réception LocalConnection d’accepter
uniquement les commandes des objets d’envoi LocalConnection dont le nom de connexion
indique également une valeur "super-domaine:nomDeConnexion". Ainsi, Flash facilite la
communication entre les fichiers SWF situés dans le même domaine.
Si vous implémentez une communication seulement entre les fichiers SWF du même domaine,
spécifiez une chaîne pour nomDeConnexion qui ne commence pas par un trait de soulignement
(_) et qui n’indique aucun nom de domaine (par exemple "monDomaine:nomDeConnexion").
Utilisez la même chaîne dans la commande LocalConnection.connect(nomDeConnexion).
Si vous implémentez une communication entre des fichiers SWF situés dans différents domaines,
consultez la section relative à nomDeConnexion dans LocalConnection.send() et les entrées
LocalConnection.allowDomain et LocalConnection.domain().
LocalConnection.connect()
491
Exemple
L’exemple suivant illustre comment un fichier SWF situé dans un domaine particulier peut
invoquer une méthode nommée Trace dans un fichier SWF de réception du même domaine. La
réception d’un fichier SWF fonctionne comme une fenêtre trace pour le fichier SWF d’envoi ; elle
contient deux méthodes que les autres fichiers SWF peuvent appeler Trace et Clear. Les boutons
enfoncés dans les fichiers SWF d’envoi appellent ces méthodes avec les paramètres spécifiés.
// Fichier SWF de réception
var uneConnexionLocale = new LocalConnection();
uneConnexionLocale.Trace = function(uneChaîne)
{
unChampDeTexte = unChampDeTexte + uneChaîne + newline;
}
uneConnexionLocale.allowDomain = function() {
{
unChampDeTexte = "";
}
uneConnexionLocale.connect("trace");
stop();
Le fichier SWF 1 contient le code suivant lié à un bouton étiqueté AppuyezIci. Lorsque vous
appuyez sur le bouton, vous voyez apparaître la phrase « Le bouton a été enfoncé » dans le fichier
SWF de réception.
on (press)
{
var cl = new LocalConnection();
cl.send("trace", "Trace", "Le bouton a été enfoncé.");
delete cl;
}
Le fichier SWF 2 contient un champ de texte de saisie avec un nom de variable monTexte et le
code suivant associé à un bouton nommé Copier. Lorsque vous tapez du texte puis enfoncez le
bouton, vous voyez le texte tapé apparaître dans le fichier SWF de réception.
on (press)
{
_parent.lc.send("trace", "Trace", _parent.monTexte);
_parent.monTexte = "";
}
Le fichier SWF 3 contient le code suivant lié à un bouton étiqueté Clear. Lorsque vous enfoncez
le bouton, le contenu de la fenêtre trace dans le fichier SWF de réception est effacé.
on (press)
{
var cl = new LocalConnection();
cl.send("trace", "Clear");
delete cl;
}
Consultez également
LocalConnection.send()
492
Chapitre 12 : Dictionnaire ActionScript
LocalConnection.domain()
Disponibilité
Flash Player 6 ; comportement modifié dans Flash Player 7.
Usage
ma_lc.domain()
Paramètres
Aucun.
Renvoie
Une chaîne représentant le domaine de l’emplacement du fichier SWF actuel ; pour plus de
détails, consultez la description ci-dessous.
Description
Méthode : renvoie une chaîne représentant le domaine de l’emplacement du fichier SWF actuel.
Dans des fichiers SWF publiés pour Flash Player 6, la chaîne renvoyée est le super-domaine du
fichier SWF actuel. Par exemple, si le fichier SWF est situé sur www.macromedia.com, cette
commande renvoie macromedia.com.
Dans des fichiers SWF publiés pour Flash Player 7 ou ultérieur, la chaîne renvoyée est le domaine
exact du fichier SWF actuel. Par exemple, si le fichier SWF est situé sur www.macromedia.com,
cette commande renvoie "www.macromedia.com".
Si le fichier SWF actuel est un fichier local résidant sur l’ordinateur client, cette commande
renvoie "localhost".
La façon la plus courante d’utiliser cette commande est d’inclure le nom de domaine de l’objet
d’envoi LocalConnection comme paramètre dans la méthode que vous envisagez d’invoquer dans
l’objet de réception LocalConnection, ou conjointement avec LocalConnection.allowDomain
pour accepter les commandes d’un domaine spécifique. Si vous activez la communication
seulement entre des objets LocalConnection situés dans un même domaine, vous n’aurez
probablement pas besoin d’utiliser cette commande.
Exemple
Dans l’exemple suivant, un fichier SWF de réception accepte uniquement les commandes des
fichiers SWF situés dans le même domaine ou sur macromedia.com.
ma_lc = new LocalConnection();
ma_lc.allowDomain = function(domaineDenvoi)
{
return (domaineDenvoi==this.domain() || domaineDenvoi=="macromedia.com");
}
Dans l’exemple suivant, un fichier SWF d’envoi situé dans votreDomaine.com invoque une
méthode dans un fichier SWF de réception situé sur monDomaine.com. Le fichier SWF d’envoi
inclut son nom de domaine en tant que paramètre dans la méthode qu’il invoque, de sorte que le
fichier SWF de réception puisse renvoyer une valeur à un objet LocalConnection dans le domaine
correct. Le fichier SWF d’envoi spécifie également qu’il n’accepte que les commandes des fichiers
SWF de monDomaine.com.
LocalConnection.domain()
493
Les numéros de ligne sont inclus pour référence. La séquence des événements est la suivante :
• Le fichier de réception se prépare à recevoir les commandes sur une connexion nommée
"somme" (ligne 11). Flash Player correspond au nom de cette connexion
"monDomaine.com:somme" (consultez LocalConnection.connect()).
à
• Le fichier SWF d’envoi se prépare à recevoir une réponse sur l’objet LocalConnection nommé
•
•
"résultat" (ligne 58). Il indique également qu’il n’accepte que les commandes des fichiers
SWF de monDomaine.com (lignes 51 à 53).
Le fichier SWF d’envoi invoque la méthode uneSomme d’une connexion nommée
"monDomaine.com:somme" (ligne 59) et transmet les paramètres suivants : son domaine
(lc.domain()), le nom de la connexion qui doit recevoir la réponse ("résultat") et les
valeurs à utiliser par uneSomme (123 et 456).
La méthode uneSomme (ligne 6) est invoquée avec les valeurs suivantes : sender =
"monDomaine.com:résultat", replyMethod = "unRésultat", n1 = 123 et n2 = 456. Elle
exécute donc la ligne de code suivante :
this.send("monDomaine.com:résultat", "unRésultat", (123 + 456));
• La méthode unRésultat (ligne 54) affiche la valeur renvoyée par uneSomme (579).
// Le fichier SWF de réception sur http://www.monDomaine.com/répertoire/
animation.swf
// contient le code suivant
1
2
3
4
5
6
7
8
9
10
11
var uneConnexionLocale = new LocalConnection();
uneConnexionLocale.allowDomain = function()
{
// Autoriser les connexions de tous les domaines
return true;
}
uneConnexionLocale.uneSomme = function(sender, replyMethod, n1, n2)
{
this.send(sender, replyMethod, (n1 + n2));
}
uneConnexionLocale.connect("somme");
// Le fichier SWF d’envoi sur http://www.votreDomaine.com/répertoire/
animation.swf
// contient le code suivant
50
51
52
53
54
55
56
57
58
59
var cl = new LocalConnection();
cl.allowDomain = function(unDomaine) {
// N’autoriser que les connexions à partir de monDomaine.com
return (unDomaine == "monDomaine.com");
}
cl.unRésultat = function(unParam) {
trace("La somme est" + unParam);
}
cl.connect("résultat");
cl.send("monDomaine.com:somme", "uneSomme", cl.domain() + ':' +
"résultat",
"unRésultat", 123, 456);
Consultez également
LocalConnection.allowDomain
494
Chapitre 12 : Dictionnaire ActionScript
LocalConnection.onStatus
Disponibilité
Flash Player 6.
Usage
Envoi_lc.onStatus = function(objetInfo) {
// vos instructions
}
Paramètres
objetInfo Un paramètre défini selon le message d’état. Pour plus de détails concernant ce
paramètre, consultez la description ci-dessous.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué après qu’un objet d’envoi LocalConnection a essayé
d’envoyer une commande à un objet de réception LocalConnection. Si vous souhaitez répondre à
ce gestionnaire d’événement, vous devez créer une fonction afin de traiter l’objet
LocalConnection.
Si l’objet d’information renvoyé par ce gestionnaire d’événement contient une valeur level
"Etat", Flash parvient à envoyer la commande à un objet de réception LocalConnection. Cela ne
signifie pas que Flash parvient à invoquer la méthode spécifiée de l’objet de réception
LocalConnection, mais simplement qu’il a envoyé la commande. Par exemple, la méthode n’est
pas invoquée si l’objet de réception LocalConnection ne permet pas les connexions à partir du
domaine d’envoi ou si la méthode n’existe pas. La seule façon de s’assurer que la méthode a bien
été invoquée est de faire en sorte que l’objet de réception envoie une réponse à l’objet d’envoi.
Si l’objet d’information renvoyé par ce gestionnaire contient une valeur level "Error", cela
signifie que Flash n’a pas pu envoyer la commande à un objet de réception LocalConnection, sans
doute parce qu’il n’existe pas d’objet de réception LocalConnection connecté dont le nom spécifié
corresponde au nom spécifié dans la commande Envoi_lc.send() qui a invoqué ce gestionnaire.
Outre ce gestionnaire onStatus, Flash propose également une « super » fonction appelée
System.onStatus. Si onStatus est invoqué pour un objet particulier et qu’aucune fonction n’est
affectée pour lui répondre, Flash traite une fonction affectée à System.onStatus s’il en existe
une.
Dans la plupart des cas, vous n’aurez à implémenter ce gestionnaire que pour répondre aux
conditions d’erreur, comme indiqué dans l’exemple suivant.
LocalConnection.onStatus
495
Exemple
L’exemple suivant affiche les informations concernant une connexion ayant échoué dans le
panneau de sortie :
Envoi_lc = new LocalConnection();
Envoi_lc.onStatus = function(objetInfo)
{
if (objetInfo.level == "Erreur")
{
trace("La connexion a échoué.");
}
}
Envoi_lc.send("Réception_lc", "nomDeMéthode");
Consultez également
LocalConnection.send(), System.onStatus
496
Chapitre 12 : Dictionnaire ActionScript
LocalConnection.send()
Disponibilité
Flash Player 6.
Usage
Envoi_lc.send (nomDeConnexion, méthode [, p1,...,pN])
Paramètres
nomDeConnexion Une chaîne qui correspond au nom de connexion spécifié
LocalConnection.connect() qui veut communiquer avec Envoi_lc.
dans la commande
Une chaîne spécifiant le nom d’une méthode à invoquer dans l’objet de réception
LocalConnection. Les noms de méthode suivants provoquent l’échec de la commande : send,
connect, close, domain, onStatus et allowDomain.
méthode
p1,...pN
paramètres facultatifs devant être transmis à la méthode spécifiée.
Renvoie
Une valeur booléenne true si Flash peut effectuer la requête : sinon, la valeur est false.
Remarque : Une valeur renvoyée true ne signifie pas nécessairement que Flash a réussi à se
connecter à un objet de réception LocalConnection, mais simplement que la syntaxe de la
commande est correcte. Pour déterminer si la connexion a réussi, consultez
LocalConnection.onStatus.
Description
Méthode : invoque la méthode nommée méthode sur une connexion ouverte avec la commande
LocalConnection.connect(nomDeConnexion) (appelée « objet de réception
LocalConnection »). L’objet utilisé avec cette commande est nommé « objet d’envoi
LocalConnection ». Les fichiers SWF contenant les objets d’envoi et de réception doivent être
exécutés sur le même ordinateur client.
Il existe une limite en terme de quantité de données transmissibles en tant que paramètres à cette
commande. Si la commande renvoie false mais que votre syntaxe est correcte, essayez de séparer
les requêtes LocalConnection.send() en plusieurs commandes.
Comme discuté dans l’entrée LocalConnection.connect(), Flash ajoute le super-domaine
actuel à nomDeConnexion par défaut. Si vous implémentez une communication entre différents
domaines, vous devez définir nomDeConnexion dans les objets d’envoi et de réception
LocalConnection, de telle sorte que Flash n’ajoute pas le super-domaine actuel à
nomDeConnexion. Il existe deux façons de faire :
• Utilisez un trait de soulignement (_) au début de la chaîne nomDeConnexion des objets d’envoi
•
et de réception LocalConnection. Dans le fichier SWF contenant l’objet de réception, utilisez
LocalConnection.allowDomain pour indiquer que les connexions à partir de tous les
domaines sont acceptées. Cette implémentation vous permet de stocker vos fichiers SWF
d’envoi et de réception dans tous les domaines.
Incluez le super-domaine dans le nomDeConnexion de l’objet d’envoi LocalConnection, par
exemple monDomaine.com:monNomDeConnexion. Dans l’objet de réception, utilisez
LocalConnection.allowDomain pour indiquer que les connexions à partir du super-domaine
spécifié seront acceptées (dans ce cas, monDomaine.com) ou que les connexions à partir de
tous les domaines seront acceptées.
LocalConnection.send()
497
Remarque : Il n’est pas possible de spécifier un super-domaine dans la chaîne nom de connexion de
l’objet de réception LocalConnection. Vous ne pouvez le faire que dans l’objet d’envoi
LocalConnection.
Exemple
Pour un exemple de communication entre des objets LocalConnection situés dans le même
domaine, consultez LocalConnection.connect(). Pour un exemple de communication entre
des objets LocalConnection situés dans tous les domaines, consultez
LocalConnection.allowDomain. Pour un exemple de communication entre des objets
LocalConnection situés dans des domaines spécifiés, consultez LocalConnection.allowDomain
et LocalConnection.domain().
Consultez également
LocalConnection.allowDomain, LocalConnection.connect(),
LocalConnection.domain(), LocalConnection.onStatus
lt (inférieur à — spécifique aux chaînes)
Disponibilité
Flash Player 4. Cet opérateur est déconseillé dans Flash 5 et remplacé par le nouvel opérateur
<(inférieur à).
Usage
expression1 lt expression2
Paramètres
expression1, expression2
Nombres, chaînes ou variables.
Description
Opérateur (comparaison) : compare expression1 avec expression2 et renvoie true si
expression1 est inférieure à expression2 ; sinon, renvoie false.
Consultez également
<(inférieur à)
498
Chapitre 12 : Dictionnaire ActionScript
Classe Math
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Description
La classe Math est une classe de premier niveau dont les méthodes et les propriétés sont utilisables
sans constructeur.
Utilisez les méthodes et les propriétés de cette classe pour accéder aux constantes et aux fonctions
mathématiques et pour les manipuler. Toutes les propriétés et méthodes de la classe Math sont
statiques et doivent être appelées en utilisant la syntaxe Math.méthode(paramètre) ou
Math.constante. Dans ActionScript, les constantes sont définies avec le maximum de précision
des nombres à virgule flottante double précision IEEE-754.
Plusieurs méthodes de la classe Math utilisent le radian d’un angle comme paramètre. Vous
pouvez utiliser l’équation ci-dessous pour calculer les valeurs en radians, ou simplement
transmettre l’équation (en entrant une valeur pour les degrés) pour le paramètre de radian.
Pour calculer une valeur en radians, utilisez cette formule :
radian = Math.PI/180 * degree
L’exemple suivant illustre la transmission de l’équation comme paramètre pour calculer le sinus
d’un angle de 45 degrés :
Math.SIN(Math.PI/180 * 45)
est identique à Math.SIN(.7854)
La classe Math est totalement prise en charge par Flash Player 5. Dans Flash Player 4, les
méthodes de la classe Math fonctionnent, mais sont émulées à l’aide d’approximations et peuvent
ne pas être aussi précises que les fonctions mathématiques non émulées prises en charge par Flash
Player 5.
Méthodes de la classe Math
Méthode
Description
Math.abs()
Calcule une valeur absolue.
Math.acos
Calcule le cosinus d’un arc.
Math.asin()
Calcule le sinus d’un arc.
Math.atan()
Calcule la tangente d’un arc.
Math.atan2()
Calcule un angle depuis l’axe des x jusqu’au point.
Math.ceil()
Arrondit un nombre à l’entier supérieur le plus proche.
Math.cos
Calcule un cosinus.
Math.exp
Calcule une valeur exponentielle.
Math.floor
Arrondit un nombre à l’entier inférieur le plus proche.
Math.log()
Calcule un logarithme naturel.
Classe Math
499
Méthode
Description
Math.max()
Renvoie le plus grand des deux entiers.
Math.min()
Renvoie le plus petit des deux entiers.
Math.pow()
Calcule x élevé à la puissance y.
Math.random()
Renvoie un nombre pseudo-aléatoire entre 0,0 et 1,0.
Math.round()
Arrondit à l’entier le plus proche.
Math.sin()
Calcule un sinus.
Math.sqrt()
Calcule une racine carrée.
Math.tan()
Calcule une tangente.
Propriétés de la classe Math
Toutes les propriétés de la classe Math sont des constantes.
500
Propriété
Description
Math.E
Constante d’Euler et base des logarithmes naturels (approximativement 2,718).
Math.LN2
Le logarithme naturel de 2 (approximativement 0,693).
Math.LOG2E
Le logarithme de base 2 de e (approximativement 1,442).
Math.LN2
Le logarithme naturel de 10 (approximativement 2,302).
Math.LOG10E
Le logarithme de base 10 de e (approximativement 0,434).
Math.PI
Le rapport de la circonférence d’un cercle à son diamètre (approximativement
3,14159).
Math.SQRT1_2
La réciproque de la racine carrée de 1/2 (approximativement 0,707).
Math.SQRT2
La racine carrée de 2 (approximativement 1,414).
Chapitre 12 : Dictionnaire ActionScript
Math.abs()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.abs(x)
Paramètres
x
Un nombre.
Renvoie
Nombre.
Description
Méthode : calcule et renvoie une valeur absolue pour le nombre spécifié par le paramètre x.
Math.acos
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.acos(x)
Paramètres
x
Un nombre entre -1,0 et 1,0.
Renvoie
Rien.
Description
Méthode : calcule et renvoie le cosinus de l’arc du nombre spécifié par le paramètre x, en radians.
Math.acos
501
Math.asin()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.asin(x);
Paramètres
x
Un nombre entre -1,0 et 1,0.
Renvoie
Nombre.
Description
Méthode : calcule et renvoie le sinus de l’arc du nombre spécifié par le paramètre x, en radians.
Math.atan()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.atan(x)
Paramètres
x
Un nombre représentant la tangente d’un angle.
Renvoie
Nombre.
Description
Méthode : calcule et renvoie la valeur, en radians, de l’angle dont la tangente est spécifiée dans le
paramètre x. La valeur renvoyée se situe entre pi négatif divisé par 2 et pi positif divisé par 2.
Consultez également
Math.atan2(), Math.tan()
502
Chapitre 12 : Dictionnaire ActionScript
Math.atan2()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.atan2(y, x)
Paramètres
y
Un nombre spécifiant la coordonnée y du point.
x
Un nombre spécifiant la coordonnée x du point.
Renvoie
Nombre.
Description
Méthode : calcule et renvoie l’angle du point y/x en radians, mesuré à partir de l’axe des x d’un
cercle dans le sens inverse des aiguilles d’une montre (0,0 représentant le centre du cercle). La
valeur renvoyée se situe entre pi positif et pi négatif.
Consultez également
Math.atan(), Math.tan()
Math.ceil()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.ceil(x)
Paramètres
x
Un nombre ou expression.
Renvoie
Nombre.
Description
Méthode : renvoie le plafond du nombre ou de l’expression spécifiés. Le plafond d’un nombre est
l’entier le plus proche supérieur ou égal à ce nombre.
Math.ceil()
503
Math.cos
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.cos(x)
Paramètres
x
Un angle mesuré en radians.
Renvoie
Nombre.
Description
Méthode : renvoie le cosinus (une valeur entre -1.0 et 1.0) de l’angle spécifié par le paramètre x.
L’angle x doit être spécifié en radians. Utilisez les informations surlignées dans l’entrée Classe
Math afin de calculer un radian.
Math.E
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.E
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour la base des logarithmes naturels, exprimée sous la
forme e. La valeur approximative de e est 2.71828.
504
Chapitre 12 : Dictionnaire ActionScript
Math.exp
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.exp(x)
Paramètres
x
L’exposant : un nombre ou une expression.
Renvoie
Nombre.
Description
Méthode : renvoie la valeur de la base du logarithme naturel (e), à la puissance de l’exposant
spécifié dans le paramètre x. La constante Math.E peut fournir la valeur de e.
Math.floor
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.floor(x)
Paramètres
x
Un nombre ou expression.
Renvoie
Nombre.
Description
Méthode : renvoie le plancher du nombre ou de l’expression spécifiés dans le paramètre x. Le
plancher est l’entier le plus proche inférieur ou égal au nombre ou à l’expression spécifiés.
Exemple
Le code suivant renvoie une valeur de 12 :
Math.floor(12.5);
Math.floor
505
Math.log()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.log(x)
Paramètres
x
Un nombre ou une expression avec une valeur supérieure à 0.
Renvoie
Nombre.
Description
Méthode : renvoie le logarithme du paramètre x.
Math.LN2
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.LN2
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour le logarithme naturel de 2, exprimée sous la forme
loge2, avec une valeur approximative de 0.69314718055994528623.
506
Chapitre 12 : Dictionnaire ActionScript
Math.LN10
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.LN10
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour le logarithme naturel de 10, exprimée sous la
forme loge10, avec une valeur approximative de 2.3025850929940459011.
Math.LOG2E
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.LOG2E
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour le logarithme de base 2 de la constante e (Math.E),
exprimée sous la forme log2e, avec une valeur approximative de 1.442695040888963387.
Math.LOG2E
507
Math.LOG10E
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.LOG10E
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour le logarithme de base 10 de la constante e
(Math.E), exprimée sous la forme log10e, avec une valeur approximative de
0.43429448190325181667.
Math.max()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.max(x , y)
Paramètres
x
Un nombre ou expression.
y
Un nombre ou une expression.
Renvoie
Nombre.
Description
Méthode : évalue x et y et renvoie la valeur la plus grande.
508
Chapitre 12 : Dictionnaire ActionScript
Math.min()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.min(x , y)
Paramètres
x
Un nombre ou expression.
y
Un nombre ou une expression.
Renvoie
Nombre.
Description
Méthode : évalue x et y et renvoie la valeur la plus petite.
Math.PI
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.PI
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour le rapport de la circonférence d’un cercle à son
diamètre, exprimée sous la forme pi, avec une valeur de 3.14159265358979.
Math.PI
509
Math.pow()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.pow(x , y)
Paramètres
x
Un nombre à élever à une puissance.
y
Un nombre spécifiant la puissance à laquelle le paramètre x est élevé.
Renvoie
Nombre.
Description
Méthode : calcule et renvoie x à la puissance de y: xy.
Math.random()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.random()
Paramètres
Aucun.
Renvoie
Nombre.
Description
Méthode : renvoie n, où 0 <= n < 1.
Consultez également
random
510
Chapitre 12 : Dictionnaire ActionScript
Math.round()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.round(x)
Paramètres
x
Un nombre.
Renvoie
Nombre.
Description
Méthode : arrondit la valeur du paramètre x à l’entier inférieur ou supérieur le plus proche et
renvoie la valeur.
Math.sin()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.sin(x)
Paramètres
x
Un angle mesuré en radians.
Renvoie
Nombre : le sinus de l’angle spécifié (entre -1,0 et 1,0).
Description
Méthode : calcule et renvoie le sinus de l’angle spécifié, en radians. Utilisez les informations
surlignées dans l’entrée Classe Math afin de calculer un radian.
Math.sin()
511
Math.sqrt()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.sqrt(x)
Paramètres
x
Un nombre ou une expression supérieur ou égal à 0.
Renvoie
Nombre.
Description
Méthode : calcule et renvoie la racine carrée du nombre spécifié.
Math.SQRT1_2
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.SQRT1_2
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour la racine carrée d’un demi.
512
Chapitre 12 : Dictionnaire ActionScript
Math.SQRT2
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.SQRT2
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une constante mathématique pour la racine carrée de 2, avec une valeur
approximative de 1.414213562373.
Math.tan()
Disponibilité
Flash Player 5. Dans Flash Player 4, les méthodes et les propriétés de la classe Math sont émulées
à l’aide d’approximations et peuvent ne pas être aussi précises que les fonctions mathématiques
non émulées prises en charge par Flash Player 5.
Usage
Math.tan(x)
Paramètres
x
Un angle mesuré en radians.
Renvoie
Nombre.
Description
Méthode : calcule et renvoie la tangente de l’angle spécifié. Pour calculer un radian, utilisez les
informations indiquées dans l’introduction de Classe Math.
Consultez également
Math.atan()
Math.tan()
513
maxscroll
Disponibilité
Flash Player 4. Cette fonction est déconseillée et remplacée par la propriété
TextField.maxscroll.
Usage
nomDeVariable.maxscroll
Description
Propriété (lecture seule) : une propriété déconseillée qui indique le numéro de ligne de la première
ligne de texte visible dans un champ de texte lorsque la dernière ligne du champ est également
visible. La propriété maxscroll fonctionne avec la propriété scroll pour contrôler l’affichage
des informations dans un champ de texte. Cette propriété peut être récupérée mais pas modifiée.
Consultez également
TextField.maxscroll, TextField.scroll
mbchr
Disponibilité
Flash Player 4. Cette fonction est déconseillée et remplacée par la méthode
String.fromCharCode().
Usage
mbchr(nombre)
Paramètres
nombre
Le nombre à convertir en caractère multioctet.
Renvoie
Une chaîne.
Description
Fonction de chaîne : convertit un code ASCII en caractère multioctet.
Consultez également
String.fromCharCode()
514
Chapitre 12 : Dictionnaire ActionScript
mblength
Disponibilité
Flash Player 4. Cette fonction est déconseillée et remplacée par Classe String.
Usage
mblength(chaîne)
Paramètres
chaîne
Une chaîne.
Renvoie
Nombre.
Description
Fonction de chaîne : renvoie la longueur de la chaîne de caractères multioctet.
mbord
Disponibilité
Flash Player 4. Cette fonction est déconseillée dans Flash 5 ; utilisez plutôt String.charCodeAt.
Usage
mbord(caractère)
Paramètres
caractère
Le caractère à convertir en nombre multioctet.
Renvoie
Nombre.
Description
Fonction de chaîne : convertit le caractère spécifié en nombre multioctet.
Consultez également
String.fromCharCode()
mbord
515
mbsubstring
Disponibilité
Flash Player 4. Cette fonction est déconseillée dans Flash 5 ; utilisez plutôt String.substr.
Usage
mbsubstring(valeur, index, nombre)
Paramètres
La chaîne multioctet de laquelle extraire une nouvelle chaîne multioctet.
valeur
index
Le numéro du premier caractère à extraire.
nombre
Le nombre de caractères à inclure dans la chaîne extraite, en excluant le caractère
d’index.
Renvoie
Une chaîne.
Description
Fonction de chaîne : extrait une nouvelle chaîne de caractères multioctet d’une chaîne de
caractères multioctet.
Consultez également
String.substr
Classe Microphone
Disponibilité
Flash Player 6.
Description
La classe Microphone permet de capturer du son à partir d’un microphone connecté à
l’ordinateur sur lequel Flash Player est exécuté.
La classe Microphone est essentiellement destinée à être utilisée avec Flash Communication
Server, mais vous pouvez l’utiliser de façon restreinte sans le serveur, par exemple, pour
transmettre du son à partir du microphone vers les haut-parleurs de votre système local.
Pour créer ou référencer un objet Microphone, utilisez la méthode Microphone.get().
516
Chapitre 12 : Dictionnaire ActionScript
Méthodes de la classe Microphone
Méthode
Description
Microphone.get()
Renvoie un objet Microphone par défaut ou spécifié, ou
null si le microphone n’est pas disponible.
Microphone.setGain()
Spécifie le niveau d’amplification que le microphone doit
appliquer au signal.
Microphone.setRate()
Spécifie le taux d’échantillonnage auquel le microphone
doit capturer le son, en kHz.
Microphone.setSilenceLevel()
Spécifie le niveau sonore requis pour activer le microphone.
Microphone.setUseEchoSuppression() Spécifie l’utilisation ou non de la fonction de suppression de
l’écho du codec audio.
Propriétés de la classe Microphone
Propriété (lecture seule)
Description
Microphone.activityLevel
Quantité de son détectée par le microphone.
Microphone.gain
Niveau d’amplification que le microphone applique au signal
avant de le transmettre.
Microphone.index
Index du microphone actuel.
Microphone.muted
Valeur booléenne indiquant si l’utilisateur dispose de l’accès
autorisé ou refusé au microphone.
Microphone.name
Nom du périphérique de capture du son, tel que renvoyé par
le périphérique de capture du son.
Microphone.names
Propriété de classe : tableau de chaînes contenant les noms
de l’ensemble des périphériques de capture du son
disponibles, y compris les cartes son et les microphones.
Microphone.rate
Taux d’échantillonnage du son, en kHz.
Microphone.silenceLevel()
Niveau sonore requis pour activer le microphone.
Microphone.silenceTimeout()
Nombre de millisecondes entre le moment où le
microphone cesse de détecter du son et le moment où
Microphone.onActivity(false) est appelé.
Microphone.useEchoSuppression()
Valeur booléenne spécifiant si la fonction de suppression
de l’écho est utilisée.
Classe Microphone
517
Gestionnaires d’événement de la classe Microphone
Gestionnaire d’événement
Description
Microphone.onActivity
Invoqué lorsque le microphone commence ou arrête de
détecter du son.
Microphone.onStatus
Invoqué lorsque l’utilisateur autorise ou refuse l’accès au
microphone.
Constructeur de la classe Microphone
Pour plus d’informations, consultez Microphone.get().
Microphone.activityLevel
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.activityLevel
Description
Propriété (lecture seule) : valeur numérique spécifiant le niveau sonore détecté par le microphone.
Cette valeur est comprise entre 0 (aucun son n’est détecté) et 100 (les sons très puissants sont
détectés). La valeur de cette propriété peut vous aider à déterminer la valeur à transmettre à la
méthode Microphone.setSilenceLevel().
Si le microphone est disponible mais qu’il n’est pas encore utilisé car Microphone.get() n’a pas
encore été appelé, cette propriété est définie sur -1.
Exemple
L’exemple suivant définit la variable niveau sur le niveau d’activité du microphone actuel,
monMic.activityLevel.
var niveau = monMic.activityLevel;
Consultez également
Microphone.setGain()
518
Chapitre 12 : Dictionnaire ActionScript
Microphone.gain
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.gain
Description
Propriété (lecture seule) : le niveau d’amplification que le microphone applique au signal. Les
valeurs valides sont comprises entre 0 et 100. La valeur par défaut est 50.
Exemple
L’exemple suivant est associé au curseur d’une barre de réglage. Lorsque le clip est chargé, Flash
recherche la valeur de monMic.gain et utilise une valeur par défaut si elle n’est pas définie. La
position _x sert ensuite à définir le gain du microphone selon les préférences de l’utilisateur.
onClipEvent(load) {
if (_root.monMic.gain == undefined) {
_root.monMic.setGain = 75;
}
this._x = _root.monMic.gain;
_root.txt_micgain = this._x;
left = this._x;
right = left+50;
top = this._y;
bottom = top;
}
on(press) {
startDrag(this, false, gauche, haut, droit, bas);
this._xscale = 100;
this._yscale = 100;
}
on (release, releaseOutside) {
stopDrag();
g = (this._x-50)*2;
_root.monMic.setGain(g);
_root.txt_micgain = g;
this._xscale = 100;
this._yscale = 100;
}
Consultez également
Microphone.setGain()
Microphone.gain
519
Microphone.get()
Disponibilité
Flash Player 6.
Usage
Microphone.get([index])
Remarque : La syntaxe correcte est Microphone.get(). Pour affecter l’objet Microphone à une
variable, utilisez une syntaxe de type active_mic=Microphone.get().
Paramètres
index Un entier de base rézo facultatif qui spécifie le microphone à récupérer, comme l’indique
le tableau contenu par Microphone.names. Pour récupérer le microphone par défaut (ce qui est
recommandé pour la plupart des applications), omettez ce paramètre.
Renvoie
• Si index n’est pas spécifié, la méthode renvoie une référence au microphone par défaut ou, s’il
•
n’est pas disponible, au premier microphone disponible. Si aucun microphone n’est disponible
ou installé, la méthode renvoie null.
Si index n’est pas spécifié, la méthode renvoie une référence au microphone demandé ou null
s’il n’est pas disponible.
Description
Méthode : renvoie une référence à l’objet Microphone afin de capturer du son. Pour réellement
commencer à capturer du son, vous devez associer l’objet Microphone à un objet MovieClip
(consultez MovieClip.attachAudio()).
Contrairement aux objets créés à l’aide du constructeur new, les appels multiples à
Microphone.get() font toujours référence au même microphone. Si le script contient les lignes
mic1=Microphone.get() et mic2=Microphone.get(), mic1 et mic2 font toujours référence au
même microphone (par défaut).
En général, il n’est pas nécessaire de transmettre la valeur à index ; il suffit d’utiliser la méthode
Microphone.get() pour renvoyer une référence au microphone par défaut. L’utilisateur peut
indiquer le microphone à utiliser par défaut dans le panneau Microphone des paramètres Flash
Player (décrit plus loin dans cette section). Si vous transmettez une valeur à index, vous risquez
de faire référence à un microphone différent de celui que l’utilisateur préfère. La valeur index
peut servir dans quelques cas assez rares, par exemple, si votre application capture du son à partir
de deux microphones à la fois.
520
Chapitre 12 : Dictionnaire ActionScript
Lorsqu’un fichier SWF tente d’accéder au microphone renvoyé par la méthode
Microphone.get() (par exemple, lorsque vous utilisez MovieClip.attachAudio()), Flash
Player affiche le panneau de contrôle de l’accès permettant à l’utilisateur d’autoriser ou de refuser
l’accès au microphone. (Vérifiez que la scène mesure au moins 215 x 138 pixels ; c’est la taille
minimale requise par Flash pour afficher la boîte de dialogue.)
Lorsque l’utilisateur répond à cette boîte de dialogue, le gestionnaire d’événement
Microphone.onStatus renvoie un objet information indiquant la réponse. Pour savoir si
l’utilisateur a autorisé ou refusé l’accès à la camera sans traiter le gestionnaire d’événement, utilisez
Microphone.muted.
Pour spécifier des paramètres de contrôle de l’accès permanents pour un domaine particulier,
l’utilisateur peut également cliquer avec le bouton droit de la souris (Windows) ou en appuyant
sur la touche Contrôle (Macintosh) pendant la lecture d’un fichier SWF, puis choisir Paramètres,
ouvrir le panneau de contrôle de l’accès et sélectionner Mémoriser.
Si Microphone.get() renvoie null, le microphone est utilisé par une autre application ou aucun
microphone n’est installé sur le système. Pour savoir si des microphones sont installés, utilisez
Microphones.names.length. Pour afficher le panneau Microphone des paramètres Flash Player,
qui permet à l’utilisateur de choisir le microphone référencé par Microphone.get(), utilisez
System.showSettings(2).
Exemple
L’exemple suivant permet à l’utilisateur de spécifier le microphone par défaut, de capturer du son
et de le restitue localement. Pour éviter le retour, vous pouvez tester ce code en portant un casque.
System.showSettings(2);
monMic = Microphone.get();
_root.attachAudio(monMic);
Microphone.get()
521
Consultez également
Microphone.index, Microphone.muted, Microphone.names, Microphone.onStatus,
MovieClip.attachAudio()
Microphone.index
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.index
Description
Propriété (lecture seule) : un entier basé sur zéro spécifiant l’index du microphone, tel que dans le
tableau renvoyé par Microphone.names.
Consultez également
Microphone.get(), Microphone.names
522
Chapitre 12 : Dictionnaire ActionScript
Microphone.muted
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.muted
Description
Propriété (lecture seule) : valeur booléenne spécifiant si l’utilisateur a refusé l’accès au microphone
(true) ou l’a autorisé (false). Lorsque cette valeur change, Microphone.onStatus est invoqué.
Pour plus d’informations, consultez Microphone.get().
Exemple
Dans l’exemple suivant, lorsque l’utilisateur clique sur le bouton, Flash publie et lit un flux
continu si le microphone n’est pas désactivé.
on (press)
{
// Si l’utilisateur désactive le microphone, afficher une notification.
// Sinon, publier et lire un flux continu à partir du microphone.
if(monMic.muted) {
_root.debugWindow+="Microphone désactivé." + newline;
} else {
// Publier les données du microphone en appelant
// la fonction racine pubLive().
_root.pubLive();
// Jouer ce qui est publié en appelant
// la fonction racine playLive().
_root.playLive();
}
}
Consultez également
Microphone.get(), Microphone.onStatus
Microphone.muted
523
Microphone.name
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.name
Description
Propriété (lecture seule) : une chaîne spécifiant le nom du périphérique de son actuel, tel que
renvoyé par le périphérique de capture du son.
Exemple
L’exemple suivant affiche le nom du microphone par défaut dans le panneau de sortie.
monMic = Microphone.get();
trace("Le nom du microphone est : " + monMic.name);
Consultez également
Microphone.get(), Microphone.names
524
Chapitre 12 : Dictionnaire ActionScript
Microphone.names
Disponibilité
Flash Player 6.
Usage
Microphone.names
Remarque : La syntaxe correcte est Microphone.names. Pour affecter la valeur de renvoi à une
variable, utilisez une syntaxe de type mic_array=Microphone.names. Pour connaître le nom du
microphone actuel, utilisez MicrophoneActif.name.
Description
Propriété de classe (lecture seule) : récupère un tableau de chaînes contenant les noms de tous les
périphériques de capture de son disponibles sans afficher le panneau des paramètres de contrôle
de l’accès de Flash Player. Ce tableau se comporte comme tous les tableaux ActionScript : il
fournit implicitement l’index basé sur zéro de chaque périphérique de capture du son et indique le
nombre total de périphériques de capture du son installés sur le système (à l’aide de
Microphone.names.length). Pour plus d’informations, consultez l’entrée Classe Array.
La fonction Microphone.names implique une analyse détaillée du matériel ; la création du
tableau peut donc prendre quelques secondes. Dans la plupart des cas, il suffit d’utiliser le
microphone par défaut.
Exemple
Le code suivant renvoie des informations sur le tableau des périphériques audio.
allMicNames_array = Microphone.names;
_root.debugWindow += "Microphone.names a trouvé le(s) périphérique(s)
suivant(s) :" + newline;
for(i=0; i < allMicNames_array.length; i++){
debugWindow += "[" + i + "]: " + allMicNames[i] + newline;
}
Vous pouvez, par exemple, afficher les informations suivantes :
Microphone.names a trouvé le(s) périphérique(s) suivant(s) :
[0]: Crystal SoundFusion(tm)
[1]: Périphérique audio USB
Consultez également
Classe Array, Microphone.name
Microphone.names
525
Microphone.onActivity
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.onActivity = function(activité) {
// vos instructions
}
Paramètres
Une valeur booléenne définie sur true lorsque le microphone commence à détecter
du son et sur false lorsqu’il s’arrête.
activité
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le microphone commence ou arrête de détecter du
son. Si vous souhaitez répondre à ce gestionnaire d’événement, vous devez créer une fonction afin
de traiter sa valeur activité.
Pour déterminer le niveau sonore requis pour invoquer Microphone.onActivity(true) et la
durée du silence devant s’écouler avant d’invoquer Microphone.onActivity(false), utilisez
Microphone.setSilenceLevel().
Exemple
L’exemple suivant affiche true ou false dans le panneau de sortie lorsque le microphone
commence ou arrête de détecter du son.
m = Microphone.get();
_root.attachAudio(m);
m.onActivity = function(mode)
{
trace(mode);
};
Consultez également
Microphone.onActivity, Microphone.setSilenceLevel()
526
Chapitre 12 : Dictionnaire ActionScript
Microphone.onStatus
Disponibilité
Flash Player 6.
Usage
activeMicrophone.onStatus = function(objetInfo) {
// vos instructions
}
Paramètres
objetInfo
Un paramètre défini selon le message d’état.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque l’utilisateur autorise ou refuse l’accès au microphone.
Si vous voulez répondre à ce gestionnaire d’événement, vous devez créer une fonction pour traiter
l’objet d’information généré par le microphone.
Lorsqu’un fichier SWF tente d’accéder au microphone, Flash Player affiche le panneau de
contrôle de l’accès permettant à l’utilisateur d’autoriser ou de refuser l’accès au microphone.
• Si l’utilisateur autorise l’accès, la propriété Microphone.muted est définie sur la valeur false ;
•
ce gestionnaire d’événement est invoqué avec un objet information dont la propriété code est
"Microphone.Unmuted" et dont la propriété niveau est "Etat".
Si l’utilisateur refuse l’accès, la propriété Microphone.muted est définie sur la valeur true ; ce
gestionnaire d’événement est invoqué avec un objet information dont la propriété code est
"Microphone.Muted" et dont la propriété niveau est "Etat".
Pour savoir si l’utilisateur a autorisé ou refusé l’accès au microphone sans traiter le gestionnaire
d’événement, utilisez Microphone.muted.
Remarque : Si l’utilisateur choisit d’autoriser ou de refuser définitivement l’accès à tous les fichiers
SWF à partir d’un domaine spécifique, cette méthode n’est pas invoquée pour les fichiers SWF de ce
domaine, à moins que l’utilisateur ne modifie ultérieurement les paramètres de contrôle de l’accès.
Pour plus d’informations, consultez Microphone.get().
Exemple
Consultez l’exemple relatif à Camera.onStatus.
Consultez également
Microphone.get(), Microphone.muted
Microphone.onStatus
527
Microphone.rate
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.rate
Description
Propriété (lecture seule) : le taux d’échantillonnage auquel le microphone capture le son, en kHz.
La valeur par défaut est 8 kHz si le périphérique de capture du son supporte cette valeur. Sinon, la
valeur par défaut correspond au premier niveau de capture au-delà de 8 kHz supporté par votre
périphérique de capture du son. Il s’agit généralement de 11 kHz.
Pour définir cette valeur, utilisez Microphone.setRate().
Exemple
L’exemple suivant enregistre le taux actuel dans la variable original.
original = monMic.rate;
Consultez également
Microphone.setRate()
528
Chapitre 12 : Dictionnaire ActionScript
Microphone.setGain()
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.setGain(gain)
Paramètres
gain Un entier spécifiant le niveau d’amplification que le microphone doit appliquer au signal.
Les valeurs valides sont comprises entre 0 et 100. La valeur par défaut est 50, mais l’utilisateur
peut la modifier dans le panneau Microphone des paramètres Flash Player.
Renvoie
Rien.
Description
Méthode : définit le gain du microphone, c’est-à-dire le coefficient de multiplication que le
microphone doit appliquer au signal avant de le transmettre. La valeur 0 multiplie le signal par
zéro ; cela signifie que le microphone ne transmet aucun son.
Ce paramètre s’apparente au bouton de réglage du volume d’une chaîne hi-fi : 0 correspond à
aucun volume et 50 au volume normal ; une valeur inférieure à 50 correspond à un volume plus
faible que le volume normal et une valeur supérieure à 50 correspond à un volume plus élevé.
Exemple
L’exemple suivant veille à ce que le paramètre de gain du microphone soit inférieur ou égal à 55.
var monMic = Microphone.get();
if (monMic.gain > 55){
monMic.setGain(55);
}
Consultez également
Microphone.gain, Microphone.setUseEchoSuppression()
Microphone.setGain()
529
Microphone.setRate()
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.setRate(kHz)
Paramètres
kHz Le taux d’échantillonnage auquel le microphone capture le son, en kHz. Les valeurs valides
sont 5, 8, 11, 22 et 44. La valeur par défaut est 8 kHz si le périphérique de capture du son
supporte cette valeur. Sinon, la valeur par défaut correspond au premier niveau de capture au-delà
de 8 kHz supporté par votre périphérique de capture du son. Il s’agit généralement de 11 kHz.
Renvoie
Rien.
Description
Méthode : définit le taux d’échantillonnage, en kHz, auquel le microphone capture le son.
Exemple
L’exemple suivant définit le taux d’échantillonnage conformément au choix de l’utilisateur (affecté
à la variable tauxUtilisateur) s’il correspond à l’une des valeurs suivantes : 5, 8, 11, 22 ou 44.
Si la valeur choisie par l’utilisateur ne correspond pas, elle est arrondie à la valeur supportée par le
périphérique de capture du son la plus proche.
monMic.setRate(tauxUtilisateur);
Consultez également
Microphone.rate
530
Chapitre 12 : Dictionnaire ActionScript
Microphone.setSilenceLevel()
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.setSilenceLevel(niveau [, délai])
Paramètres
niveau Un entier spécifiant le niveau sonore requis pour activer le microphone et invoquer
Microphone.onActivity(true). Les valeurs valides sont comprises entre 0 et 100. La valeur par
défaut est 10.
Un paramètre entier facultatif spécifiant le nombre de millisecondes d’inactivité devant
s’écouler pour que Flash considère que le son s’est arrêté et invoque
Microphone.onActivity(false). La valeur par défaut est 2 000 (2 secondes).
délai
Renvoie
Rien.
Description
Méthode : définit le niveau sonore minimum considéré comme du son et (éventuellement) la
durée de silence nécessaire pour considérer que le son est vraiment arrêté.
• Pour que le microphone ne détecte aucun son, affectez la valeur 100 au paramètre niveau ;
Microphone.onActivity
n’est jamais invoqué.
• Pour connaître le niveau sonore que le microphone détecte actuellement, utilisez
Microphone.activityLevel.
La détection de l’activité consiste à surveiller les niveaux sonores pour détecter lorsqu’une
personne est en train de parler. Elle permet d’économiser de la bande passante en évitant
d’envoyer le flux audio lorsque personne ne parle. Ces informations peuvent également servir de
retour visuel pour indiquer aux utilisateurs qu’ils (ou les autres utilisateurs) sont silencieux.
Les valeurs de silence sont la réciproque directe des valeurs d’activité. Le silence complet
correspond à une valeur d’activité de 0. Un bruit fort et constant (aussi fort qu’il peut être
enregistré, d’après le gain actuel) correspond à une valeur d’activité de 100. Une fois le gain
correctement réglé, la valeur d’activité est inférieure à la valeur de silence lorsque vous ne parlez
pas ; lorsque vous parlez, la valeur d’activité est supérieure à la valeur de silence.
Cette méthode a le même objectif que Camera.setMotionLevel() ; les deux méthodes
permettent de déterminer à quel moment le gestionnaire d’événement onActivity doit être
invoqué. Cependant, ces méthodes ont un impact très différent sur la publication en flux
continus :
•
•
est conçu pour détecter les mouvements et n’affecte pas
l’utilisation de la bande passante. Même lorsqu’un flux continu vidéo ne détecte pas de
mouvement, la vidéo est envoyée.
Microphone.setSilenceLevel() est conçu pour optimiser la bande passante. Lorsqu’un flux
continu audio est considéré comme silencieux, aucune donnée audio n’est envoyée. Un
message unique est envoyé, indiquant le début du silence.
Camera.setMotionLevel()
Microphone.setSilenceLevel()
531
Exemple
L’exemple suivant permet à l’utilisateur de déterminer le niveau du silence. Le code suivant est
affecté au bouton :
on (press)
{
this.makeSilenceLevel(this.silenceLevel);
}
La fonction makeSilenceLevel() appelée par le bouton continue :
function makeSilenceLevel(s)
{
this.obj.setSilenceLevel(s);
this.SyncMode();
this.silenceLevel= s;
}
Pour plus d’informations, consultez l’exemple relatif à Camera.setMotionLevel().
Consultez également
Microphone.activityLevel, Microphone.onActivity, Microphone.setGain(),
Microphone.silenceLevel(), Microphone.silenceTimeout()
532
Chapitre 12 : Dictionnaire ActionScript
Microphone.setUseEchoSuppression()
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.setUseEchoSuppression(supprimer)
Paramètres
supprimer Une valeur booléenne indiquant si la fonction de suppression de l’écho doit être
utilisée (true) ou non (false).
Renvoie
Rien.
Description
Méthode : spécifie l’utilisation ou non de la fonction de suppression de l’écho du codec audio. La
valeur par défaut est false à moins que l’utilisateur ne sélectionne ReduceEcho dans le panneau
Microphone des paramètres Flash Player.
La suppression de l’écho permet de réduire les effets de bouclage audio qui se produisent lorsque
le son émis par le haut-parleur est capté par le microphone sur le même ordinateur. (A ne pas
confondre avec la fonction d’annulation de l’écho, qui supprime totalement le retour.)
Il est généralement recommandé d’utiliser la suppression de l’écho lorsque le son capturé par le
micro est diffusé par des haut-parleurs (et non par un casque) sur le même ordinateur. Si le fichier
SWF permet aux utilisateurs de spécifier le périphérique de sortie audio, vous pouvez appeler
Microphone.setUseEchoSuppression(true) s’ils utilisent conjointement les haut-parleurs et le
microphone.
Les utilisateurs peuvent également régler ces paramètres dans le panneau Microphone des
paramètres Flash Player.
Exemple
L’exemple suivant active la suppression de l’écho.
monmic.setUseEchoSuppression(true);
Consultez également
Microphone.setGain(), Microphone.useEchoSuppression()
Microphone.setUseEchoSuppression()
533
Microphone.silenceLevel()
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.silenceLevel
Description
Propriété (lecture seule) : un entier spécifiant le niveau sonore requis pour activer le microphone
et invoquer Microphone.onActivity(true). La valeur par défaut est 10.
Exemple
Consultez l’exemple relatif à Microphone.silenceTimeout().
Consultez également
Microphone.gain, Microphone.setSilenceLevel()
Microphone.silenceTimeout()
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.silenceTimeout
Description
Propriété (lecture seule) : valeur numérique représentant le nombre de millisecondes entre le
moment où le microphone cesse de détecter du son et le moment où
Microphone.onActivity(false) est invoqué. La valeur par défaut est 2 000 (2 secondes).
Pour définir cette valeur, utilisez Microphone.setSilenceLevel().
Exemple
L’exemple suivant multiplie par deux la valeur actuelle du délai d’attente.
monMic.setSilenceLevel(monMic.silenceLevel, monMic.silenceTimeOut * 2);
Consultez également
Microphone.setSilenceLevel()
534
Chapitre 12 : Dictionnaire ActionScript
Microphone.useEchoSuppression()
Disponibilité
Flash Player 6.
Usage
MicrophoneActif.useEchoSuppression
Description
Propriété (lecture seule) : valeur booléenne définie sur la valeur true si la suppression de l’écho est
activée et sur la valeur false dans le cas contraire. La valeur par défaut est false à moins que
l’utilisateur ne sélectionne ReduceEcho dans le panneau Microphone des paramètres Flash Player.
Exemple
L’exemple suivant vérifie l’état de la suppression de l’écho et l’active si elle est désactivée.
_root.monMic.onActivity = function(active) {
if (active == true) {
if (_root.monMic.useEchoSuppression == false) {
_root.monMic.setUseEchoSuppression(true);
}
}
}
Consultez également
Microphone.setUseEchoSuppression()
Microphone.useEchoSuppression()
535
MMExecute()
Disponibilité
Flash Player 7.
Usage
MMExecute("Commande API Flash JavaScript;")
Paramètres
Commande API Flash JavaScript
Toute commande que vous pouvez utiliser dans un fichier
Flash JavaScript (JSFL).
Renvoie
Le résultat, le cas échéant, est envoyé par l’instruction JavaScript.
Description
Fonction : vous permet d’émettre des commandes de l’API Flash JavaScript à partir
d’ActionScript.
L’API Flash JavaScript (JSAPI) propose plusieurs objets, méthodes et propriétés pour dupliquer
ou émuler des commandes qu’un utilisateur peut saisir dans l’environnement de programmation.
Grâce à JSAPI, vous pouvez écrire des scripts qui étendent Flash de diverses manières : ajout de
commandes aux menus, manipulation d’objets sur la scène, répétition de séquences de
commandes, etc.
Un utilisateur exécute généralement un script JSAPI en sélectionnant Commandes > Exécuter la
commande. Vous pouvez cependant utiliser cette fonction dans un script ActionScript pour
appeler une commande JSAPI directement. Si vous utilisez MMExecute() dans un script sur
l’image 1 de votre fichier, la commande est exécutée lorsque le fichier SWF est chargé.
Pour plus d’informations sur JSAPI, consultez la page www.macromedia.com/go/jsapi_info_en.
Exemple
La commande suivante renvoie un tableau d’objets dans la bibliothèque :
var libe:Array = MMExecute("fl.getDocumentDOM().library.items;");
trace(libe.length + " articles de la bibliothèque");
Classe Mouse
Disponibilité
Flash Player 5.
Description
La classe Mouse est une classe de haut niveau : vous pouvez accéder à ses propriétés et à ses
méthodes sans utiliser de constructeur. Utilisez les méthodes de la classe Mouse pour masquer et
afficher le pointeur de la souris (curseur) dans le fichier SWF. Le pointeur est visible par défaut,
mais vous pouvez le masquer et implémenter un pointeur personnalisé que vous créez avec un clip
(consultez Création d’un pointeur de souris personnalisé, page 100).
536
Chapitre 12 : Dictionnaire ActionScript
Méthodes de la classe Mouse
Méthode
Description
Mouse.addListener()
Enregistre un objet pour la réception de notifications onMouseDown,
onMouseMove et onMouseUp.
Mouse.hide()
Masque le pointeur de la souris dans le fichier SWF.
Mouse.removeListener()
Supprime un objet enregistré avec addListener().
Mouse.show()
Affiche le pointeur de la souris dans le fichier SWF.
Ecouteurs de la classe Mouse
Méthode
Description
Mouse.onMouseDown
Notifié lorsque le bouton de la souris est enfoncé.
Mouse.onMouseMove
Notifié lorsque la souris est déplacée.
Mouse.onMouseUp
Notifié lorsque le bouton de la souris est relâché.
Mouse.onMouseWheel
Notifié lorsque l’utilisateur manipule la molette de la souris.
Mouse.addListener()
Disponibilité
Flash Player 6.
Usage
Mouse.addListener (nouvelEcouteur)
Paramètres
nouvelEcouteur
Un objet.
Renvoie
Rien.
Description
Méthode : enregistre un objet pour la réception de notifications d’écouteurs onMouseDown,
onMouseMove et onMouseUp.
Le paramètre nouvelEcouteur doit contenir un objet avec des méthodes définies pour les
écouteurs onMouseDown, onMouseMove et onMouseUp.
Lorsque le bouton de la souris est enfoncé, que la souris est déplacée ou que le bouton de la souris
est relâché, quel que soit le focus de saisie, la méthode onMouseDown, onMouseMove ou
onMouseUp de tous les objets écouteurs enregistrés avec cette méthode est invoquée. Plusieurs
objets peuvent attendre des notifications de souris. Si l’écouteur nouvelEcouteur est déjà
enregistré, aucun changement n’a lieu.
Consultez également
Mouse.onMouseDown, Mouse.onMouseMove, Mouse.onMouseUp
Mouse.addListener()
537
Mouse.hide()
Disponibilité
Flash Player 5.
Usage
Mouse.hide()
Paramètres
Aucun.
Renvoie
Une valeur booléenne : true si le pointeur est visible et false dans le cas contraire.
Description
Méthode : masque le pointeur dans un fichier SWF. Le pointeur est visible par défaut.
Exemple
Le code suivant, associé à un clip du scénario principal, masque le pointeur standard et définit les
positions x et y de l’occurrence de clip PointeurPerso_mc aux positions x et y de la souris dans le
scénario principal.
onClipEvent (enterFrame) {
Mouse.hide();
PointeurPerso_mc._x = _root._xmouse;
PointeurPerso_mc._y = _root._ymouse;
}
Consultez également
Mouse.show(), MovieClip._xmouse, MovieClip._ymouse
538
Chapitre 12 : Dictionnaire ActionScript
Mouse.onMouseDown
Disponibilité
Flash Player 6.
Usage
unEcouteur.onMouseDown
Paramètres
Aucun.
Renvoie
Rien.
Description
Ecouteur : notifié lorsque le bouton de la souris est enfoncé. Pour utiliser l’écouteur
onMouseDown, vous devez créer un objet d’écoute. Vous pouvez alors définir une fonction pour
onMouseDown et utiliser addListener() pour enregistrer l’écouteur avec l’objet Mouse, comme
dans l’exemple suivant :
unEcouteur = new Object();
unEcouteur.onMouseDown = function () { ... };
Mouse.addListener(unEcouteur);
Les écouteurs permettent à différents morceaux de code de coopérer étant donné que plusieurs
écouteurs peuvent recevoir une notification concernant un seul événement.
Consultez également
Mouse.addListener()
Mouse.onMouseDown
539
Mouse.onMouseMove
Disponibilité
Flash Player 6.
Usage
unEcouteur.onMouseMove
Paramètres
Aucun.
Renvoie
Rien.
Description
Ecouteur : notifié lorsque la souris se déplace. Pour utiliser l’écouteur onMouseMove, vous devez
créer un objet d’écoute. Vous pouvez alors définir une fonction pour onMouseMove et utiliser
addListener() pour enregistrer l’écouteur avec l’objet Mouse, comme dans l’exemple suivant :
unEcouteur = new Object();
unEcouteur.onMouseMove = function () { ... };
Mouse.addListener(unEcouteur);
Les écouteurs permettent à différents morceaux de code de coopérer étant donné que plusieurs
écouteurs peuvent recevoir une notification concernant un seul événement.
Consultez également
Mouse.addListener()
540
Chapitre 12 : Dictionnaire ActionScript
Mouse.onMouseUp
Disponibilité
Flash Player 6.
Usage
unEcouteur.onMouseUp
Paramètres
Aucun.
Renvoie
Rien.
Description
Ecouteur : notifié lorsque le bouton de la souris est relâché. Pour utiliser l’écouteur onMouseUp,
vous devez créer un objet d’écoute. Vous pouvez alors définir une fonction pour onMouseUp et
utiliser addListener() pour enregistrer l’écouteur avec l’objet Mouse, comme dans l’exemple
suivant :
unEcouteur = new Object();
unEcouteur.onMouseUp = function () { ... };
Mouse.addListener(unEcouteur);
Les écouteurs permettent à différents morceaux de code de coopérer étant donné que plusieurs
écouteurs peuvent recevoir une notification concernant un seul événement.
Consultez également
Mouse.addListener()
Mouse.onMouseUp
541
Mouse.onMouseWheel
Disponibilité
Flash Player 7 (Windows uniquement).
Usage
unEcouteur.onMouseWheel = function ( [ delta , scrollTarget ]) {
// vos instructions
}
Paramètres
Un nombre facultatif indiquant le nombre de lignes qui défilent pour chaque cran de la
molette de la souris que l’utilisateur fait tourner. Une valeur delta positive indique que le
défilement se fait vers le haut ; une valeur négative indique que le défilement se fait vers le bas.
Cette valeur se situe généralement entre 1 et 3. Un défilement plus rapide peut produire des
valeurs plus grandes.
delta
Si vous ne souhaitez pas spécifier de valeur pour delta mais que vous souhaitez en spécifier une
pour scrollTarget, définissez null pour delta.
scrollTarget
La première occurrence de clip sous le pointeur une fois la molette de la souris
tournée.
Renvoie
Rien.
Description
Ecouteur : notifié lorsque l’utilisateur manipule la molette de la souris. Pour utiliser l’écouteur
onMouseWheel, vous devez créer un objet d’écoute. Vous pouvez ensuite définir une fonction
pour onMouseWheel et utiliser addListener() pour enregistrer l’écouteur avec l’objet Mouse.
Remarque : Les écouteurs d’événement molette de souris sont disponibles uniquement dans les
versions Windows de Flash Player.
Exemple
L’exemple suivant montre comment créer un objet écouteur qui réagit aux événements de
mollette de souris. Dans cet exemple, la coordonnée x d’un objet clip appelé clip_mc (non
illustré) change à chaque fois que l’utilisateur fait tourner la mollette de la souris.
EcouteurSouris = new Object();
EcouteurSouris.onMouseWheel = function(delta) {
clip_mc._x += delta;
}
Mouse.addListener(EcouteurSouris);
Consultez également
Mouse.addListener(), TextField.mouseWheelEnabled
542
Chapitre 12 : Dictionnaire ActionScript
Mouse.removeListener()
Disponibilité
Flash Player 6.
Usage
Mouse.removeListener (écouteur)
Paramètres
écouteur
Un objet.
Renvoie
Si l’objet écouteur a été correctement retiré, la méthode renvoie true. Si écouteur n’a pas été
correctement retiré, par exemple si écouteur n’apparaissait pas dans la liste des écouteurs de
l’objet Mouse, la méthode renvoie false.
Description
Méthode : supprime un objet précédemment enregistré avec addListener().
Mouse.show()
Disponibilité
Flash Player 5.
Usage
Mouse.show()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : affiche le pointeur de la souris dans un fichier SWF. Le pointeur est visible par défaut.
Consultez également
Mouse.show(), MovieClip._xmouse, MovieClip._ymouse
Classe MovieClip
Disponibilité
Flash Player 3.
Description
Les méthodes de la classe MovieClip fournissent les mêmes fonctionnalités que les actions ciblant
les clips. Il existe également des méthodes supplémentaires qui n’ont pas d’action équivalente dans
la boîte à outils Actions du panneau Actions.
Classe MovieClip
543
Il n’est pas nécessaire d’utiliser une méthode de constructeur pour appeler les méthodes de la
classe MovieClip ; faites référence aux occurrences de clips par leurs noms, avec la syntaxe
suivante :
mon_mc.play();
mon_mc.gotoAndPlay(3);
Méthodes de la classe MovieClip
Méthode
Description
MovieClip.attachAudio()
Capture et joue du son local à partir d’un microphone.
MovieClip.attachMovie()
Associe un fichier SWF dans la bibliothèque.
MovieClip.createEmptyMovieClip() Crée un clip vide.
544
MovieClip.createTextField()
Crée un champ de texte vide.
MovieClip.duplicateMovieClip
Duplique le clip spécifié.
MovieClip.getBounds
Renvoie les coordonnées x et y minimum et maximum d’un
fichier SWF dans un espace de coordonnées spécifié.
MovieClip.getBytesLoaded()
Renvoie le nombre d’octets chargés pour le clip spécifié.
MovieClip.getBytesTotal()
Renvoie la taille du clip, en octets.
MovieClip.getDepth()
Renvoie la profondeur d’un clip.
MovieClip.getInstanceAtDepth()
Indique si une profondeur particulière est déjà occupée par un
clip.
MovieClip.getNextHighestDepth()
Indique une valeur de profondeur que vous pouvez
transmettre à d’autres méthodes pour vous assurer que Flash
effectue un rendu du clip devant tous les objets du clip actuel.
MovieClip.getSWFVersion()
Renvoie un entier indiquant la version deFlash Player pour
laquelle le clip a été publié.
MovieClip.getTextSnapshot()
Renvoie un objet TextSnapshot contenant le texte dans les
champs de texte statiques du clip spécifié.
MovieClip.getURL()
Récupère un document d’une URL.
MovieClip.globalToLocal()
Convertit l’objet de point des coordonnées de scène en
coordonnées locales du clip spécifié.
MovieClip.gotoAndPlay()
Envoie la tête de lecture vers une image spécifique du clip et lit
le fichier SWF.
MovieClip.gotoAndStop
Envoie la tête de lecture vers une image spécifique du clip et
arrête le fichier SWF.
MovieClip.hitTest()
Renvoie true si le cadre de délimitation du clip spécifié croise
le cadre de délimitation du clip cible.
MovieClip.loadMovie
Charge le fichier SWF spécifié dans le clip.
MovieClip.loadVariables()
Charge les variables depuis une URL ou un autre
emplacement dans le clip.
Chapitre 12 : Dictionnaire ActionScript
Méthode
Description
MovieClip.localToGlobal()
Convertit un objet de point des coordonnées locales du clip en
coordonnées globales de scène.
MovieClip.nextFrame()
Envoie la tête de lecture à l’image suivante du clip.
MovieClip.play()
Exécute le clip spécifié.
MovieClip.prevFrame()
Envoie la tête de lecture à l’image précédente du clip.
MovieClip.removeMovieClip()
Supprime le clip du scénario s’il a été créé avec
duplicateMovieClip(), MovieClip.duplicateMovieClip ou
MovieClip.attachMovie().
MovieClip.setMask()
Spécifie un clip comme masque d’un autre clip.
MovieClip.startDrag()
Spécifie un clip comme déplaçable et commence à déplacer
le clip.
MovieClip.stop()
Arrête la lecture du fichier SWF actuel.
MovieClip.stopDrag()
Arrête le déplacement d’un clip en cours de déplacement.
MovieClip.swapDepths()
Echange le niveau de profondeur de deux fichiers SWF.
MovieClip.unloadMovie()
Supprime un fichier SWF chargé avec loadMovie().
Méthodes de dessin de la classe MovieClip
Méthode
Description
MovieClip.beginFill()
Commence à tracer un remplissage sur la scène.
MovieClip.beginGradientFill()
Commence à tracer un remplissage en dégradé sur la scène.
MovieClip.clear()
Supprime toutes les commandes de dessin associées à une
occurrence de clip.
MovieClip.curveTo()
Dessine une ligne avec le style de trait le plus récent.
MovieClip.endFill()
Termine le remplissage spécifié par beginFill() ou
beginGradientFill().
MovieClip.lineStyle()
Définit le trait des lignes créées avec les méthodes lineTo() et
curveTo().
MovieClip.lineTo
Dessine une ligne avec le style de trait actuel.
MovieClip.moveTo
Déplace la position de dessin actuelle aux coordonnées
spécifiées.
Classe MovieClip
545
Propriétés de la classe MovieClip
546
Propriété
Description
MovieClip._alpha
La valeur de transparence d’une occurrence de clip.
MovieClip._currentframe
Le numéro de l’image dans laquelle la tête de lecture est
actuellement située.
MovieClip._droptarget
Le chemin absolu (avec la syntaxe à barre oblique) de
l’occurrence de clip sur laquelle un clip déplaçable a été
déposé.
MovieClip.enabled
Indique si un clip de bouton est activé.
MovieClip.focusEnabled
Active un clip pour qu’il puisse recevoir le focus.
MovieClip._focusrect
Indique si un clip avec focus est encadré d’un rectangle jaune.
MovieClip._framesloaded
Le nombre d’images chargées à partir d’un fichier SWF en flux
continu.
MovieClip._height
La hauteur d’une occurrence de clip, en pixels.
MovieClip.hitArea
Désigne un autre clip qui servira de zone active pour un clip de
bouton.
MovieClip._highquality
Définit la qualité du rendu d’un fichier SWF.
MovieClip.menu
Associe un objet ContextMenu à un clip.
MovieClip._name
Le nom d’occurrence d’une occurrence de clip.
MovieClip._parent
Une référence au clip contenant le clip.
MovieClip._rotation
Le degré de rotation d’une occurrence de clip.
MovieClip._soundbuftime
Le nombre de secondes avant d’un son ne démarre en lecture
continue.
MovieClip.tabChildren
Indique si les enfants d’un clip sont inclus dans l’ordre de
tabulation automatique.
mon_mc.tabEnabled
Indique si un clip est inclus dans l’ordre de tabulation.
MovieClip.tabIndex
Indique l’ordre de tabulation d’un objet.
MovieClip._target
Le chemin cible d’une occurrence de clip.
MovieClip._totalframes
Le nombre total d’images d’une occurrence de clip.
MovieClip.trackAsMenu
Indique si d’autres boutons peuvent recevoir des événements
de relâchement du bouton de la souris.
MovieClip._url
L’URL du fichier SWF d’où le clip a été téléchargé.
MovieClip.useHandCursor
Détermine si le curseur de main est affiché lorsque la souris
passe au-dessus d’un clip bouton.
MovieClip._visible
Une valeur booléenne déterminant si l’occurrence d’un clip est
masquée ou visible.
MovieClip._width
La largeur d’une occurrence de clip, en pixels.
Chapitre 12 : Dictionnaire ActionScript
Propriété
Description
MovieClip._x
La coordonnée x d’une occurrence de clip.
MovieClip._xmouse
La coordonnée x du pointeur de la souris dans une occurrence
de clip.
MovieClip._xscale
La valeur spécifiant le pourcentage de redimensionnement
horizontal d’un clip.
MovieClip._y
La coordonnée y d’une occurrence de clip.
MovieClip._ymouse
La coordonnée y du pointeur de la souris dans une occurrence
de clip.
MovieClip._yscale
La valeur spécifiant le pourcentage de redimensionnement
vertical d’un clip.
Gestionnaires d’événement de la classe MovieClip
Gestionnaire d’événement
Description
MovieClip.onData
Invoqué lorsque toutes les données sont chargées dans un
clip.
MovieClip.onDragOut
Invoqué lorsque le pointeur se trouve en dehors du bouton, le
bouton de la souris est enfoncé à l’intérieur, puis le pointeur
sort de la zone du bouton.
MovieClip.onDragOver
Invoqué lorsque le pointeur se trouve au-dessus du bouton, le
bouton de la souris a été enfoncé puis que le pointeur sort du
bouton et ramené au-dessus du bouton.
MovieClip.onEnterFrame
Invoqué de manière continue à la cadence du fichier SWF.
Les actions associées à l’événement de clip enterFrame sont
traitées avant les actions associées aux images affectées.
MovieClip.onKeyDown
Invoqué lorsqu’une touche est enfoncée. Utilisez les
méthodes Key.getCode() et Key.getAscii() pour récupérer
les informations concernant la dernière touche enfoncée.
MovieClip.onKeyUp
Invoqué lorsqu’une touche est relâchée.
MovieClip.onKillFocus
Invoqué lorsque le focus est retiré d’un bouton.
MovieClip.onLoad
Invoqué lorsque le clip est instancié et apparaît dans le
scénario.
MovieClip.onMouseDown
Invoqué lorsque le bouton gauche de la souris est enfoncé.
MovieClip.onMouseMove
Invoqué à chaque fois que la souris est déplacée.
MovieClip.onMouseUp
Invoqué lorsque le bouton gauche de la souris est relâché.
MovieClip.onPress
Invoqué lorsque le bouton de la souris est enfoncé alors que le
pointeur au-dessus d’un bouton.
MovieClip.onRelease
Invoqué lorsque le bouton de la souris est relâché alors que le
pointeur au-dessus d’un bouton.
Classe MovieClip
547
Gestionnaire d’événement
Description
MovieClip.onReleaseOutside
Invoqué lorsque la souris est relâchée alors que le pointeur se
trouve au dehors du bouton après l’enfoncement du bouton
pendant que le pointeur est à l’intérieur du bouton.
MovieClip.onRollOut
Invoqué lorsque le pointeur passe à l’extérieur d’un bouton.
MovieClip.onRollOver
Invoqué lorsque le pointeur de la souris passe au-dessus d’un
bouton.
MovieClip.onSetFocus
Invoqué lorsqu’un bouton a le focus de saisie et qu’une touche
est relâchée.
MovieClip.onUnload
Invoqué dans la première image après la suppression du clip
du scénario. Les actions associées à l’événement de clip
Unload sont traitées avant que des actions ne soient
associées à l’image affectée.
MovieClip._alpha
Disponibilité
Flash Player 4.
Usage
mon_mc._alpha
Description
Propriété : la valeur de transparence alpha du clip spécifié par mon_mc. Les valeurs valides vont de
0 (transparence complète) à 100 (opacité complète). La valeur par défaut est 100. Les objets d’un
clip avec _alpha défini sur 0 sont actifs, même s’ils sont invisibles. Par exemple, vous pouvez
cliquer sur un bouton dans un clip dont la propriété _alpha est définie sur 0.
Exemple
Le code suivant définit la propriété _alpha d’un clip appelé star_mc à 30 % lorsque l’utilisateur
clique sur le bouton :
on(release) {
star_mc._alpha = 30;
}
Consultez également
Button._alpha, TextField._alpha
548
Chapitre 12 : Dictionnaire ActionScript
MovieClip.attachAudio()
Disponibilité
Flash Player 6 ; la possibilité de joindre du son à partir de fichiers Flash Video (FLV) a été ajoutée
dans Flash Player 7.
Usage
mon_mc.attachAudio(source)
Paramètres
source L’objet contenant le son à jouer. Les valeurs valides sont un objet Microphone, un objet
NetStream qu’un fichier FLV lit et false (arrête la lecture du son).
Renvoie
Rien.
Description
Méthode : spécifie la source audio à lire. Pour arrêter la lecture de la source audio, affectez false
à source.
Exemple
Le code suivant associe un microphone à un clip.
mon_mic = Microphone.get();
this.attachAudio(mon_mic);
L’exemple suivant montre comment vous pouvez utiliser un objet Sound pour contrôler le son
associé à un fichier FLV.
// Clip est le nom d’occurrence du clip
// qui contient l’objet vidéo "ma_vidéo".
_root.Clip.ma_vidéo.attachVideo(_root.myNetStream);
_root.Clip.attachAudio(_root.myNetStream);
var snd = new Sound("_root.Clip");
//Pour régler le son :
_root.snd.setVolume(100);
Consultez également
Classe Microphone, NetStream.play(), Classe Sound, Video.attachVideo()
MovieClip.attachAudio()
549
MovieClip.attachMovie()
Disponibilité
Flash Player 5.
Usage
mon_mc.attachMovie(nomIdentifiant, nouveauNom, profondeur [, objetInit])
Paramètres
Le nom de liaison du symbole de clip de la bibliothèque à associer à un clip
sur la scène. Il s’agit du nom entré dans le champ Identifiant de la boîte de dialogue Propriétés de
liaison.
nomIdentifiant
nouveauNom
Un nom d’occurrence unique pour le clip en cours d’association avec le clip.
profondeur
Un entier spécifiant le niveau de profondeur auquel associer le fichier SWF.
objetInit (supporté par Flash Player 6 et ultérieur) Un objet contenant les propriétés avec
lesquelles remplir le clip nouvellement associé. Ce paramètre permet aux clips créés
dynamiquement de recevoir des paramètres. Si objetInit n’est pas un objet, il est ignoré. Toutes
les propriétés de objetInit sont copiées dans la nouvelle occurrence. Les propriétés spécifiées
avec objetInit peuvent être utilisées par la fonction constructeur. Ce paramètre est facultatif.
Renvoie
Une référence à la nouvelle occurrence.
Description
Méthode : prend un symbole de la bibliothèque et l’associe au fichier SWF spécifié par mon_mc
sur la scène. Utilisez removeMovieClip() ou unloadMovie() pour supprimer un fichier SWF
associé à attachMovie().
Exemple
L’exemple suivant associe le symbole dont l’identifiant de liaison est un « cercle » à l’occurrence de
clip qui se trouve sur la scène du fichier SWF.
on (release) {
truc.attachMovie( "cercle", "cercle1", 2 );
}
Consultez également
MovieClip.removeMovieClip(), MovieClip.unloadMovie(), Object.registerClass(),
removeMovieClip()
550
Chapitre 12 : Dictionnaire ActionScript
MovieClip.beginFill()
Disponibilité
Flash Player 6.
Usage
mon_mc.beginFill([rvb[, alpha]])
Paramètre
Une valeur chromatique hexadécimale (par exemple, le rouge correspond à 0xFF0000, le
bleu correspond à 0x0000FF, etc.). Si cette valeur n’est pas fournie ou si elle est indéfinie, aucun
remplissage n’est créé.
rvb
alpha Un entier compris entre 0–100 spécifiant la valeur alpha du remplissage. Si cette valeur
n’est pas indiquée, 100 (uni) est utilisé. Si la valeur est inférieure à 0, Flash utilise 0. Si la valeur est
supérieure à 100, Flash utilise 100.
Renvoie
Rien.
Description
Méthode : indique le début d’un nouveau trajet de dessin. Si un chemin ouvert existe, c’est-à-dire
si la position de dessin actuelle n’est pas égale à la position précédente spécifiée dans une méthode
moveTo(), et qu’un remplissage y est associé, ce chemin est fermé avec un trait, puis rempli. Cela
est semblable à ce qui se produit à l’appel de endFill(). Si aucun remplissage n’est actuellement
associé au chemin, endFill() doit être appelé pour appliquer le remplissage.
Consultez également
MovieClip.beginGradientFill(), MovieClip.endFill()
MovieClip.beginGradientFill()
Disponibilité
Flash Player 6.
Usage
mon_mc.beginGradientFill(typeDeRemplissage, couleurs, alphas, rapports,
matrice)
Paramètre
typeDeRemplissage
La chaîne "linear" ou la chaîne "radial".
Un tableau des valeurs hexadécimales RVB à utiliser dans le dégradé (par exemple, le
rouge correspond à 0xFF0000, le bleu correspond à 0x0000FF, etc.).
couleurs
Un tableau de valeurs alpha pour les couleurs correspondantes du tableau couleurs, les
valeurs valides sont comprises entre 0–100. Si la valeur est inférieure à 0, Flash utilise 0. Si la
valeur est supérieure à 100, Flash utilise 100.
alphas
Un tableau de rapports de distribution des couleurs, les valeurs valides étant 0–255.
Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée à 100 %.
rapports
MovieClip.beginGradientFill()
551
Une matrice de transformation qui est un objet avec l’un des deux ensembles de
propriétés suivants.
matrice
• a, b, c, d, e, f, g, h, i, qui peuvent être utilisés pour décrire une matrice 3x3 au format
suivant :
a b c
d e f
g h i
L’exemple suivant utilise une méthode beginGradientFill() avec un paramètre matrice,
qui est un objet avec ces propriétés.
_root.createEmptyMovieClip( "dégradé", 1 );
with ( _root.dégradé )
{
couleurs = [ 0xFF0000, 0x0000FF ];
alphas = [ 100, 100 ];
rapports = [ 0, 0xFF ];
matrice = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1 };
beginGradientFill( "linear", couleurs, alphas, rapports, matrice );
moveto(100,100);
lineto(100,300);
lineto(300,300);
lineto(300,100);
lineto(100,100);
endFill();
}
Si une propriété typeDeMatrice n’existe pas, les autres paramètres sont tous requis (la
fonction échoue s’ils ne sont pas tous présents). Cette matrice redimensionne, traduit, pivote et
incline le gradient unitaire qui est défini à (-1,-1) et (1,1).
•
typeDeMatrice, x, y, l, h, r.
Les propriétés indiquent : typeDeMatrice est la chaîne "box", x est la position horizontale
relative au point d’alignement du clip parent pour le coin supérieur gauche du dégradé, y est la
position verticale relative au point d’alignement du clip parent pour le coin supérieur gauche
du dégradé, l est la largeur du gradient, h est la hauteur du dégradé et r est la rotation du
dégradé, en radians.
L’exemple suivant utilise une méthode beginGradientFill() avec un paramètre matrice,
qui est un objet avec ces propriétés.
552
Chapitre 12 : Dictionnaire ActionScript
_root.createEmptyMovieClip( "dégradé", 1 );
with ( _root.dégradé )
{
couleurs = [ 0xFF0000, 0x0000FF ];
alphas = [ 100, 100 ];
rapports = [ 0, 0xFF ];
matrice = { typeDeMatrice:"box", x:100, y:100, l:200, h:200,
r:(45/180)*Math.PI };
beginGradientFill( "linear", couleurs, alphas, rapports,
matrice );
moveto(100,100);
lineto(100,300);
lineto(300,300);
lineto(300,100);
lineto(100,100);
endFill();
}
Si une propriété typeDeMatrice existe, elle doit être égale à "box" et les autres paramètres sont
tous obligatoires. La fonction échoue si une ou plusieurs de ces conditions ne sont pas remplies.
Renvoie
Rien.
Description
Méthode : indique le début d’un nouveau trajet de dessin. Si le premier paramètre est undefined,
ou si aucun paramètre n’est transmis, le trajet n’a aucun remplissage. Si un chemin ouvert existe
(si la position actuelle du dessin n’est pas égale à la position précédente spécifiée dans une
méthode moveTo()) et qu’un remplissage y est associé, ce chemin est fermé avec un trait, puis
rempli. Cela est semblable à ce qui se produit à l’appel de endFill().
Cette méthode échoue si une ou plusieurs des conditions suivantes existent :
• Le nombre d’éléments dans les paramètres couleurs, alphas et rapports n’est pas le même.
• Le paramètre typeDeRemplissage n’est ni "linear" ni "radial".
• Un ou plusieurs des champs de l’objet pour le paramètre matrice sont absents ou invalides.
MovieClip.beginGradientFill()
553
Exemple
Le code suivant utilise les deux méthodes pour tracer deux rectangles empilés avec un remplissage
dégradé rouge-bleu et un trait vert de 5 points.
_root.createEmptyMovieClip("goober",1);
with ( _root.goober )
{
couleurs = [ 0xFF0000, 0x0000FF ];
alphas = [ 100, 100 ];
rapports = [ 0, 0xFF ];
lineStyle( 5, 0x00ff00 );
matrice = { a:500,b:0,c:0,d:0,e:200,f:0,g:350,h:200,i:1};
beginGradientFill( "linear", couleurs, alphas, rapports, matrice );
moveto(100,100);
lineto(100,300);
lineto(600,300);
lineto(600,100);
lineto(100,100);
endFill();
matrice = { typeDeMatrice:"box", x:100, y:310, l:500, h:200, r:(0/
180)*Math.PI };
beginGradientFill( "linear", couleurs, alphas, rapports, matrice );
moveto(100,310);
lineto(100,510);
lineto(600,510);
lineto(600,310);
lineto(100,310);
endFill();
}
Consultez également
MovieClip.beginFill(), MovieClip.endFill(), MovieClip.lineStyle(),
MovieClip.lineTo, MovieClip.moveTo
554
Chapitre 12 : Dictionnaire ActionScript
MovieClip.clear()
Disponibilité
Flash Player 6.
Usage
mon_mc.clear()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : supprime tous les graphiques créés à l’exécution à l’aide des méthodes de dessin de la
classe MovieClip, y compris les styles de traits spécifiés avec MovieClip.lineStyle(). Les
formes et les lignes dessinées à main levée pendant la phase de programmation (avec les outils de
dessin Flash) ne sont pas supprimées.
Consultez également
MovieClip.lineStyle()
MovieClip.createEmptyMovieClip()
Disponibilité
Flash Player 6.
Usage
mon_mc.createEmptyMovieClip(nomDoccurrence, profondeur)
Paramètres
nomDoccurrence
profondeur
Une chaîne identifiant le nom d’occurrence du nouveau clip.
Un entier spécifiant la profondeur du nouveau clip.
Renvoie
Une référence au nouveau clip.
Description
Méthode : crée un clip vide comme enfant d’un clip existant. Cette méthode a le même
comportement que la méthode attachMovie(), mais vous n’avez pas besoin de fournir un nom
de liaison externe pour le nouveau clip. Le point d’alignement d’un clip vide nouvellement créé se
situe dans le coin supérieur gauche. Cette méthode échoue si un ou plusieurs des paramètres sont
absents.
Consultez également
MovieClip.attachMovie()
MovieClip.createEmptyMovieClip()
555
MovieClip.createTextField()
Disponibilité
Flash Player 6.
Usage
mon_mc.createTextField(nomDoccurrence, profondeur, x, y, largeur, hauteur)
Paramètres
nomDoccurence
profondeur
Une chaîne identifiant le nom d’occurrence du nouveau champ de texte.
Un entier positif spécifiant la profondeur du nouveau champ de texte.
x
Un entier spécifiant la coordonnée x du nouveau champ de texte.
y
Un entier spécifiant la coordonnée y du nouveau champ de texte.
largeur
Un entier positif spécifiant la largeur du nouveau champ de texte.
hauteur
Un entier positif spécifiant la hauteur du nouveau champ de texte.
Renvoie
Rien.
Description
Méthode : crée un champ de texte vide comme enfant du clip spécifié par mon_mc. Vous pouvez
utiliser createTextField() pour créer des champs de texte lors de la lecture d’un fichier SWF.
Le champ de texte est placé à (x, y) avec les dimensions largeur x hauteur. Les paramètres x et y
sont relatifs au clip container et correspondent aux propriétés _x et _y du champ de texte. Les
paramètres largeur et hauteur correspondent aux propriétés _width et _height du champ de
texte.
Les propriétés par défaut d’un champ de texte sont les suivantes :
type = "dynamic"
border = false
background = false
password = false
multiline = false
html = false
embedFonts = false
variable = null
maxChars = null
556
Chapitre 12 : Dictionnaire ActionScript
Un champ de texte créé avec createTextField() reçoit l’objet TextFormat par défaut suivant :
font = "Times New Roman"
size = 12
textColor = 0x000000
bold = false
italic = false
underline = false
url = ""
target = ""
align = "left"
leftMargin = 0
rightMargin = 0
indent = 0
leading = 0
bullet = false
tabStops = [] (tableau vide)
Exemple
L’exemple suivant crée un champ de texte avec une largeur de 300, une hauteur de 100, une
coordonnée x de 100, une coordonnée y de 100, aucune bordure, texte rouge et souligné.
_root.createTextField("monTexte",1,100,100,300,100);
monTexte.multiline = true;
monTexte.wordWrap = true;
monTexte.border = false;
monFormat = new TextFormat();
monFormat.color = 0xff0000;
monFormat.bullet = false;
monFormat.underline = true;
monTexte.text = "Ceci est mon premier test de texte d’objet de champ de texte";
monTexte.setTextFormat(monFormat);
Consultez également
Classe TextFormat
MovieClip._currentframe
Disponibilité
Flash Player 4.
Usage
mon_mc._currentframe
Description
Propriété (lecture seule) : renvoie le numéro de l’image où se trouve la tête de lecture dans le
scénario spécifié par mon_mc.
Exemple
L’exemple suivant utilise la propriété _currentframe pour faire avancer la tête de lecture du clip
actionClip_mc de cinq images par rapport à son emplacement actuel.
actionClip_mc.gotoAndStop(_currentframe + 5);
MovieClip._currentframe
557
MovieClip.curveTo()
Disponibilité
Flash Player 6.
Usage
mon_mc.curveTo(contrôleX, contrôleY, ancreX, ancreY)
Paramètres
contrôleX Un entier spécifiant une position horizontale par rapport au point d’alignement du
clip parent du point de contrôle.
contrôleY Un entier spécifiant une position verticale par rapport au point d’alignement du
clip parent du point de contrôle.
ancreX Un entier spécifiant une position horizontale par rapport au point d’alignement du clip
parent du point d’ancrage suivant.
ancreY Un entier spécifiant une position verticale par rapport au point d’alignement du clip
parent du point d’ancrage suivant.
Renvoie
Rien.
Description
Méthode : dessine une courbe avec le style de trait courant depuis la position de dessin actuelle à
(ancreX, ancreY), utilisant le point spécifié par (contrôleX, contrôleY). La position de dessin
actuelle est alors définie sur (ancreX, ancreY). Si le clip dans lequel vous dessinez contient un
contenu créé avec les outils de dessin Flash, les appels à curveTo() sont dessinés au-dessous de ce
contenu. Si vous appelez curveTo() avant tout appel à moveTo(), la position de dessin actuelle
est par défaut (0, 0). Cette méthode échoue lorsque des paramètres sont absents et la position de
dessin courante n’est pas changée.
Exemple
L’exemple suivant dessine un cercle avec un trait bleu très fin et un remplissage uni rouge.
_root.createEmptyMovieClip( "cercle", 1 );
with ( _root.cercle )
{
lineStyle( 0, 0x0000FF, 100 );
beginFill( 0xFF0000 );
moveTo( 500, 500 );
curveTo( 600, 500, 600, 400 );
curveTo( 600, 300, 500, 300 );
curveTo( 400, 300, 400, 400 );
curveTo( 400, 500, 500, 500 );
endFill();
}
Consultez également
MovieClip.beginFill(), MovieClip.createEmptyMovieClip(), MovieClip.endFill(),
MovieClip.lineStyle(), MovieClip.lineTo, MovieClip.moveTo
558
Chapitre 12 : Dictionnaire ActionScript
MovieClip._droptarget
Disponibilité
Flash Player 4.
Usage
mon_mc._droptarget
Description
Propriété (lecture seule) : renvoie le chemin absolu avec la syntaxe à barre oblique de l’occurrence
de clip sur laquelle mon_mc a été déposé. La propriété _droptarget renvoie toujours un chemin
commençant par une barre oblique (/). Pour comparer la propriété _droptarget d’une
occurrence avec une référence, utilisez la fonction eval() pour convertir la valeur renvoyée de la
syntaxe à barre oblique en une référence avec syntaxe à point.
Remarque : Vous devez réaliser cette conversion si vous utilisez ActionScript 2.0 qui ne prend pas
en charge la syntaxe à barre oblique.
Exemple
L’exemple suivant évalue la propriété _droptarget de l’occurrence de clip tasDeTrucs et utilise
eval() pour la convertir d’une syntaxe à barre oblique en une référence avec syntaxe à point. La
référence tasDeTrucs est ensuite comparée avec la référence à l’occurrence de clip poubelle. Si
les deux références sont équivalentes, la visibilité de tasDeTrucs est définie sur false. Si elles ne
sont pas équivalentes, l’occurrence tasDeTrucs est redéfinie sur sa position d’origine.
if (eval(tasDeTrucs._droptarget) == _root.poubelle) {
tasDeTrucs._visible = false;
} else {
tasDeTrucs._x = x_pos;
tasDeTrucs._y = y_pos;
}
Les variables x_pos et y_pos sont définies dans l’image 1 du fichier SWF à l’aide du script
suivant :
x_pos = tasDeTrucs._x;
y_pos = tasDeTrucs._y;
Consultez également
startDrag()
MovieClip._droptarget
559
MovieClip.duplicateMovieClip
Disponibilité
Flash Player 5.
Usage
mon_mc.duplicateMovieClip(nouveauNom, profondeur [,objetInit])
Paramètres
nouveauNom
Un identifiant unique pour le clip dupliqué.
profondeur
Un nombre unique indiquant la profondeur à laquelle le fichier SWF spécifié doit
être placé.
objetInit (Supporté par Flash Player 6 et ultérieur.) Un objet contenant les propriétés avec
lesquelles remplir le clip dupliqué. Ce paramètre permet aux clips créés dynamiquement de
recevoir des paramètres. Si objetInit n’est pas un objet, il est ignoré. Toutes les propriétés de
objetInit sont copiées dans la nouvelle occurrence. Les propriétés spécifiées avec objetInit
peuvent être utilisées par la fonction constructeur. Ce paramètre est facultatif.
Renvoie
Une référence au clip dupliqué.
Description
Méthode : crée une occurrence du clip spécifié pendant la lecture du fichier SWF. Les clips
dupliqués commencent toujours à partir de l’image 1, quelle que soit l’image sur laquelle se trouve
l’animation originale lorsque la méthode duplicateMovieClip() est appelée. Les variables du
clip parent ne sont pas copiées dans le clip dupliqué. Les clips qui ont été créés avec la méthode
duplicateMovieClip() ne sont pas dupliqués si vous appelez la méthode
duplicateMovieClip() pour leur parent. Si le clip parent est effacé, le clip dupliqué l’est
également.
Consultez également
duplicateMovieClip(), MovieClip.removeMovieClip()
560
Chapitre 12 : Dictionnaire ActionScript
MovieClip.enabled
Disponibilité
Flash Player 6.
Usage
mon_mc.enabled
Description
Propriété : valeur booléenne indiquant si un clip de bouton est activé. La valeur par défaut de
enabled est true. Si enabled est défini sur la valeur false, les méthodes de rappel et les
gestionnaires d’événement d’action on du clip de bouton ne sont plus invoqués et les images
Dessus, Bas et Haut sont désactivées. La propriété enabled n’affecte pas le scénario du clip de
bouton ; si un clip est en cours de lecture, cette lecture se poursuit. Le clip continue à recevoir des
événements de clip (par exemple, mouseDown, mouseUp, keyDown et keyUp).
La propriété enabled régit uniquement les propriétés de type bouton d’un clip de bouton. Vous
pouvez changer la propriété enabled à tout moment, le clip de bouton modifié étant
immédiatement activé ou désactivé. La propriété enabled peut être lue à partir d’un objet
prototype. Si enabled est défini sur false, l’objet n’est pas inclus dans l’ordre de tabulation
automatique.
MovieClip.endFill()
Disponibilité
Flash Player 6.
Usage
mon_mc.endFill()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : applique un remplissage aux lignes et aux courbes ajoutées depuis le dernier appel de la
méthode beginFill() ou beginGradientFill(). Flash utilise le remplissage spécifié lors de
l’appel précédent de beginFill() ou beginGradientFill(). Si la position de dessin actuelle
n’est pas égale à la position précédente spécifiée dans une méthode moveTo() et qu’un remplissage
est défini, le trajet est fermé avec un trait, puis rempli.
MovieClip.endFill()
561
MovieClip.focusEnabled
Disponibilité
Flash Player 6.
Usage
mon_mc.focusEnabled
Description
Propriété : si la valeur est undefined ou false, un clip ne peut pas recevoir le focus de saisie, à
moins qu’il ne s’agisse d’un clip de bouton. Si la propriété focusEnabled a pour valeur true, un
clip peut recevoir le focus de saisie, même s’il ne s’agit pas d’un clip de bouton.
MovieClip._focusrect
Disponibilité
Flash Player 6.
Usage
mon_mc._focusrect
Description
Propriété : une valeur booléenne spécifiant si un rectangle jaune apparaît autour du clip avec focus
clavier. Cette propriété peut annuler la propriété _focusrect globale.
562
Chapitre 12 : Dictionnaire ActionScript
MovieClip._framesloaded
Disponibilité
Flash Player 4.
Usage
mon_mc._framesloaded
Description
Propriété (lecture seule) : le nombre d’images chargées depuis un fichier SWF lu en flux continu.
Cette propriété est utile pour déterminer si le contenu d’une image spécifique, et de toutes les
images avant elle, a été chargé et est disponible localement dans le navigateur. Cette propriété est
très utile pour contrôler le processus de téléchargement des fichiers SWF volumineux. Par
exemple, il peut s’avérer utile d’afficher un message aux utilisateurs leur indiquant que le fichier
SWF est en cours de chargement jusqu’à ce qu’une image spécifique contenue dans le fichier SWF
soit chargée.
Exemple
L’exemple suivant utilise la propriété _framesloaded pour démarrer un fichier SWF lorsque
toutes les images sont chargées. Si toutes les images ne sont pas chargées, la propriété _xscale de
l’occurrence de clip loader est accrue proportionnellement pour créer une barre de progrès.
if (_framesloaded >= _totalframes) {
gotoAndPlay ("Séquence 1", "start");
} else {
_root.loader._xscale = (_framesloaded/_totalframes)*100;
}
Consultez également
Classe MovieClipLoader
MovieClip._framesloaded
563
MovieClip.getBounds
Disponibilité
Flash Player 5.
Usage
mon_mc.getBounds(espaceDeCoordonnéesCible)
Paramètres
espaceDeCoordonnéesCible Le chemin cible du scénario dont vous voulez utiliser le système
de coordonnées comme point de référence.
Renvoie
Un objet avec les propriétés xMin, xMax, yMin et yMax.
Description
Méthode : renvoie des propriétés qui sont les valeurs minimum et maximum des coordonnées x et
y de l’occurrence spécifiée par mon_mc pour le paramètre espaceDeCoordonnéesCible.
Remarque : Utilisez MovieClip.localToGlobal() et MovieClip.globalToLocal() pour convertir les
coordonnées locales du clip en coordonnées de scène ou, à l’inverse, les coordonnées de scène en
coordonnées locales.
Exemple
Dans l’exemple suivant, l’objet que renvoie la méthode getBounds() est affecté à l’identifiant
limitesDeClip. Vous pouvez alors accéder aux valeurs de chaque propriété et les utiliser dans un
script. Dans ce script, une autre occurrence de clip, clip2, est placée à côté de clip.
limitesDeClip = clip.getBounds(_root);
clip2._x = limitesDeClip.xMax;
Consultez également
MovieClip.globalToLocal(), MovieClip.localToGlobal()
564
Chapitre 12 : Dictionnaire ActionScript
MovieClip.getBytesLoaded()
Disponibilité
Flash Player 5.
Usage
mon_mc.getBytesLoaded()
Paramètres
Aucun.
Renvoie
Un entier indiquant le nombre d’octets chargés.
Description
Méthode : renvoie le nombre d’octets déjà chargé (transmis) pour le clip spécifié par mon_mc.
Vous pouvez comparer cette valeur avec la valeur renvoyée par MovieClip.getBytesTotal()
pour déterminer quel pourcentage de clip a été chargé.
Consultez également
MovieClip.getBytesTotal()
MovieClip.getBytesTotal()
Disponibilité
Flash Player 5.
Usage
mon_mc.getBytesTotal()
Paramètres
Aucun.
Renvoie
Un nombre entier indiquant la taille totale, en octets, de mon_mc.
Description
Méthode : renvoie la taille, en octets, du clip spécifié par mon_mc. Pour les clips externes (le fichier
SWF racine ou un clip chargé dans une cible ou un niveau), la valeur renvoyée correspond à la
taille du fichier SWF.
Consultez également
MovieClip.getBytesLoaded()
MovieClip.getBytesTotal()
565
MovieClip.getDepth()
Disponibilité
Flash Player 6.
Usage
mon_mc.getDepth()
Paramètres
Aucun.
Renvoie
Un entier.
Description
Méthode : renvoie la profondeur d’une occurrence de clip. Pour plus d’informations, consultez
Gestion des profondeurs de clip, page 135.
Consultez également
MovieClip.getInstanceAtDepth(), MovieClip.getNextHighestDepth(),
MovieClip.swapDepths()
MovieClip.getInstanceAtDepth()
Disponibilité
Flash Player 7.
Usage
mon_mc.getInstanceAtDepth(profondeur)
Paramètres
profondeur
Un nombre entier qui spécifie le niveau de profondeur à interroger.
Renvoie
Une référence à l’occurrence de MovieClip située à la profondeur spécifiée ou undefined si aucun
clip ne se trouve à cette profondeur.
Description
Méthode : vous permet de déterminer si une profondeur particulière est déjà occupée par un clip.
Vous pouvez utiliser cette méthode avant d’utiliser MovieClip.attachMovie(),
MovieClip.duplicateMovieClip ou MovieClip.createEmptyMovieClip() pour déterminer
si le paramètre de profondeur à transmettre à l’une de ces méthodes contient déjà un clip. Pour
plus d’informations, consultez Gestion des profondeurs de clip, page 135.
Consultez également
MovieClip.getDepth(), MovieClip.getNextHighestDepth(), MovieClip.swapDepths()
566
Chapitre 12 : Dictionnaire ActionScript
MovieClip.getNextHighestDepth()
Disponibilité
Flash Player 7.
Usage
mon_mc.getNextHighestDepth()
Paramètres
Aucun.
Renvoie
Un entier représentant le prochain ordre de profondeur disponible qui apparaîtra au-dessus de
tous les autres objets au même niveau et sur le même calque dans mon_mc.
Description
Méthode : vous permet de déterminer une valeur de profondeur qui vous pouvez transmettre à
MovieClip.attachMovie(), MovieClip.duplicateMovieClip, ou
MovieClip.createEmptyMovieClip() pour vérifier que le clip apparaît au-dessus de tous les
autres objets au même niveau et sur le même calque dans le clip actuel. La valeur renvoyée est 0 ou
plus (ainsi, les valeurs négatives ne sont pas renvoyées).
Pour plus d’informations, consultez Gestion des profondeurs de clip, page 135.
Consultez également
MovieClip.getDepth(), MovieClip.getInstanceAtDepth(), MovieClip.swapDepths()
MovieClip.getSWFVersion()
Disponibilité
Flash Player 7.
Usage
mon_mc.getSWFVersion()
Paramètres
Aucun.
Renvoie
Un entier qui spécifie que la version de Flash Player ciblée lors du chargement du fichier SWF
dans mon_mc était publié.
Description
Méthode : renvoie un entier indiquant la version de Flash Player pour laquelle l’objet mon_mc a
été publié. Si mon_mc est un fichier JPEG ou si une erreur se produit et que Flash ne peut pas
déterminer la version SWF de mon_mc , -1 est renvoyé.
MovieClip.getSWFVersion()
567
MovieClip.getTextSnapshot()
Disponibilité
Programmation : Flash MX 2004.
Lecture : fichiers SWF publiés pour Flash Player 6 ou ultérieur, lus dans Flash Player 7 ou
ultérieur.
Usage
mon_mc.getTextSnapshot();
Paramètres
Aucun.
Renvoie
Un objet TextSnapshot contenant le texte statique de mon_mc ou une chaîne vide si mon_mc ne
contient pas de texte statique.
Description
Méthode : renvoie un objet TextSnapshot contenant le texte de tous les champs de texte statiques
dans le clip spécifié ; le texte de clips enfant n’est pas inséré.
Flash concatène le texte et le place dans l’objet TextSnapshot dans un ordre représentant l’ordre
d’indexation des champs de texte statiques dans le clip. Les champs de texte ne comportant pas de
valeurs d’indexation sont placés par ordre aléatoire dans l’objet et précèdent le texte de champs
comportant des valeurs d’indexation. Aucun saut de ligne ou formatage n’indique la fin d’un
champ et le début du suivant.
Remarque : Vous ne pouvez pas spécifier de valeur d’indexation pour du texte statique dans Flash.
D’autres produits le permettent, Macromedia FlashPaper par exemple.
Le contenu de l’objet TextSnapshot n’est pas dynamique, c’est-à-dire que, si le clip se déplace sur
une autre image ou s’il est modifié (si des objets du clip sont ajoutés ou supprimés, par exemple),
l’objet TextSnapshot peut ne pas représenter le texte réel du clip. Pour s’assurer que le contenu de
l’objet est le contenu réel, émettez de nouveau cette commande si nécessaire.
Consultez également
Objet TextSnapshot
568
Chapitre 12 : Dictionnaire ActionScript
MovieClip.getURL()
Disponibilité
Flash Player 5.
Usage
mon_mc.getURL(URL [,fenêtre, variables])
Paramètres
URL
L’URL où se trouve le document à obtenir.
Un paramètre facultatif spécifiant le nom, l’image ou l’expression qui définit la fenêtre
ou le cadre HTML dans lequel le document est chargé. Vous pouvez également utiliser l’un des
noms cible réservés suivants : _self spécifie l’image courante dans la fenêtre courante, _blank
spécifie une nouvelle fenêtre, _parent spécifie le parent de l’image courante et _top spécifie
l’image de premier niveau dans la fenêtre courante.
fenêtre
variables Un paramètre facultatif spécifiant une méthode d’envoi des variables associées au
fichier SWF à charger. S’il n’y a pas de variables, omettez ce paramètre ; sinon, spécifiez si les
variables doivent être chargées avec une méthode GET ou POST. GET ajoute les variables à la fin de
l’URL et est utilisée pour un petit nombre de variables. POST envoie les variables dans un en-tête
HTTP distinct et est utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Méthode : charge un document depuis une URL spécifiée dans la fenêtre spécifiée. La méthode
getURL peut également être utilisée pour transmettre des variables à une autre application définie
à l’URL avec une méthode GET ou POST.
Consultez également
getURL()
MovieClip.getURL()
569
MovieClip.globalToLocal()
Disponibilité
Flash Player 5.
Usage
mon_mc.globalToLocal(point)
Paramètres
point Le nom ou l’identifiant d’un objet créé avec la Classe Object générique. L’objet définit les
coordonnées x et y en tant que propriétés.
Renvoie
Rien.
Description
Méthode : convertit les coordonnées de scène (globales) de l’objet point en coordonnées de clip
(locales).
Exemple
L’exemple suivant convertit les coordonnées x et y de l’objet point en coordonnées locales du clip.
onClipEvent(mouseMove) {
point = new object();
point.x = _root._xmouse;
point.y = _root._ymouse;
globalToLocal(point);
trace(_root._xmouse + " " + _root._ymouse);
trace(point.x + " " + point.y);
updateAfterEvent();
}
Consultez également
MovieClip.getBounds, MovieClip.localToGlobal()
570
Chapitre 12 : Dictionnaire ActionScript
MovieClip.gotoAndPlay()
Disponibilité
Flash Player 5.
Usage
mon_mc.gotoAndPlay(image)
Paramètres
Un nombre représentant le numéro de l’image ou une chaîne représentant l’étiquette de
l’image vers laquelle la tête de lecture est envoyée.
image
Renvoie
Rien.
Description
Méthode : démarre la lecture du fichier SWF à partir de l’image spécifiée. Si vous souhaitez
spécifier une scène ainsi qu’une image, utilisez gotoAndPlay.
MovieClip.gotoAndStop
Disponibilité
Flash Player 5.
Usage
mon_mc.gotoAndStop(image)
Paramètres
image
Le numéro de l’image vers laquelle la tête de lecture est envoyée.
Renvoie
Rien.
Description
Méthode : envoie la tête de lecture à l’image spécifiée de ce clip et l’arrête.
Consultez également
gotoAndStop()
MovieClip.gotoAndStop
571
MovieClip._height
Disponibilité
Flash Player 4.
Usage
mon_mc._height
Description
Propriété : la hauteur du clip, en pixels.
Exemple
L’exemple de code suivant définit la hauteur et la largeur d’un clip lorsque l’utilisateur clique sur
le bouton de la souris.
onClipEvent(mouseDown) {
_width=200;
_height=200;
}
MovieClip._highquality
Disponibilité
Flash Player 6.
Usage
mon_mc._highquality
Description
Propriété (globale) : spécifie le niveau d’anti-aliasing appliqué au fichier SWF en cours. Spécifiez
2 (qualité maximum) pour appliquer une qualité élevée avec le lissage bitmap toujours actif.
Spécifiez 1 (qualité élevée) pour appliquer l’anti-aliasing ; cela permettra de lisser les bitmaps si le
fichier SWF ne contient pas d’animation. Spécifiez 0 (faible qualité) pour empêcher l’antialiasing. Cette propriété peut supplanter la propriété _highquality globale.
Exemple
mon_mc._highquality = 2;
Consultez également
_quality
572
Chapitre 12 : Dictionnaire ActionScript
MovieClip.hitArea
Disponibilité
Flash Player 6.
Usage
mon_mc.hitArea
Renvoie
Une référence à un clip.
Description
Propriété : désigne un autre clip qui servira de zone active pour un clip de bouton. Si la propriété
hitArea n’existe pas ou est null ou undefined, le clip de bouton même est utilisé en tant que
zone active. La valeur de la propriété hitArea peut être une référence à un objet de clip.
Vous pouvez changer la propriété hitArea à tout moment, le clip de bouton modifié prenant
immédiatement le nouveau comportement. Le clip désigné comme zone active n’a pas besoin
d’être visible, sa forme graphique, bien que non visible, étant soumise à un test d’accès. La
propriété hitArea peut être lue à partir d’un objet prototype.
MovieClip.hitTest()
Disponibilité
Flash Player 5.
Usage
mon_mc.hitTest(x, y, baliseDeForme)
mon_mc.hitTest(cible)
Paramètres
x
La coordonnée x de la zone réactive sur la scène.
y
La coordonnée y de la zone réactive sur la scène.
Les coordonnées x et y sont définies dans l’espace de coordonnées global.
cible Le chemin cible de la zone réactive pouvant croiser ou chevaucher l’occurrence spécifiée
par mon_mc. Le paramètre cible représente généralement un bouton ou un champ de saisie de
texte.
baliseDeForme Valeur booléenne spécifiant s’il faut évaluer la forme entière de l’occurrence
spécifiée (true) ou seulement le cadre de délimitation (false). Ce paramètre ne peut être spécifié
que si la zone réactive est identifiée avec les paramètres des coordonnées x et y.
Renvoie
Une valeur booléenne true si mon_mc chevauche la zone réactive, false dans les autres cas.
MovieClip.hitTest()
573
Description
Méthode : évalue l’occurrence spécifiée par mon_mc pour voir si elle chevauche ou croise la zone
réactive identifiée par cible ou les paramètres des coordonnées x et y.
Usage 1 : compare les coordonnées x et y avec la forme ou le cadre de délimitation de l’occurrence
spécifiée, en fonction du paramètre baliseDeForme. Si baliseDeForme est défini sur true, seule
la zone occupée actuellement par l’occurrence sur la scène est évaluée, et si x et y se recouvrent,
une valeur true est renvoyée. Cela est utile pour déterminer si le clip se trouve dans une zone
sensible spécifiée.
Usage 2 : évalue les cadres de délimitation de cible et de l’occurrence spécifiée et renvoie true
s’ils se croisent ou se recouvrent en un point.
Exemple
L’exemple suivant utilise hitTest() avec les propriétés x_mouse et y_mouse pour déterminer si la
souris se trouve sur le cadre de délimitation de la cible :
if (hitTest( _root._xmouse, _root._ymouse, false));
L’exemple suivant utilise hitTest() pour déterminer si le clip balle chevauche ou croise le clip
carré :
if(_root.balle.hitTest(_root.carré)){
trace("balle croise carré");
}
Consultez également
MovieClip.getBounds, MovieClip.globalToLocal(), MovieClip.localToGlobal()
MovieClip.lineStyle()
Disponibilité
Flash Player 6.
Usage
mon_mc.lineStyle ([épaisseur[, rvb[, alpha]]])
Paramètres
épaisseur Un entier qui indique l’épaisseur de la ligne en points, les valeurs valides allant de 0
à 255. Si aucun nombre n’est spécifié ou si le paramètre est undefined, aucune ligne n’est tracée.
Si une valeur inférieure à 0 est transmise, Flash utilise 0. La valeur 0 indique une épaisseur très
fine, l’épaisseur maximum étant 255. Si une valeur supérieure à 255 est transmise, l’interprète de
Flash utilise 255.
Une valeur chromatique hexadécimale (par exemple, le rouge correspond à 0xFF0000, le
bleu correspond à 0x0000FF, etc.) de la ligne. Si aucune valeur n’est indiquée, Flash utilise
0x000000 (noir).
rvb
alpha Un entier indiquant la valeur alpha de la couleur du trait ; les valeurs valides sont
comprises entre 0 et 100. Lorsqu’aucune valeur n’est indiquée, Flash utilise 100 (uni). Si la valeur
est inférieure à 0, Flash utilise 0. Si la valeur est supérieure à 100, Flash utilise 100.
574
Chapitre 12 : Dictionnaire ActionScript
Renvoie
Rien.
Description
Méthode : spécifie un style de trait que Flash utilise pour les appels ultérieurs aux méthodes
lineTo() et curveTo(), jusqu’à ce que vous appeliez lineStyle() avec des paramètres
différents. Vous pouvez appeler la méthode lineStyle() au milieu d’une opération de dessin
d’un chemin afin de spécifier différents styles pour différents segments de ligne au sein d’un
chemin.
Remarque : Les appels de clear réinitialisent la méthode lineStyle() à undefined.
Exemple
Le code suivant trace un triangle avec un trait magenta de 5 points et aucun remplissage.
_root.createEmptyMovieClip( "triangle", 1 );
with ( _root.triangle )
{
lineStyle( 5, 0xff00ff, 100 );
moveTo( 200, 200 );
lineTo( 300,300 );
lineTo(100,300);
lineTo( 200, 200 );
}
Consultez également
MovieClip.beginFill(), MovieClip.beginGradientFill(), MovieClip.clear(),
MovieClip.curveTo(), MovieClip.lineTo, MovieClip.moveTo
MovieClip.lineTo
Disponibilité
Flash Player 6.
Usage
mon_mc.lineTo(x, y)
Paramètres
x
Un entier indiquant la position horizontale du clip parent par rapport au point d’alignement.
y
Un entier indiquant la position verticale du clip parent par rapport au point d’alignement.
Renvoie
Rien.
MovieClip.lineTo
575
Description
Méthode : dessine une ligne avec le style de trait courant de la position actuelle à (x, y), la position
de dessin actuelle étant alors définie à (x, y). Si le clip dans lequel vous dessinez contient un
contenu créé avec les outils de dessin de Flash, les appels à lineTo() sont dessinés au-dessous de
ce contenu. Si vous appelez la méthode lineTo() avant tout appel à la méthode moveTo(), la
position actuelle du dessin est par défaut (0, 0). Cette méthode échoue lorsque des paramètres
sont absents et la position de dessin courante n’est pas changée.
Exemple
L’exemple suivant trace un triangle sans trait et avec un remplissage bleu partiellement
transparent.
_root.createEmptyMovieClip ("triangle", 1);
with (_root.triangle){
beginFill (0x0000FF, 50);
lineStyle (5, 0xFF00FF, 100);
moveTo (200, 200);
lineTo (300, 300);
lineTo (100, 300);
lineTo (200, 200);
endFill();
}
Consultez également
MovieClip.beginFill(), MovieClip.createEmptyMovieClip(), MovieClip.endFill(),
MovieClip.lineStyle(), MovieClip.moveTo
576
Chapitre 12 : Dictionnaire ActionScript
MovieClip.loadMovie
Disponibilité
Flash Player 5.
Usage
mon_mc.loadMovie("url" [,variables])
Paramètres
L’URL absolue ou relative du fichier SWF ou JPEG à charger. Un chemin relatif doit être
relatif au fichier SWF au niveau 0. Des URL absolues doivent inclure la référence au protocole,
comme http:// ou file:///.
url
variables Un paramètre facultatif spécifiant une méthode HTTP d’envoi ou de chargement
des variables. Le paramètre doit être la chaîne GET ou POST. Omettez ce paramètre si aucune
variable ne doit être envoyée. La méthode GET ajoute les variables à la fin de l’URL et est utilisée
pour des petits nombres de variables. La méthode POST envoie les variables dans un en-tête
HTTP distinct et est utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Méthode : charge des fichiers SWF ou JPEG dans un clip dans Flash Player pendant la lecture du
fichier SWF d’origine.
Conseil : Si vous souhaitez suivre la progression du téléchargement, utilisez
MovieClipLoader.loadClip() au lieu de cette fonction.
Sans la méthode loadMovie(), Flash Player affiche un seul fichier SWF avant de quitter. La
méthode loadMovie() vous permet d’afficher plusieurs fichiers SWF simultanément et de
basculer entre les fichiers SWF sans charger un autre document HTML.
Un fichier SWF ou une image chargée dans un clip hérite des propriétés de position, rotation et
échelle de ce clip. Vous pouvez utiliser le chemin cible du clip pour cibler le fichier SWF chargé.
Utilisez la méthode unloadMovie() pour retirer les fichiers ou images SWF chargés avec la
méthode loadMovie(). Utilisez la méthode loadVariables pour garder le fichier SWF actif et
mettre les variables à jour avec de nouvelles valeurs.
Consultez également
loadMovie(), loadMovieNum(), MovieClip.loadVariables(), MovieClip.unloadMovie(),
unloadMovie(), unloadMovieNum()
MovieClip.loadMovie
577
MovieClip.loadVariables()
Disponibilité
Flash Player 5 ; comportement mis à jour dans Flash Player 7.
Usage
mon_mc.loadVariables("url", variables)
Paramètres
L’URL absolue ou relative du fichier externe contenant les variables à charger. Si le fichier
SWF résultant de cet appel est ouvert dans un navigateur web, l’url doit être du même domaine
que le fichier SWF ; pour plus de détails, consultez la description ci-dessous.
url
variables Un paramètre facultatif spécifiant une méthode HTTP d’envoi des variables. Le
paramètre doit être la chaîne GET ou POST. Omettez ce paramètre si aucune variable ne doit être
envoyée. La méthode GET ajoute les variables à la fin de l’URL et est utilisée pour des petits
nombres de variables. La méthode POST envoie les variables dans un en-tête HTTP distinct et est
utilisée pour les longues chaînes de variables.
Renvoie
Rien.
Description
Méthode : lit les données depuis un fichier externe et définit les valeurs pour les variables de
mon_mc. Le fichier externe peut être un fichier texte généré par un script CGI, Active Server Page
(ASP) ou un script PHP, et peut contenir n’importe quel nombre de variables.
Cette méthode peut également être utilisée pour mettre à jour des variables dans le clip actif avec
de nouvelles valeurs.
Cette méthode nécessite que le texte de l’URL soit au format standard MIME : application/xwww-form-urlencoded (format script CGI).
Dans des fichiers SWF exécutés dans une version du lecteur antérieure à Flash Player 7, l’url doit
être du même super-domaine que le fichier SWF résultant de cet appel. Par exemple, un fichier
SWF à l’adresse www.Domaine.com peut charger des variables d’un fichier SWF à l’adresse
store.Domaine.com car les deux fichiers sont du même super-domaine de Domaine.com.
Dans des fichiers SWF d’une quelconque version exécutée dans Flash Player 7 ou ultérieur, l’url
doit être exactement du même domaine (consultez Fonctions de sécurité de Flash Player, page 199).
Par exemple, un fichier SWF à l’adresse www.Domaine.com peut uniquement charger des
variables de fichiers SWF également à l’adresse www.Domaine.com. Si vous souhaitez charger des
variables d’un autre domaine, vous pouvez placer un fichier de régulation inter-domaines sur le
serveur hébergeant le fichier SWF auquel vous accédez actuellement. Pour plus d’informations,
consultez A propos de l’autorisation de chargement de données inter-domaines, page 201.
Consultez également
loadMovie(), loadVariables(), loadvariablesNum(), MovieClip.unloadMovie()
578
Chapitre 12 : Dictionnaire ActionScript
MovieClip.localToGlobal()
Disponibilité
Flash Player 5.
Usage
mon_mc.localToGlobal(point)
Paramètres
point Le nom ou l’identifiant d’un objet créé avec la Classe Object, spécifiant les coordonnées
x et y comme propriétés.
Renvoie
Rien.
Description
Méthode : convertit les coordonnées du clip (locales) de l’objet point en coordonnées de scène
(globales).
Exemple
L’exemple suivant convertit les coordonnées x et y de l’objet point, des coordonnées du clip
(locales) en coordonnées de scène (globales). Les coordonnées locales x et y sont spécifiées à l’aide
des propriétés _xmouse et _ymouse pour récupérer les coordonnées x et y de la position du
pointeur de la souris.
onClipEvent(mouseMove) {
point = new object();
point.x = _xmouse;
point.y = _ymouse;
_root.out3 = point.x + " === " + point.y;
_root.out = _root._xmouse + " === " + _root._ymouse;
localToGlobal(point);
_root.out2 = point.x + " === " + point.y;
updateAfterEvent();
}
Consultez également
MovieClip.globalToLocal()
MovieClip.localToGlobal()
579
MovieClip._lockroot
Disponibilité
Flash Player 7.
Usage
mon_mc._lockroot
Description
Propriété : spécifie la référence de _root lors du chargement d’un fichier SWF dans un clip. La
propriété _lockroot est undefined par défaut. Vous pouvez définir cette propriété dans le fichier
SWF en cours de chargement ou dans le gestionnaire qui charge le clip.
Par exemple, supposons que vous possédiez un fichier nommé Jeux.fla qui permet à un utilisateur
de choisir un jeu et de le charger (par exemple, Echecs.swf ) dans le clip jeux_mc. Vous souhaitez
être sûr que, si _root est utilisé dans Echecs.swf, il se rapporte toujours à _root dans Echecs.swf
après avoir été chargé dans Jeux.swf. Si vous avez accès à Echecs.fla et pouvez le publier dans Flash
Player 7 ou ultérieur, vous pouvez y ajouter cette instruction :
this._lockroot = true;
Si vous n’avez pas accès à Echecs.fla (par exemple, si vous chargez Echecs.swf depuis le site de
quelqu’un d’autre), vous pouvez définir ses propriétés _lockroot lors de son chargement, comme
indiqué ci-dessous. Dans ce cas, Echecs.swf peut être publié avec n’importe quelle version de Flash
Player, tant que Jeux.swf est publié pour FlashPlayer 7 ou ultérieur.
onClipEvent (load)
{
this._lockroot = true;
}
jeu_mc.loadMovie ("Echecs.swf");
Si vous n’utilisez pas l’instruction this._lockroot = true dans aucun des deux fichiers SWF,
_root dans Echecs.swf fait référence à _root dans Jeux.swf une fois que Echecs.swf est chargé
dans Jeux.swf.
Consultez également
_root, MovieClip.attachMovie(), MovieClip.loadMovie
580
Chapitre 12 : Dictionnaire ActionScript
MovieClip.menu
Disponibilité
Flash Player 7.
Utilisation
mon_mc.menu = contextMenu
Paramètres
menuContextuel
Un objet ContextMenu.
Description
Propriété : associe l’objet ContextMenu spécifié au clip mon_mc. La classe ContextMenu vous
permet de modifier le menu contextuel qui apparaît quand l’utilisateur clique avec le bouton droit
de la souris (Windows) ou enfonce la touche Contrôle (Macintosh) dans Flash Player.
Exemple
L’exemple suivant affecte l’objet ContextMenu menu_cm au clip content_mc. L’objet
ContextMenu contient une option de menu personnalisée intitulée « Imprimer... » dont le
gestionnaire de rappel associé est nommé doPrint().
var menu_cm = new ContextMenu();
menu_cm.customItems.push(nouveau ContextMenuItem("Imprimer...", doPrint));
function doPrint(menu, obj) {
// Code "Imprimer" ici
}
content_mc.menu = menu_cm;
Voir aussi
Button.menu, Classe ContextMenu, Classe ContextMenuItem, TextField.menu
MovieClip.menu
581
MovieClip.moveTo
Disponibilité
Flash Player 6.
Usage
mon_mc.moveTo(x, y)
Paramètres
x
Un entier indiquant la position horizontale du clip parent par rapport au point d’alignement.
y
Un entier indiquant la position verticale du clip parent par rapport au point d’alignement.
Renvoie
Rien.
Description
Méthode : place la position de dessin actuelle à (x, y). Cette méthode échoue lorsque des
paramètres sont absents et la position de dessin courante n’est pas changée.
Exemple
Cet exemple trace un triangle avec des lignes magenta de 5 points continues, sans remplissage. La
première ligne crée un clip vide pour commencer le dessin. Un type de ligne est défini à l’intérieur
de l’instruction with, puis la position de dessin de début est indiquée par la méthode moveTo().
_root.createEmptyMovieClip( "triangle", 1 );
with ( _root.triangle )
{
lineStyle( 5, 0xff00ff, 100 );
moveTo( 200, 200 );
lineTo( 300,300 );
lineTo(100,300);
lineTo( 200, 200 );
}
Consultez également
MovieClip.createEmptyMovieClip(), MovieClip.lineStyle(), MovieClip.lineTo
582
Chapitre 12 : Dictionnaire ActionScript
MovieClip._name
Disponibilité
Flash Player 4.
Usage
mon_mc._name
Description
Propriété : le nom d’occurrence du clip spécifié par mon_mc.
MovieClip.nextFrame()
Disponibilité
Flash Player 5.
Usage
mon_mc.nextFrame()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : envoie la tête de lecture à l’image suivante et l’arrête.
Consultez également
nextFrame()
MovieClip.onData
Disponibilité
Flash Player 6.
Usage
mon_mc.onData = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
MovieClip.onData
583
Description
Gestionnaire d’événement : invoqué lorsqu’un clip reçoit des données d’un appel
loadVariables() ou loadMovie(). Vous devez définir une fonction exécutée lorsque le
gestionnaire d’événement est invoqué.
Ce gestionnaire ne peut être utilisé qu’avec les clips dont vous possédez un symbole associé à une
classe dans la bibliothèque. Si vous souhaitez qu’un gestionnaire d’événement soit appelé
lorsqu’un clip spécifique reçoit des données, vous devez utiliser onClipEvent(data) à la place de
ce gestionnaire. Ce dernier est invoqué lorsqu’un clip reçoit des données.
Exemple
L’exemple suivant montre comment utiliser correctement MovieClip.onData() et
onClipEvent(data).
// symbol_mc est un symbole de clip dans la bibliothèque.
// Il est associé à la classe MovieClip.
// La fonction suivante est déclenchée pour chaque occurrence de symbol_mc
// lors de la réception de données.
symbol_mc.onData = function() {
trace("Le clip a reçu des données");
}
// dynamic_mc est un clip chargé avec MovieClip.loadMovie().
// Ce code tente d’appeler une fonction lorsque le clip est chargé,
// mais sans succès, car le fichier SWF chargé n’est pas un symbole contenu
// dans la bibliothèque et associé à la classe MovieClip.
function output()
{
trace("Ne sera pas appelé.");
}
dynamic_mc.onData = output;
dynamic_mc.loadMovie("remplacement.swf");
// La fonction suivante est appelée pour tout clip
// recevant des données, qu’il soit dans la bibliothèque ou non.
// Cette fonction est donc appelée lorsque symbol_mc est instancié
// et lorsque remplacement.swf est chargé.
OnClipEvent( data ) {
trace("Le clip a reçu des données");
}
Consultez également
onClipEvent()
584
Chapitre 12 : Dictionnaire ActionScript
MovieClip.onDragOut
Disponibilité
Flash Player 6.
Usage
mon_mc.onDragOut = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque vous cliquez sur le bouton de la souris et que le
pointeur sort de l’objet. Vous devez définir une fonction exécutée lorsque le gestionnaire
d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onDragOut qui envoie une action
trace() au panneau de sortie.
mon_mc.onDragOut = function () {
trace ("onDragOut appelé");
};
Consultez également
MovieClip.onDragOver
MovieClip.onDragOut
585
MovieClip.onDragOver
Disponibilité
Flash Player 6.
Usage
mon_mc.onDragOver = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le pointeur est sorti avant d’être repositionné audessus du clip. Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est
invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onDragOver qui envoie une action
trace() au panneau de sortie.
mon_mc.onDragOver = function () {
trace ("onDragOver appelé");
};
Consultez également
MovieClip.onDragOut
586
Chapitre 12 : Dictionnaire ActionScript
MovieClip.onEnterFrame
Disponibilité
Flash Player 6.
Usage
mon_mc.onEnterFrame = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué continuellement à la cadence du fichier SWF. Les actions
associées à l’événement de clip enterFrame sont traitées avant les actions associées aux images
affectées.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onEnterFrame qui envoie une action
trace() au panneau de sortie.
mon_mc.onEnterFrame = function () {
trace ("onEnterFrame appelé");
};
MovieClip.onEnterFrame
587
MovieClip.onKeyDown
Disponibilité
Flash Player 6.
Usage
mon_mc.onKeyDown = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un clip a le focus de saisie et qu’une touche est
enfoncée. Le gestionnaire d’événement onKeyDown est invoqué sans paramètres. Vous pouvez
utiliser les méthodes Key.getAscii() et Key.getCode() pour déterminer quelle touche a été
enfoncée. Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est
invoqué.
Le gestionnaire d’événement onKeyDown ne fonctionne que si le focus de saisie du clip est activé et
défini. D’abord, la propriété focusEnabled du clip doit être définie sur la valeur true. Ensuite, le
clip doit disposer d’un focus. Pour cela, utilisez Selection.setFocus ou définissez la touche
tabulation pour naviguer vers le clip.
Si vous utilisez Selection.setFocus, le chemin du clip doit être affecté à
Selection.setFocus. D’autres éléments peuvent très facilement reprendre le focus une fois que
la souris est déplacée.
Exemple
L’exemple suivant définit une fonction pour la méthode onKeyDown() qui envoie une action
trace() au panneau de sortie.
mon_mc.onKeyDown = function () {
trace ("onKeyDown appelé");
};
L’exemple suivant définit le focus de saisie.
MovieClip.focusEnabled = true;
Selection.setFocus(MovieClip);
Consultez également
MovieClip.onKeyUp
588
Chapitre 12 : Dictionnaire ActionScript
MovieClip.onKeyUp
Disponibilité
Flash Player 6.
Usage
mon_mc.onKeyUp = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’une touche est relâchée. Le gestionnaire d’événement
onKeyUp est invoqué sans paramètres. Vous pouvez utiliser les méthodes Key.getAscii() et
Key.getCode() pour déterminer quelle touche a été enfoncée. Vous devez définir une fonction
exécutée lorsque le gestionnaire d’événement est invoqué.
Le gestionnaire d’événement onKeyUp ne fonctionne que si le focus de saisie du clip est activé et
défini. D’abord, la propriété focusEnabled du clip doit être définie sur la valeur true. Ensuite, le
clip doit disposer d’un focus. Pour cela, utilisez Selection.setFocus ou définissez la touche
tabulation pour naviguer vers le clip.
Si vous utilisez Selection.setFocus, le chemin du clip doit être affecté à
Selection.setFocus. D’autres éléments peuvent très facilement reprendre le focus une fois que
la souris est déplacée.
Exemple
L’exemple suivant définit une fonction pour la méthode onKeyUp qui envoie une action trace()
au panneau de sortie.
mon_mc.onKeyUp = function () {
trace ("onKeyUp appelé");
};
L’exemple suivant définit le focus de saisie :
MovieClip.focusEnabled = true;
Selection.setFocus(MovieClip);
MovieClip.onKeyUp
589
MovieClip.onKillFocus
Disponibilité
Flash Player 6.
Usage
mon_mc.onKillFocus = function (nouveauFocus) {
// vos instructions
}
Paramètres
nouveauFocus
L’objet recevant le focus clavier.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un clip perd le focus clavier. La méthode
onKillFocus reçoit un paramètre, nouveauFocus, qui est un objet représentant le nouvel objet
recevant le focus. Si aucun objet ne reçoit le focus, nouveauFocus contient la valeur null.
MovieClip.onLoad
Disponibilité
Flash Player 6.
Usage
mon_mc.onLoad = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le clip est instancié et apparaît dans le scénario. Vous
devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Ce gestionnaire ne peut être utilisé qu’avec les clips dont vous possédez un symbole associé à une
classe dans la bibliothèque. Si vous souhaitez qu’un gestionnaire d’événement soit invoqué
lorsqu’un clip spécifique est chargé, par exemple lorsque vous utilisez MovieClip.loadMovie()
pour charger dynamiquement un fichier SWF, vous devez utiliser onClipEvent(load) à la place
de ce gestionnaire. Ce dernier est invoqué lorsqu’un clip est chargé.
590
Chapitre 12 : Dictionnaire ActionScript
Exemple
L’exemple suivant montre comment utiliser correctement MovieClip.onLoad() et
onClipEvent(load).
// symbol_mc est un symbole de clip dans la bibliothèque.
// Il est associé à la classe MovieClip.
// La fonction suivante est déclenchée pour chaque occurrence de symbol_mc
// lorsqu’il est instancié et apparaît dans le scénario.
symbol_mc.onLoad = function() {
trace("Le clip est chargé");
}
// dynamic_mc est un clip chargé avec MovieClip.loadMovie().
// Ce code tente d’appeler une fonction lorsque le clip est chargé,
// mais sans succès, car le fichier SWF chargé n’est pas un symbole contenu
// dans la bibliothèque et associé à la classe MovieClip.
function output()
{
trace("Ne sera pas appelé.");
}
dynamic_mc.onLoad = output;
dynamic_mc.loadMovie("remplacement.swf");
// La fonction suivante est appelée pour tout clip
// apparaît dans le scénario, qu’il soit dans la bibliothèque ou non.
// Cette fonction est donc appelée lorsque symbol_mc est instancié
// et lorsque remplacement.swf est chargé.
OnClipEvent( load ) {
trace("Le clip est chargé");
}
Consultez également
onClipEvent()
MovieClip.onMouseDown
Disponibilité
Flash Player 6.
Usage
mon_mc.onMouseDown = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le bouton de la souris est enfoncé. Vous devez définir
une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
MovieClip.onMouseDown
591
Exemple
L’exemple suivant définit une fonction pour la méthode onMouseDown qui envoie une action
trace() au panneau de sortie.
mon_mc.onMouseDown = function () {
trace ("onMouseDown appelé");
}
MovieClip.onMouseMove
Disponibilité
Flash Player 6.
Usage
mon_mc.onMouseMove = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque la souris se déplace. Vous devez définir une fonction
exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onMouseMove qui envoie une action
trace() au panneau de sortie.
mon_mc.onMouseMove = function () {
trace ("onMouseMove appelé");
};
592
Chapitre 12 : Dictionnaire ActionScript
MovieClip.onMouseUp
Disponibilité
Flash Player 6.
Usage
mon_mc.onMouseUp = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le bouton de la souris est relâché. Vous devez définir
une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onMouseUp qui envoie une action
trace() au panneau de sortie.
mon_mc.onMouseUp = function () {
trace ("onMouseUp appelé");
};
MovieClip.onMouseUp
593
MovieClip.onPress
Disponibilité
Flash Player 6.
Usage
mon_mc.onPress = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque l’utilisateur clique sur la souris alors que le pointeur
est sur un clip. Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est
invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onPress qui envoie une action trace()
au panneau de sortie.
mon_mc.onPress = function () {
trace ("onPress appelé");
};
594
Chapitre 12 : Dictionnaire ActionScript
MovieClip.onRelease
Disponibilité
Flash Player 6.
Usage
mon_mc.onRelease = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un clip de bouton est relâché. Vous devez définir une
fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onPress qui envoie une action trace()
au panneau de sortie.
mon_mc.onRelease = function () {
trace ("onRelease appelé");
};
MovieClip.onRelease
595
MovieClip.onReleaseOutside
Disponibilité
Flash Player 6.
Usage
mon_mc.onReleaseOutside = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque la souris est relâchée pendant que le pointeur se
trouve au dehors du clip après l’enfoncement du bouton pendant que le pointeur est à l’intérieur
du clip.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onReleaseOutside qui envoie une
action trace() au panneau de sortie.
mon_mc.onReleaseOutside = function () {
trace ("onReleaseOutside appelé");
};
596
Chapitre 12 : Dictionnaire ActionScript
MovieClip.onRollOut
Disponibilité
Flash Player 6.
Usage
mon_mc.onRollOut = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le pointeur passe à l’extérieur de la zone d’un clip.
Vous devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onRollOut qui envoie une action
trace() au panneau de sortie.
mon_mc.onRollOut = function () {
trace ("onRollOut appelé");
};
MovieClip.onRollOut
597
MovieClip.onRollOver
Disponibilité
Flash Player 6.
Usage
mon_mc.onRollOver = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsque le pointeur passe au-dessus de la zone d’un clip. Vous
devez définir une fonction exécutée lorsque le gestionnaire d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode onRollOver qui envoie une action
trace() au panneau de sortie.
mon_mc.onRollOver = function () {
trace ("onRollOver appelé");
};
MovieClip.onSetFocus
Disponibilité
Flash Player 6.
Usage
mon_mc.onSetFocus = function(ancienFocus){
// vos instructions
}
Paramètres
ancienFocus
L’objet devant perdre le focus.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué lorsqu’un clip reçoit le focus clavier. Le paramètre
ancienFocus est l’objet perdant le focus. Par exemple, si l’utilisateur appuie sur la touche Tab
pour faire passer le focus de saisie d’un clip à un champ de texte, ancienFocus contient
l’occurrence de clip.
Si aucun objet n’a précédemment reçu le focus, ancienFocus contient une valeur null.
598
Chapitre 12 : Dictionnaire ActionScript
MovieClip.onUnload
Disponibilité
Flash Player 6.
Usage
mon_mc.onUnload = function() {
// vos instructions
}
Paramètres
Aucun.
Renvoie
Rien.
Description
Gestionnaire d’événement : invoqué dans la première image après la suppression du clip du
scénario. Flash traite les actions associées au gestionnaire d’événement onUnload avant d’associer
toute action à l’image affectée. Vous devez définir une fonction exécutée lorsque le gestionnaire
d’événement est invoqué.
Exemple
L’exemple suivant définit une fonction pour la méthode MovieClip.onLoad qui envoie une
action trace() au panneau de sortie.
mon_mc.onUnload = function () {
trace ("onUnload appelé");
};
MovieClip.onUnload
599
MovieClip._parent
Disponibilité
Flash Player 5.
Usage
mon_mc._parent.propriété
_parent.propriété
Description
Propriété : une référence au clip ou à l’objet contenant le clip ou objet courant. L’objet courant est
l’objet contenant le code ActionScript faisant référence à _parent. Utilisez la propriété _parent
pour spécifier un chemin relatif aux clips ou objets qui se trouvent au-dessus du clip ou objet
actuel.
Vous pouvez utiliser _parent pour monter de plusieurs niveaux dans la liste d’affichage, comme
dans l’exemple suivant :
_parent._parent._alpha = 20;
Consultez également
Button._parent, _root, targetPath, TextField._parent
MovieClip.play()
Disponibilité
Flash Player 5.
Usage
mon_mc.play()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : déplace la tête de lecture dans le clip.
Consultez également
play()
600
Chapitre 12 : Dictionnaire ActionScript
MovieClip.prevFrame()
Disponibilité
Flash Player 5.
Usage
mon_mc.prevFrame()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : envoie la tête de lecture à l’image précédente et l’arrête.
Consultez également
prevFrame()
MovieClip.removeMovieClip()
Disponibilité
Flash Player 5.
Usage
mon_mc.removeMovieClip()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : renvoie une occurrence de clip créée avec duplicateMovieClip(),
MovieClip.duplicateMovieClip, ou MovieClip.attachMovie().
MovieClip.removeMovieClip()
601
MovieClip._rotation
Disponibilité
Flash Player 4.
Usage
mon_mc._rotation
Description
Propriété : la rotation du clip, en degrés, à partir de son orientation d’origine. Les valeurs de 0
à 180 représentent une rotation dans le sens horaire ; les valeurs de 0 à -180 représentent une
rotation dans le sens antihoraire. Les valeurs en dehors de cette plage sont ajoutées à ou soustraites
de 360 pour obtenir une valeur comprise dans la plage. Par exemple, l’instruction
mon_mc._rotation = 450 est identique à l’instruction mon_mc._rotation = 90.
Consultez également
Button._rotation, TextField._rotation
602
Chapitre 12 : Dictionnaire ActionScript
MovieClip.setMask()
Disponibilité
Flash Player 6.
Usage
mon_mc.setMask(masque_mc)
Paramètres
mon_mc
Le nom d’occurrence d’un clip à masquer.
masque_mc
Le nom d’occurrence d’un clip devant être un masque.
Renvoie
Rien.
Description
Méthode : transforme le clip du paramètre masque_mc en masque révélant le clip spécifié par le
paramètre mon_mc.
Cette méthode permet à des clips multi-images, avec un contenu complexe et multi-calques,
d’agir en tant que masques. Vous pouvez activer et désactiver les masques à l’exécution.
Cependant, vous ne pouvez pas utiliser le même masque pour masquer plusieurs objets (ce qui est
possible en utilisant des calques de masque). Les polices de périphérique présentes dans un clip
masqué sont tracées mais pas masquées. Vous ne pouvez pas définir un clip comme étant son
propre masque, par exemple, mon_mc.setMask(mon_mc).
Si vous créez un calque de masque qui contient un clip et que vous lui appliquez la méthode
setMask(), l’appel setMask() est prioritaire et son effet est irréversible. Par exemple, vous
pourriez avoir un clip dans un calque de masque appelé MasqueUI qui masque un autre calque
contenant un autre clip appelé MasqueurUI. Si, à la lecture du fichier SWF, vous appelez
MasqueUI.setMask(MasqueurUI), à partir de ce moment-là, MasqueUI est masqué par
MasqueurUI.
Pour annuler un masque créé avec ActionScript, transmettez la valeur null à la méthode
setMask(). Le code suivant annule le masque sans affecter le calque de masque dans le scénario.
MasqueUI.setMask(null);
Exemple
L’exemple de code suivant utilise le clip masqueCercle_mc pour masquer le clip leMasqueur_mc.
leMasqueur_mc.setMask(masqueCercle_mc);
MovieClip.setMask()
603
MovieClip._soundbuftime
Disponibilité
Flash Player 6.
Usage
mon_mc._soundbuftime
Description
Propriété (globale) : un entier spécifiant le nombre de secondes de mise en tampon d’un son avant
sa lecture en flux continu.
MovieClip.startDrag()
Disponibilité
Flash Player 5.
Usage
mon_mc.startDrag([verrouiller, [gauche, haut, droite, bas]])
Paramètres
Une valeur booléenne spécifiant si le clip déplaçable est verrouillé au centre de la
position de la souris (true) ou verrouillé sur le point auquel l’utilisateur a cliqué sur le clip
(false). Ce paramètre est facultatif.
verrouiller
gauche, haut, droite, bas Valeurs relatives aux coordonnées du parent du clip spécifiant un
rectangle de contrainte pour le clip. Ces paramètres sont facultatifs.
Renvoie
Rien.
Description
Méthode : permet à l’utilisateur de faire glisser le clip spécifié. Le clip reste déplaçable jusqu’à ce
qu’il soit explicitement arrêté par un appel de MovieClip.stopDrag() ou qu’un autre clip
devienne déplaçable. On ne peut faire glisser qu’un seul clip à la fois.
Consultez également
MovieClip._droptarget, startDrag(), MovieClip.stopDrag()
604
Chapitre 12 : Dictionnaire ActionScript
MovieClip.stop()
Disponibilité
Flash Player 5.
Usage
mon_mc.stop()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : arrête la lecture du clip courant.
Consultez également
stop()
MovieClip.stopDrag()
Disponibilité
Flash Player 5.
Usage
mon_mc.stopDrag()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : termine une méthode MovieClip.startDrag() Une animation rendue déplaçable
avec cette méthode reste déplaçable jusqu’à l’ajout d’une méthode stopDrag() ou jusqu’à ce
qu’une autre animation devienne déplaçable. On ne peut faire glisser qu’un seul clip à la fois.
Consultez également
MovieClip._droptarget, MovieClip.startDrag(), stopDrag()
MovieClip.stopDrag()
605
MovieClip.swapDepths()
Disponibilité
Flash Player 5.
Usage
mon_mc.swapDepths(profondeur)
mon_mc.swapDepths(cible)
Paramètres
profondeur
Un nombre spécifiant le niveau de profondeur auquel mon_mc doit être placé.
Une chaîne spécifiant l’occurrence de clip dont la profondeur est permutée par
l’occurrence spécifiée par mon_mc. Les deux occurrences doivent avoir le même clip parent.
cible
Renvoie
Rien.
Description
Méthode : permute l’ordre d’empilement, ou ordre z (niveau de profondeur), de l’occurrence
spécifiée (mon_mc) avec le clip spécifié par le paramètre cible ou avec le clip occupant
actuellement le niveau spécifié dans le paramètre profondeur. Les deux clips doivent avoir le
même clip parent. La permutation du niveau de profondeur des clips a pour effet de déplacer un
clip devant ou derrière l’autre. Si un clip est en cours d’interpolation lors de l’appel de cette
méthode, l’interpolation est arrêtée. Pour plus d’informations, consultez Gestion des profondeurs de
clip, page 135.
Consultez également
_level, MovieClip.getDepth(), MovieClip.getInstanceAtDepth(),
MovieClip.getNextHighestDepth()
606
Chapitre 12 : Dictionnaire ActionScript
MovieClip.tabChildren
Disponibilité
Flash Player 6.
Usage
mon_mc.tabChildren
Description
Propriété : undefined par défaut. Si tabChildren a pour valeur undefined ou true, les enfants
du clip sont inclus dans l’ordre de tabulation automatique. Si la valeur de tabChildren est
false, les enfants du clip ne sont pas inclus dans l’ordre de tabulation automatique.
Exemple
Un objet d’interface de zone de liste construit en tant que clip contient plusieurs éléments.
L’utilisateur peut cliquer sur chaque élément pour le sélectionner, de sorte que chaque élément est
un bouton. Cependant, seule la zone de liste même devrait être un arrêt de tabulation. Les
éléments à l’intérieur de la zone de liste devraient être exclus de l’ordre de tabulation. Pour ce
faire, la propriété tabChildren de la zone de liste devrait être définie sur false.
La propriété tabChildren n’a aucun effet si la propriété tabIndex est utilisée. La propriété
tabChildren n’affecte que l’ordre de tabulation automatique.
Consultez également
Button.tabIndex, mon_mc.tabEnabled, MovieClip.tabIndex, TextField.tabIndex
MovieClip.tabChildren
607
mon_mc.tabEnabled
Disponibilité
Flash Player 6.
Usage
mon_mc.tabEnabled
Description
Propriété : spécifie si mon_mc est inclus dans l’ordre de tabulation automatique. Valeur undefined
par défaut.
Si tabEnabled est undefined, l’objet est inclus dans l’ordre de tabulation automatique
uniquement s’il définit au moins un gestionnaire de boutons, par exemple
MovieClip.onRelease. Si tabEnabled est true, l’objet est inclus dans l’ordre de tabulation
automatique. Si la propriété tabIndex est également définie avec une valeur, l’objet est également
inclus dans l’ordre de tabulation automatique.
Si tabEnabled est false, l’objet n’est pas inclus dans l’ordre de tabulation automatique ou
personnalisé, même si la propriété tabIndex est définie. Toutefois, si MovieClip.tabChildren a
pour valeur true, les enfants du clip peuvent rester inclus dans l’ordre de tabulation automatique,
même si tabEnabled est défini sur la valeur false.
Consultez également
Button.tabEnabled, MovieClip.tabChildren, MovieClip.tabIndex,
TextField.tabEnabled
608
Chapitre 12 : Dictionnaire ActionScript
MovieClip.tabIndex
Disponibilité
Flash Player 6.
Usage
mon_mc.tabIndex
Description
Propriété : permet de définir l’ordre de tabulation automatique des objets d’une animation. La
propriété tabIndex est undefined par défaut. Vous pouvez définir tabIndex pour une
occurrence de bouton, de clip ou de champ de texte.
Si un objet du fichier SWF contient une propriété tabIndex, l’ordre de tabulation automatique
est désactivé et l’ordre de tabulation est calculé en fonction des propriétés tabIndex des objets du
fichier SWF. L’ordre de tabulation personnalisé n’inclut que les objets possédant des propriétés
tabIndex.
La propriété tabIndex doit être un entier positif. Les objets sont placés dans l’ordre
correspondant à leurs propriétés tabIndex, dans un ordre croissant. Un objet dont la valeur
tabIndex est 1 précède un objet dont la valeur tabIndex est de 2. L’ordre de tabulation
personnalisé ignore les relations hiérarchiques entre les objets d’un fichier SWF. Tous les objets du
fichier SWF munis de propriétés tabIndex sont placés dans l’ordre de tabulation. Vous ne devriez
pas utiliser la même valeur tabIndex pour plusieurs objets.
Consultez également
Button.tabIndex, TextField.tabIndex
MovieClip._target
Disponibilité
Flash Player 4.
Usage
mon_mc._target
Description
Propriété (lecture seule) : renvoie le chemin cible de l’occurrence de clip spécifié par mon_mc.
MovieClip._totalframes
Disponibilité
Flash Player 4.
Usage
mon_mc._totalframes
Description
Propriété (lecture seule) : renvoie le nombre total d’images de l’occurrence de clip spécifiée dans le
paramètre mon_mc.
MovieClip._totalframes
609
MovieClip.trackAsMenu
Disponibilité
Flash Player 6.
Usage
mon_mc.trackAsMenu
Description
Propriété : une propriété booléenne qui indique si d’autres boutons ou clips peuvent recevoir des
événements de relâchement de bouton de souris. Cela vous permet de créer des menus. Vous
pouvez définir la propriété trackAsMenu pour n’importe quel objet de bouton ou clip. Si la
propriété trackAsMenu n’existe pas, le comportement par défaut est false.
Vous pouvez changer la propriété trackAsMenu à tout moment, le clip de bouton modifié
prenant immédiatement le nouveau comportement.
Consultez également
Button.trackAsMenu
MovieClip.unloadMovie()
Disponibilité
Flash Player 5.
Usage
mon_mc.unloadMovie()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : renvoie le contenu d’une occurrence de clip. Les propriétés d’occurrence et les
gestionnaires de clip restent.
Pour supprimer l’occurrence, y compris ses propriétés et les gestionnaires de clip, utilisez
MovieClip.removeMovieClip().
Consultez également
MovieClip.attachMovie(), MovieClip.loadMovie, unloadMovie(), unloadMovieNum()
610
Chapitre 12 : Dictionnaire ActionScript
MovieClip._url
Disponibilité
Flash Player 4.
Usage
mon_mc._url
Description
Propriété (lecture seule) : récupère l’URL du fichier SWF d’où le clip a été téléchargé.
MovieClip.useHandCursor
Disponibilité
Flash Player 6.
Usage
mon_mc.useHandCursor
Description
Propriété : une valeur booléenne indiquant si le curseur en forme de main (main) apparaît lorsque
la souris passe au-dessus d’un clip de bouton. La valeur par défaut de useHandCursor est true. Si
useHandCursor est défini sur la valeur true, la main utilisée pour les boutons s’affiche lorsque la
souris passe au-dessus d’un clip de bouton. Si useHandCursor est false, c’est le curseur de flèche
qui est utilisé.
Vous pouvez changer la propriété useHandCursor à tout moment, le clip de bouton modifié
prenant immédiatement le nouveau comportement. La propriété useHandCursor peut être lue à
partir d’un objet prototype.
MovieClip._visible
Disponibilité
Flash Player 4.
Usage
mon_mc._visible
Description
Propriété : une valeur booléenne indiquant si le clip spécifié par mon_mc est visible. Les clips qui
ne sont pas visibles (propriété _visible définie sur false) sont désactivés. Par exemple, le
bouton d’un clip dont la propriété _visible est définie sur la valeur false ne peut pas être
cliqué.
Consultez également
Button._visible, TextField._visible
MovieClip._visible
611
MovieClip._width
Disponibilité
Flash Player 4 en tant que propriété en lecture seule.
Usage
mon_mc._width
Description
Propriété : la largeur du clip, en pixels.
Exemple
L’exemple suivant définit les propriétés de hauteur et de largeur d’un clip lorsque l’utilisateur
clique sur la souris.
onclipEvent(mouseDown) {
_width=200;
_height=200;
}
Consultez également
MovieClip._height
MovieClip._x
Disponibilité
Flash Player 3.
Usage
mon_mc._x
Description
Propriété : un entier définissant la coordonnée x d’un clip par rapport aux coordonnées locales du
clip parent. Si un clip se trouve dans le scénario principal, son système de coordonnées fait
référence au coin supérieur gauche de la scène comme (0, 0). Si le clip se trouve dans un clip qui a
subi des transformations, le clip est dans le système de coordonnées locales du clip imbriquant.
Donc, pour un clip ayant pivoté de 90 degrés dans le sens inverse des aiguilles d’une montre, les
enfants de ce clip héritent d’un système de coordonnées qui a pivoté de 90 degrés dans le sens
inverse des aiguilles d’une montre. Les coordonnées du clip font référence à la position du point
d’alignement.
Consultez également
MovieClip._xscale, MovieClip._y, MovieClip._yscale
612
Chapitre 12 : Dictionnaire ActionScript
MovieClip._xmouse
Disponibilité
Flash Player 5.
Usage
mon_mc._xmouse
Description
Propriété (lecture seule) : renvoie la coordonnée x de la position de la souris.
Consultez également
Classe Mouse, MovieClip._ymouse
MovieClip._xscale
Disponibilité
Flash Player 4.
Usage
mon_mc._xscale
Description
Propriété : détermine l’échelle horizontale (pourcentage) du clip telle qu’appliquée à partir du
point d’alignement du clip. Le point d’alignement par défaut est (0,0).
Le redimensionnement du système de coordonnées locales affecte les paramètres de propriété _x
et _y, définis en pixels entiers. Par exemple, si le clip parent est dimensionné à 50 %, la définition
de la propriété _x bouge un objet du clip de la moitié du nombre de pixels d’une animation à
100 %.
Consultez également
MovieClip._x, MovieClip._y, MovieClip._yscale
MovieClip._xscale
613
MovieClip._y
Disponibilité
Flash Player 3.
Usage
mon_mc._y
Description
Propriété : définit la coordonnée y du clip par rapport aux coordonnées locales du clip parent. Si
un clip se trouve dans le scénario principal, son système de coordonnées fait référence au coin
supérieur gauche de la scène comme (0, 0). Si le clip se trouve dans un clip qui a subi des
transformations, le clip est dans le système de coordonnées locales du clip imbriquant. Donc,
pour un clip ayant pivoté de 90 degrés dans le sens inverse des aiguilles d’une montre, les enfants
de ce clip héritent d’un système de coordonnées qui a pivoté de 90 degrés dans le sens inverse des
aiguilles d’une montre. Les coordonnées du clip font référence à la position du point
d’alignement.
Consultez également
MovieClip._x, MovieClip._xscale, MovieClip._yscale
MovieClip._ymouse
Disponibilité
Flash Player 5.
Usage
mon_mc._ymouse
Description
Propriété (lecture seule) : indique la coordonnée y de la position de la souris.
Consultez également
Classe Mouse, MovieClip._xmouse
614
Chapitre 12 : Dictionnaire ActionScript
MovieClip._yscale
Disponibilité
Flash Player 4.
Usage
mon_mc._yscale
Description
Propriété : définit l’échelle verticale (pourcentage) du clip telle qu’appliquée à partir du point
d’alignement du clip. Le point d’alignement par défaut est (0,0).
Le redimensionnement du système de coordonnées locales affecte les paramètres de propriété _x
et _y, définis en pixels entiers. Par exemple, si le clip parent est dimensionné à 50 %, la définition
de la propriété _x bouge un objet du clip de la moitié du nombre de pixels d’une animation à
100 %.
Consultez également
MovieClip._x, MovieClip._xscale, MovieClip._y
Classe MovieClipLoader
Disponibilité
Flash Player 7.
Description
Cette classe vous permet d’implémenter des rappels des écouteurs offrant des informations d’état
durant le chargement des fichiers SWF et JPEG (téléchargés) dans les clips. Pour utiliser les
fonctionnalités MovieClipLoader, utilisez MovieClipLoader.loadClip() plutôt que
loadMovie() ou MovieClip.loadMovie() pour charger les fichiers SWF.
Une fois la commande MovieClipLoader.loadClip() activée, les événements suivants se
produisent, dans l’ordre spécifié :
• Une fois les premiers octets du fichier téléchargé enregistrés sur disque, l’écouteur
MovieClipLoader.onLoadStart()
est appelé.
• Si vous avez implémenté l’écouteur MovieClipLoader.onLoadProgress(), ce dernier est
appelé durant le processus de chargement.
Remarque : Vous pouvez appeler MovieClipLoader.getProgress() à tout moment durant le
processus de chargement.
• Une fois le fichier téléchargé entier enregistré sur disque, l’écouteur
MovieClipLoader.onLoadComplete()
est appelé.
• Une fois les premières actions d’image du fichier téléchargé effectuées, l’écouteur
MovieClipLoader.onLoadInit()
est appelé.
Une fois MovieClipLoader.onLoadInit() appelé, vous pouvez définir les propriétés, utiliser les
méthodes, ou bien interagir avec le clip chargé.
Si le chargement du fichier échoue, l’écouteur MovieClipLoader.onLoadError() est appelé.
Classe MovieClipLoader
615
Méthodes de la classe MovieClipLoader
Méthode
Description
MovieClipLoader.addListener()
Enregistre un objet pour recevoir une notification lors de
l’appel d’un gestionnaire d’événements
MovieClipLoader.
MovieClipLoader.getProgress()
Renvoie le nombre d’octets chargés et le nombre total
d’octets pour un fichier en cours de chargement à l’aide
de MovieClipLoader.loadClip().
MovieClipLoader.loadClip()
Charge un fichier SWF ou JPEG dans un clip dans
Flash Player, lors de la lecture du clip d’origine.
MovieClipLoader.removeListener()
Supprime un objet enregistré à l’aide de
MovieClipLoader.addListener().
MovieClipLoader.unloadClip()
Supprime un clip chargé via
MovieClipLoader.loadClip().
Ecouteurs de la classe MovieClipLoader
Ecouteur
Description
MovieClipLoader.onLoadComplete()
Appelé si un fichier chargé à l’aide de
MovieClipLoader.loadClip() est entièrement
téléchargé.
MovieClipLoader.onLoadError()
Appelé si le chargement d’un fichier chargé à l’aide de
MovieClipLoader.loadClip() a échoué.
MovieClipLoader.onLoadInit()
Appelé si les actions sur la première image du clip
chargées ont été exécutées.
MovieClipLoader.onLoadProgress()
Appelé à chaque fois que le contenu de chargement est
enregistré sur disque durant le processus de
chargement.
MovieClipLoader.onLoadStart()
Appelé si un appel de MovieClipLoader.loadClip() a
commencé le téléchargement d’un fichier.
Constructeur de la classe MovieClipLoader
Disponibilité
Flash Player 7.
Usage
new MovieClipLoader()
Paramètres
Aucun.
Renvoie
Rien.
616
Chapitre 12 : Dictionnaire ActionScript
Description
Constructeur : crée un objet MovieClipLoader que vous pouvez utiliser pour implémenter un
nombre d’écouteurs pour répondre aux événements lors du téléchargement d’un fichier SWF ou
JPEG.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
Consultez également
MovieClipLoader.addListener()
MovieClipLoader.addListener()
Disponibilité
Flash Player 7.
Usage
mon_mcl.addListener(objetDecoute)
Paramètres
Un objet qui écoute une notification de rappel à partir des gestionnaires
d’événements MovieClipLoader.
objetDecoute
Renvoie
Rien.
Description
Méthode : enregistre un objet pour recevoir une notification lors de l’appel d’un gestionnaire
d’événements MovieClipLoader.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
Consultez également
MovieClipLoader.onLoadComplete(), MovieClipLoader.onLoadError(),
MovieClipLoader.onLoadInit(), MovieClipLoader.onLoadProgress(),
MovieClipLoader.onLoadStart(), MovieClipLoader.removeListener()
MovieClipLoader.addListener()
617
MovieClipLoader.getProgress()
Disponibilité
Flash Player 7.
Usage
mon_mcl.getProgress(cible_mc)
Paramètres
cible_mc
Un fichier SWF ou JPEG chargé via MovieClipLoader.loadClip().
Renvoie
Un objet qui a deux propriétés intégrées : bytesLoaded et bytesTotal.
Description
Méthode : renvoie le nombre d’octets chargés et le nombre total d’octets pour un fichier en cours
de chargement à l’aide de MovieClipLoader.loadClip() ; pour les clips compressés, ce nombre
reflète le nombre d’octets compressés. Cette méthode vous permet de demander explicitement ces
informations, plutôt que (ou en plus) d’enregistrer une fonction d’écouteur
MovieClipLoader.onLoadProgress().
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
Consultez également
MovieClipLoader.onLoadProgress()
618
Chapitre 12 : Dictionnaire ActionScript
MovieClipLoader.loadClip()
Disponibilité
Flash Player 7.
Usage
mon_mcl.loadClip("url", cible )
Paramètres
L’URL absolue ou relative du fichier SWF ou JPEG à charger. Un chemin relatif doit être
relatif au fichier SWF au niveau 0. Des URL absolues doivent inclure la référence au protocole,
comme http:// ou file:///. Les noms de fichiers ne peuvent pas inclure de spécifications de disque
dur.
url
Le chemin cible d’un clip, ou un nombre entier spécifiant le niveau, dans Flash Player,
auquel ce clip sera chargé. Le clip cible sera remplacé par l’animation ou l’image chargée.
cible
Renvoie
Rien.
Description
Charge un fichier SWF ou JPEG dans un clip dans Flash Player, lors de la lecture du clip
d’origine. La méthode loadMovie vous permet d’afficher plusieurs animations en une fois et de
basculer entre des animations sans charger un autre document HTML.
L’utilisation de cette méthode au lieu de la méthode loadMovie() ou MovieClip.loadMovie()
offre de nombreux avantages :
• Le gestionnaire MovieClipLoader.onLoadStart() est appelé au démarrage du chargement.
• Le gestionnaire MovieClipLoader.onLoadError() est appelé si le clip ne peut pas être chargé.
• Le gestionnaire MovieClipLoader.onLoadProgress() est appelé durant le processus de
•
chargement.
Le gestionnaire MovieClipLoader.onLoadInit() est appelé une fois les actions sur la
première image du clip exécutées, afin que vous puissiez commencer la manipulation du clip
chargé.
Une animation ou image chargée dans un clip hérite de ses propriétés de position, rotation et
échelle. Vous pouvez utiliser le chemin cible du clip pour cibler l’animation chargée.
Vous pouvez utiliser cette méthode pour charger un ou plusieurs fichiers dans un même clip ou à
un même niveau ; les objets d’écoute MovieClipLoader reçoivent l’occurrence de chargement du
clip cible en tant que paramètre. Vous pouvez également créer un objet MovieClipLoader
différent pour chaque fichier chargé.
Utilisez MovieClipLoader.unloadClip() pour supprimer les clips ou les images chargées via
cette méthode, ou pour annuler une opération de chargement en cours.
MovieClipLoader.loadClip()
619
Exemple
L’exemple suivant illustre l’utilisation d’une grande partie des méthodes MovieClipLoader et des
écouteurs.
// premier ensemble d’écouteurs
var mon_mcl = new MovieClipLoader();
monEcouteur = new Object();
monEcouteur.onLoadStart = function (cible_mc)
{
maTrace ("*********Première occurrence de mon_mcl*********");
maTrace ("Votre chargement a commencé sur le clip . = " + cible_mc);
var loadProgress = mon_mcl.getProgress(cible_mc);
maTrace(loadProgress.bytesLoaded + " = octets chargés au démarrage");
maTrace(loadProgress.bytesTotal + " = total des octets au démarrage");
}
monEcouteur.onLoadProgress = function (cible_mc, loadedBytes, totalBytes)
{
maTrace ("*********Progression de la première occurrence de
mon_mcl*********");
maTrace ("onLoadProgress() rappelé sur clip " + cible_mc);
maTrace(loadedBytes + " = octets chargés au rappel de progression " );
maTrace(totalBytes + " = total octets au rappel de progression \n");
}
monEcouteur.onLoadComplete = function (cible_mc)
{
maTrace ("*********Première occurrence de mon_mcl*********");
maTrace ("Votre chargement est effectué sur le clip = " + cible_mc);
var loadProgress = mon_mcl.getProgress(cible_mc);
maTrace(loadProgress.bytesLoaded + " = octets chargés à la fin");
maTrace(loadProgress.bytesTotal + " = total des octets à la fin");
}
monEcouteur.onLoadInit = function (cible_mc)
{
maTrace ("*********Première occurrence de mon_mcl*********");
maTrace ("Clip = " + cible_mc + " est maintenant initialisé");
// vous pouvez maintenant effectuer tous les réglages requis, par exemple :
cible_mc._width = 100;
cible_mc._width = 100;
}
objetDecoute.onLoadError() = function (cible_mc, errorCode) {
{
maTrace ("*********Première occurrence de mon_mcl*********");
maTrace ("CODE ERREUR = " + codeErreur);
maTrace ("Votre chargement a échoué sur le clip = " + cible_mc + "\n");
}
mon_mcl.addListener(monEcouteur);
//Charger maintenant les fichiers dans leurs emplacements cibles.
// charge dans les clips - chaînes utilisées en tant que cibles
mon_mcl.loadClip("http://www.undomaine.quelquepart.com/
unFichier.swf","_root.monMC");
mon_mcl.loadClip("http://www.undomaine.quelquepart.com/unAutreFichier.swf",
"_level0.monMC2");
//échec du chargement
mon_mcl.loadClip("http://www.undomaine.quelquepart.com/unFichier.jpg",
_root.monMC5);
// charge dans les clips - occurrence de clip utilisée en tant que cible.
mon_mcl.loadClip("http://www.undomaine.quelquepart.com/unAutreFichier.jpg",
_level0.monMC3);
620
Chapitre 12 : Dictionnaire ActionScript
// charge dans _level1
mon_mcl.loadClip("fichier:///C:/media/images/uneImage.jpg", 1);
//Second ensemble d’écouteurs
var autre_mcl = new MovieClipLoader();
monEcouteur2 = new Object();
monEcouteur2.onLoadStart = function (cible_mc)
{
maTrace("*********Seconde occurrence mon_mcl*********");
maTrace ("Votre chargement a commencé sur le clip22. = " + cible_mc);
var loadProgress = mon_mcl.getProgress(cible_mc);
maTrace(loadProgress.bytesLoaded + " = octets chargés au démarrage");
maTrace(loadProgress.bytesTotal + " = total des octets au démarrage");
}
monEcouteur2.onLoadComplete = function (cible_mc)
{
maTrace("*********Seconde occurrence mon_mcl*********");
maTrace ("Votre chargement est effectué sur le clip = " + cible_mc);
var loadProgress = mon_mcl.getProgress(cible_mc);
maTrace(loadProgress.bytesLoaded + " = octets chargés à la fin");
maTrace(loadProgress.bytesTotal + " = total des octets à la fin");
}
monEcouteur2.onLoadError = function (cible_mc, codeErreur)
{
maTrace("*********Seconde occurrence mon_mcl*********");
maTrace ("CODE ERREUR = " + codeErreur);
maTrace ("Votre chargement a échoué sur le clip = " + cible_mc + "\n");
}
autre_mcl.addListener(monEcouteur2);
//Charger maintenant les fichiers dans leurs emplacements cibles (à l’aide de
la seconde occurrence de MovieClipLoader)
autre_mcl.loadClip("http://www.undomaine.quelquepart.com/
encoreUnAutreFichier.jpg", _root.monMC4);
// Activer l’instruction suivante une fois le téléchargement terminé,
// et une fois mon_mcl.onLoadInit appelé.
// mon_mcl.removeListener(monEcouteur)
// mon_mcl.removeListener(monEcouteur2)
Consultez également
MovieClipLoader.unloadClip()
MovieClipLoader.loadClip()
621
MovieClipLoader.onLoadComplete()
Disponibilité
Flash Player 7.
Usage
objetDecoute.onLoadComplete() = function (cible_mc) {
// vos instructions
}
Paramètres
objetDecoute
cible_mc
Un objet d’écoute ajouté via MovieClipLoader.addListener().
Le clip chargé par une méthode MovieClipLoader.loadClip().
Renvoie
Rien.
Description
Ecouteur : appelé si un fichier chargé à l’aide de MovieClipLoader.loadClip() est entièrement
téléchargé.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
Consultez également
MovieClipLoader.addListener(), MovieClipLoader.onLoadStart(),
MovieClipLoader.onLoadError()
622
Chapitre 12 : Dictionnaire ActionScript
MovieClipLoader.onLoadError()
Disponibilité
Flash Player 7.
Usage
objetDecoute.onLoadError() = function(cible_mc, codeErreur) {
// vos instructions
}
Paramètres
objetDecoute
cible_mc
Un objet d’écoute ajouté via MovieClipLoader.addListener().
Le clip chargé par une méthode MovieClipLoader.loadClip().
codeErreur
Une chaîne qui explique la cause de l’échec.
Renvoie
L’une des deux chaînes : « URLNotFound » ou « LoadNeverCompleted ».
Description
Ecouteur : appelé en cas d’échec du chargement d’un fichier à l’aide de
MovieClipLoader.loadClip().
La chaîne « URLNotFound » est renvoyée si ni l’écouteur MovieClipLoader.onLoadStart(), ni
l’écouteur MovieClipLoader.onLoadComplete() ne sont appelés. Par exemple, si un serveur est
en panne ou si le fichier est introuvable, ces écouteurs ne sont pas appelés.
La chaîne « LoadNeverCompleted » est renvoyée si MovieClipLoader.onLoadStart() a été
appelé, mais pas MovieClipLoader.onLoadComplete(). Par exemple, si
MovieClipLoader.onLoadStart() est appelé mais que le téléchargement est interrompu en
raison d’une surcharge du serveur, une panne du serveur, et ainsi de suite,
MovieClipLoader.onLoadComplete() n’est pas appelé.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
MovieClipLoader.onLoadError()
623
MovieClipLoader.onLoadInit()
Disponibilité
Flash Player 7.
Usage
objetDecoute.onLoadInit() = function (cible_mc) {
// vos instructions
}
Paramètres
objetDecoute
cible_mc
Un objet d’écoute ajouté via MovieClipLoader.addListener().
Le clip chargé par une méthode MovieClipLoader.loadClip().
Renvoie
Rien.
Description
Appelé si les actions sur la première image du clip chargées ont été exécutées. Une fois
MovieClipLoader.onLoadInit() appelé, vous pouvez définir les propriétés, utiliser les méthodes,
ou bien interagir avec le clip chargé.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
Consultez également
MovieClipLoader.onLoadStart()
624
Chapitre 12 : Dictionnaire ActionScript
MovieClipLoader.onLoadProgress()
Disponibilité
Flash Player 7.
Usage
objetDecoute.onLoadProgress() =
function(cible_mc [, loadedBytes [, totalBytes ] ] ) {
// vos instructions
}
Paramètres
objetDecoute
cible_mc
Un objet d’écoute ajouté via MovieClipLoader.addListener().
Le clip chargé par une méthode MovieClipLoader.loadClip().
loadedBytes
totalBytes
Le nombre d’octets chargés au moment de l’appel de l’écouteur.
Le nombre total d’octets contenus dans le fichier en cours de chargement.
Renvoie
Rien.
Description
Ecouteur : appelé à chaque fois que le contenu de chargement est enregistré sur disque durant le
processus de chargement (à savoir, entre MovieClipLoader.onLoadStart() et
MovieClipLoader.onLoadComplete()). Vous pouvez utiliser cette méthode pour afficher des
informations concernant la progression du téléchargement, à l’aide des paramètres loadedBytes
et totalBytes.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
Consultez également
MovieClipLoader.getProgress()
MovieClipLoader.onLoadProgress()
625
MovieClipLoader.onLoadStart()
Disponibilité
Flash Player 7.
Usage
objetDecoute.onLoadStart() = function (cible_mc) {
// vos instructions
}
Paramètres
objetDecoute
cible_mc
Un objet d’écoute ajouté via MovieClipLoader.addListener().
Le clip chargé par une méthode MovieClipLoader.loadClip().
Renvoie
Rien.
Description
Ecouteur : appelé si un appel de MovieClipLoader.loadClip() a commencé le téléchargement
d’un fichier.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
Consultez également
MovieClipLoader.onLoadError(), MovieClipLoader.onLoadInit(),
MovieClipLoader.onLoadComplete()
MovieClipLoader.removeListener()
Disponibilité
Flash Player 7.
Usage
mon_mcl.removeListener(objetDecoute)
Paramètres
objetDecoute
Un objet d’écoute ajouté via MovieClipLoader.addListener().
Renvoie
Rien.
Description
Méthode : supprime un objet utilisé pour recevoir une notification lors de l’appel d’un
gestionnaire d’événements MovieClipLoader.
Exemple
Pour plus d’informations, consultez MovieClipLoader.loadClip().
626
Chapitre 12 : Dictionnaire ActionScript
MovieClipLoader.unloadClip()
Disponibilité
Flash Player 7.
Usage
mon_mcl.unloadClip(cible)
Paramètres
cible La chaîne ou le
mon_mcl.loadClip().
nombre entier passés dans l’appel correspondant à
Renvoie
Rien.
Description
Méthode : supprime un clip chargé via MovieClipLoader.loadClip(). Si vous activez cette
commande lors du chargement d’un clip, MovieClipLoader.onLoadError() est appelé.
Consultez également
MovieClipLoader.loadClip()
NaN
Disponibilité
Flash Player 5.
Usage
NaN
Description
Variable : une variable prédéfinie avec la valeur IEEE-754 pour NaN (Not a Number). Pour
déterminer si un nombre est NaN, utilisez isNaN().
Consultez également
isNaN(), Number.NaN
NaN
627
ne (pas égal à — spécifique aux chaînes)
Disponibilité
Flash Player 4. Cet opérateur est déconseillé et remplacé par l’opérateur != (inégalité).
Usage
expression1 ne expression2
Paramètres
expression1, expression2
Nombres, chaînes ou variables.
Renvoie
Une valeur booléenne.
Description
Opérateur (comparaison) : compare expression1 avec expression2 et renvoie true si
expression1 n’est pas égale à expression2 ; sinon, renvoie false.
Consultez également
!= (inégalité)
Classe NetConnection
Disponibilité
Flash Player 7.
Remarque : Cette classe est également prise en charge dans Flash Player 6, dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Description
La classe NetConnection permet de lire des fichiers FLV en flux continu à partir d’un disque local
ou d’une adresse HTTP. Pour plus d’informations sur le flux vidéo, consultez Lecture dynamique
des fichiers FLV externes, page 209.
Méthodes de la classe NetConnection
Méthode
Description
NetConnection.connect()
Ouvre une connexion locale qui vous permet de lire les fichiers vidéo
(FLV) depuis une adresse HTTP ou depuis un système de fichiers
local.
Constructeur de la classe NetConnection
Disponibilité
Flash Player 7.
Remarque : Cette classe est également prise en charge dans Flash Player 6, dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
628
Chapitre 12 : Dictionnaire ActionScript
Usage
new NetConnection()
Paramètres
Aucun.
Renvoie
Rien.
Description
Constructeur : crée un objet NetConnection que vous pouvez utiliser pour lire les fichiers de
diffusion en flux locaux (FLV). Après la création de l’objet NetConnection, utilisez
NetConnection.connect() pour effectuer la connexion réelle.
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 209.
Consultez également
Classe NetStream, Video.attachVideo()
NetConnection.connect()
Disponibilité
Flash Player 7.
Remarque : Cette méthode est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_nc.connect(nul);
Paramètres
Aucun (vous devez passer null).
Renvoie
Rien.
Description
Ouvre une connexion locale lqui vous permet de lire les fichiers vidéo (FLV) depuis une adresse
HTTP ou depuis un système de fichiers local.
Consultez également
Classe NetStream
NetConnection.connect()
629
Classe NetStream
Disponibilité
Flash Player 7.
Remarque : Cette classe est également prise en charge dans Flash Player 6, dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Description
La classe NetStream fournit des méthodes et des propriétés permettant de lire des fichiers Flash
Video (FLV) depuis le système de fichiers local ou une adresse HTTP. Vous devez utiliser un objet
NetStream pour diffuser en flux la vidéo via un objet NetConnection. 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.
Cette classe offre plusieurs méthodes et propriétés que vous pouvez utiliser pour suivre la
progression du fichier lors de son chargement et de sa lecture. Ces méthodes permettent en outre
à l’utilisateur de contrôler la lecture (arrêt, pause, et ainsi de suite).
Pour plus d’informations sur le flux vidéo, consultez Lecture dynamique des fichiers FLV externes,
page 209.
Méthodes de la classe NetStream
Les méthodes et propriétés suivantes des classes NetConnection et NetStream sont utilisées pour
contrôler la lecture des fichiers FLV.
Méthode
Objectif
NetStream.close()
Ferme le flux mais ne supprime pas l’objet vidéo.
NetStream.pause()
Arrête ou relance la lecture d’un flux vidéo.
NetStream.play()
Commence la lecture d’un fichier vidéo externe (FLV).
NetStream.seek()
Recherche une position spécifique dans le fichier FLV.
NetStream.setBufferTime() Spécifie la durée de la mise en mémoire tampon des données avant le
démarrage de l’affichage du flux vidéo.
Propriétés de la classe NetStream
630
Propriété
Description
NetStream.bufferLength
Le nombre de secondes de données actuellement incluses dans la
mémoire tampon.
NetStream.bufferTime
Lecture seule : le nombre de secondes assignées à la mémoire
tampon par NetStream.setBufferTime().
NetStream.bytesLoaded
Lecture seule : le nombre d’octets de données chargées dans le
lecteur.
NetStream.bytesTotal
Lecture seule : la taille totale, en octets, du fichier en cours de
chargement dans le lecteur.
Chapitre 12 : Dictionnaire ActionScript
Propriété
Description
NetStream.currentFps
Le nombre d’images par seconde en cours d’affichage.
NetStream.time
Lecture seule : la position de la tête de lecture, en secondes.
Gestionnaires d’événement de la classe NetStream
Gestionnaire d’événement Description
NetStream.onStatus
Appelé à chaque fois qu’un changement d’état ou une erreur est
consigné(e) pour l’objet NetStream.
Constructeur de la classe NetStream
Disponibilité
Flash Player 7.
Remarque : Cette classe est également prise en charge dans Flash Player 6, dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
new NetStream(mon_nc)
Paramètres
mon_nc
Un objet NetConnection.
Renvoie
Rien.
Description
Constructeur : crée un flux vidéo utilisable pour la lecture des fichiers FLV via l’objet
NetConnection spécifié.
Exemple
Le code suivant construit dans un premier temps un nouvel objet NetConnection, mon_nc, puis
l’utilise pour construire un nouvel objet NetStream nommé fluxVideo_ns.
mon_nc = new NetConnection();
mon_nc.connect(null);
fluxVideo_ns = new NetStream(mon_nc);
Consultez également
Classe NetConnection, Classe NetStream, Video.attachVideo()
Classe NetStream
631
NetStream.bufferLength
Disponibilité
Flash Player 7.
Remarque : Cette propriété est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.bufferLength
Description
Le nombre de secondes de données actuellement incluses dans la mémoire tampon. Vous pouvez
utiliser cette propriété en association avec NetStream.bufferTime pour évaluer le degré de
remplissage de la mémoire tampon (par exemple, pour afficher un retour à l’attention de
l’utilisateur qui attend les données à charger dans la mémoire tampon).
Consultez également
NetStream.bytesLoaded
NetStream.bufferTime
Disponibilité
Flash Player 7.
Remarque : Cette propriété est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
monFlux.bufferTime
Description
Propriété (lecture seule) : le nombre de secondes assignées à la mémoire tampon par
NetStream.setBufferTime(). La valeur par défaut est .1 (un dizième de seconde). Pour
déterminer le nombre de secondes restant actuellement dans la mémoire tampon, utilisez
NetStream.bufferLength.
Consultez également
NetStream.time
632
Chapitre 12 : Dictionnaire ActionScript
NetStream.bytesLoaded
Disponibilité
Flash Player 7.
Usage
mon_ns.bytesLoaded
Description
Propriété (lecture seule) : le nombre d’octets de données chargées dans le lecteur. Vous pouvez
utiliser cette propriété en association avec NetStream.bytesTotal pour évaluer le degré de
remplissage de la mémoire tampon (par exemple, pour afficher un retour à l’attention de
l’utilisateur qui attend les données à charger dans la mémoire tampon).
Consultez également
NetStream.bufferLength
NetStream.bytesTotal
Disponibilité
Flash Player 7.
Usage
mon_ns.bytesLoaded
Description
Propriété (lecture seule) : la taille totale, en octets, du fichier en cours de chargement dans le
lecteur.
Consultez également
NetStream.bytesLoaded, NetStream.bufferTime
NetStream.bytesTotal
633
NetStream.close()
Disponibilité
Flash Player 7.
Remarque : Cette méthode est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.close()
Paramètres
Aucun.
Renvoie
Rien.
Description
Méthode : arrête la lecture des données sur le flux vidéo, définit la propriété NetStream.time sur
0, et rend le flux vidéo disponible pour une autre utilisation. Cette commande supprime en outre
la copie locale du fichier FLV téléchargé via l’adresse HTTP.
Exemple
La fonction onDisconnect() suivante ferme une connexion et supprime la copie temporaire du
fichier someFile.flv stocké sur le disque local.
mon_nc = new NetConnection();
mon_nc.connect(null);
mon_ns = nouvel objet NetStream(mon_nc);
mon_ns.play("http://www.someDomain.com/videos/someFile.flv");
function onDisconnect() {
mon_ns.close()
}
Consultez également
NetStream.pause(), NetStream.play()
634
Chapitre 12 : Dictionnaire ActionScript
NetStream.currentFps
Disponibilité
Flash Player 7.
Remarque : Cette propriété est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.currentFps
Description
Propriété (lecture seule) : le nombre d’images par seconde en cours d’affichage. Si vous exportez
des fichiers FLV à lire sur plusieurs systèmes, vous pouvez vérifier la valeur correspondante durant
le test afin de déterminer le degré de compression à appliquer lors de l’exportation du fichier.
NetStream.onStatus
Disponibilité
Flash Player 7.
Remarque : Ce gestionnaire est également pris en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.onStatus = function(objetInfo) {
// Votre code ici
}
Paramètres
objetInfo Un paramètre défini en fonction du message d’état ou d’erreur. Pour plus
d’informations concernant ce paramètre, consultez la section « Description », ci-dessous.
Renvoie
Rien.
Description
Appelé à chaque fois qu’un changement d’état ou une erreur est consigné pour l’objet NetStream.
Pour répondre à ce gestionnaire d’événements, vous devez créer une fonction pour le traitement
de l’objet d’informations.
L’objet d’informations a une propriété de code contenant une chaîne décrivant le résultat du
gestionnaire onStatus, ainsi qu’une propriété level contenant une chaîne "Status" ou
"Error".
Outre ce gestionnaire onStatus, Flash propose également une « super » fonction appelée
System.onStatus. Si onStatus est invoqué pour un objet particulier et qu’aucune fonction n’est
affectée pour lui répondre, Flash traite une fonction affectée à System.onStatus s’il en existe
une.
NetStream.onStatus
635
Les événements suivants vous informent lorsque certaines activités NetStream se produisent.
Propriété de code
Propriété de
niveau
Signification
NetStream.Buffer.Empty
Etat
Les données ne sont pas reçues
suffisamment rapidement pour remplir la
mémoire tampon. Le flux de données est
interrompu jusqu’à ce que la mémoire
tampon soit à nouveau remplie ; un
NetStream.Buffer.Full est alors envoyé,
et la lecture du flux vidéo reprend.
NetStream.Buffer.Full
Etat
La mémoire tampon est pleine, et la
lecture du flux vidéo commence.
NetStream.Play.Start
Etat
La lecture a commencé.
NetStream.Play.Stop
Etat
La lecture s’est arrêtée.
NetStream.Play.StreamNotFound
Erreur
Le fichier FLV transmis par la méthode
play() est introuvable.
Exemple
L’exemple suivant enregistre les données relatives au flux vidéo dans un fichier-journal.
mon_ns.onStatus = function(info)
{
_root.log_stream += "Etat du flux vidéo.\n";
_root.log_stream += "Evénement : " + info.code + "\n";
_root.log_stream += "Type : " + info.level + "\n";
}
Consultez également
System.onStatus
636
Chapitre 12 : Dictionnaire ActionScript
NetStream.pause()
Disponibilité
Flash Player 7.
Remarque : Cette méthode est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.pause( [ reprisePause ] )
Paramètres
Facultatif : une valeur booléenne spécifiant la mise en pause de la lecture (true)
ou la reprise de la lecture (false). Si vous oubliez ce paramètre, NetStream.pause() fonctionne
en tant que bascule : la première fois que cette méthode est appelée sur un flux vidéo spécifique,
elle arrête la lecture, et, lors de l’appel suivant, elle relance la lecture.
reprisePause
Renvoie
Rien.
Description
Méthode : arrête ou relance la lecture d’un flux vidéo.
La première fois que vous appelez cette méthode (sans envoyer de paramètre), elle arrête la
lecture ; la fois suivante, elle relance la lecture. Vous pouvez associer cette méthode à un bouton
sur lequel l’utilisateur doit appuyer pour arrêter ou relancer la lecture.
Exemple
Les exemples suivants illustrent certaines utilisations de cette méthode.
mon_ns.pause(); // arrête la lecture lors de la première activation
mon_ns.pause(); // relance la lecture
mon_ns.pause(false); // aucun effet, la lecture continue
mon_ns.pause(); // arrête la lecture
Consultez également
NetStream.close(), NetStream.play()
NetStream.pause()
637
NetStream.play()
Disponibilité
Flash Player 7.
Remarque : Cette méthode est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.play("nomDeFichier");
Paramètres
Le nom d’un fichier FLV à lire, indiqué entre guillemets. Les deux formats
http:// et file:// sont pris en charge ; l’emplacement file:// est toujours relatif à l’emplacement du
fichier SWF.
nomDeFichier
Renvoie
Rien.
Description
Méthode : commence la lecture d’un fichier vidéo externe (FLV). Pour visualiser les données
vidéo, vous devez appeler une méthode Video.attachVideo() ; le fichier audio diffusé en flux
avec la vidéo, ou un fichier FLV contenant uniquement des données audio, sont lus
automatiquement.
Pour contrôler les données audio associées à un fichier FLV, vous pouvez utiliser la méthode
pour acheminer ces données vers le clip ; vous pouvez ensuite créer
un objet Sound pour contrôler certains aspects de ces données audio. Pour plus d’informations,
consultez MovieClip.attachAudio().
MovieClip.attachAudio()
Si le fichier FLV est introuvable, le gestionnaire d’événements NetStream.onStatus est appelé.
Pour arrêter un flux vidéo en cours de lecture, utilisez NetStream.close().
Vous pouvez lire les fichiers FLV locaux stockés dans le même dossier que le fichier SWF ou dans
un sous-dossier ; vous ne pouvez pas naviguer dans un dossier de niveau supérieur. Par exemple, si
le fichier SWF se trouve dans un dossier nommé /training, et que vous souhaitez lire un fichier
vidéo stocké dans le dossier /training/videos, vous devez utiliser la syntaxe suivante :
mon_ns.play("file://videos/nomVideo.flv");
Pour lire un fichier vidéo stocké dans le dossier /training, vous devez utiliser la syntaxe suivante :
mon_ns.play("file://nomVideo.flv");
638
Chapitre 12 : Dictionnaire ActionScript
Exemple
L’exemple suivant illustre certains modes d’utilisation de la commande NetStream.play().
// Lire un fichier sur l’ordinateur de l’utilisateur
// le dossier utilisateur_joe est un sous-dossier du dossier
//
dans lequel le fichier SWF est stocké
mon_ns.play("fichier://utilisateur_joe/flash/videos/lectureJune26.flv");
// Lire un fichier sur un serveur
mon_ns.play("http://unServeur.unDomaine.com/flash/video/orientation.flv");
Consultez également
MovieClip.attachAudio(), NetStream.close(), NetStream.pause(),
Video.attachVideo()
NetStream.seek()
Disponibilité
Flash Player 7.
Remarque : Cette méthode est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.seek(nombreDeSecondes)
Paramètres
La valeur temporelle approximative, en secondes, à atteindre dans un
fichier FLV. La tête de lecture se déplace vers l’image-clé la plus proche de nombreDeSecondes.
nombreDeSecondes
• Pour revenir au début du flux vidéo, définissez nombreDeSecondes sur 0.
• Pour rechercher plus loin à partir du début du flux vidéo, indiquez le nombre de secondes
•
voulu. Par exemple, pour positionner la tête de lecture à 15 secondes du début, utilisez
monFlux.seek(15).
Pour effectuer la recherche en fonction de la position courante, passez monFlux.time + n ou
monFlux.time - n pour avancer ou reculer de n secondes, respectivement, par rapport à la
position courante. Par exemple, pour reculer de 20 secondes par rapport à la position courante,
utilisez mon_ns.seek(mon_ns.time - 20).
Renvoie
Rien.
Description
Méthode : recherche l’image-clé la plus proche du nombre de secondes spécifié par rapport au
début du flux vidéo. La lecture du flux vidéo reprend lorsque l’emplacement spécifié est atteint.
NetStream.seek()
639
Exemple
L’exemple suivant illustre certains modes d’utilisation de la commande NetStream.seek().
// Revenir au début du flux vidéo
mon_ns.seek(0);
// Aller à un emplacement situé à 30 secondes du début du flux vidéo
mon_ns.seek(30);
//Reculer de trois minutes par rapport à la position courante
mon_ns.seek(mon_ns.time - 180);
Consultez également
NetStream.play(), NetStream.time
NetStream.setBufferTime()
Disponibilité
Flash Player 7.
Remarque : Cette méthode est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.setBufferTime(nombreDeSecondes)
Paramètres
Le nombre de secondes de données à enregistrer dans la mémoire tampon
avant que Flash commence l’affichage des données. La valeur par défaut est .1 (un dizième de
seconde).
nombreDeSecondes
Description
Spécifie la durée de la mise en mémoire tampon des données avant le début de la lecture du flux
vidéo. Par exemple, pour vérifier que les 15 premières secondes du flux vidéo sont lues sans
interruption, définissez nombreDeSecondes sur 15 ; Flash commence la lecture du flux vidéo
uniquement après l’enregistrement dans la mémoire tampon de 15 secondes de données.
Consultez également
NetStream.bufferTime
640
Chapitre 12 : Dictionnaire ActionScript
NetStream.time
Disponibilité
Flash Player 7.
Remarque : Cette propriété est également prise en charge dans Flash Player 6 dans le cadre d’une
utilisation avec Flash Communication Server. Pour plus d’informations, consultez la documentation
de Flash Communication Server.
Usage
mon_ns.time
Description
Propriété (lecture seule) : la position de la tête de lecture, en secondes.
Consultez également
NetStream.bufferLength, NetStream.bytesLoaded
NetStream.time
641
new
Disponibilité
Flash Player 5.
Usage
new constructeur()
Paramètres
constructeur Une fonction suivie de paramètres facultatifs entre parenthèses. La fonction est
généralement le nom du type d’objet (par exemple, Array, Number ou Object) à construire.
Renvoie
Rien.
Description
Opérateur : crée un nouvel objet, initialement anonyme, et appelle la fonction identifiée par le
paramètre constructeur. L’opérateur new transmet à la fonction les paramètres facultatifs entre
parenthèses, ainsi que l’objet nouvellement créé, auquel il est fait référence à l’aide du mot-clé
this. La fonction constructeur peut ensuite utiliser this pour définir les variables de l’objet.
Exemple
L’exemple suivant crée la fonction Livre(), puis utilise l’opérateur new pour créer les objets
livre1 et livre2.
function Livre(nom, prix){
this.nom = nom;
this.prix = prix;
}
livre1 = new Livre("Château de ma mère", 19,99);
livre2 = new Livre("La rigolade", 10,99);
Exemple
L’exemple suivant utilise l’opérateur new pour créer une occurrence de l’objet Array avec
18 éléments :
parcoursGolf_array = new Array(18);
Consultez également
[] (accès tableau), {} (initialisateur d’objet)
642
Chapitre 12 : Dictionnaire ActionScript
newline
Disponibilité
Flash Player 4.
Usage
newline
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : insère un caractère de retour chariot (\n) qui produit une ligne vierge dans le texte
généré par votre code. Utilisez newline pour faire de la place aux informations récupérées par une
fonction ou une action de votre code.
Exemple
L’exemple suivant montre comment newline affiche la sortie de l’action trace() sur plusieurs
lignes.
var monNom:String = "Lisa", monAge:Number = 30;
trace(monNom + monAge);
trace(monNom + newline + monAge);
nextFrame()
Disponibilité
Flash 2.
Usage
nextFrame()
Paramètres
Aucun.
Renvoie
Rien.
Description
Fonction : envoie la tête de lecture vers l’image suivante et l’arrête.
Exemple
Dans cet exemple, lorsqu’un utilisateur clique sur le bouton, la tête de lecture passe à l’image
suivante et s’arrête.
on (release) {
nextFrame();
}
nextFrame()
643
nextScene()
Disponibilité
Flash 2.
Usage
nextScene()
Paramètres
Aucun.
Renvoie
Rien.
Description
Fonction : envoie la tête de lecture vers l’image 1 de la séquence suivante et l’arrête.
Exemple
Dans cet exemple, lorsqu’un utilisateur relâche le bouton, la tête de lecture est envoyée à l’image 1
de la séquence suivante.
on(release) {
nextScene();
}
Consultez également
prevScene()
not
Disponibilité
Flash Player 4. Cet opérateur est déconseillé et remplacé par l’opérateur ! (NOT logique).
Usage
not expression
Paramètres
expression
Toute variable ou expression convertie en valeur booléenne.
Description
Opérateur : effectue une opération NOT logique dans Flash 4 Player.
Consultez également
! (NOT logique)
644
Chapitre 12 : Dictionnaire ActionScript
null
Disponibilité
Flash Player 5.
Usage
null
Paramètres
Aucun.
Renvoie
Rien.
Description
Constante : une valeur spéciale qui peut être affectée aux variables ou renvoyée par une fonction si
aucune donnée n’a été fournie. Vous pouvez utiliser null pour représenter les valeurs absentes ou
n’ayant pas de type de données défini.
Exemple
Dans un contexte numérique, null est équivalant à 0. Les tests d’égalité peuvent être effectués
avec null. Dans cette instruction, un nœud d’arborescence binaire ne possède pas d’enfant
gauche, et le champ pour cet en

Manuels associés