930
 Guide de référence ActionScript

Fl Action Script Reference

Embed Size (px)

Citation preview

Guide de rfrence 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 dposes de Macromedia, Inc. qui peuvent tre dposes aux Etats-Unis et/ou dans dautres juridictions ou pays. Les autres noms de produits, logos, graphiques, mises en page, titres, mots ou expressions mentionns dans cette publication peuvent tre des marques de commerce, des marques de service ou des noms de marque appartenant Macromedia, Inc. ou dautres entits et peuvent tre dposs dans certaines juridictions ou pays. Autres marques mentionnes Ce guide contient des liens vers des sites Web qui ne sont pas sous le contrle de Macromedia, qui nest donc aucunement responsable de leur contenu. Laccs ces sites se fait sous votre seule responsabilit. Macromedia mentionne ces liens pour rfrence, ce qui nimplique pas son soutien, accord ou responsabilit quant au contenu des sites. Technologie de compression et dcompression audio discours utilise sous licence de Nellymoser, Inc. (www.nellymoser.com). Technologie de compression et dcompression vido Sorenson Spark utilise sous licence de Sorenson Media, Inc. Navigateur Opera Copyright 1995-2002 Opera Software ASA et ses fournisseurs. Tous droits rservs. Limite de garantie et de responsabilit Apple APPLE COMPUTER, INC. NOFFRE AUCUNE GARANTIE, EXPRES OU IMPLICITE, CONCERNANT CE LOGICIEL, SA CAPACITE A ETRE COMMERCIALISE OU A REPONDRE A UN BESOIN PARTICULIER. LEXCLUSION DES GARANTIES IMPLICITES EST INTERDITE PAR CERTAINS PAYS, ETATS OU PROVINCES. LEXCLUSION ENONCEE CI-DESSUS PEUT NE PAS SAPPLIQUER A VOTRE CAS PARTICULIER. CETTE GARANTIE VOUS ASSURE DES DROITS SPECIFIQUES. DAUTRES DROITS VARIANT DUN PAYS A LAUTRE PEUVENT EGALEMENT VOUS ETRE ACCORDES. Copyright 2003 Macromedia, Inc. Tous droits rservs. La copie, photocopie, reproduction, traduction ou conversion de ce manuel, sous quelque forme que ce soit, mcanique ou lectronique, partiellement ou dans son intgralit est interdite sans lautorisation pralable obtenue par crit auprs de Macromedia, Inc. Rfrence ZFL70M400F Remerciements Directeur : Erick Vera Gestion du projet : Stephanie Gowin, Barbara Nelson Rdaction : Jody Bleyle, Mary Burger, Kim Diezel, Stephanie Gowin, Dan Harris, Barbara Herbert, Barbara Nelson, Shirley Ong, Tim Statler Rdactrice en chef : Rosana Francescato Rvision : Linda Adler, Mary Ferguson, Mary Kraemer, Noreen Maher, Antonio Padial, Lisa Stanziano, Anne Szabla Gestion de la production : Patrice ONeill 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 Joanns Premire dition : Octobre 2003 Macromedia, Inc. 600 Townsend St. San Francisco, CA 94103

TABLE DES MATIERES

INTRODUCTION : Bien dmarrer avec ActionScript

....................... 9

Public vis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Configuration systme requise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Utilisation de la documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Conventions typographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Terminologie utilise dans ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Ressources supplmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

PARTIE I : Bienvenue dans ActionScriptCHAPITRE 1 : Nouveauts du langage ActionScript dans Flash MX 2004 . . . . .

15 15 17 17 23 24 25

Elments de langage nouveaux et modifis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nouveau modle de scurit et fichiers SWF hrits . . . . . . . . . . . . . . . . . . . . . . . Portage de scripts existants sur Flash Player 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifications de lditeur ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifications apportes dans le domaine du dbogage . . . . . . . . . . . . . . . . . . . . . Nouveau modle de programmation oriente objet . . . . . . . . . . . . . . . . . . . . . . . .CHAPITRE 2 : Notions de base du langage ActionScript .

. . . . . . . . . . . . . . . . . . 27 27 28 29 32 36 40 43 48 53 54 54

Diffrences entre ActionScript et JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Support du format Unicode pour ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A propos des types de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affectation de types de donnes aux lments . . . . . . . . . . . . . . . . . . . . . . . . . . . . A propos des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation doprateurs pour manipuler les valeurs des expressions . . . . . . . . . . . . Dfinition du chemin dun objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de fonctions intgres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

CHAPITRE 3 : Rdaction et dbogage de scripts

. . . . . . . . . . . . . . . . . . . . . . . . 59

Contrle de lexcution dActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Utilisation du panneau Actions et de la fentre de script . . . . . . . . . . . . . . . . . . . . 62 Utilisation de lditeur ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Dbogage de scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Utilisation du panneau de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Mise jour de Flash Player pour le test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

PARTIE II : Gestion des vnements et cration dinteractivitCHAPITRE 4 : Gestion dvnements.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Utilisation de mthodes de gestionnaire dvnement . . . . . . . . . . . . . . . . . . . . . . 89 Utilisation des couteurs dvnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Utilisation de gestionnaires dvnement de bouton et de clip . . . . . . . . . . . . . . . . 92 Cration de clips avec tats de bouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Domaine du gestionnaire dvnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Domaine du mot-cl this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96CHAPITRE 5 : Cration dinteractivit avec ActionScript .

. . . . . . . . . . . . . . . . . . 97

A propos des vnements et de linteraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Contrle de la lecture dun fichier SWF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Cration dinteractivit et deffets visuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Structure dun exemple de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

PARTIE III : Utilisation des objets et des classesCHAPITRE 6 : Utilisation des classes intgres

. . . . . . . . . . . . . . . . . . . . . . . . . 119

A propos des classes et des occurrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Aperu des classes intgres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120CHAPITRE 7 : Utilisation des clips

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

A propos du contrle des clips laide dActionScript . . . . . . . . . . . . . . . . . . . . . 127 Appel de plusieurs mthodes sur un seul clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Chargement et dchargement de fichiers SWF supplmentaires . . . . . . . . . . . . . 129 Spcification dun scnario racine pour les fichiers SWF chargs . . . . . . . . . . . . . 130 Chargement de fichiers JPEG dans des clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Modification de la position et de lapparence dun clip . . . . . . . . . . . . . . . . . . . . 131 Dplacement des clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Cration de clips lexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Ajout de paramtres aux clips crs dynamiquement . . . . . . . . . . . . . . . . . . . . . . 134 Gestion des profondeurs de clip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Dessin de formes avec ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Utilisation de clips comme masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

4

Table des matires

Gestion dvnements de clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Affectation dune classe un symbole de clip. . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Initialisation de proprits de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139CHAPITRE 8 : Utilisation du texte . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 142 143 144 145 154 161

Utilisation de la classe TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration de champs de texte lexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la classe TextFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formatage de texte avec les feuilles de style en cascade. . . . . . . . . . . . . . . . . . . . . Utilisation de texte au format HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration de texte dfilant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .CHAPITRE 9 : Cration de classes avec ActionScript 2.0 .

. . . . . . . . . . . . . . . . 163 164 165 169 173 175 177 179 180 181 182 183

Principes de la programmation oriente objet . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des classes : un exemple simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration et utilisation de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Membres doccurrence et de classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration et utilisation dinterfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comprhension du chemin de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Importation de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mthodes get/set implicites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration de classes dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compilation et exportation des classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PARTIE IV : Utilisation des donnes et des mdias externesCHAPITRE 10 : Utilisation de donnes externes . . . . .

. . . . . . . . . . . . . . . . . . . . 187

Echange de variables avec une source distante . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Echange de messages avec Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Fonctions de scurit de Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199CHAPITRE 11 : Utilisation de mdias externes

. . . . . . . . . . . . . . . . . . . . . . . . . . 205 205 206 207 208 209 210

Aperu du chargement de mdia 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . Prchargement de mdia externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table des matires

5

PARTIE V : RfrenceCHAPITRE 12 : Dictionnaire ActionScript

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

Exemple dentre pour la plupart des lments ActionScript . . . . . . . . . . . . . . . . 215 Exemple dentre 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 matires

ANNEXE A : Messages derreur .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893 . . . . . . . . . . . . . . . . . . . . . 899 . . . . . . . . 901

ANNEXE B : Priorit et associativit des oprateurs .

ANNEXE C : Touches du clavier et valeurs de code correspondantes

