Mode Flash MX 2004 Le manuel du propriétaire

  • Bonjour ! Je suis un chatbot IA spécialement formé pour vous aider avec le Mode Flash MX 2004 Le manuel du propriétaire. J’ai déjà parcouru le document et peux vous fournir des réponses claires et précises.
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
3
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Nouveau modèle de sécurité et fichiers SWF hérités . . . . . . . . . . . . . . . . . . . . . . . 17
Portage de scripts existants sur Flash Player 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Modifications de l’éditeur ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Modifications apportées dans le domaine du débogage . . . . . . . . . . . . . . . . . . . . . 24
Nouveau modèle de programmation orientée objet . . . . . . . . . . . . . . . . . . . . . . . . 25
CHAPITRE 2 : Notions de base du langage ActionScript. . . . . . . . . . . . . . . . . . . 27
Différences entre ActionScript et JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Support du format Unicode pour ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
A propos des types de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Affectation de types de données aux éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
A propos des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Utilisation d’opérateurs pour manipuler les valeurs des expressions . . . . . . . . . . . . 48
Définition du chemin d’un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Utilisation de fonctions intégrées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Création de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4 Table des matières
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
Table des matières 5
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Création de champs de texte à l’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Utilisation de la classe TextFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Formatage de texte avec les feuilles de style en cascade. . . . . . . . . . . . . . . . . . . . . 145
Utilisation de texte au format HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Création de texte défilant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
CHAPITRE 9 : Création de classes avec ActionScript 2.0 . . . . . . . . . . . . . . . . . 163
Principes de la programmation orientée objet . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Utilisation des classes : un exemple simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Création et utilisation de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Membres d’occurrence et de classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Création et utilisation d’interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Compréhension du chemin de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Utilisation de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Importation de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Méthodes get/set implicites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Création de classes dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Compilation et exportation des classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Chargement de fichiers SWF et JPEG externes . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Chargement des fichiers externes MP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Lecture des balises ID3 dans les fichiers MP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Lecture dynamique des fichiers FLV externes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Préchargement de média externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
6 Table des matières
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
Table des matières 7
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
8 Table des matières
9
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).
10 Introduction : Bien démarrer avec ActionScript
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.
La police de code en italique 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.
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
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.
Ressources supplémentaires 11
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.
12 Introduction : Bien démarrer avec ActionScript
PARTIE I
Bienvenue dans 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
15
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.
16 Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
(Windows uniquement) L’écouteur d’événement Mouse.onMouseWheel est généré lorsque
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.
Portage de scripts existants sur Flash Player 7 17
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.
18 Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
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 lecrire. 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.
monNombre +=1;
trace(monNombre); // NaN
L’évaluation de undefined dans un contexte
numérique renvoie 0.
monNombre +=1;
trace(monNombre); // 1
Lorsque undefined est converti en chaîne, le résultat
est
undefined.
prénom = "Joan ";
nom = "Flender";
trace(prénom + deuxième prénom + nom);
// Joan undefinedFlender
Lorsque undefined est converti en chaîne, le
résultat est "" (une chaîne vide).
prénom = "Joan ";
nom = "Flender";
trace(prénom + deuxième prénom + nom);
// Joan Flender
Portage de scripts existants sur Flash Player 7 19
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.
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".
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
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); // 7
mon_array["6xyz"] ="x";
trace(mon_array.length); // 7
mon_array["6"] ="x";
trace(mon_array.length); // 7
Fichier SWF publié pour Flash Player 7 Fichier SWF publié pour des versions
précédentes de Flash Player
20 Chapitre 1 : Nouveautés du langage ActionScript dans Flash MX 2004
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");
}
/