Lettres A Z et chiffres (clavier standard) de 0 9. . . . . . . . . . . . . . . . . . . . . . . . 901 Touches du clavier numrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902 Touches de fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903 Autres touches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904ANNEXE D : Ecriture de scripts destins des versions antrieures de Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . 907

A propos du ciblage danciennes versions de Flash Player. . . . . . . . . . . . . . . . . . . 907 Utilisation de Flash MX 2004 pour crer du contenu destin Flash Player 4 . . . 908ANNEXE E : Programmation oriente objet avec ActionScript 1 . . .

. . . . . . . . . . 911

A propos dActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911INDEX

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921

Table des matires

7

8

Table des matires

INTRODUCTION Bien dmarrer avec ActionScript

Macromedia Flash MX 2004 et Flash MX Professionnel 2004 sont les outils standard des professionnels pour la cration de contenu web percutant. ActionScript est le langage que vous utilisez pour dvelopper une application dans Flash. Vous pouvez trs bien vous servir de Flash sans ActionScript. Toutefois, si linteractivit utilisateur est une de vos priorits ou si vous voulez utiliser des objets autres que ceux qui sont intgrs dans Flash (tels les boutons et les clips) ou crer des applications plus complexes partir de fichiers SWF, il est probable que vous aurez recours ActionScript.

Public visCe manuel prsume que vous avez dj install Flash MX 2004 ou Flash MX Professionnel 2004 et que vous savez comment lutiliser. Il considre galement comme acquis que vous savez placer des objets sur la scne et les manipuler dans lenvironnement auteur de Flash. Si vous avez dj crit des programmes, vous vous sentirez en terrain connu avec ActionScript. Et si vous tes un novice, vous naurez aucun mal faire son apprentissage. Le plus simple consiste commencer par les commandes de base et aborder les lments plus complexes progressivement.

Configuration systme requiseLa configuration systme requise par ActionScript est identique celle de Flash MX 2004 ou Flash MX Professionnel 2004. Toutefois, la documentation suppose que vous utilisez les paramtres de publication par dfaut pour vos fichiers Flash : Flash Player 7 et ActionScript 2.0. Si vous modifiez ces paramtres, les explications et les exemples de code contenus dans la documentation risquent de ne pas fonctionner correctement.

Utilisation de la documentationCe manuel passe en revue les principes gnraux de la syntaxe ActionScript, explique comment utiliser ce langage pour intervenir sur diffrents types dobjet et dcrit en dtail la syntaxe et lutilisation de chaque lment. Commencez par vous familiariser avec la terminologie et les concepts de base utiliss dans le reste du manuel (consultez le Chapitre 2, Notions de base du langage ActionScript, page 27). Vous pourrez ensuite vous concentrer sur lcriture et le dbogage de scripts Flash (consultez le Chapitre 3, Rdaction et dbogage de scripts, page 59).

9

Avant de crer vos propres scripts, suivez les leons Rdiger des scripts avec ActionScript et Crer un formulaire contenant une logique conditionnelle et envoyer des donnes , qui constituent une introduction interactive lutilisation dActionScript. Pour localiser ces leons, slectionnez Aide > Comment > Manuel de prise en main rapide. Une fois que vous matrisez les concepts de base, vous pouvez rechercher, dans le reste du manuel, les informations qui vous permettront dobtenir leffet que vous recherchez. Si, par exemple, vous voulez savoir comment crire un script qui excute une action spcifique lorsquun utilisateur clique avec la souris, consultez le Chapitre 4, Gestion dvnements, page 89. Lorsque vous trouvez des informations sur une commande qui vous intresse, vous pouvez consulter lentre correspondante dans le Chapitre 12, Dictionnaire ActionScript, page 215 ; tous les lments du langage y sont rpertoris par ordre alphabtique.

Conventions typographiquesCe manuel utilise les conventions typographiques suivantes :

le code ActionScript. identifie un lment, tel un paramtre ou un nom dobjet ActionScript, que vous remplacez par votre propre texte lorsque vous crez un script.La police de code en italique

La police de code indique

Terminologie utilise dans ce manuelCe manuel utilise les termes suivants :

Vous fait rfrence au programmeur qui crit un script ou une application. Lutilisateur dsigne la personne qui excute vos scripts et applications. Compilation correspond au moment auquel vous publiez, exportez, testez ou dboguez votre document. Excution reprsente le moment auquel votre script sexcute dans Flash Player.

Les termes ActionScript tels que mthode et objet sont dfinis dans le Chapitre 2, Notions de base du langage ActionScript, page 27.

Ressources supplmentairesLa documentation spcifique Flash et aux produits apparents est disponible sparment.

Pour plus dinformations sur lutilisation de lenvironnement auteur de Flash, consultez le guide Utilisation de Flash de laide. Pour en savoir plus sur lutilisation des composants, consultez le guide Utilisation des composants de laide. Pour plus dinformations sur la cration dapplications de communication, consultez les leons Dveloppement dapplications de communication et Gestion du serveur de communications Flash . Pour plus dinformations sur laccs aux services web avec des applications Flash, consultez Using Flash Remoting.

10

Introduction : Bien dmarrer avec ActionScript

Le site web Macromedia DevNet (www.macromedia.com/go/developer_fr) est rgulirement actualis et propose les informations les plus rcentes sur Flash, ainsi que des conseils dutilisateurs expriments, des rubriques avances, des exemples, des astuces et dautres mises jour. Consultez rgulirement ce site web pour vous tenir au courant des nouveauts 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 supplmentaires dans la communaut Flash.

Ressources supplmentaires

11

12

Introduction : Bien dmarrer avec ActionScript

PARTIE I Bienvenue dans ActionScript

PARTIE I

Cette section inclut des informations lmentaires sur le langage ActionScript. Le Chapitre 1 comprend des informations concernant les nouveauts ou les modifications apportes ActionScript et Flash Player 7. Si vous avez dj utilis ActionScript, veillez lire attentivement ces informations. Si vous navez jamais utilis ActionScript, les chapitres 2 et 3 contiennent les bases qui vous permettront de comprendre la terminologie et la syntaxe dActionScript et de savoir crire et dboguer vos scripts. Chapitre 1 : Nouveauts du langage ActionScript dans Flash MX 2004 . . . . . . . . . . . . . . . . . . 15 Chapitre 2 : Notions de base du langage ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Chapitre 3 : Rdaction et dbogage de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

CHAPITRE 1 Nouveauts du langage ActionScript dans Flash MX 2004

Macromedia Flash MX 2004 et Macromedia Flash MX Professionnel 2004 bnficient de plusieurs amliorations pour vous permettre dcrire facilement des scripts plus robustes laide du langage ActionScript. Ces amliorations, dcrites dans ce chapitre, portent notamment sur de nouveaux lments de langage, les outils de dbogage et ddition (consultez Modifications de lditeur ActionScript, page 23 et Modifications apportes dans le domaine du dbogage, page 24), ainsi que lutilisation dun modle de programmation plus orient objet (consultez Nouveau modle de programmation oriente objet, page 25). Ce chapitre contient galement une section dtaille lire attentivement si vous projetez de publier lun de vos fichiers existants Flash MX ou dune version antrieure dans Flash Player 7 (consultez Portage de scripts existants sur Flash Player 7, page 17).

Elments de langage nouveaux et modifisCette section dcrit les lments du langage ActionScript qui sont nouveaux ou ont t modifis dans Flash MX 2004. Pour pouvoir utiliser ces lments dans vos scripts, vous devez utiliser Flash Player 7 (lecteur par dfaut) lors de la publication des documents.

Les mthodes Array.sort et Array.sortOn() vous permettent dajouter des paramtres pour spcifier des options de tri supplmentaires, par exemple un tri ascendant ou descendant, le respect de la casse lors du tri et bien dautres options encore. Les proprits Button.menu, MovieClip.menu et TextField.menu se conjuguent aux nouvelles classes ContextMenu et ContextMenuItem pour vous permettre dassocier des lments de menu contextuel des objets Button, MovieClip ou TextField. La Classe ContextMenu et la Classe ContextMenuItem vous permettent de personnaliser le menu contextuel qui saffiche lorsquun utilisateur clique avec le bouton droit de la souris (Windows) ou en appuyant sur la touche Contrle (Macintosh) dans Flash Player. La Classe Error et les commandes throw et try..catch..finally vous permettent dimplmenter une gestion des exceptions plus robuste. Les mthodes LoadVars.addRequestHeader() et XML.addRequestHeader() ajoutent ou modifient les en-ttes de requte HTTP (tels que Content-Type ou SOAPAction ) envoys avec les actions POST. La fonction MMExecute() vous permet dmettre des commandes de lAPI Flash JavaScript partir dActionScript.

15

(Windows uniquement) Lcouteur dvnement Mouse.onMouseWheel est gnr lorsquelutilisateur effectue un dfilement en utilisant la molette de la souris.

La mthode MovieClip.getNextHighestDepth() vous permet de crer des occurrences deMovieClip au moment de lexcution et de vous assurer que leurs objets seront placs devant les autres objets dans lespace z dun clip parent. La mthode MovieClip.getInstanceAtDepth() vous permet daccder des occurrences de MovieClip cres dynamiquement en utilisant la profondeur comme index de recherche. La mthode MovieClip.getSWFVersion() vous permet de dterminer quelle version de Flash Player est supporte par un fichier SWF charg. Les mthodes MovieClip.getTextSnapshot() et lObjet TextSnapshot vous permettent dintervenir sur du texte qui figure dans des champs de texte statiques dans un clip. La proprit MovieClip._lockroot vous permet dindiquer quun 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 modifie si le clip est charg dans un autre clip. La Classe MovieClipLoader vous permet de contrler la progression du tlchargement de fichiers dans des clips. La Classe NetConnection et la Classe NetStream vous permettent de lire en continu des fichiers vido en local (fichiers FLV). La Classe PrintJob vous donne (ainsi qu lutilisateur) davantage de contrle sur les impressions partir de Flash Player. Le gestionnaire dvnement Sound.onID3 donne accs aux donnes ID3 associes un objet Sound contenant un fichier MP3. La proprit Sound.ID3 donne accs aux mtadonnes faisant partie dun fichier MP3. La Classe System comporte de nouveaux objets et mthodes et lObjet System.capabilities possde plusieurs proprits nouvelles. La proprit TextField.condenseWhite vous permet de supprimer lespace blanc supplmentaire dans les champs de texte HTML qui sont rendus dans un navigateur. La proprit TextField.mouseWheelEnabled vous permet de spcifier si le contenu dun champ de texte doit dfiler lorsque le pointeur de la souris est plac dessus et que lutilisateur actionne la molette. La Classe TextField.StyleSheet vous permet de crer un objet feuille de style contenant des rgles de formatage de texte, comme la taille et la couleur de la police, et dautres styles de formatage. La proprit TextField.styleSheet vous permet dassocier un objet feuille de style un champ de texte. La mthode TextFormat.getTextExtent() accepte un nouveau paramtre et lobjet quelle renvoie contient un nouveau membre. La mthode XML.addRequestHeader() vous permet dajouter ou de modifier les en-ttes de requte HTTP (tels que Content-Type ou SOAPAction ) envoys avec les actions POST.

16

Chapitre 1 : Nouveauts du langage ActionScript dans Flash MX 2004

Nouveau modle de scurit et fichiers SWF hritsLes rgles qui permettent Flash Player de dterminer si deux domaines sont identiques ont chang dans Flash Player 7. Les rgles qui dterminent si, et de quelle faon, un fichier SWF servi par un domaine HTTP peut accder un fichier SWF ou charger des donnes partir dun domaine HTTPS ont galement chang. Dans la plupart des cas, ces modifications nont pas dincidence, 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 antrieure, des fichiers SWF qui chargent des donnes issues dun fichier rsidant sur un serveur et que le fichier SWF lorigine de lappel sexcute dans Flash Player 7, une nouvelle bote de dialogue invitant lutilisateur autoriser laccs est susceptible de safficher. Vous pouvez empcher laffichage de cette bote de dialogue en mettant en uvre un fichier de rgulation sur le site contenant les donnes. Pour plus dinformations sur cette bote de dialogue, consultez A propos de la compatibilit avec les prcdents modles de scurit Flash Player, page 202. Il peut galement tre ncessaire dimplmenter un fichier de rgulation si vous utilisez des bibliothques partages lexcution. Si le fichier SWF charg ou en chargement est publi pour Flash Player 7 et que les fichiers chargs ou en chargement ne sont pas servis par le mme domaine, utilisez un fichier de rgulation pour autoriser laccs. Pour plus dinformations sur les fichiers de rgulation, consultez A propos de lautorisation de chargement de donnes inter-domaines, page 201.

Portage de scripts existants sur Flash Player 7A linstar de toute nouvelle version, Flash Player 7 prend en charge un plus grand nombre de commandes ActionScript que ses versions prcdentes. Ces commandes vous permettent dimplmenter des scripts plus robustes. (Consultez Elments de langage nouveaux et modifis, page 15.) Toutefois, si vous avez utilis lune 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 lun de vos scripts contient une fonction nomme Error, le script peut sembler se compiler correctement mais ne pas tre excut comme prvu dans Flash Player 7, car Error est dsormais une classe intgre (et donc un mot rserv) dans ActionScript. Vous pouvez corriger votre script en renommant la fonction Error, par exemple en ConditionErreur. De plus, Flash Player 7 implmente diffrentes modifications qui affectent la faon dont un fichier SWF accde un autre fichier SWF, la faon dont les donnes externes peuvent tre charges et le mode daccs aux paramtres et donnes locaux (par exemple les paramtres de contrle de laccs et les objets partags localement). Enfin, le comportement de certaines fonctions existantes a t modifi. Si vous voulez publier, pour Flash Player 7, des scripts destins Flash Player 6 ou une version antrieure, vous devrez peut-tre les modifier afin quils se conforment limplmentation de Flash Player 7 et fonctionnent correctement. Les modifications requises sont dcrites 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 bases sur les classes disponibles dans ActionScript 2,0 (consultez Nouveau modle de programmation oriente objet, page 25), dautres fonctions ont t ajoutes et certains comportements modifis. De plus, lorsque vous effectuez une publication pour Flash Player 7 et que vous utilisez ActionScript 2.0, vous pouvez attribuer un type dobjet un autre. Pour plus dinformations, consultez Attribution dobjets, page 42. Vous ntes pas oblig dactualiser vos scripts existants. Toutefois, il est souhaitable dutiliser ces fonctions si vous publiez, pour Flash Player 7, des scripts que vous modifierez et enrichirez par la suite. Contrairement aux modifications mentionnes plus haut, les modifications rpertories 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 lintention de publier pour Flash Player 7, passez les modifications en revue pour dterminer si le code fonctionne toujours correctement ou si vous devez le rcrire. Plus particulirement, il est conseill dinitialiser toutes les variables des scripts que vous portez sur Flash Player 7, car undefined est valu de faon diffrente dans certains cas.Fichier SWF publi pour Flash Player 7 Le respect de la casse est pris en charge (les noms de variable dont la casse est diffrente sont interprts comme tant diffrents). Cette modification a galement des rpercussions sur les fichiers chargs au moyen de #include et les variables externes charges via LoadVars.load(). Pour plus dinformations, consultez Hauteur de casse, page 32. Lvaluation de undefined dans un contexte numrique renvoie NaN.monNombre +=1; trace(monNombre); // NaN

Fichier SWF publi pour des versions prcdentes de Flash Player Le respect de la casse nest pas pris en charge (les noms de variable dont la casse est diffrente sont interprts comme tant identiques).

Lvaluation de undefined dans un contexte numrique renvoie 0.monNombre +=1; trace(monNombre); // 1

Lorsque undefined est converti en chane, le rsultat Lorsque undefined est converti en chane, le est undefined. rsultat est "" (une chane vide).prnom = "Joan "; nom = "Flender"; trace(prnom + deuxime prnom + nom); // Joan undefinedFlender prnom = "Joan "; nom = "Flender"; trace(prnom + deuxime prnom + nom); // Joan Flender

18

Chapitre 1 : Nouveauts du langage ActionScript dans Flash MX 2004

Fichier SWF publi pour Flash Player 7 Lorsque vous convertissez une chane en valeur boolenne, le rsultat est true si la longueur de la chane est suprieure zro et false pour une chane vide. Lorsque vous dfinissez la longueur dun tableau, seule une chane de nombre valide peut dfinir 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

Fichier SWF publi pour des versions prcdentes de Flash Player Lorsque vous convertissez une chane en valeur boolenne, la chane est tout dabord convertie en nombre. Le rsultat est true si le nombre nest pas gal zro et false dans le cas contraire. Lorsque vous dfinissez la longueur dun tableau, mme une chane de nombre mal formule peut dfinir 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

Rgles de nom de domaine pour les paramtres et les donnes locales Dans Flash Player 6, les rgles de correspondance de superdomaine sont utilises par dfaut pour accder aux paramtres locaux (tels que les autorisations daccs de la camra ou du microphone) ou aux donnes persistantes localement (objets partags). Cela signifie que les paramtres et donnes de fichiers SWF rsidant sur ici.xyz.com, la.xyz.com et xyz.com sont partags et tous enregistrs sur xyz.com. Dans Flash Player 7, les rgles de correspondance exacte de domaine sont utilises par dfaut. Cela signifie que les paramtres et donnes dun fichier hberg sur ici.xyz.com sont enregistrs sur ici.xyz.com, les paramtres et donnes dun fichier hberg sur la.xyz.com sont enregistrs sur la.xyz.com et ainsi de suite. Une nouvelle proprit, System.exactSettings, vous permet de spcifier les rgles utiliser. Cette proprit est supporte pour les fichiers publis pour Flash Player 6 ou une version ultrieure. Pour les fichiers publis pour Flash Player 6, la valeur par dfaut est false, ce qui signifie que les rgles de correspondance de superdomaine sont utilises. Pour les fichiers publis pour Flash Player 7, la valeur par dfaut est true, ce qui signifie que les rgles de correspondance exacte de domaine sont utilises. Si vous utilisez des paramtres ou des donnes locales persistantes et souhaitez publier un fichier SWF Flash Player 6 pour Flash Player 7, il peut tre ncessaire de dfinir cette valeur sur false dans le fichier port. Pour plus dinformations, consultez System.exactSettings, page 755. Accs interdomaine et accs aux sous-domaines entre les fichiers SWF Lorsque vous dveloppez une srie 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 hberger les animations dans des domaines diffrents ou dans des sous-domaines diffrents dun mme superdomaine.

Portage de scripts existants sur Flash Player 7

19

Dans les fichiers publis pour Flash Player 5 ou une version ultrieure, laccs aux inter-domaines et sous-domaines ntait soumis aucune restriction. Dans les fichiers publis pour Flash Player 6, vous pouviez utiliser le gestionnaire LocalConnection.allowDomain ou la mthode System.security.allowDomain() pour spcifier laccs inter-domaines autoris (par exemple pour autoriser laccs un fichier situ sur unSite.com par un fichier situ sur unAutreSite.com). Aucune commande ntait ncessaire pour autoriser laccs au superdomaine (par exemple, un fichier situ sur store.unSite.com pouvait accder un fichier situ sur www.unSite.com). Les fichiers publis pour Flash Player 7 implmentent laccs entre les fichiers SWF diffremment des versions prcdentes, et ce de deux manires : tout dabord, Flash Player 7 implmente les rgles de correspondance exacte de domaine et non les rgles de correspondance de superdomaine. Ainsi, le fichier auquel on accde (mme sil est publi pour une version antrieure Flash Player 7) doit autoriser de faon explicite laccs aux inter-domaines et sous-domaines. Ce sujet est abord plus bas. Ensuite, un fichier hberg sur un site qui utilise un protocole scuris (HTTPS) doit autoriser de faon explicite laccs partir dun fichier hberg sur un site utilisant un protocole non scuris (HTTP ou FTP). Ce sujet est abord dans la section suivante (consultez Accs du protocole HTTP vers le protocole HTTPS entre les fichiers SWF, page 21). Etant donn que Flash Player 7 implmente les rgles de correspondance exacte de domaine et non les rgles de correspondance de superdomaine, il peut tre ncessaire de modifier les scripts existants si vous souhaitez y accder partir de fichiers publis pour Flash Player 7. (Vous pouvez toujours publier les fichiers modifis pour Flash Player 6.) Si vous avez utilis une instruction LocalConnection.allowDomain() ou System.security.allowDomain() dans vos fichiers et que vous avez spcifi des sites de superdomaine autoriser, vous devez modifier vos paramtres pour spcifier les domaines exacts la place. Le code suivant prsente un exemple des types de modifications quil peut tre ncessaire dapporter :// commandes Flash Player 6 dun fichier SWF situ sur www.unAncienSite.com // pour autoriser laccs par des fichiers SWF hbergs 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 laccs par les fichiers SWF // qui sont publis 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 ncessaire dajouter des instructions similaires dans vos fichiers si vous ne les utilisez pas actuellement. Par exemple, si votre fichier SWF est hberg sur www.unSite.com et que vous souhaitez autoriser laccs 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 : Nouveauts du langage ActionScript dans Flash MX 2004

Pour rsumer, il peut tre ncessaire 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 implment des scripts entre des fichiers SWF ( laide de loadMovie(), ou dobjets Local Connection). Le fichier SWF appel (de nimporte quelle version) nest pas hberg sur un site utilisant un protocole scuris (HTTPS), ou le fichier SWF appel et celui effectuant lappel sont tous deux hbergs sur des sites HTTPS (si seul le fichier SWF appel est HTTPS, consultez Accs du protocole HTTP vers le protocole HTTPS entre les fichiers SWF, page 21). Les fichiers SWF ne se trouvent pas dans le mme domaine (par exemple, lun deux rside sur www.domaine.com et lautre sur store.domaine.com).MovieClip.loadMovie(), MovieClipLoader.LoadClip(),

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 antrieure, 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 supports dans Flash Player 5 ou version antrieure.)

Accs du protocole HTTP vers le protocole HTTPS entre les fichiers SWF Comme nous lavons vu dans la section prcdente, les rgles daccs aux inter-domaines et sousdomaines ont t modifies dans Flash Player 7. En plus des rgles de correspondance exacte de domaine dornavant implmentes, vous devez autoriser de faon explicite laccs aux fichiers situs sur des sites utilisant un protocole scuris (HTTPS) par des fichiers hbergs sur des sites utilisant des protocoles non scuriss. Selon que votre fichier est publi pour Flash Player 7 ou Flash Player 6, vous devez implmenter lune des deux instructions allowDomain (consultez Accs interdomaine et accs aux sous-domaines entre les fichiers SWF, page 19), ou utiliser les nouvelles instructions LocalConnection.allowInsecure Domain ou System.security.allowInsecureDomain().Avertissement : Limplmentation dune instruction allowInsecureDomain() compromet la scurit assure par le protocole HTTPS. Vous devez effectuer ces modifications uniquement si vous ne pouvez pas rorganiser votre site de manire ce que tous les fichiers SWF soient servis par le protocole HTTPS.

Le code suivant prsente un exemple des types de modifications quil peut tre ncessaire dapporter :// Commandes dans un fichier SWF Flash Player 6 situ sur https:// www.unSite.com // pour autoriser laccs par des fichiers SWF Flash Player 7 hbergs // 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 laccs par des fichiers SWF Flash Player 7 hbergs // 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 ncessaire dajouter des instructions similaires dans vos fichiers si vous ne les utilisez pas actuellement. Une modification peut savrer ncessaire mme si les deux fichiers rsident dans le mme domaine (par exemple, un fichier situ sur http://www.domaine.com appelle un fichier situ sur https://www.domaine.com). Pour rsumer, il peut tre ncessaire de modifier vos fichiers pour ajouter ou modifier des instructions si vous publiez des fichiers pour Flash Player 7 qui correspondent aux critres suivants :

Vous avez implment des scripts entre des fichiers SWF ( laide de loadMovie(),MovieClip.loadMovie(), MovieClipLoader.LoadClip(),

ou dobjets Local Connection).

Le fichier effectuant lappel nest pas hberg laide dun protocole HTTPS et le fichier appelest HTTPS. Vous devez effectuer les modifications suivantes :

Si le fichier appel est publi pour Flash Player 7, incluezSystem.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 mme lorsque le fichier SWF appel et celui effectuant lappel se trouvent sur le mme domaine. Si le fichier appel est publi pour Flash Player 6 ou une version antrieure, et que le fichier effectuant lappel et le fichier appel rsident dans le mme domaine (par exemple, si un fichier sur http://www.domaine.com appelle un fichier situ sur https://www.domaine.com), aucune modification nest ncessaire. Si le fichier appel est publi pour Flash Player 6, que les fichiers ne se trouvent pas sur le mme 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 mme si les deux fichiers se trouvent dans le mme domaine.

22

Chapitre 1 : Nouveauts du langage ActionScript dans Flash MX 2004

Si le fichier appel est publi pour Flash Player 5 ou une version antrieure et que les deuxfichiers ne se trouvent pas sur le mme domaine, vous pouvez procder de lune des deux manires 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 rgulation ct serveur pour autoriser laccs aux donnes Un document Flash peut charger les donnes depuis une source externe laide de lun des appels de chargement de donnes 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 bibliothques partages lexcution (RSL) ou des actifs dfinis dans un autre fichier SWF, au moment de lexcution. Par dfaut, les donnes ou le support RSL doivent se trouver sur le mme domaine que le fichier SWF qui charge ces donnes externes ou ce support. Pour que les fichiers SWF situs dans diffrents domaines puissent accder aux donnes et aux actifs contenus dans des bibliothques partages lexcution, utilisez un fichier de rgulation inter-domaines. Il sagit dun fichier XML qui permet au serveur dindiquer que ses donnes 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 spcifi par le fichier de rgulation du serveur peut accder aux donnes et aux RSL de ce serveur. Si vous chargez des donnes externes, il est conseill de crer des fichiers de rgulation mme si vous ne projetez pas de porter vos fichiers sur Flash Player 7. Si vous utilisez des bibliothques partages lexcution (RSL), il est conseill de crer des fichiers de rgulation si le fichier appel ou le fichier effectuant lappel est publi pour Flash Player 7. Pour plus dinformations, consultez A propos de lautorisation de chargement de donnes interdomaines, page 201.

Modifications de lditeur ActionScriptLditeur ActionScript a subi diffrentes mises jour afin dtre plus robuste et plus simple utiliser. Cette section rcapitule toutes ces modifications.Retour automatique la ligne Pour activer ou dsactiver le retour automatique la ligne, vous pouvez dsormais utiliser le menu doptions contextuel de la fentre de script, du panneau Dbogueur et du panneau de sortie. Vous pouvez galement lactiver ou le dsactiver laide du menu droulant du panneau Actions. Le raccourci clavier est Ctrl+Maj+W (Windows) ou Commande+Maj+W (Macintosh). Affichage de laide contextuelle Lorsque vous positionnez votre pointeur sur un lment du langage ActionScript dans la bote outils ou la fentre de script du panneau Actions, vous pouvez utiliser loption Afficher laide du menu contextuel pour afficher une page daide concernant cet lment.

Modifications de lditeur ActionScript

23

Importation de scripts Lorsque vous slectionnez Importer le script dans le menu droulant du panneau Actions, le script import est copi dans le script lemplacement du point dinsertion dans votre fichier code. Dans les versions antrieures de Flash, limportation dun script crasait le contenu du script existant. Points darrt en un clic Pour ajouter un point darrt de dbogage devant une ligne de code dans les panneaux Dbogueur, Script ou Actions, vous pouvez cliquer dans la marge de gauche. Dans les versions antrieures de Flash, le fait de cliquer dans la marge de gauche slectionnait une ligne de code. La nouvelle faon de slectionner 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 antrieures de Flash, vous pouviez travailler dans le panneau Actions soit en mode normal, dans lequel vous compltiez des options et des paramtres pour crer du code, soit en mode expert, dans lequel vous ajoutiez des commandes directement dans la fentre 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 fentre de script. Vous pouvez toujours faire glisser des commandes de la bote outils vers la fentre de script ou utiliser le bouton Ajouter (+) situ au-dessus de la fentre de script pour ajouter des commandes un script. Verrouillage de plusieurs scripts

Vous pouvez verrouiller plusieurs scripts figurant dans un fichier FLA le long du bord infrieur de la fentre de script dans le panneau Actions. Dans les versions prcdentes de Flash, vous ne pouviez verrouiller quun seul script la fois. La partie gauche du panneau Actions contient dsormais deux panneaux : la bote outils Actions et un nouveau navigateur de script. Le navigateur de script est une reprsentation visuelle de la structure de votre fichier FLA ; il vous permet de parcourir votre fichier FLA pour localiser le code ActionScript.

Navigateur de script

Fentre de script intgre pour la modification de fichiers externes (Flash Professionnel uniquement) Vous pouvez utiliser lditeur ActionScript dans une fentre de script (distincte du

panneau Actions) pour crire et modifier des fichiers scripts externes. La coloration de la syntaxe, les conseils de code et dautres prfrences sont supports dans la fentre de script. Une bote outils est galement disponible. Pour afficher la fentre de script, cliquez sur Fichier > Nouveau, puis slectionnez le type de fichier externe modifier. Vous pouvez ouvrir plusieurs fichiers externes simultanment ; les noms de fichier saffichent alors sur des onglets en haut de la fentre de script. Cette fonction est uniquement disponible sous Windows.

Modifications apportes dans le domaine du dbogageCette section dcrit les modifications permettant damliorer votre capacit dboguer vos scripts.Fentre Sortie change en panneau de sortie Vous pouvez dsormais dplacer et ancrer le panneau de sortie de la mme manire que nimporte quel autre panneau dans Flash. Amlioration de la signalisation des erreurs au moment de la compilation

ActionScript 2.0 fournit non seulement une gestion des exceptions plus robuste, mais il propose galement plusieurs nouvelles erreurs de compilation. Pour plus dinformations, consultez lAnnexe A, Messages derreur, page 893.

Amlioration de la gestion des exeptions La classe Error et les commandes throw et try..catch..finally vous permettent dimplmenter une gestion des exceptions plus robuste.

24

Chapitre 1 : Nouveauts du langage ActionScript dans Flash MX 2004

Nouveau modle de programmation oriente objetDepuis son introduction il y a quelques annes de cela, le langage ActionScript na cess de se dvelopper. A chaque nouvelle version de Flash, de nouveaux mots-cls, objets, mthodes et autres lments de langage sont ajouts. Cependant, contrairement aux versions antrieures de Flash, Flash MX 2004 et Flash MX Professionnel 2004 prsentent plusieurs nouveaux lments de langage qui renforcent sa standardisation selon le modle de programmation oriente objet. Ces lments de langage constituent une amlioration significative du langage ActionScript de base et reprsentent donc une nouvelle version dActionScript lui-mme : ActionScript 2.0. ActionScript 2.0 nest pas un nouveau langage. Il sagit plutt dun ensemble dlments de langage de base qui simplifient le dveloppement de programmes orients objet. Lintroduction de mots-cls tels que class, interface, extends et implements facilite lapprentissage de la syntaxe ActionScript aux programmeurs habitus dautres langages. Les nouveaux programmeurs apprennent ainsi une terminologie standard applicable dautres langages orients objet quils tudieront sans doute ultrieurement. ActionScript 2.0 supporte tous les lments standard du langage ActionScript. Il vous permet simplement dcrire des scripts plus conformes aux normes utilises dans dautres langages orients objet, tels que Java. ActionScript 2.0 intressera principalement les dveloppeurs Flash de niveau intermdiaire ou avanc qui crent des applications ncessitant limplmentation de classes et de sous-classes. ActionScript 2.0 vous permet galement de dclarer le type dobjet dune variable au moment de sa cration (consultez Typage strict des donnes, page 40) et amliore considrablement les erreurs de compilateur (consultez lAnnexe A, Messages derreur, page 893). Les nouveaux lments dActionScript 2.0 sont rpertoris ci-dessous :

class extends implements interface dynamic static public private get set import

Les principaux points connatre sur ActionScript 2,0 sont les suivants :

Les scripts utilisant ActionScript 2.0 pour dfinir des interfaces doivent tre enregistrs en tant que fichiers scripts externes, avec une seule classe dfinie dans chaque script. Cela implique que les classes et les interfaces ne peuvent pas tre dfinies dans le panneau Actions. Vous pouvez importer des fichiers de classe individuels de faon implicite (en les enregistrant dans un emplacement spcifi par des chemins de recherche gnraux ou spcifiques des documents et en les utilisant dans un script) ou de faon explicite (en utilisant la commande import). Vous pouvez importer des ensembles de fichiers (ensembles de fichiers de classe dans un rpertoire) en utilisant des caractres gnriques.

Nouveau modle de programmation oriente objet

25

Les applications dveloppes laide dActionScript 2.0 sont supportes par Flash Player 6 etles versions ultrieures.Attention : Le paramtre de publication par dfaut des nouveaux fichiers crs dans Flash MX 2004 est ActionScript 2.0 Si vous projetez de modifier un fichier FLA existant pour utiliser la syntaxe ActionScript 2.0, vrifiez que le fichier FLA spcifie bien ActionScript 2.0 dans ses paramtres de publication. Si ce nest pas le cas, votre fichier ne sera pas compil correctement, mme si Flash ne gnre pas derreurs de compilateur.

Pour plus dinformations sur lutilisation dActionScript 2.0 pour lcriture de programmes orients objet en Flash, consultez le Chapitre 9, Cration de classes avec ActionScript 2.0, page 163.

26

Chapitre 1 : Nouveauts du langage ActionScript dans Flash MX 2004

CHAPITRE 2 Notions de base du langage ActionScript

ActionScript possde des rgles de grammaire et de ponctuation qui dterminent les caractres ou les mots porteurs de sens et lordre dans lequel ils peuvent tre rdigs. Par exemple, en franais, un point termine une phrase. Dans ActionScript, cest un point-virgule qui termine une instruction. Les rgles gnrales suivantes sappliquent tous les scripts ActionScript. La plupart des termes ActionScript font galement lobjet de rgles individuelles ; pour en savoir plus sur les rgles qui sappliquent un terme dtermin, consultez lentre correspondante dans le Chapitre 12, Dictionnaire ActionScript, page 215.

Diffrences entre ActionScript et JavaScriptActionScript est similaire au langage de programmation JavaScript. La connaissance de JavaScript nest pas indispensable pour apprendre utiliser ActionScript. Toutefois, si vous connaissez JavaScript, ActionScript vous semblera familier. Cet ouvrage na pas pour but denseigner la programmation gnrale. Il existe de nombreuses sources qui fournissent des informations complmentaires sur les concepts de programmation gnraux et sur le langage JavaScript.

LECMA (European Computers Manufacturers Association) a tabli la spcification ECMA-262, drive du langage JavaScript, qui sert de norme internationale pour le langage JavaScript. ActionScript est bas sur la spcification ECMA-262. Netscape DevEdge Online offre un centre de dveloppement JavaScript (http://developer.netscape.com/tech/javascript/index.html) qui contient de la documentation et des articles utiles la comprhension dActionScript. La ressource la plus importante est le Core JavaScript Guide.

Les principales diffrences qui existent entre ActionScript et JavaScript sont les suivantes :

ActionScript ne supporte pas les objets spcifiques aux navigateurs que sont les documents,fentres et ancres, par exemple.

ActionScript ne supporte pas entirement tous les objets JavaScript intgrs. ActionScript ne supporte pas certaines constructions syntaxiques JavaScript, telles que lestiquettes dinstructions.

Dans ActionScript, laction eval() ne peut effectuer que des rfrences aux variables.

27

Support du format Unicode pour ActionScriptMacromedia Flash MX 2004 et Macromedia Flash MX Professionnel 2004 prennent en charge le codage du texte au format Unicode pour ActionScript. Vous pouvez donc intgrer du texte en diffrentes langues dans un mme fichier ActionScript. Vous pouvez par exemple intgrer du texte en anglais, en japonais et en franais dans un mme fichier. Vous pouvez dfinir les prfrences dActionScript afin de spcifier le type de codage utiliser lors de limportation ou de lexportation de fichiers ActionScript. Vous avez le choix entre le codage UTF-8 ou le codage par dfaut. UTF-8 est le format Unicode 8 bits. Le codage par dfaut, ou page de code classique, est le codage pris en charge par la langue utilise actuellement sur votre systme. En rgle gnrale, 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 systme, choisissez Codage par dfaut comme prfrence. Si le texte que contiennent vos scripts ne saffiche pas correctement lorsque vous ouvrez ou importez un fichier, modifiez la prfrence de codage pour limportation. Si vous obtenez un avertissement lors de lexportation de fichiers ActionScript, vous pouvez modifier la prfrence de codage pour lexportation ou dsactiver laffichage de cet avertissement dans les prfrences ActionScript.Pour choisir des options de codage de texte pour limportation ou lexportation de fichiers ActionScript :

1 Dans la bote de dialogue Prfrences (Modifier > Prfrences), cliquez sur longlet

ActionScript.2 Dans la section Options ddition, effectuez au moins une des actions suivantes :

Pour loption Ouvrir/Importer, choisissez UTF-8 pour ouvrir ou importer en utilisant le codage Unicode, ou choisissez Codage par dfaut pour ouvrir ou importer en utilisant le format de codage de la langue de votre systme actuel. Pour loption Enregistrer/Exporter, choisissez UTF-8 pour enregistrer ou exporter en utilisant le codage Unicode, ou choisissez Codage par dfaut pour enregistrer ou exporter en utilisant le format de codage de la langue de votre systme actuel.

Pour activer ou dsactiver le message davertissement de codage dexportation :

1 Dans la bote de dialogue Prfrences (Edition > Prfrences), cliquez sur longlet

Avertissements. 2 Activez ou dsactivez loption Avertir des conflits de codage pendant lexportation de fichiers .as.Attention : La commande Tester lanimation (consultez Dbogage de scripts, page 73) choue si une partie du chemin du fichier SWF contient des caractres ne pouvant pas tre reprsents laide du systme de codage MBCS. Par exemple, les chemins japonais dans un systme anglais ne fonctionnent pas. Toutes les zones de lapplication utilisant le lecteur externe sont soumises cette restriction.

28

Chapitre 2 : Notions de base du langage ActionScript

TerminologieA linstar de tout langage de programmation, ActionScript utilise une terminologie qui lui est propre. La liste suivante prsente les principaux termes ActionScript. Les actions sont des instructions qui ordonnent un fichier SWF dexcuter une opration dtermine lors de sa lecture. Par exemple, gotoAndStop() envoie la tte de lecture une image ou une tiquette spcifique. Dans cet ouvrage, les termes action et instruction sont interchangeables. Une valeur boolenne est une valeur true (vraie) ou false (fausse). Les classes sont des types de donnes que vous pouvez crer pour dfinir un nouveau type dobjet. Pour dfinir une classe, utilisez le mot-cl class dans un fichier de script externe (et non dans le script en cours de rdaction dans le panneau Actions). Les constantes sont des lments qui ne changent pas. Par exemple, la constante Key.TAB a toujours la mme 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 dfinir les proprits et les mthodes dune classe. Par dfinition, les constructeurs sont des fonctions au sein dune dfinition de classe qui portent le mme nom que la classe. Par exemple, le code suivant dfinit une classe Cercle et implmente 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 crez (instanciez) un objet en fonction dune classe particulire. Les instructions suivantes sont des constructeurs pour la classe Array intgre et pour la classe Cercle personnalise :mon_array:Array = new Array(); mon_cercle:Cercle = new Cercle();

Les types de donnes dcrivent le genre dinformations quune variable ou quun lment ActionScript peut contenir. Les types de donnes ActionScript sont les suivants : String, Number, Boolean, Object, MovieClip, Function, null et undefined. Pour plus dinformations, consultez A propos des types de donnes, page 36. Les vnements sont des actions qui se produisent lors de la lecture dun fichier SWF. Par exemple, diffrents vnements sont gnrs lorsquun clip est charg, que la tte de lecture entre dans une image, que lutilisateur clique sur un bouton ou clip ou quil tape sur le clavier.

Terminologie

29

Les gestionnaires dvnement sont des actions spciales qui grent les vnements tels que mouseDown ou load. Il existe deux sortes de gestionnaires dvnement ActionScript : les mthodes de gestionnaire dvnement et les couteurs dvnement. (Il existe galement deux gestionnaires dvnement, on() et onClipEvent(), que vous pouvez affecter directement aux boutons et aux clips.) Dans la bote outils du panneau Actions, chaque objet ActionScript qui possde des mthodes de gestionnaire dvnement ou des couteurs dvnement est associ une sous-catgorie appele Evnements ou Ecouteurs. Certaines commandes, qui peuvent tre utilises la fois en tant que gestionnaires dvnement et couteurs dvnement, sont incluses dans les deux sous-catgories. Une expression est toute combinaison lgale de symboles ActionScript qui reprsentent une valeur. Une expression se compose doprateurs et doprandes. Par exemple, dans lexpression x + 2, x et 2 sont des oprandes et + est un oprateur. Les fonctions sont des blocs de code rutilisables qui peuvent recevoir des paramtres et renvoyer une valeur. Pour plus dinformations, consultez Cration de fonctions, page 54. Les identifiants sont des noms utiliss pour indiquer une variable, une proprit, un objet, une fonction ou une mthode. Le premier caractre doit tre une lettre, un trait de soulignement (_) ou un dollar ($). Chaque caractre qui suit doit tre une lettre, un chiffre, un trait de soulignement ou un dollar. Par exemple, prnom est le nom dune variable. Les occurrences sont des objets qui appartiennent une certaine classe. Chaque occurrence dune classe contient toutes les proprits et les mthodes de cette classe. Par exemple, tous les clips sont des occurrences de la classe MovieClip, vous pouvez alors utiliser nimporte quelle mthode ou proprit de la classe MovieClip avec nimporte quelle occurrence de clip. Les noms doccurrence sont des noms uniques qui vous permettent de cibler des occurrences de clip et de bouton dans les scripts. Linspecteur des proprits permet daffecter des noms aux occurrences prsentes sur la scne. Par exemple, un symbole principal de la bibliothque pourrait sappeler compteur et les deux occurrences de ce symbole dans le fichier SWF pourraient avoir comme noms doccurrence scoreJoueur1_mc et scoreJoueur2_mc. Le code suivant dfinit une variable appele score lintrieur 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 spciaux lors de laffectation dun nom une occurrence, afin que des conseils de code (consultez Utilisation des conseils de code, page 68) saffichent lorsque vous tapez du code. Pour plus dinformations, consultez Utilisation de suffixes pour dclencher des conseils de code, page 66. Les mots-cls sont des mots rservs avec une signification particulire. Par exemple, var est un mot-cl utilis pour dclarer des variables locales. Vous ne pouvez pas utiliser un mot-cl comme identificateur. Par exemple, var nest pas un nom de variable lgal. Pour obtenir une liste des mots-cls, consultez Mots-cls, page 36. Les mthodes sont des fonctions associes une classe. Par exemple, getBytesLoaded() est une mthode intgre associe la classe MovieClip. Vous pouvez aussi crer des fonctions qui agissent ensuite comme des mthodes pour les objets bass sur les classes intgres ou sur les classes que vous crez. Par exemple, dans le code suivant, clear() devient une mthode dun objet contrleur que vous avez prcdemment dfini :

30

Chapitre 2 : Notions de base du langage ActionScript

function reset(){ this.x_pos = 0; this.x_pos = 0; } contrleur.clear = reset; contrleur.clear();

Les objets sont des groupes de proprits et mthodes, chaque objet ayant son propre nom et tant une occurrence dune classe particulire. Les objets intgrs sont prdfinis dans le langage ActionScript. Par exemple, lobjet intgr Date fournit des informations provenant de lhorloge systme. Les oprateurs sont des termes qui calculent une nouvelle valeur partir dune ou de plusieurs valeurs. Par exemple, loprateur daddition (+) additionne deux ou plusieurs valeurs pour en obtenir une nouvelle. Les valeurs manipules par les oprateurs sont appeles oprandes. Les paramtres, galement appels arguments, sont des espaces rservs qui vous permettent de transmettre des valeurs aux fonctions. Par exemple, la fonction bienvenue() suivante, utilise deux valeurs quelle reoit dans les paramtres prnom et hobby :function bienvenue(prnom, hobby) { texteDeBienvenue = "Bonjour " + prnom + "Votre hobby est : " + hobby; }

Les paquets sont des rpertoires qui contiennent un ou plusieurs fichiers de classe et rsident dans un rpertoire de chemin de classe dsign (consultez Comprhension du chemin de classe, page 177). Les proprits sont des attributs qui dfinissent un objet. Par exemple, _visible est une proprit de tous les clips qui dfinit si ceux-ci sont visibles ou masqus. Les chemins cibles sont des adresses hirarchiques de noms doccurrences de clips, de variables et dobjets dun fichier SWF. Les occurrences de clips sont nommes dans linspecteur des proprits des clips correspondants. Le scnario principal porte toujours le nom _root. Vous pouvez utiliser un chemin cible pour raliser une action sur un clip ou pour obtenir ou dfinir la valeur dune variable. Par exemple, linstruction suivante est le chemin cible de la variable volume dans le clip contrleStro :_root.contrleStro.volume

Pour plus dinformations sur les chemins cibles, consultez Chemins cibles absolus et relatifs dans le guide Utilisation de Flash de laide. Les variables sont des identifiants qui contiennent des valeurs de nimporte quel type de donnes. Les variables peuvent tre cres, modifies et mise jour. Vous pouvez rcuprer les valeurs quelles contiennent et les utiliser dans des scripts. Dans lexemple suivant, les identifiants situs gauche du signe gal sont des variables :var x = 5; var name = "Lolo"; var c_color = new Color(mcinstanceName);

Pour plus dinformations sur les variables, consultez A propos des variables, page 43.

Terminologie

31

SyntaxeComme dans tout langage, ActionScript implique des rgles syntaxiques respecter pour crer des scripts pouvant tre compils et excuts correctement. Cette section dcrit les lments de syntaxe ActionScript. Hauteur de casse Dans un langage de programmation sensible la casse, les noms de variable qui diffrent uniquement par leur casse (livre et Livre) ne sont pas considrs comme identiques. Par consquent, il est toujours judicieux demployer les majuscules et les minuscules selon des conventions fixes, comme celles utilises dans cet ouvrage, car cela permet didentifier 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 ultrieure, Flash implmente la sensibilit la casse que vous utilisiez ActionScript 1 ou ActionScript 2.0. Cela signifie que les mots-cls, noms de classe, variables, noms de mthode etc. sont tous sensibles la casse. Par exemple :// Dans un fichier ciblant Flash Player 7 // et dans ActionScript 1 ou ActionScript 2.0 // // Dfinit les proprits de deux objets diffrents chat.hilite = true; CHAT.hilite = true; // Cre trois variables diffrentes var maVar=10; var mavar=10; var mAvAr=10; // Ne gnre pas derreur var tableau = new Array(); var date = new Date();

Cette modification a galement des rpercussions sur les variables externes charges via LoadVars.load(). En outre, la sensibilit la casse est implmente 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 pralablement cr des fichiers externes que vous ajoutez vos scripts via linstruction #include, vous devez passer chacun deux en revue pour vous assurer que la casse est correcte. Pour ce faire, ouvrez le fichier dans la fentre de script (Flash Professionnel uniquement) ou, dans un nouveau fichier FLA, rglez vos paramtres de publication sur Flash Player 7 et copiez le contenu du fichier dans le panneau Actions. Utilisez ensuite le bouton Vrifier la syntaxe (consultez Vrification de la syntaxe et de la ponctuation, page 71) ou publiez votre fichier. Les erreurs dues des conflits de noms sont signales dans le panneau de sortie. Lorsque la coloration de la syntaxe est active, les lments du langage dont la casse est correcte sont affichs en bleu par dfaut. Pour plus dinformations, consultez Mots-cls, page 36, et Mise en vidence de la syntaxe, page 65.

32

Chapitre 2 : Notions de base du langage ActionScript

Syntaxe pointe Dans ActionScript, un point (.) est utilis pour indiquer les proprits ou les mthodes associes un objet ou un clip. Il est galement utilis pour identifier le chemin cible dun clip, dune variable, dune fonction ou dun objet. Une expression en syntaxe point commence par le nom de lobjet ou du clip suivi dun point et se termine par llment que vous souhaitez spcifier. Par exemple, la proprit _x dun clip indique la position sur laxe x du clip sur la scne. Lexpression balleMC._x fait rfrence la proprit _x de loccurrence de clip balleMC. Dans un autre exemple, envoyer est une variable dfinie dans le clip formulaire, qui est imbriqu dans le clip panier. Lexpression panier.formulaire.envoyer = true dfinit la variable envoyer du formulaire de loccurrence sur true. Lexpression dune mthode dun objet ou clip se fait selon le mme schma. Par exemple, la mthode play() de loccurrence de clip balle_mc dplace la tte de lecture dans le scnario de balle_mc, comme indiqu dans linstruction suivante :balle_mc.play();

La syntaxe pointe utilise galement deux alias spciaux, _root et _parent. Lalias _root fait rfrence au scnario principal. Vous pouvez utiliser lalias _root pour crer un chemin cible absolu. Par exemple, linstruction suivante appelle la fonction constructPlateau() dans le clip fonctions du scnario principal :_root.fonctions.constructPlateau();

Vous pouvez utiliser lalias _parent pour faire rfrence un clip dans lequel est imbriqu lobjet courant. Vous pouvez galement utiliser _parent pour crer un chemin cible relatif. Par exemple, si le clip chien_mc est imbriqu dans le clip animal_mc, linstruction suivante de loccurrence chien_mc indique animal_mc de sarrter :_parent.stop();

Syntaxe barre oblique La syntaxe barre oblique tait utilise dans Flash 3 et 4 pour indiquer le chemin cible dun clip ou dune variable. Cette syntaxe est toujours supporte dans Flash Player 7, mais son utilisation nest pas recommande. La syntaxe barre oblique nest pas supporte dans ActionScript 2.0. Toutefois, si vous crez du contenu destin spcialement Flash Player 4, vous devrez utiliser la syntaxe barre oblique. Pour plus dinformations, consultez Utilisation de la syntaxe barre oblique, page 909. Accolades Les gestionnaires dvnement, les dfinitions de classe et les fonctions ActionScript sont regroups en blocs dlimits par des accolades ({}). Vous pouvez placer laccolade ouvrante sur la mme ligne que la dclaration ou sur la ligne suivante, comme illustr dans les exemples cidessous. Pour amliorer la lisibilit du code, il est prfrable de choisir un format et de sy tenir.//Gestionnaire dvnement 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 contrler quil ne manque pas daccolades dans vos scripts ; consultez Vrification 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;

Lomission du point-virgule final nempche pas Flash de compiler le script correctement. Cependant, lemploi de points-virgules est une bonne habitude prendre lors de la rdaction de scripts. Parenthses Lorsque vous dfinissez une fonction, placez les paramtres entre parenthses :function maFonction (nom, ge, lecteur){ // entrez votre code ici }

Lorsque vous appelez une fonction, incluez tous les paramtres transmis la fonction entre parenthses, comme suit :maFonction ("Steve", 10, true);

Vous pouvez galement utiliser les parenthses pour supplanter lordre de priorit dActionScript ou pour faciliter la lecture des instructions ActionScript. Pour plus dinformations, consultez Priorit et associativit des oprateurs, page 48. Les parenthses servent galement valuer une expression situe gauche dun point dans la syntaxe pointe. Par exemple, dans linstruction suivante, les parenthses obligent lvaluation de new Color(this) et la cration dun objet Color :onClipEvent(enterFrame){ (new Color(this)).setRGB(0xffffff); }

34

Chapitre 2 : Notions de base du langage ActionScript

Si vous nutilisez pas de parenthses, vous devez ajouter une instruction pour valuer lexpression :onClipEvent(enterFrame){ maCouleur = new Color(this); maCouleur.setRGB(0xffffff); }

Vous pouvez contrler quil ne manque pas de parenthses dans vos scripts ; consultez Vrification de la syntaxe et de la ponctuation, page 71. Commentaires Il est vivement recommand dutiliser des commentaires pour ajouter des notes aux scripts. Les commentaires sont particulirement utiles pour consigner vos intentions et transmettre des informations dautres dveloppeurs (si vous travaillez en quipe ou si vous fournissez des chantillons). Mme un script simple est plus facile comprendre si vous lannotez lors de sa cration. Pour indiquer quune ligne ou portion de ligne est un commentaire, faites-la prcder de deux barres obliques(//) :on(release) { // crer un nouvel objet Date maDate = new Date(); moisCourant = maDate.getMonth(); // convertir le chiffre du mois en son nom nomDuMois = calcMois(moisCourant); anne = maDate.getFullYear(); dateDuJour = maDate.getDate(); }

Lorsque la coloration de la syntaxe est active (consultez Mise en vidence de la syntaxe, page 65), les commentaires apparaissent en gris, par dfaut. Les commentaires peuvent avoir nimporte quelle longueur sans que cela affecte la taille du fichier export. Ils ne suivent aucune rgle de syntaxe ou de mots-cls relative ActionScript. Si vous souhaitez appliquer un commentaire une portion complte de script, intgrez-le dans un bloc de commentaire plutt que de devoir ajouter // au dbut de chaque ligne. Cette technique est plus simple et plus pratique, surtout lorsque vous souhaitez tester uniquement certaines parties dun script en en commentant de grandes parties. Pour crer un bloc de commentaire, entrez /* au dbut du commentaire, puis */ la fin. Par exemple, lorsque le script suivant est excut, le code intgr dans le bloc de commentaire nest pas excut :// Le code ci-dessous est excut var x:Number = 15; var y:Number = 20; // Le code ci-dessous ne sexcute pas /* on(release) { // crer un nouvel objet Date maDate = new Date(); moisCourant = maDate.getMonth(); // convertir le chiffre du mois en son nom nomDuMois = calcMois(moisCourant); anne = maDate.getFullYear(); dateDuJour = maDate.getDate(); }

Syntaxe

35

*/ // Le code ci-dessous est excut var nom:String = "Je mappelle"; var ge:Number = 20;

Mots-cls ActionScript rserve certains mots des usages spcifiques au sein du langage et vous ne pouvez pas vous en servir comme identifiants (noms de variable, de fonction, dtiquette, etc.). Le tableau suivant rpertorie tous les mots-cls ActionScript :break default extends if instanceof private static var case delete for implements interface public switch void classe dynamic function import intrinsic return this while continue else get in new set typeof with

Constantes Une constante est une proprit dont la valeur ne varie jamais. Par exemple, les constantes BACKSPACE, ENTER, QUOTE, RETURN, SPACE et TAB sont des proprits de lobjet Key et font rfrence aux touches du clavier. Pour savoir si un utilisateur appuie sur la touche Entre, vous pourriez utiliser linstruction suivante :if(Key.getCode() == Key.ENTER) { alert = "Etes-vous prt(e) ?"; controlMC.gotoAndStop(5); }

A propos des types de donnesUn type de donnes dcrit le genre dinformations quune variable ou quun lment ActionScript peut contenir. Il existe deux sortes de types de donnes intgres dans Flash : primitives et de rfrence. Les donnes primitives (String, Number et Boolean) ont une valeur constante et peuvent donc contenir la valeur relle de llment quelles reprsentent. Les donnes de rfrence (MovieClip et Object) possdent des valeurs qui peuvent changer et contiennent donc des rfrences la valeur relle de llment. Les variables contenant des donnes primitives ont un comportement diffrent de celles contenant des rfrences dans certaines situations. Pour plus dinformations, consultez Utilisation des variables dans un programme, page 46. Il existe galement deux types spciaux de donnes : null et undefined. Dans Flash, tout objet intgr qui nest pas une donne primitive, ni une donne de clip, telle que Array ou Math, est une donne dobjet.

36

Chapitre 2 : Notions de base du langage ActionScript

Chaque type de donnes possde ses propres rgles et est dcrit 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 dboguez des scripts, vous pouvez avoir besoin de dterminer le type de donnes dune expression ou dune variable pour comprendre pourquoi elle se comporte de telle manire. Vous pouvez effectuer cette opration avec loprateur typeof (consultez Dfinition du type de donnes dun objet, page 39). Vous pouvez convertir un type de donnes en un type diffrent en utilisant lune des fonctions de conversion suivantes : Array(), Boolean(), Number, Objet(), String. String Une chane est une squence de caractres (lettres, chiffres et signes de ponctuation, par exemple). Vous insrez des chanes dans une instruction ActionScript en les plaant entre des guillemets droits simples ou doubles. Les chanes sont traites comme des caractres et non comme des variables. Par exemple, dans linstruction suivante, "L7" est une chane :groupePrfr = "L7";

Vous pouvez utiliser loprateur daddition (+) pour concatner, ou joindre, deux chanes. ActionScript traite les espaces au dbut ou la fin dune chane comme faisant partie de la chane. Lexpression suivante contient un espace aprs la virgule :salutations = "Bonjour, " + prnom;

Pour inclure un guillemet dans une chane, il faut le faire prcder dune barre oblique inverse (\). Cette opration sappelle chapper un caractre. Dautres caractres ne peuvent pas tre reprsents dans ActionScript sans lemploi de squences dchappement particulires. Le tableau suivant rpertorie lensemble des caractres dchappement dActionScript :Squence dchappement\b \f \n \r \t \" \ \\

Caractre Caractre de retour arrire (ASCII 8) Caractre de changement de page (ASCII 12) Caractre de changement de ligne (ASCII 10) Caractre de retour chariot (ASCII 13) Caractre de tabulation (ASCII 9) Guillemet droit double Guillemet droit simple Barre oblique inverse

A propos des types de donnes

37

Squence dchappement\000 - \377 \x00 - \xFF \u0000 - \uFFFF

Caractre Un octet spcifi en octal Un octet spcifi en hexadcimal Un caractre Unicode 16 bits spcifi en hexadcimal

Number Le type de donnes Number correspond un nombre virgule flottante double prcision. Vous pouvez manipuler les nombres avec les oprateurs arithmtiques daddition (+), de soustraction (-), de multiplication (*), de division (/), de modulo (%), dincrmentation (++) et de dcrmentation (--). Vous pouvez galement utiliser des mthodes des classes intgres Math et Number pour manipuler les nombres. Lexemple suivant utilise la mthode sqrt() (racine carre) pour renvoyer la racine carre de 100 :Math.sqrt(100);

Pour plus dinformations, consultez Oprateurs numriques, page 48. Boolean Une valeur boolenne est soit true (vraie), soit false (fausse). ActionScript convertit galement les valeurs true et false en 1 et 0 lorsque cela est ncessaire. Les valeurs boolennes sont le plus souvent utilises dans les instructions ActionScript effectuant de