▼
Scroll to page 2
of
1422
Guide de référence du langage ActionScript 2.0 Marques de commerce 1 Step RoboPDF, ActiveEdit, ActiveTest, Authorware, Blue Sky Software, Blue Sky, Breeze, Breezo, Captivate, Central, ColdFusion, Contribute, Database Explorer, Director, Dreamweaver, Fireworks, Flash, FlashCast, FlashHelp, Flash Lite, FlashPaper, Flash Video Encoder, Flex, Flex Builder, Fontographer, FreeHand, Generator, HomeSite, JRun, MacRecorder, Macromedia, MXML, RoboEngine, RoboHelp, RoboInfo, RoboPDF, Roundtrip, Roundtrip HTML, Shockwave, SoundEdit, Studio MX, UltraDev et WebHelp 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 conduisant à des sites web qui ne sont pas sous le contrôle de Macromedia, qui n'est aucunement responsable de leur contenu. L'accès à ces sites se fait sous votre seule responsabilité. Macromedia fournit ces liens à des fins pratiques et l’inclusion de ces liens n’implique pas que Macromedia parraine ou accepte la moindre responsabilité pour le contenu de ces sites Web tiers. 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. La technologie vidéo Macromedia Flash 8 est optimisée par la technologie vidéo On2 TrueMotion. © 1992-2005 On2 Technologies, Inc. Tous droits réservés. http://www.on2.com. Mitsubishi Electric Research Laboratory : Ce produit comprend les logiciels Copyright © 2005, Mitsubishi Electric Research Laboratory Inc. Tous droits réservés. http://www.merl.com. Copyright © 2004-2005 Macromedia, Inc. Tous droits réservés. Ce manuel ne peut pas être copié, photocopié, reproduit, traduit ou converti sous forme électronique ou informatique, en partie ou en totalité, sans l’autorisation écrite préalable de Macromedia, Inc. Nonobstant les dispositions précédentes, le propriétaire ou un utilisateur autorisé d'une copie valide du logiciel accompagnant le présent manuel pourra en imprimer une copie à partir d'une version électronique dans le seul but, pour le propriétaire ou l'utilisateur autorisé, d'apprendre à utiliser le logiciel, à condition qu'aucune partie de ce manuel soit imprimée, reproduite, distribuée, revendue ou transmise à toute autre fin, y compris mais sans s'y limiter, à des fins commerciales telles que la vente de copies de cette documentation ou la vente de services d'assistance. Remerciements Gestion de projet : JuLee Burdekin Principaux rédacteurs : Francis Cheng, Robert Dixon, Shimul Rahim Autres rédacteurs : Jen deHaan, Thais Derich, Guy Haas, David Jacowitz, Jeff Swartz Exemples développés par : Luke Bayes, Francis Cheng, Robert Dixon, Ali Mills, Jeff Swartz Révision : Linda Adler, Geta Carlson, Evelyn Eldridge, John Hammett, Noreen Maher, Mark Nigara, Lisa Stanziano, Anne Szabla, Jessie Wood Gestion de la production : Patrice O’Neill Conception et production : Adam Barnett, John Francis, Brett Jarvis, Mario Reynoso Remerciements particuliers à : Peter deHaan, Gary Grossman, Lee Thomason et l'équipe Flash Player Première édition : Septembre 2005 Macromedia, Inc. 601 Townsend St. San Francisco, CA 94103 Etats-Unis Table des matières Chapitre 1 : Eléments du langage ActionScript . . . . . . . . . . . . . . .33 Directives de compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Directive #endinitclip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Directive #include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Directive #initclip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Constante false. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Constante Infinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Constante -Infinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Constante NaN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Constante newline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Constante null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Constante true . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Constante undefined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Fonctions globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Fonction Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 Protocole asfunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Fonction Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Fonction call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Fonction chr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Fonction clearInterval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Fonction duplicateMovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Fonction escape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Fonction eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Fonction fscommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Fonction getProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Fonction getTimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Fonction getURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Fonction getVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Fonction gotoAndPlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Fonction gotoAndStop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Fonction ifFrameLoaded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Fonction int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Fonction isFinite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Fonction isNaN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Fonction length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Fonction loadMovie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 3 Fonction loadMovieNum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Fonction loadVariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Fonction loadVariablesNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Fonction mbchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Fonction mblength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Fonction mbord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Fonction mbsubstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Fonction MMExecute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Fonction nextFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Fonction nextScene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Fonction Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Fonction Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Gestionnaire on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Gestionnaire onClipEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Fonction ord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Fonction parseFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Fonction parseInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Fonction play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Fonction prevFrame. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Fonction prevScene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Fonction print. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Fonction printAsBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Fonction printAsBitmapNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Fonction printNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Fonction random. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Fonction removeMovieClip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Fonction setInterval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Fonction setProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Fonction showRedrawRegions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Fonction startDrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Fonction stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Fonction stopAllSounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Fonction stopDrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Fonction String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Fonction substring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 Fonction targetPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 Fonction tellTarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Fonction toggleHighQuality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 Fonction trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113 Fonction unescape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 Fonction unloadMovie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 Fonction unloadMovieNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 Fonction updateAfterEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 Propriétés globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 _accProps, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4 Table des matières _focusrect, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 propriété _global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123 _highquality, propriété. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 _level, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 maxscroll, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 _parent, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 _quality, propriété. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 _root, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 scroll, propriété. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 _soundbuftime, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130 this, propriété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133 Opérateur d'addition +. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Opérateur d'affectation de l'addition +=. . . . . . . . . . . . . . . . . . . . . . . .139 Opérateur d'accès au tableau [] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 Opérateur d'affectation = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 & Opérateur AND au niveau du bit. . . . . . . . . . . . . . . . . . . . . . . . . . . .144 &= Opérateur d'affectation AND au niveau du bit . . . . . . . . . . . . . . .145 << Opérateur de décalage gauche au niveau du bit . . . . . . . . . . . . . .146 <<= Opérateur de décalage gauche au niveau du bit et d'affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 ~ Opérateur NOT au niveau du bit . . . . . . . . . . . . . . . . . . . . . . . . . . . .148 | Opérateur OR au niveau du bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149 |= Opérateur d'affectation OR au niveau du bit . . . . . . . . . . . . . . . . .150 >> Opérateur de décalage droit au niveau du bit. . . . . . . . . . . . . . . . . 151 >>= Opérateur de décalage droit au niveau du bit et d'affectation .153 >>> Opérateur de décalage droit non signé au niveau du bit. . . . . . .154 >>>= Opérateur de décalage droit non signé au niveau du bit et d'affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155 Opérateur ^ (XOR au niveau du bit) . . . . . . . . . . . . . . . . . . . . . . . . . . .155 Opérateur ^= (affectation XOR au niveau du bit) . . . . . . . . . . . . . . . . 157 Opérateur /*..*/ (séparateur de commentaires de bloc) . . . . . . . . . 157 Opérateur , (virgule). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Opérateur de concaténation add (chaînes) . . . . . . . . . . . . . . . . . . . .160 ?: opérateur conditionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160 Opérateur -- (décrément). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Opérateur / (division). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162 Opérateur /= (affectation de division) . . . . . . . . . . . . . . . . . . . . . . . . .163 . Opérateur point (.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163 Opérateur == (égalité) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 Opérateur eq d'égalité (chaînes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 > Opérateur supérieur à . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Opérateur gt supérieur à (chaînes). . . . . . . . . . . . . . . . . . . . . . . . . . . .168 Opérateur >= (supérieur ou égal à) . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 Opérateur ge supérieur ou égal à (chaînes) . . . . . . . . . . . . . . . . . . . .169 Table des matières 5 Opérateur ++ (incrément). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Opérateur != (inégalité). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Opérateur d'inégalité <> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Opérateur instanceof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Opérateur < (inférieur à) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Opérateur lt inférieur à (chaînes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Opérateur <= (inférieur ou égal à) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Opérateur le inférieur ou égal à (chaînes) . . . . . . . . . . . . . . . . . . . . . 176 Opérateur // (séparateur de commentaires sur une ligne) . . . . . . . 177 Opérateur && (AND logique) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Opérateur AND (and logique) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 ! Opérateur NOT logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Opérateur NOT non logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Opérateur || (OR logique) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Opérateur OR ou logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Opérateur % (modulo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Opérateur %= (affectation modulo) . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Opérateur * (multiplication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Opérateur *= (affectation de multiplication) . . . . . . . . . . . . . . . . . . . 185 Opérateur new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Opérateur ne n'est pas égal à (chaînes) . . . . . . . . . . . . . . . . . . . . . . . 186 Opérateur {} (initialiseur d'objet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Opérateur () (parenthèses) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Opérateur === (égalité stricte) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Opérateur !== (inégalité stricte) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191 Opérateur " (séparateur de chaîne). . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Opérateur - (soustraction). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Opérateur -= (affectation de soustraction) . . . . . . . . . . . . . . . . . . . . 194 : Opérateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Opérateur typeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Opérateur void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Instruction break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Instruction case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Instruction class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Instruction continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Instruction default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Instruction delete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Instruction do..while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Instruction dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Instruction else. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Instruction else if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 Instruction extends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Instruction for..in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 6 Table des matières Instruction function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Instruction get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 Instruction if. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Instruction implements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 Instruction import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 Instruction interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 instruction intrinsic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Instruction private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Instruction public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 return, instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Instruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Instruction set variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Instruction static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231 Instruction super. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Instruction throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Instruction try..catch..finally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Instruction var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Instruction with . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Chapitre 2 : Classes ActionScript . . . . . . . . . . . . . . . . . . . . . . . . 245 Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 isActive (méthode Accessibility.isActive) . . . . . . . . . . . . . . . . . . . . . 246 updateProperties (méthode Accessibility.updateProperties) . . . 247 arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 callee (propriété arguments.callee) . . . . . . . . . . . . . . . . . . . . . . . . . . 249 caller (propriété arguments.caller) . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 length (propriété arguments.length) . . . . . . . . . . . . . . . . . . . . . . . . . 249 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 constructeur Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 CASEINSENSITIVE (propriété Array.CASEINSENSITIVE) . . . . 254 concat (méthode Array.concat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 DESCENDING (propriété Array.DESCENDING). . . . . . . . . . . . . . 256 join (méthode Array.join) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 length (propriété Array.length) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 NUMERIC (propriété Array.NUMERIC) . . . . . . . . . . . . . . . . . . . . . . 258 pop (méthode Array.pop). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 push (méthode Array.push) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 RETURNINDEXEDARRAY (propriété Array.RETURNINDEXEDARRAY) . . . . . . . . . . . . . . 260 reverse (méthode Array.reverse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 shift (méthode Array.shift) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 slice (méthode Array.slice). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 sort (méthode Array.sort) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Table des matières 7 sortOn (méthode Array.sortOn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 splice (méthode Array.splice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269 toString (méthode Array.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . .270 UNIQUESORT (propriété Array.UNIQUESORT) . . . . . . . . . . . . . . 271 unshift (méthode Array.unshift) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 AsBroadcaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 addListener (méthode AsBroadcaster.addListener) . . . . . . . . . . .274 broadcastMessage (méthode AsBroadcaster.broadcastMessage) . . . . . . . . . . . . . . 275 initialize (méthode AsBroadcaster.initialize). . . . . . . . . . . . . . . . . . . 276 _listeners (propriété AsBroadcaster._listeners) . . . . . . . . . . . . . . . . 278 removeListener (méthode AsBroadcaster.removeListener) . . . .279 BevelFilter (flash.filters.BevelFilter) . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 angle (propriété BevelFilter.angle) . . . . . . . . . . . . . . . . . . . . . . . . . . .283 Constructeur BevelFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 blurX (propriété BevelFilter.blurX) . . . . . . . . . . . . . . . . . . . . . . . . . . .286 blurY (propriété BevelFilter.blurY) . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 clone (méthode BevelFilter.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . .288 distance (propriété BevelFilter.distance). . . . . . . . . . . . . . . . . . . . . .289 highlightAlpha (propriété BevelFilter.highlightAlpha). . . . . . . . . . 290 highlightColor (propriété BevelFilter.highlightColor) . . . . . . . . . . . 291 knockout (propriété BevelFilter.knockout) . . . . . . . . . . . . . . . . . . . .292 quality (propriété BevelFilter.quality) . . . . . . . . . . . . . . . . . . . . . . . . .293 shadowAlpha (propriété BevelFilter.shadowAlpha) . . . . . . . . . . . 294 shadowColor (propriété BevelFilter.shadowColor) . . . . . . . . . . . . 295 strength (propriété BevelFilter.strength) . . . . . . . . . . . . . . . . . . . . . .296 type (propriété BevelFilter.type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 BitmapData (flash.display.BitmapData). . . . . . . . . . . . . . . . . . . . . . . . .298 applyFilter (méthode BitmapData.applyFilter). . . . . . . . . . . . . . . . 304 Constructeur BitmapData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 clone (méthode BitmapData.clone) . . . . . . . . . . . . . . . . . . . . . . . . . .307 colorTransform (méthode BitmapData.colorTransform) . . . . . . . 309 copyChannel (méthode BitmapData.copyChannel) . . . . . . . . . . . . 310 copyPixels (méthode BitmapData.copyPixels) . . . . . . . . . . . . . . . . .311 dispose (méthode BitmapData.dispose) . . . . . . . . . . . . . . . . . . . . . . 313 draw (méthode BitmapData.draw) . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 fillRect (méthode BitmapData.fillRect) . . . . . . . . . . . . . . . . . . . . . . . 316 floodFill (méthode BitmapData.floodFill) . . . . . . . . . . . . . . . . . . . . . 317 generateFilterRect (méthode BitmapData.generateFilterRect) . 318 getColorBoundsRect (méthode BitmapData.getColorBoundsRect). . . . . . . . . . . . . . . 319 getPixel (méthode BitmapData.getPixel) . . . . . . . . . . . . . . . . . . . . 320 getPixel32 (méthode BitmapData.getPixel32) . . . . . . . . . . . . . . . . 321 height (propriété BitmapData.height) . . . . . . . . . . . . . . . . . . . . . . . .322 hitTest (méthode BitmapData.hitTest) . . . . . . . . . . . . . . . . . . . . . . .323 8 Table des matières loadBitmap (méthode BitmapData.loadBitmap) . . . . . . . . . . . . . . 324 merge (méthode BitmapData.merge) . . . . . . . . . . . . . . . . . . . . . . . . 325 noise (méthode BitmapData.noise) . . . . . . . . . . . . . . . . . . . . . . . . . . 326 paletteMap (méthode BitmapData.paletteMap). . . . . . . . . . . . . . . 328 perlinNoise (méthode BitmapData.perlinNoise). . . . . . . . . . . . . . . 330 pixelDissolve (méthode BitmapData.pixelDissolve) . . . . . . . . . . . 332 rectangle (propriété BitmapData.rectangle) . . . . . . . . . . . . . . . . . . 334 scroll (méthode BitmapData.scroll) . . . . . . . . . . . . . . . . . . . . . . . . . . 334 setPixel (méthode BitmapData.setPixel) . . . . . . . . . . . . . . . . . . . . . 335 setPixel32 (méthode BitmapData.setPixel32) . . . . . . . . . . . . . . . . 336 threshold (méthode BitmapData.threshold) . . . . . . . . . . . . . . . . . . 337 transparent (propriété BitmapData.transparent) . . . . . . . . . . . . . . 339 width (propriété BitmapData.width) . . . . . . . . . . . . . . . . . . . . . . . . . 339 BitmapFilter (flash.filters.BitmapFilter) . . . . . . . . . . . . . . . . . . . . . . . . . 340 clone (méthode BitmapFilter.clone ) . . . . . . . . . . . . . . . . . . . . . . . . . .341 BlurFilter (flash.filters.BlurFilter). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341 constructeur BlurFilter() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 blurX (propriété BlurFilter.blurX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 blurY (propriété BlurFilter.blurY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 clone (méthode BitmapFilter.clone ) . . . . . . . . . . . . . . . . . . . . . . . . . 346 quality (propriété BlurFilter.quality) . . . . . . . . . . . . . . . . . . . . . . . . . . 348 Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 constructeur Boolean(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 toString (méthode Boolean.toString) . . . . . . . . . . . . . . . . . . . . . . . . 350 valueOf (méthode Boolean.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . .351 Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 _alpha (propriété Button._alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 blendMode (propriété Button.blendMode) . . . . . . . . . . . . . . . . . . . 357 cacheAsBitmap (propriété Button.cacheAsBitmap). . . . . . . . . . . 367 enabled (propriété Button.enabled). . . . . . . . . . . . . . . . . . . . . . . . . . 368 filters (propriété Button.filters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 _focusrect (propriété Button._focusrect) . . . . . . . . . . . . . . . . . . . . . . 371 getDepth (méthode Button.getDepth) . . . . . . . . . . . . . . . . . . . . . . . 372 _height (propriété Button._height) . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 _highquality (propriété Button._highquality). . . . . . . . . . . . . . . . . . . 373 menu (propriété Button.menu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 _name (propriété Button._name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 onDragOut (gestionnaire Button.onDragOut). . . . . . . . . . . . . . . . . 375 onDragOver (gestionnaire Button.onDragOver) . . . . . . . . . . . . . . 376 onKeyDown (gestionnaire Button.onKeyDown) . . . . . . . . . . . . . . 376 onKeyUp (gestionnaire Button.onKeyUp) . . . . . . . . . . . . . . . . . . . . 377 onKillFocus (gestionnaire Button.onKillFocus) . . . . . . . . . . . . . . . 378 onPress (gestionnaire Button.onPress) . . . . . . . . . . . . . . . . . . . . . . 379 onRelease (gestionnaire Button.onRelease). . . . . . . . . . . . . . . . . . 380 onReleaseOutside (gestionnaire Button.onReleaseOutside) . . . 380 Table des matières 9 onRollOut (gestionnaire Button.onRollOut) . . . . . . . . . . . . . . . . . . 380 onRollOver (gestionnaire Button.onRollOver) . . . . . . . . . . . . . . . . . 381 onSetFocus (gestionnaire Button.onSetFocus) . . . . . . . . . . . . . . . 381 _parent (propriété Button._parent) . . . . . . . . . . . . . . . . . . . . . . . . . . .382 _quality (propriété Button._quality) . . . . . . . . . . . . . . . . . . . . . . . . . . .383 _rotation (propriété Button._rotation) . . . . . . . . . . . . . . . . . . . . . . . . .383 scale9Grid (propriété Button.scale9Grid). . . . . . . . . . . . . . . . . . . . .384 _soundbuftime (propriété Button._soundbuftime) . . . . . . . . . . . . . .385 tabEnabled (propriété Button.tabEnabled) . . . . . . . . . . . . . . . . . . . .386 tabIndex (propriété Button.tabIndex) . . . . . . . . . . . . . . . . . . . . . . . . . 387 _target (propriété Button._target) . . . . . . . . . . . . . . . . . . . . . . . . . . . .388 trackAsMenu (propriété Button.trackAsMenu) . . . . . . . . . . . . . . . .389 _url (propriété Button._url). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389 useHandCursor (propriété Button.useHandCursor) . . . . . . . . . . . 390 _visible (propriété Button._visible). . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 _width (propriété Button._width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 _x (propriété Button._x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .392 _xmouse (propriété Button._xmouse). . . . . . . . . . . . . . . . . . . . . . . . .393 _xscale (propriété Button._xscale) . . . . . . . . . . . . . . . . . . . . . . . . . . .393 _y (propriété Button._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 _ymouse (propriété Button._ymouse). . . . . . . . . . . . . . . . . . . . . . . . 395 _yscale (propriété Button._yscale) . . . . . . . . . . . . . . . . . . . . . . . . . . 395 Camera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396 activityLevel (propriété Camera.activityLevel) . . . . . . . . . . . . . . . . 399 bandwidth (propriété Camera.bandwidth). . . . . . . . . . . . . . . . . . . . 400 currentFps (propriété Camera.currentFps) . . . . . . . . . . . . . . . . . . . . 401 fps (propriété Camera.fps) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 get (méthode Camera.get) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 height (propriété Camera.height) . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 index (propriété Camera.index) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 motionLevel (propriété Camera.motionLevel) . . . . . . . . . . . . . . . . .407 motionTimeOut (propriété Camera.motionTimeOut) . . . . . . . . . . 408 muted (propriété Camera.muted) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 name (propriété Camera.name). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 names (propriété Camera.names). . . . . . . . . . . . . . . . . . . . . . . . . . . . .411 onActivity (gestionnaire Camera.onActivity). . . . . . . . . . . . . . . . . . . 412 onStatus (gestionnaire Camera.onStatus) . . . . . . . . . . . . . . . . . . . . 413 qualité (propriété Camera.quality) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 setMode (méthode Camera.setMode) . . . . . . . . . . . . . . . . . . . . . . . . 415 setMotionLevel (méthode Camera.setMotionLevel ) . . . . . . . . . . . 417 setQuality (méthode Camera.setQuality). . . . . . . . . . . . . . . . . . . . . . 418 largeur (propriété Camera.width). . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 capabilities (System.capabilities). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 avHardwareDisable (propriété capabilities.avHardwareDisable) 424 hasAccessibility (propriété capabilities.hasAccessibility) . . . . . . 424 10 Table des matières hasAudio (propriété capabilities.hasAudio) . . . . . . . . . . . . . . . . . . . 425 hasAudioEncoder (propriété capabilities.hasAudioEncoder) . . . 425 hasEmbeddedVideo (propriété capabilities.hasEmbeddedVideo). . . 425 hasIME (propriété capabilities.hasIME) . . . . . . . . . . . . . . . . . . . . . . 426 hasMP3 (propriété capabilities.hasMP3). . . . . . . . . . . . . . . . . . . . . 426 hasPrinting (propriété capabilities.hasPrinting) . . . . . . . . . . . . . . . 426 hasScreenBroadcast (propriété capabilities.hasScreenBroadcast) . . . . . . . . . . . . . . . 427 hasScreenPlayback (propriété capabilities.hasScreenPlayback). . .427 hasStreamingAudio (propriété capabilities.hasStreamingAudio) . . .427 hasStreamingVideo (propriété capabilities.hasStreamingVideo) . . 428 hasVideoEncoder (propriété capabilities.hasVideoEncoder) . . . 428 isDebugger (propriété capabilities.isDebugger) . . . . . . . . . . . . . . . 428 langage (propriété capabilities.language) . . . . . . . . . . . . . . . . . . . . 429 localFileReadDisable (propriété capabilities.localFileReadDisable) . . . . . . . . . . . . . . . 430 manufacturer (propriété capabilities.manufacturer) . . . . . . . . . . . . .431 os (propriété capabilities.os) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431 pixelAspectRatio (propriété capabilities.pixelAspectRatio) . . . . . .431 playerType (propriété capabilities.playerType) . . . . . . . . . . . . . . . . 432 screenColor (propriété capabilities.screenColor) . . . . . . . . . . . . . . 432 screenDPI (propriété capabilities.screenDPI) . . . . . . . . . . . . . . . . . 433 screenResolutionX (propriété capabilities.screenResolutionX) . 433 screenResolutionX (propriété capabilities.screenResolutionX) . 433 serverString (propriété capabilities.serverString). . . . . . . . . . . . . . 434 version (propriété capabilities.version) . . . . . . . . . . . . . . . . . . . . . . . 434 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 constructeur Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 getRGB (méthode Color.getRGB). . . . . . . . . . . . . . . . . . . . . . . . . . . 436 getTransform (méthode Color.getTransform) . . . . . . . . . . . . . . . . . 437 setRGB (méthode Color.setRGB) . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 setTransform (méthode Color.setTransform) . . . . . . . . . . . . . . . . . 438 ColorMatrixFilter (flash.filters.ColorMatrixFilter) . . . . . . . . . . . . . . . . . 440 clone (méthode ColorMatrixFilter.clone) . . . . . . . . . . . . . . . . . . . . . 444 constructeur ColorMatrixFilter() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 matrix (propriété ColorMatrixFilter.matrix) . . . . . . . . . . . . . . . . . . . . 445 ColorTransform (flash.geom.ColorTransform). . . . . . . . . . . . . . . . . . . 445 alphaMultiplier (propriété ColorTransform.alphaMultiplier) . . . . . 449 alphaOffset (propriété ColorTransform.alphaOffset). . . . . . . . . . . 450 blueMultiplier (propriété ColorTransform.blueMultiplier) . . . . . . . 450 blueOffset (propriété ColorTransform.blueOffset) . . . . . . . . . . . . . .451 constructeur ColorTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 concat (méthode ColorTransform.concat). . . . . . . . . . . . . . . . . . . . 453 greenMultiplier (propriété ColorTransform.greenMultiplier) . . . . 455 Table des matières 11 greenOffset (propriété ColorTransform.greenOffset). . . . . . . . . . 455 redMultiplier (propriété ColorTransform.redMultiplier). . . . . . . . . .456 redOffset (propriété ColorTransform.redOffset) . . . . . . . . . . . . . . .457 rgb (propriété ColorTransform.rgb). . . . . . . . . . . . . . . . . . . . . . . . . . .458 toString (méthode ColorTransform.toString) . . . . . . . . . . . . . . . . . 459 ContextMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 builtInItems (propriété ContextMenu.builtInItems) . . . . . . . . . . . . .462 constructeur ContextMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .463 copy (méthode ContextMenu.copy) . . . . . . . . . . . . . . . . . . . . . . . . . 464 customItems (propriété ContextMenu.customItems) . . . . . . . . . . .465 hideBuiltInItems (méthode ContextMenu.hideBuiltInItems) . . . . .466 onSelect (gestionnaire ContextMenu.onSelect) . . . . . . . . . . . . . . .466 ContextMenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 caption (propriété ContextMenuItem.caption) . . . . . . . . . . . . . . . . 469 constructeur ContextMenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470 copy (méthode ContextMenuItem.copy) . . . . . . . . . . . . . . . . . . . . . . 471 enabled (propriété ContextMenuItem.enabled) . . . . . . . . . . . . . . . . 471 onSelect (gestionnaire ContextMenuItem.onSelect) . . . . . . . . . . .472 separatorBefore ( propriété ContextMenuItem.separatorBefore) . . . . . . . . . . . . . . 473 visible (propriété ContextMenuItem.visible) . . . . . . . . . . . . . . . . . . .474 ConvolutionFilter (flash.filters.ConvolutionFilter) . . . . . . . . . . . . . . . . .475 alpha (propriété ConvolutionFilter.alpha) . . . . . . . . . . . . . . . . . . . . . 478 bias (propriété ConvolutionFilter.bias) . . . . . . . . . . . . . . . . . . . . . . . .479 clamp (propriété ConvolutionFilter.clamp) . . . . . . . . . . . . . . . . . . . .479 clone (méthode ConvolutionFilter.clone) . . . . . . . . . . . . . . . . . . . . 480 color (propriété ConvolutionFilter.color) . . . . . . . . . . . . . . . . . . . . . .482 constructeur ConvolutionFilter() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483 divisor (propriété ConvolutionFilter.divisor) . . . . . . . . . . . . . . . . . . .484 matrix (propriété ConvolutionFilter.matrix) . . . . . . . . . . . . . . . . . . . .485 matrixX (propriété ConvolutionFilter.matrixX) . . . . . . . . . . . . . . . . .486 matrixY (propriété ConvolutionFilter.matrixY) . . . . . . . . . . . . . . . . .486 preserveAlpha (propriété ConvolutionFilter.preserveAlpha). . . . . 487 CustomActions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 get (méthode CustomActions.get) . . . . . . . . . . . . . . . . . . . . . . . . . . 489 install (méthode CustomActions.install). . . . . . . . . . . . . . . . . . . . . . 490 list (méthode CustomActions.list) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 uninstall (méthode CustomActions.uninstall) . . . . . . . . . . . . . . . . . 492 Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 constructeur Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 getDate (méthode Date.getDate) . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 getDay (méthode Date.getDay). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 getFullYear (méthode Date.getFullYear). . . . . . . . . . . . . . . . . . . . . . 501 getHours (méthode Date.getHours) . . . . . . . . . . . . . . . . . . . . . . . . . . 501 getMilliseconds (méthode Date.getMilliseconds) . . . . . . . . . . . . . 502 12 Table des matières getMinutes (méthode Date.getMinutes). . . . . . . . . . . . . . . . . . . . . . 503 getMinutes (méthode Date.getMinutes). . . . . . . . . . . . . . . . . . . . . . 503 getSeconds (méthode Date.getSeconds) . . . . . . . . . . . . . . . . . . . . 504 getTime (méthode Date.getTime) . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 getTimezoneOffset (méthode Date.getTimezoneOffset). . . . . . . 505 getUTCDate (méthode Date.getUTCDate) . . . . . . . . . . . . . . . . . . . 505 getUTCDay (méthode Date.getUTCDay) . . . . . . . . . . . . . . . . . . . . 506 getUTCFullYear (méthode Date.getUTCFullYear) . . . . . . . . . . . . 506 getUTCHours (méthode Date.getUTCHours). . . . . . . . . . . . . . . . . 507 getUTCMilliseconds (méthode Date.getUTCMilliseconds) . . . . . 508 getUTCMinutes (méthode Date.getUTCMinutes) . . . . . . . . . . . . . 508 getUTCMonth (méthode Date.getUTCMonth) . . . . . . . . . . . . . . . . 508 getUTCSeconds (méthode Date.getUTCSeconds) . . . . . . . . . . . 509 getUTCYear (méthode Date.getUTCYear) . . . . . . . . . . . . . . . . . . . 509 getYear (méthode Date.getYear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .510 setDate (méthode Date.setDate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 setFullYear (méthode Date.setFullYear) . . . . . . . . . . . . . . . . . . . . . . 511 setHours (méthode Date.setHours). . . . . . . . . . . . . . . . . . . . . . . . . . .512 setMilliseconds (méthode Date.setMilliseconds) . . . . . . . . . . . . . . .513 setMinutes (méthode Date.setMinutes) . . . . . . . . . . . . . . . . . . . . . . .513 setMonth (méthode Date.setMonth) . . . . . . . . . . . . . . . . . . . . . . . . . .514 setSeconds (méthode Date.setSeconds) . . . . . . . . . . . . . . . . . . . . .515 setTime (méthode Date.setTime). . . . . . . . . . . . . . . . . . . . . . . . . . . . .515 setUTCDate (méthode Date.setUTCDate) . . . . . . . . . . . . . . . . . . . .516 setUTCFullYear (méthode Date.setUTCFullYear) . . . . . . . . . . . . . . 517 setUTCHours (méthode Date.setUTCHours) . . . . . . . . . . . . . . . . . .518 setUTCMilliseconds (méthode Date.setUTCMilliseconds) . . . . . .518 setUTCMinutes (méthode Date.setUTCMinutes) . . . . . . . . . . . . . .519 setUTCMonth (méthode Date.setUTCMonth) . . . . . . . . . . . . . . . . 520 setUTCSeconds (méthode Date.setUTCSeconds) . . . . . . . . . . . . .521 setYear (méthode Date.setYear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521 toString (méthode Date.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 UTC (méthode Date.UTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 valueOf (méthode Date.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 DisplacementMapFilter (flash.filters.DisplacementMapFilter). . . . . 524 alpha (propriété DisplacementMapFilter.alpha) . . . . . . . . . . . . . . . 527 clone (méthode DisplacementMapFilter.clone) . . . . . . . . . . . . . . . 529 color (propriété DisplacementMapFilter.color) . . . . . . . . . . . . . . . . 532 componentX (propriété DisplacementMapFilter.componentX) . 533 componentY (propriété DisplacementMapFilter.componentY) . 535 constructeur DisplacementMapFilter . . . . . . . . . . . . . . . . . . . . . . . . 537 mapBitmap (propriété DisplacementMapFilter.mapBitmap) . . . 539 mapPoint (propriété DisplacementMapFilter.mapPoint) . . . . . . . .541 mode (propriété DisplacementMapFilter.mode) . . . . . . . . . . . . . . 543 scaleX (propriété DisplacementMapFilter.scaleX). . . . . . . . . . . . . 544 Table des matières 13 scaleY (propriété DisplacementMapFilter.scaleY) . . . . . . . . . . . . .546 DropShadowFilter (flash.filters.DropShadowFilter) . . . . . . . . . . . . . .548 alpha (propriété DropShadowFilter.alpha) . . . . . . . . . . . . . . . . . . . 550 angle (propriété DropShadowFilter.angle) . . . . . . . . . . . . . . . . . . . . 551 blurX (propriété DropShadowFilter.blurX) . . . . . . . . . . . . . . . . . . . .552 blurY (propriété DropShadowFilter.blurY) . . . . . . . . . . . . . . . . . . . .553 clone (méthode DropShadowFilter.clone) . . . . . . . . . . . . . . . . . . . 554 color (propriété DropShadowFilter.color) . . . . . . . . . . . . . . . . . . . . .556 distance (propriété DropShadowFilter.distance) . . . . . . . . . . . . . .557 constructeur DropShadowFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . .557 hideObject (propriété DropShadowFilter.hideObject) . . . . . . . . . 560 inner (propriété DropShadowFilter.inner) . . . . . . . . . . . . . . . . . . . . 560 knockout (propriété DropShadowFilter.knockout) . . . . . . . . . . . . . 561 quality (propriété DropShadowFilter.quality) . . . . . . . . . . . . . . . . . .562 strength (propriété DropShadowFilter.strength) . . . . . . . . . . . . . . .563 Erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .564 constructeur Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .565 message (propriété Error.message) . . . . . . . . . . . . . . . . . . . . . . . . . .566 name (propriété Error.name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 toString (méthode Error.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . . .568 ExternalInterface (flash.external.ExternalInterface). . . . . . . . . . . . . . 569 addCallback (méthode ExternalInterface.addCallback). . . . . . . . . 571 available (propriété ExternalInterface.available) . . . . . . . . . . . . . . . 572 call (méthode ExternalInterface.call) . . . . . . . . . . . . . . . . . . . . . . . . . 573 FileReference (flash.net.FileReference) . . . . . . . . . . . . . . . . . . . . . . . .575 addListener (méthode FileReference.addListener) . . . . . . . . . . . 580 browse (méthode FileReference.browse) . . . . . . . . . . . . . . . . . . . . . 581 cancel (méthode FileReference.cancel) . . . . . . . . . . . . . . . . . . . . . .584 creationDate (propriété FileReference.creationDate) . . . . . . . . . .584 creator (propriété FileReference.creator) . . . . . . . . . . . . . . . . . . . . .585 download (méthode FileReference.download) . . . . . . . . . . . . . . . .585 constructeur FileReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .589 modificationDate (propriété FileReference.modificationDate) . 590 name (propriété FileReference.name) . . . . . . . . . . . . . . . . . . . . . . . 590 onCancel (écouteur d'événement FileReference.onCancel) . . . . 591 onCancel (écouteur d'événement FileReference.onComplete) . 592 onHTTPError (écouteur d'événement FileReference.onHTTPError). . . . . . . 593 onIOError (écouteur d'événement FileReference.onIOError). . . 594 onOpen (écouteur d'événement FileReference.onOpen) . . . . . . 596 onProgress (écouteur d'événement FileReference.onProgress) . . . . . . . . 596 onSecurityError (écouteur d'événement FileReference.onSecurityError) . . . . .598 onSelect (écouteur d'événement FileReference.onSelect) . . . . 599 14 Table des matières removeListener (méthodeFileReference.removeListener) . . . . . 600 size (propriété FileReference.size) . . . . . . . . . . . . . . . . . . . . . . . . . . .601 type (propriété FileReference.type). . . . . . . . . . . . . . . . . . . . . . . . . . .601 upload (méthode FileReference.upload) . . . . . . . . . . . . . . . . . . . . . 602 FileReferenceList (flash.net.FileReferenceList) . . . . . . . . . . . . . . . . . 606 addListener (méthode FileReferenceList.addListener) . . . . . . . . 609 browse (méthode FileReferenceList.browse) . . . . . . . . . . . . . . . . . .610 fileList (propriété FileReferenceList.fileList) . . . . . . . . . . . . . . . . . . .613 constructeur FileReferenceList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .614 onCancel (écouteur d'événement FileReferenceList.onCancel) .614 onSelect (écouteur d'événement FileReferenceList.onSelect) . .615 removeListener (méthode FileReferenceList.removeListener) . .616 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 apply (méthode Function.apply). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .618 call (méthode Function.call) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620 GlowFilter (flash.filters.GlowFilter) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .621 alpha (propriété GlowFilter.alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 blurX (propriété GlowFilter.blurX) . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 blurY (propriété GlowFilter.blurY) . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 clone (méthode GlowFilter.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 color (propriété GlowFilter.color) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 constructeur GlowFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 inner (propriété GlowFilter.inner) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 knockout (propriété GlowFilter.knockout) . . . . . . . . . . . . . . . . . . . . .631 quality (propriété GlowFilter.quality) . . . . . . . . . . . . . . . . . . . . . . . . . 632 strength (propriété GlowFilter.strength) . . . . . . . . . . . . . . . . . . . . . . 633 GradientBevelFilter (flash.filters.GradientBevelFilter) . . . . . . . . . . . . 634 alphas (propriété GradientBevelFilter.alphas). . . . . . . . . . . . . . . . . 637 angle (propriété GradientBevelFilter.angle). . . . . . . . . . . . . . . . . . . 638 blurX (propriété GradientBevelFilter.blurX) . . . . . . . . . . . . . . . . . . . 639 blurY (propriété GradientBevelFilter.blurY) . . . . . . . . . . . . . . . . . . . 640 clone (méthode GradientBevelFilter.clone) . . . . . . . . . . . . . . . . . . . .641 colors (propriété GradientBevelFilter.colors) . . . . . . . . . . . . . . . . . 642 distance (propriété GradientBevelFilter.distance) . . . . . . . . . . . . . 644 Constructeur GradientBevelFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 knockout (propriété GradientBevelFilter.knockout) . . . . . . . . . . . 647 quality (propriété GradientBevelFilter.quality). . . . . . . . . . . . . . . . . 648 ratios (propriété GradientBevelFilter.ratios) . . . . . . . . . . . . . . . . . . 649 strength (propriété GradientBevelFilter.strength) . . . . . . . . . . . . . .651 type (propriété GradientBevelFilter.type). . . . . . . . . . . . . . . . . . . . . 652 GradientGlowFilter (flash.filters.GradientGlowFilter) . . . . . . . . . . . . . 653 alphas (propriété GradientGlowFilter.alphas) . . . . . . . . . . . . . . . . . 656 angle (propriété GradientGlowFilter.angle) . . . . . . . . . . . . . . . . . . . 657 blurX (propriété GradientGlowFilter.blurX) . . . . . . . . . . . . . . . . . . . 658 blurY (propriété GradientGlowFilter.blurY) . . . . . . . . . . . . . . . . . . . 659 Table des matières 15 clone (méthode GradientGlowFilter.clone) . . . . . . . . . . . . . . . . . . . 660 colors (propriété GradientGlowFilter.colors) . . . . . . . . . . . . . . . . . .662 distance (propriété GradientGlowFilter.distance) . . . . . . . . . . . . . .664 Constructeur GradientGlowFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . .665 knockout (propriété GradientGlowFilter.knockout). . . . . . . . . . . . . 667 quality (propriété GradientGlowFilter.quality). . . . . . . . . . . . . . . . . .668 ratios (propriété GradientGlowFilter.ratios) . . . . . . . . . . . . . . . . . . .669 strength (propriété GradientGlowFilter.strength) . . . . . . . . . . . . . . 672 type (propriété GradientGlowFilter.type) . . . . . . . . . . . . . . . . . . . . . . 673 IME (System.IME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674 addListener (méthode IME.addListener). . . . . . . . . . . . . . . . . . . . . . 678 ALPHANUMERIC_FULL (propriété IME.ALPHANUMERIC_FULL) . . . . . . . . . . . . . . . . . .679 ALPHANUMERIC_HALF (propriété IME.ALPHANUMERIC_HALF) . . . . . . . . . . . . . . . . . 680 CHINESE (propriété IME.CHINESE) . . . . . . . . . . . . . . . . . . . . . . . . . 681 doConversion (méthode IME.doConversion) . . . . . . . . . . . . . . . . . . 681 getConversionMode (méthode IME.getConversionMode) . . . . . .682 getEnabled (méthode IME.getEnabled) . . . . . . . . . . . . . . . . . . . . . .683 JAPANESE_HIRAGANA (propriété IME.JAPANESE_HIRAGANA) . . . . . . . . . . . . . . . . . .683 JAPANESE_KATAKANA_FULL (propriété IME.JAPANESE_KATAKANA_FULL) . . . . . . . . . . . . . . . . . . . . .684 JAPANESE_KATAKANA_HALF (propriété IME.JAPANESE_KATAKANA_HALF) . . . . . . . . . . . . . . . . . . . . .684 KOREAN (propriété IME.KOREAN) . . . . . . . . . . . . . . . . . . . . . . . . .685 onIMEComposition (écouteur d'événements IME.onIMEComposition) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .686 removeListener (méthode IME.removeListener). . . . . . . . . . . . . . . 687 setCompositionString (méthode IME.setCompositionString) . . .688 setConversionMode (méthode IME.setConversionMode) . . . . . .689 setEnabled (méthode IME.setEnabled) . . . . . . . . . . . . . . . . . . . . . . 690 UNKNOWN (propriété IME.UNKNOWN). . . . . . . . . . . . . . . . . . . . 690 Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691 addListener (méthode Key.addListener). . . . . . . . . . . . . . . . . . . . . 694 BACKSPACE (propriété Key.BACKSPACE) . . . . . . . . . . . . . . . . 695 CAPSLOCK (propriété Key.CAPSLOCK) . . . . . . . . . . . . . . . . . . . 695 CONTROL (propriété Key.CONTROL) . . . . . . . . . . . . . . . . . . . . . . .696 DELETEKEY (propriété Key.DELETEKEY) . . . . . . . . . . . . . . . . . .697 DOWN (propriété Key.DOWN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .698 END (propriété Key.END). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .698 ENTER (propriété Key.ENTER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 ESCAPE (propriété Key.ESCAPE) . . . . . . . . . . . . . . . . . . . . . . . . . .700 getAscii (méthode Key.getAscii) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .700 getCode (méthode Key.getCode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 16 Table des matières HOME (propriété Key.HOME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 INSERT (propriété Key.INSERT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 isAccessible (méthode Key.isAccessible) . . . . . . . . . . . . . . . . . . . . 704 isDown (méthode Key.isDown) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 isToggled (méthode Key.isToggled) . . . . . . . . . . . . . . . . . . . . . . . . . 705 LEFT (propriété Key.LEFT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707 _listeners (propriété Key._listeners) . . . . . . . . . . . . . . . . . . . . . . . . . . 708 onKeyDown (écouteur d'événement Key.onKeyDown) . . . . . . . . 708 onKeyUp (écouteur d'événement Key.onKeyUp) . . . . . . . . . . . . . 709 PGDN (propriété Key.PGDN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709 PGUP (propriété Key.PGUP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710 removeListener (méthode Key.removeListener) . . . . . . . . . . . . . . . 710 RIGHT (propriété Key.RIGHT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 SHIFT (propriété Key.SHIFT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712 SPACE (propriété Key.SPACE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712 TAB (propriété Key.TAB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713 UP (propriété Key.UP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 LoadVars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715 addRequestHeader (méthode LoadVars.addRequestHeader) . . 718 contentType (propriété LoadVars.contentType) . . . . . . . . . . . . . . . 719 decode (méthode LoadVars.decode) . . . . . . . . . . . . . . . . . . . . . . . . . 719 getBytesLoaded (méthode LoadVars.getBytesLoaded) . . . . . . . 720 getBytesTotal (méthode LoadVars.getBytesTotal). . . . . . . . . . . . . 721 load (méthode LoadVars.load) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 loaded (propriété LoadVars.loaded) . . . . . . . . . . . . . . . . . . . . . . . . . 725 constructeur LoadVars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 onData (gestionnaire LoadVars.onData) . . . . . . . . . . . . . . . . . . . . . 726 onHTTPStatus (gestionnaire LoadVars.onHTTPStatus) . . . . . . . 727 onLoad (gestionnaire LoadVars.onLoad) . . . . . . . . . . . . . . . . . . . . 729 send (méthode LoadVars.send) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 sendAndLoad (méthode LoadVars.sendAndLoad). . . . . . . . . . . . 732 toString (méthode LoadVars.toString) . . . . . . . . . . . . . . . . . . . . . . . 734 LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 allowDomain (gestionnaire LocalConnection.allowDomain) . . . . 737 allowInsecureDomain (gestionnaire LocalConnection.allowInsecureDomain). . . . . . . . . . . . . . . . . . . . 741 close (méthode LocalConnection.close) . . . . . . . . . . . . . . . . . . . . . 742 connect (méthode LocalConnection.connect) . . . . . . . . . . . . . . . . 743 domain (méthode LocalConnection.domain) . . . . . . . . . . . . . . . . . 746 constructeur LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749 onStatus (gestionnaire LocalConnection.onStatus) . . . . . . . . . . . 750 send (méthode LocalConnection.send) . . . . . . . . . . . . . . . . . . . . . . 752 Locale (mx.lang.Locale) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754 addDelayedInstance (méthode Locale.addDelayedInstance). . . 756 addXMLPath (méthode Locale.addXML) . . . . . . . . . . . . . . . . . . . . 757 Table des matières 17 autoReplace (propriété Locale.autoReplace) . . . . . . . . . . . . . . . . . 758 checkXMLStatus (méthode Locale.checkXMLStatus) . . . . . . . . . 758 getDefaultLang (méthode Locale.getDefaultLang) . . . . . . . . . . . .759 initialize (méthode Locale.initialize) . . . . . . . . . . . . . . . . . . . . . . . . . .760 languageCodeArray (propriété Locale.languageCodeArray) . . . . 761 loadLanguageXML (méthode Locale.loadLanguageXML) . . . . . 761 loadString (méthode Locale.loadString) . . . . . . . . . . . . . . . . . . . . . . 762 loadStringEx (méthode Locale.loadStringEx) . . . . . . . . . . . . . . . . . 763 setDefaultLang (méthode Locale.setDefaultLang) . . . . . . . . . . . . 764 setLoadCallback (méthode Locale.setLoadCallback) . . . . . . . . . . 765 setString (méthode Locale.setString) . . . . . . . . . . . . . . . . . . . . . . . . 766 stringIDArray (propriété Locale.stringIDArray) . . . . . . . . . . . . . . . . 766 Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767 abs (méthode Math.abs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770 acos (méthode Math.acos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770 asin (méthode Math.asin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 atan (méthode Math.atan). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772 atan2 (méthode Math.atan2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772 ceil (méthode Math.ceil) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773 cos (méthode Math.cos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 E (propriété Math.E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 exp (méthode Math.exp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775 floor (méthode Math.floor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775 LN10 (propriété Math.LN10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776 LN2 (propriété Math.LN2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776 log (méthode Math.log) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776 LOG10E (propriété Math.LOG10E) . . . . . . . . . . . . . . . . . . . . . . . . . . 777 LOG2E (propriété Math.LOG2E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 max (méthode Math.max) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778 min (méthode Math.min) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778 PI (propriété Math.PI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779 pow (méthode Math.pow) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .780 random (méthode Math.random) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 round (méthode Math.round) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 sin (méthode Math.sin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782 sqrt (méthode Math.sqrt). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783 SQRT1_2 (propriété Math.SQRT1_2) . . . . . . . . . . . . . . . . . . . . . . . . . 784 SQRT2 (propriété Math.SQRT2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784 tan (méthode Math.tan) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784 Matrix (flash.geom.Matrix). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785 a (propriété Matrix.a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .790 b (propriété Matrix.b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .790 c (propriété Matrix.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 clone (méthode Matrix.clone). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 concat (méthode Matrix.concat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .792 18 Table des matières createBox (méthode Matrix.createBox) . . . . . . . . . . . . . . . . . . . . . . 794 createGradientBox (méthode Matrix.createGradientBox) . . . . . . 795 d (propriété Matrix.d). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 deltaTransformPoint (méthode Matrix.deltaTransformPoint) . . . 797 identity (méthode Matrix.identity). . . . . . . . . . . . . . . . . . . . . . . . . . . . 798 invert (méthode Matrix.invert) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 Constructeur Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800 rotate (méthode Matrix.rotate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .801 scale (méthode Matrix.scale) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 toString (méthode Matrix.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . 804 transformPoint (méthode Matrix.transformPoint) . . . . . . . . . . . . . 805 translate (méthode Matrix.translate) . . . . . . . . . . . . . . . . . . . . . . . . . 806 tx (propriété Matrix.tx). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807 ty (propriété Matrix.ty). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807 Microphone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808 activityLevel (propriété Microphone.activityLevel) . . . . . . . . . . . . . 811 gain (propriété Microphone.gain) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .812 obtenir (méthode Microphone.get) . . . . . . . . . . . . . . . . . . . . . . . . . . .812 index (propriété Microphone.index). . . . . . . . . . . . . . . . . . . . . . . . . . .814 muted (propriété microphone.muted) . . . . . . . . . . . . . . . . . . . . . . . . .815 name (propriété Microphone.name) . . . . . . . . . . . . . . . . . . . . . . . . . .816 names (propriété Microphone.names) . . . . . . . . . . . . . . . . . . . . . . . .816 onActivity (gestionnaire microphone.onActivity) . . . . . . . . . . . . . . . 817 onStatus (gestionnaire Microphone.onStatus) . . . . . . . . . . . . . . . . .819 rate (propriété Microphone.rate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820 setGain (méthode Microphone.setGain). . . . . . . . . . . . . . . . . . . . . . .821 setRate (méthode Microphone.setRate) . . . . . . . . . . . . . . . . . . . . . 822 setSilenceLevel (méthode Microphone.setSilenceLevel) . . . . . . 824 setUseEchoSuppression (méthode microphone.setUseEchoSuppression) . . . . . . . . . . . . . . . . . . . . 826 silenceLevel (propriété Microphone.silenceLevel) . . . . . . . . . . . . 827 silenceTimeOut (propriété Microphone.silenceTimeOut). . . . . . . 828 useEchoSuppression (propriété Microphone.useEchoSuppression). . . . . . . . . . . . . . . . . . . . . . . . 830 Souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .831 addListener (méthode Mouse.addListener) . . . . . . . . . . . . . . . . . . 832 hide (méthode Mouse.hide). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833 onMouseDown (écouteur d'événement Mouse.onMouseDown) . . 834 onMouseMove (écouteur d'événement Mouse.onMouseMove) . . .836 onMouseUp (écouteur d'événement Mouse.onMouseUp) . . . . . 837 onMouseWheel (écouteur d'événement Mouse.onMouseWheel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 removeListener (méthode Mouse.removeListener). . . . . . . . . . . . 840 show (méthode Mouse.show) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842 MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843 Table des matières 19 _alpha (propriété MovieClip._alpha) . . . . . . . . . . . . . . . . . . . . . . . . . .853 attachAudio (méthode MovieClip.attachAudio). . . . . . . . . . . . . . . .854 attachBitmap (méthode MovieClip.attachBitmap) . . . . . . . . . . . . .855 attachMovie (méthode MovieClip.attachMovie) . . . . . . . . . . . . . . .856 beginBitmapFill (méthode MovieClip.beginBitmapFill) . . . . . . . . .858 beginFill (méthode MovieClip.beginFill) . . . . . . . . . . . . . . . . . . . . . .859 beginGradientFill (méthode MovieClip.beginGradientFill) . . . . . . 861 blendMode (propriété MovieClip.blendMode) . . . . . . . . . . . . . . . . .868 cacheAsBitmap (propriété MovieClip.cacheAsBitmap) . . . . . . . .879 clear (méthode MovieClip.clear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881 createEmptyMovieClip (méthode MovieClip.createEmptyMovieClip). . . . . . . . . . . . . . . . . . . . . . . . .882 createTextField (méthode MovieClip.createTextField) . . . . . . . . .883 _currentframe (propriété MovieClip._currentframe) . . . . . . . . . . . .885 curveTo (méthode MovieClip.curveTo) . . . . . . . . . . . . . . . . . . . . . . .885 _droptarget (propriété MovieClip._droptarget). . . . . . . . . . . . . . . . . 887 duplicateMovieClip (méthode MovieClip.duplicateMovieClip) . . .888 enabled (propriété MovieClip.enabled) . . . . . . . . . . . . . . . . . . . . . . 890 endFill (méthode MovieClip.endFill) . . . . . . . . . . . . . . . . . . . . . . . . . . 891 filters (propriété MovieClip.filters) . . . . . . . . . . . . . . . . . . . . . . . . . . . .892 focusEnabled (propriété MovieClip.focusEnabled). . . . . . . . . . . . .893 _focusrect (propriété MovieClip._focusrect) . . . . . . . . . . . . . . . . . . 894 _framesloaded (propriété MovieClip._framesloaded) . . . . . . . . . . .895 getBounds (méthode MovieClip.etBounds) . . . . . . . . . . . . . . . . . . .896 getBytesLoaded (méthode MovieClip.getBytesLoaded) . . . . . . . 897 getBytesTotal (méthode MovieClip.getBytesTotal) . . . . . . . . . . . .898 getDepth (méthode MovieClip.getDepth) . . . . . . . . . . . . . . . . . . . . 899 getInstanceAtDepth (méthode MovieClip.getInstanceAtDepth) . . . . . . . . . . . . . . . . . . . . . . . . . . 899 getNextHighestDepth (méthode MovieClip.getNextHighestDepth) . . . . . . . . . . . . . . . . . . . . . . . . 900 getRect (méthode MovieClip.getRect) . . . . . . . . . . . . . . . . . . . . . . 902 getSWFVersion (méthode MovieClip.getSWFVersion) . . . . . . . 903 getTextSnapshot (méthode MovieClip.getTextSnapshot) . . . . . 904 getURL (méthode MovieClip.getURL) . . . . . . . . . . . . . . . . . . . . . . 905 globalToLocal (méthode MovieClip.globalToLocal). . . . . . . . . . . .907 gotoAndPlay (méthode MovieClip.gotoAndPlay) . . . . . . . . . . . . . 909 gotoAndStop (méthode MovieClip.gotoAndStop) . . . . . . . . . . . . . 910 _height (propriété MovieClip._height). . . . . . . . . . . . . . . . . . . . . . . . . .911 _highquality (propriété MovieClip._highquality) . . . . . . . . . . . . . . . . 912 hitArea (propriété MovieClip.hitArea). . . . . . . . . . . . . . . . . . . . . . . . . 912 hitTest (méthode MovieClip.hitTest) . . . . . . . . . . . . . . . . . . . . . . . . . 913 lineGradientStyle (méthode MovieClip.lineGradientStyle) . . . . . . 914 lineStyle (méthode MovieClip.lineStyle) . . . . . . . . . . . . . . . . . . . . . . 919 lineTo (méthode MovieClip.lineTo) . . . . . . . . . . . . . . . . . . . . . . . . . . .922 loadMovie (méthode MovieClip.loadMovie) . . . . . . . . . . . . . . . . . . .923 20 Table des matières loadVariables (méthode MovieClip.loadVariables) . . . . . . . . . . . . 926 localToGlobal (méthode MovieClip.localToGlobal) . . . . . . . . . . . . 928 _lockroot (propriété MovieClip._lockroot) . . . . . . . . . . . . . . . . . . . . 930 menu (propriété MovieClip.menu) . . . . . . . . . . . . . . . . . . . . . . . . . . . 933 moveTo (méthode MovieClip.moveTo) . . . . . . . . . . . . . . . . . . . . . . 933 _name (propriété MovieClip._name) . . . . . . . . . . . . . . . . . . . . . . . . . 934 nextFrame (méthode MovieClip.nextFrame). . . . . . . . . . . . . . . . . . 935 onData (gestionnaire MovieClip.onData) . . . . . . . . . . . . . . . . . . . . . 935 onDragOut (gestionnaire MovieClip.onDragOut) . . . . . . . . . . . . . . 936 onDragOver (gestionnaire MovieClip.onDragOver). . . . . . . . . . . . 937 onEnterFrame (gestionnaire MovieClip.onEnterFrame). . . . . . . . 937 onKeyDown (gestionnaire MovieClip.onKeyDown) . . . . . . . . . . . 938 onKeyUp (gestionnaire MovieClip.onKeyUp) . . . . . . . . . . . . . . . . . 939 onKillFocus (gestionnaire MovieClip.onKillFocus). . . . . . . . . . . . . 940 onLoad (gestionnaire MovieClip.onLoad) . . . . . . . . . . . . . . . . . . . . 940 onMouseDown (gestionnaire MovieClip.onMouseDown) . . . . . . 942 onMouseMove (gestionnaire MovieClip.onMouseMove) . . . . . . . 942 onMouseUp (gestionnaire MovieClip.onMouseUp) . . . . . . . . . . . . 942 onPress (gestionnaire MovieClip.onPress) . . . . . . . . . . . . . . . . . . . 943 onRelease (gestionnaire MovieClip.onRelease) . . . . . . . . . . . . . . . 943 onReleaseOutside (gestionnaire MovieClip.onReleaseOutside) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944 onRollOut (gestionnaire MovieClip.onRollOut). . . . . . . . . . . . . . . . 944 onRollOver (gestionnaire MovieClip.onRollOver) . . . . . . . . . . . . . 945 onSetFocus (gestionnaire MovieClip.onSetFocus) . . . . . . . . . . . . 945 onUnload (gestionnaire MovieClip.onUnload) . . . . . . . . . . . . . . . . 946 opaqueBackground (propriété MovieClip.opaqueBackground). 947 _parent (propriété MovieClip._parent) . . . . . . . . . . . . . . . . . . . . . . . . 948 play (méthode MovieClip.play) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 prevFrame (méthode MovieClip.prevFrame) . . . . . . . . . . . . . . . . . 949 _quality (propriété MovieClip._quality). . . . . . . . . . . . . . . . . . . . . . . . 950 removeMovieClip (méthode MovieClip.removeMovieClip) . . . . . 952 _rotation (propriété MovieClip._rotation) . . . . . . . . . . . . . . . . . . . . . 953 scale9Grid (propriété MovieClip.scale9Grid) . . . . . . . . . . . . . . . . . 954 scrollRect (propriété MovieClip.scrollRect) . . . . . . . . . . . . . . . . . . . 958 setMask (méthode MovieClip.setMask) . . . . . . . . . . . . . . . . . . . . . . 960 _soundbuftime (propriété MovieClip._soundbuftime) . . . . . . . . . . .961 startDrag (méthode MovieClip.startDrag) . . . . . . . . . . . . . . . . . . . . .961 stop (méthode MovieClip.stop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962 stopDrag (méthode MovieClip.stopDrag) . . . . . . . . . . . . . . . . . . . . 963 swapDepths (méthode MovieClip.swapDepths) . . . . . . . . . . . . . . 964 tabChildren (propriété MovieClip.tabChildren) . . . . . . . . . . . . . . . . 965 tabEnabled (propriété MovieClip.tabEnabled) . . . . . . . . . . . . . . . . 966 tabIndex (propriété MovieClip.tabIndex) . . . . . . . . . . . . . . . . . . . . . 966 _target (propriété MovieClip._target) . . . . . . . . . . . . . . . . . . . . . . . . . 967 _totalframes (propriété MovieClip._totalframes) . . . . . . . . . . . . . . . 968 Table des matières 21 trackAsMenu (propriété MovieClip.trackAsMenu) . . . . . . . . . . . . .968 transform (propriété MovieClip.transform) . . . . . . . . . . . . . . . . . . . 969 unloadMovie (méthode MovieClip.unloadMovie) . . . . . . . . . . . . . . 971 _url (propriété MovieClip._url). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971 useHandCursor (propriété MovieClip.useHandCursor) . . . . . . . . .973 _visible (propriété MovieClip._visible). . . . . . . . . . . . . . . . . . . . . . . . .973 _width (propriété MovieClip._width) . . . . . . . . . . . . . . . . . . . . . . . . . .974 _x (propriété MovieClip._x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .975 _xmouse (propriété MovieClip._xmouse) . . . . . . . . . . . . . . . . . . . . . .976 _xscale (propriété MovieClip._xscale). . . . . . . . . . . . . . . . . . . . . . . . .976 _y (propriété MovieClip._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978 _ymouse (propriété MovieClip._ymouse) . . . . . . . . . . . . . . . . . . . . . .979 _yscale (propriété MovieClip._yscale). . . . . . . . . . . . . . . . . . . . . . . . .979 MovieClipLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980 addListener (méthode MovieClipLoader.addListener) . . . . . . . . .983 getProgress (méthode MovieClipLoader.getProgress) . . . . . . . . .985 loadClip (méthode MovieClipLoader.loadClip) . . . . . . . . . . . . . . . .986 MovieClipLoader, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989 onLoadComplete (écouteur d'événement MovieClipLoader.onLoadComplete) . . . . . . . . . . . . . . . . . . . . . . 989 onLoadError (écouteur d'événement MovieClipLoader.onLoadError) . . . . . . . . . . . . . . . . . . . . . . . . . . . 991 onLoadInit (écouteur d'événement MovieClipLoader.onLoadInit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993 onLoadProgress (écouteur d'événement MovieClipLoader.onLoadProgress). . . . . . . . . . . . . . . . . . . . . . . 994 onLoadStart (écouteur d'événement MovieClipLoader.onLoadStart) . . . . . . . . . . . . . . . . . . . . . . . . . . 996 removeListener (méthode MovieClipLoader.removeListener) . .997 unloadClip (méthode MovieClipLoader.unloadClip) . . . . . . . . . . . 998 NetConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 connect (méthode NetConnection.connect) . . . . . . . . . . . . . . . . .1000 NetConnection, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1002 NetStream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1002 bufferLength (propriété NetStream.bufferLength) . . . . . . . . . . . .1004 bufferTime (propriété NetStream.bufferTime) . . . . . . . . . . . . . . . .1005 bytesLoaded (propriété NetStream.bytesLoaded) . . . . . . . . . . . .1006 bytesTotal (propriété NetStream.bytesTotal). . . . . . . . . . . . . . . . .1008 close (méthode NetStream.close) . . . . . . . . . . . . . . . . . . . . . . . . . .1009 currentFps (propriété NetStream.currentFps) . . . . . . . . . . . . . . . . 1010 NetStream, constructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010 onMetaData (gestionnaire NetStream.onMetaData) . . . . . . . . . . . 1011 onStatus (gestionnaire NetStream.onStatus) . . . . . . . . . . . . . . . . 1012 pause (méthode NetStream.pause) . . . . . . . . . . . . . . . . . . . . . . . . . 1015 play (méthode NetStream.play). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 22 Table des matières seek (méthode NetStream.seek) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 setBufferTime (méthode NetStream.setBufferTime) . . . . . . . . . . 1018 time (propriété NetStream.time). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 MAX_VALUE (propriété Number.MAX_VALUE) . . . . . . . . . . . . . . 1021 MIN_VALUE (propriété Number.MIN_VALUE) . . . . . . . . . . . . . . 1022 NaN (propriété Number.NaN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022 NEGATIVE_INFINITY (propriété Number.NEGATIVE_INFINITY) . . . . . . . . . . . . . . . . . . . . . . . . . . 1022 Number, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 POSITIVE_INFINITY (propriété Number.POSITIVE_INFINITY) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 toString (méthode Number.toString) . . . . . . . . . . . . . . . . . . . . . . . 1024 valueOf (méthode Number.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . 1025 Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025 addProperty (méthode Object.addProperty). . . . . . . . . . . . . . . . . 1027 constructeur (propriété Object.constructor) . . . . . . . . . . . . . . . . . 1030 hasOwnProperty (méthode Object.hasOwnProperty) . . . . . . . . . 1031 isPropertyEnumerable (méthode Object.isPropertyEnumerable). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031 isPrototypeOf (méthode Object.isPrototypeOf) . . . . . . . . . . . . . . 1032 Constructeur Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032 __proto__ (Object.__proto__ property) . . . . . . . . . . . . . . . . . . . . . . . 1033 prototype (Object.prototype, propriété) . . . . . . . . . . . . . . . . . . . . . 1034 registerClass (méthode Object.registerClass). . . . . . . . . . . . . . . . 1035 __resolve (Object.__resolve, propriété) . . . . . . . . . . . . . . . . . . . . . . 1036 toString (méthode Object.toString). . . . . . . . . . . . . . . . . . . . . . . . . 1039 unwatch (méthode Object.unwatch) . . . . . . . . . . . . . . . . . . . . . . . . 1040 valueOf (méthode Object.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . . 1041 watch (méthode Object.watch). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 Point (flash.geom.Point) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 add (méthode Point.add) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 clone (méthode Point.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 distance (méthode Point.distance) . . . . . . . . . . . . . . . . . . . . . . . . . 1047 equals (méthode Point.equals) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048 interpolate (méthode Point.interpolate) . . . . . . . . . . . . . . . . . . . . . 1048 length (propriété Point.length) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 normalize (méthode Point.normalize) . . . . . . . . . . . . . . . . . . . . . . . 1049 offset (méthode Point.offset) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050 Point, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051 polar (méthode Point.polar). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051 subtract (méthode Point.subtract) . . . . . . . . . . . . . . . . . . . . . . . . . . 1052 toString (méthode Point.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . 1053 x (Point.x, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053 y (Point.y, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053 Table des matières 23 PrintJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1054 addPage (méthode PrintJob.addPage) . . . . . . . . . . . . . . . . . . . . . .1056 orientation (PrintJob.orientation, propriété) . . . . . . . . . . . . . . . . . .1060 pageHeight (propriété PrintJob.pageHeight). . . . . . . . . . . . . . . . .1060 pageWidth (propriété PrintJob.pageWidth) . . . . . . . . . . . . . . . . . . 1061 paperHeight (propriété PrintJob.paperHeight) . . . . . . . . . . . . . . . 1061 paperWidth (propriété PrintJob.paperWidth) . . . . . . . . . . . . . . . . 1061 PrintJob, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 send (méthode PrintJob.send) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063 start (méthode PrintJob.start) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063 Rectangle (flash.geom.Rectangle) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066 bottom (propriété Rectangle.bottom) . . . . . . . . . . . . . . . . . . . . . . .1069 bottomRight (propriété Rectangle.bottomRight) . . . . . . . . . . . . . 1070 clone (méthode Rectangle.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070 contains (méthode Rectangle.contains) . . . . . . . . . . . . . . . . . . . . . 1073 containsPoint (méthode Rectangle.containsPoint) . . . . . . . . . . . 1074 containsRectangle (méthode Rectangle.containsRectangle) . . 1074 equals (méthode Rectangle.equals) . . . . . . . . . . . . . . . . . . . . . . . . . 1075 height (propriété Rectangle.height) . . . . . . . . . . . . . . . . . . . . . . . . . 1076 inflate (méthode Rectangle.inflate). . . . . . . . . . . . . . . . . . . . . . . . . . 1077 inflatePoint (méthode Rectangle.inflatePoint) . . . . . . . . . . . . . . . . 1078 intersection (méthode Rectangle.intersection) . . . . . . . . . . . . . . . 1079 intersects (méthode Rectangle.intersects) . . . . . . . . . . . . . . . . . . . 1079 isEmpty (méthode Rectangle.isEmpty) . . . . . . . . . . . . . . . . . . . . . .1080 left (propriété Rectangle.left) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081 offset (méthode Rectangle.offset) . . . . . . . . . . . . . . . . . . . . . . . . . . 1082 offsetPoint (méthode Rectangle.offsetPoint). . . . . . . . . . . . . . . . . 1082 Rectangle, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083 right (propriété Rectangle.right) . . . . . . . . . . . . . . . . . . . . . . . . . . . .1084 setEmpty (méthode Rectangle.setEmpty) . . . . . . . . . . . . . . . . . . .1084 size (propriété Rectangle.size). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085 top (propriété Rectangle.top). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086 topLeft (propriété Rectangle.topLeft) . . . . . . . . . . . . . . . . . . . . . . . 1086 toString (méthode Rectangle.toString) . . . . . . . . . . . . . . . . . . . . . . 1087 union (méthode Rectangle.union) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088 width (propriété Rectangle.width) . . . . . . . . . . . . . . . . . . . . . . . . . . .1089 x (propriété Rectangle.x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1089 y (propriété Rectangle.y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1090 security (System.security) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091 allowDomain (méthode security.allowDomain) . . . . . . . . . . . . . . .1092 allowInsecureDomain (méthode security.allowInsecureDomain) . . . . . . . . . . . . . . . . . . . . . . . . . . .1098 loadPolicyFile (méthode security.loadPolicyFile) . . . . . . . . . . . . . 1102 sandboxType (propriété security.sandboxType) . . . . . . . . . . . . . . 1105 24 Table des matières Sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106 addListener (méthode Selection.addListener) . . . . . . . . . . . . . . . . 1108 getBeginIndex (méthode Selection.getBeginIndex) . . . . . . . . . . . 1109 getCaretIndex (méthode Selection.getCaretIndex) . . . . . . . . . . . . 1110 getEndIndex (méthode Selection.getEndIndex). . . . . . . . . . . . . . . . 1111 getFocus (méthode Selection.getFocus). . . . . . . . . . . . . . . . . . . . . 1112 onSetFocus (Selection.onSetFocus, écouteur d'événement) . . 1113 removeListener (méthode Selection.removeListener) . . . . . . . . . 1115 setFocus (méthode Selection.setFocus) . . . . . . . . . . . . . . . . . . . . . 1116 setSelection (méthode Selection.setSelection) . . . . . . . . . . . . . . . .1117 SharedObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118 clear (méthode SharedObject.clear) . . . . . . . . . . . . . . . . . . . . . . . . . 1121 data (propriété SharedObject.data). . . . . . . . . . . . . . . . . . . . . . . . . . 1122 flush (méthode SharedObject.flush) . . . . . . . . . . . . . . . . . . . . . . . . . 1124 getLocal (méthode SharedObject.getLocal). . . . . . . . . . . . . . . . . . 1126 getSize (méthode SharedObject.getSize) . . . . . . . . . . . . . . . . . . . . 1130 onStatus (gestionnaire SharedObject.onStatus) . . . . . . . . . . . . . . 1131 Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133 attachSound (méthode Sound.attachSound) . . . . . . . . . . . . . . . . . 1135 duration (propriété Sound.duration) . . . . . . . . . . . . . . . . . . . . . . . . . 1136 getBytesLoaded (méthode Sound.getBytesLoaded). . . . . . . . . . 1138 getBytesTotal (méthode Sound.getBytesTotal). . . . . . . . . . . . . . . 1139 getPan (méthode Sound.getPan) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 getTransform (méthode Sound.getTransform). . . . . . . . . . . . . . . . 1141 getVolume (méthode Sound.getVolume). . . . . . . . . . . . . . . . . . . . . 1144 id3 (Sound.id3, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145 loadSound (méthode Sound.loadSound) . . . . . . . . . . . . . . . . . . . . 1147 onID3 (gestionnaire Sound.onID3) . . . . . . . . . . . . . . . . . . . . . . . . . . 1149 onLoad (gestionnaire Sound.onLoad) . . . . . . . . . . . . . . . . . . . . . . . 1150 onSoundComplete (gestionnaire Sound.onSoundComplete). . . 1151 position (Sound.position, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . 1151 setPan (méthode Sound.setPan) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152 setTransform (méthode Sound.setTransform) . . . . . . . . . . . . . . . . 1152 setVolume (méthode Sound.setVolume) . . . . . . . . . . . . . . . . . . . . . 1155 Sound, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155 start (Sound.start method). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156 stop (Sound.stop method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157 Scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157 addListener (méthode Stage.addListener) . . . . . . . . . . . . . . . . . . . 1159 align (propriété Stage.align) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160 height (propriété Stage.height). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161 onResize (Stage.onResize, écouteur d'événements) . . . . . . . . . . 1161 removeListener (méthode Stage.removeListener) . . . . . . . . . . . . 1162 scaleMode (propriété Stage.scaleMode) . . . . . . . . . . . . . . . . . . . . . 1163 showMenu (propriété Stage.showMenu) . . . . . . . . . . . . . . . . . . . . . 1164 Table des matières 25 width (propriété Stage.width). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165 String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166 charAt (méthode String.charAt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168 charCodeAt (méthode String.charCodeAt) . . . . . . . . . . . . . . . . . . 1169 concat (String.concat method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170 fromCharCode (méthode String.fromCharCode) . . . . . . . . . . . . . 1170 indexOf (méthode String.indexOf) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171 lastIndexOf (méthode String.lastIndexOf). . . . . . . . . . . . . . . . . . . . .1172 length (propriété String.length) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1173 slice (méthode String.slice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174 split (méthode String.split) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175 String, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1177 substr (méthode String.substr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1177 substring (méthode String.substring) . . . . . . . . . . . . . . . . . . . . . . . . .1178 toLowerCase (méthode String.toLowerCase) . . . . . . . . . . . . . . . . 1179 toString (méthode String.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . 1180 toUpperCase (méthode String.toUpperCase) . . . . . . . . . . . . . . . . 1180 valueOf (méthode String.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181 StyleSheet (TextField.StyleSheet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182 clear (méthode StyleSheet.clear) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186 getStyle (méthode StyleSheet.getStyle). . . . . . . . . . . . . . . . . . . . . 1186 getStyleNames (méthode StyleSheet.getStyleNames) . . . . . . . 1188 load (méthode StyleSheet.load) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189 onLoad (gestionnaire StyleSheet.onLoad). . . . . . . . . . . . . . . . . . . 1190 parseCSS (méthode StyleSheet.parseCSS) . . . . . . . . . . . . . . . . . . 1191 setStyle (méthode StyleSheet.setStyle) . . . . . . . . . . . . . . . . . . . . . 1192 StyleSheet, constructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194 transform (méthode StyleSheet.transform) . . . . . . . . . . . . . . . . . . 1194 System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195 exactSettings (propriété System.exactSettings). . . . . . . . . . . . . . 1197 onStatus (gestionnaire System.onStatus) . . . . . . . . . . . . . . . . . . . 1198 setClipboard (méthode System.setClipboard) . . . . . . . . . . . . . . . .1200 showSettings (méthode System.showSettings) . . . . . . . . . . . . . . 1201 useCodepage (propriété System.useCodepage) . . . . . . . . . . . . . 1202 TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 addListener (méthode TextField.addListener). . . . . . . . . . . . . . . .1209 _alpha (propriété TextField._alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . 1210 antiAliasType (propriété TextField.antiAliasType). . . . . . . . . . . . . . 1211 autoSize (propriété TextField.autoSize) . . . . . . . . . . . . . . . . . . . . . 1213 background (propriété TextField.background) . . . . . . . . . . . . . . . 1215 backgroundColor (propriété TextField.backgroundColor) . . . . . 1216 border (propriété TextField.border) . . . . . . . . . . . . . . . . . . . . . . . . . 1216 borderColor (propriété TextField.borderColor) . . . . . . . . . . . . . . . .1217 bottomScroll (propriété TextField.bottomScroll). . . . . . . . . . . . . . .1217 condenseWhite (propriété TextField.condenseWhite) . . . . . . . . 1218 26 Table des matières embedFonts (propriété TextField.embedFonts). . . . . . . . . . . . . . . 1219 filters (propriété TextField.filters) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 getDepth (méthode TextField.getDepth) . . . . . . . . . . . . . . . . . . . . 1222 getFontList (méthode TextField.getFontList). . . . . . . . . . . . . . . . 1222 getNewTextFormat (méthode TextField.getNewTextFormat) . 1223 getTextFormat (méthode TextField.getTextFormat). . . . . . . . . . 1224 gridFitType (propriété TextField.gridFitType) . . . . . . . . . . . . . . . . 1225 _height (propriété TextField._height) . . . . . . . . . . . . . . . . . . . . . . . . 1227 _height (propriété TextField._height) . . . . . . . . . . . . . . . . . . . . . . . . 1227 hscroll (propriété TextField.hscroll) . . . . . . . . . . . . . . . . . . . . . . . . . 1228 html (propriété TextField.html) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 htmlText (propriété TextField.htmlText) . . . . . . . . . . . . . . . . . . . . . 1230 length (propriété TextField.length). . . . . . . . . . . . . . . . . . . . . . . . . . 1230 maxChars (propriété TextField.maxChars) . . . . . . . . . . . . . . . . . . . 1231 maxhscroll (propriété TextField.maxhscroll) . . . . . . . . . . . . . . . . . . 1231 maxscroll (propriété TextField.maxscroll) . . . . . . . . . . . . . . . . . . . 1232 menu (propriété TextField.menu) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232 mouseWheelEnabled (propriété TextField.mouseWheelEnabled) . . . . . . . . . . . . . . . . . . . . . . . . . 1234 multiline (propriété TextField.multiline). . . . . . . . . . . . . . . . . . . . . . 1235 _name (propriété TextField._name) . . . . . . . . . . . . . . . . . . . . . . . . . 1235 onChanged (gestionnaire TextField.onChanged) . . . . . . . . . . . . 1236 onKillFocus (gestionnaire TextField.onKillFocus) . . . . . . . . . . . . .1237 onScroller (gestionnaire TextField.onScroller) . . . . . . . . . . . . . . . .1237 onSetFocus (gestionnaire TextField.onSetFocus) . . . . . . . . . . . 1239 _parent (propriété TextField._parent) . . . . . . . . . . . . . . . . . . . . . . . 1240 password (propriété TextField.password) . . . . . . . . . . . . . . . . . . . . 1241 _quality (propriété TextField._quality) . . . . . . . . . . . . . . . . . . . . . . . 1242 removeListener (méthode TextField.removeListener) . . . . . . . . 1243 removeTextField (méthode TextField.removeTextField) . . . . . . 1244 replaceSel (méthode TextField.replaceSel) . . . . . . . . . . . . . . . . . 1244 replaceText (méthode TextField.replaceText) . . . . . . . . . . . . . . . 1246 restrict (propriété TextField.restrict) . . . . . . . . . . . . . . . . . . . . . . . . 1247 _rotation (propriété TextField._rotation) . . . . . . . . . . . . . . . . . . . . . 1248 scroll (propriété TextField.scroll) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 selectable (propriété TextField.selectable) . . . . . . . . . . . . . . . . . . 1250 setNewTextFormat (méthode TextField.setNewTextFormat) . . 1251 setTextFormat (méthode TextField.setTextFormat) . . . . . . . . . . 1252 sharpness (propriété TextField.sharpness) . . . . . . . . . . . . . . . . . . 1254 _soundbuftime (propriété TextField._soundbuftime) . . . . . . . . . . 1255 styleSheet (propriété TextField.styleSheet) . . . . . . . . . . . . . . . . . 1255 tabEnabled (propriété TextField.tabEnabled) . . . . . . . . . . . . . . . . 1258 tabIndex (propriété TextField.tabIndex) . . . . . . . . . . . . . . . . . . . . . 1259 _target (propriété TextField._target) . . . . . . . . . . . . . . . . . . . . . . . . 1260 text (propriété TextField.text) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261 textColor (propriété TextField.textColor) . . . . . . . . . . . . . . . . . . . . 1262 Table des matières 27 textHeight (propriété TextField.textHeight) . . . . . . . . . . . . . . . . . . 1262 textWidth (propriété TextField.textWidth) . . . . . . . . . . . . . . . . . . . 1263 thickness (propriété TextField.thickness) . . . . . . . . . . . . . . . . . . . . 1263 type (propriété TextField.type). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264 _url (propriété TextField._url) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265 variable (propriété TextField.variable) . . . . . . . . . . . . . . . . . . . . . . . 1266 _visible (propriété TextField._visible) . . . . . . . . . . . . . . . . . . . . . . . . 1266 _width (propriété TextField._width) . . . . . . . . . . . . . . . . . . . . . . . . . . 1267 wordWrap (propriété TextField.wordWrap) . . . . . . . . . . . . . . . . . . 1268 _x (propriété TextField._x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269 _xmouse (propriété TextField._xmouse) . . . . . . . . . . . . . . . . . . . . . 1270 _xscale (propriété TextField._xscale) . . . . . . . . . . . . . . . . . . . . . . . . .1271 _y (propriété TextField._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1271 _ymouse (propriété TextField._ymouse) . . . . . . . . . . . . . . . . . . . . . 1272 _yscale (propriété TextField._yscale) . . . . . . . . . . . . . . . . . . . . . . . . 1272 TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273 align (propriété TextFormat.align). . . . . . . . . . . . . . . . . . . . . . . . . . . 1275 blockIndent (propriété TextFormat.blockIndent) . . . . . . . . . . . . . . 1276 bold (propriété TextFormat.bold) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276 bullet (propriété TextFormat.bullet) . . . . . . . . . . . . . . . . . . . . . . . . . 1277 color (propriété TextFormat.color) . . . . . . . . . . . . . . . . . . . . . . . . . . 1277 font (propriété TextFormat.font) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1278 getTextExtent (méthode TextFormat.getTextExtent) . . . . . . . . . 1278 indent (propriété TextFormat.indent) . . . . . . . . . . . . . . . . . . . . . . . . 1281 italic (propriété TextFormat.italic) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 kerning (propriété TextFormat.kerning). . . . . . . . . . . . . . . . . . . . . . 1282 leading (propriété TextFormat.leading) . . . . . . . . . . . . . . . . . . . . . . 1283 leftMargin (propriété TextFormat.leftMargin). . . . . . . . . . . . . . . . . 1284 letterSpacing (propriété TextFormat.letterSpacing). . . . . . . . . . . 1284 rightMargin (propriété TextFormat.rightMargin) . . . . . . . . . . . . . . 1285 size (propriété TextFormat.size) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1286 tabStops (propriété TextFormat.tabStops) . . . . . . . . . . . . . . . . . . 1286 target (propriété TextFormat.target). . . . . . . . . . . . . . . . . . . . . . . . . 1287 TextFormat, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288 underline (propriété TextFormat.underline) . . . . . . . . . . . . . . . . . . 1289 url (propriété TextFormat.url) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1290 TextRenderer (flash.text.TextRenderer) . . . . . . . . . . . . . . . . . . . . . . .1290 maxLevel (propriété TextRenderer.maxLevel). . . . . . . . . . . . . . . . 1292 setAdvancedAntialiasingTable (méthode TextRenderer.setAdvancedAntialiasingTable) . . . . . . . . . . . . . 1293 TextSnapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296 findText (méthode TextSnapshot.findText) . . . . . . . . . . . . . . . . . . 1297 getCount (méthode TextSnapshot.getCount) . . . . . . . . . . . . . . . . 1298 getSelected (méthode TextSnapshot.getSelected) . . . . . . . . . . . 1299 getSelectedText (méthode TextSnapshot.getSelectedText). . .1300 28 Table des matières getText (méthode TextSnapshot.getText). . . . . . . . . . . . . . . . . . . . 1301 getTextRunInfo (méthode TextSnapshot.getTextRunInfo) . . . . 1302 hitTestTextNearPos (méthode TextSnapshot.hitTestTextNearPos) . . . . . . . . . . . . . . . . . . . . . . 1305 setSelectColor (méthode TextSnapshot.setSelectColor) . . . . . 1307 setSelected (méthode TextSnapshot.setSelected). . . . . . . . . . . 1308 Transform (flash.geom.Transform). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309 colorTransform (propriété Transform.colorTransform) . . . . . . . . . 1311 concatenatedColorTransform (propriété Transform.concatenatedColorTransform). . . . . . . . . . . . . . . . . . 1312 concatenatedMatrix (propriété Transform.concatenatedMatrix) . 1313 matrix (propriété Transform.matrix) . . . . . . . . . . . . . . . . . . . . . . . . . . 1314 pixelBounds (propriété Transform.pixelBounds) . . . . . . . . . . . . . . 1315 Transform, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316 Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317 _alpha (propriété Video._alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1320 attachVideo (méthode Video.attachVideo) . . . . . . . . . . . . . . . . . . . 1321 clear (méthode Video.clear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 deblocking (propriété Video.deblocking) . . . . . . . . . . . . . . . . . . . . 1322 _height (propriété Video._height) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323 height (propriété Video.height) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324 _name (propriété Video._name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325 _parent (propriété Video._parent). . . . . . . . . . . . . . . . . . . . . . . . . . . 1325 _rotation (propriété Video._rotation) . . . . . . . . . . . . . . . . . . . . . . . . 1325 smoothing (propriété Video.smoothing) . . . . . . . . . . . . . . . . . . . . . 1325 _visible (propriété Video._visible) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326 _width (propriété Video._width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326 width (propriété Video.width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1327 _x (Video._x property) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1327 _xmouse (propriété Video._xmouse) . . . . . . . . . . . . . . . . . . . . . . . . .1327 _xscale (propriété Video._xscale) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328 _y (propriété Video._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328 _ymouse (propriété Video._ymouse) . . . . . . . . . . . . . . . . . . . . . . . . 1328 _yscale (propriété Video._yscale) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329 XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329 addRequestHeader (méthode XML.addRequestHeader) . . . . . 1333 contentType (XML.contentType, propriété) . . . . . . . . . . . . . . . . . 1334 createElement (méthode nodeML.createElement) . . . . . . . . . . . 1335 createTextNode (méthode XML.createTextNode) . . . . . . . . . . . 1336 docTypeDecl (XML.docTypeDecl, propriété) . . . . . . . . . . . . . . . . .1337 getBytesLoaded (XML.getBytesLoaded, méthode) . . . . . . . . . . 1338 getBytesTotal (XML.getBytesTotal, méthode). . . . . . . . . . . . . . . 1339 idMap (XML.idMap, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339 ignoreWhite (XML.ignoreWhite, propriété) . . . . . . . . . . . . . . . . . . . 1341 load (XML.load, méhode). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 Table des matières 29 loaded (XML.loaded, propriété). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345 onData (XML.onData, gestionnaire). . . . . . . . . . . . . . . . . . . . . . . . . 1346 onHTTPStatus (XML.onHTTPStatus, gestionnaire) . . . . . . . . . . 1347 onLoad (XML.onLoad, gestionnaire) . . . . . . . . . . . . . . . . . . . . . . . . 1349 parseXML (XML.parseXML, méthode) . . . . . . . . . . . . . . . . . . . . . .1350 send (XML.send, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351 sendAndLoad (XML.sendAndLoad, méthode) . . . . . . . . . . . . . . . 1352 status (XML.status, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354 XML, constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356 xmlDecl (XML.xmlDecl, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . . 1356 XMLNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1358 appendChild (XMLNode.appendChild, méthode) . . . . . . . . . . . . . 1360 attributes (XMLNode.attributes, propriété) . . . . . . . . . . . . . . . . . . . 1361 childNodes (XMLNode.childNodes, propriété) . . . . . . . . . . . . . . . 1362 cloneNode (XMLNode.cloneNode, méthode) . . . . . . . . . . . . . . . . 1363 firstChild (XMLNode.firstChild, propriété). . . . . . . . . . . . . . . . . . . . 1365 getNamespaceForPrefix (XMLNode.getNamespaceForPrefix, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366 getPrefixForNamespace (XMLNode.getPrefixForNamespace, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367 hasChildNodes (XMLNode.hasChildNodes, méthode) . . . . . . . . 1369 insertBefore (XMLNode.insertBefore, méthode) . . . . . . . . . . . . . 1369 lastChild (XMLNode.lastChild, propriété) . . . . . . . . . . . . . . . . . . . . 1370 localName (XMLNode.localName, propriété) . . . . . . . . . . . . . . . . .1371 namespaceURI (XMLNode.namespaceURI, propriété). . . . . . . . 1372 nextSibling (XMLNode.nextSibling, propriété) . . . . . . . . . . . . . . . 1374 nodeName (XMLNode.nodeName, propriété). . . . . . . . . . . . . . . . 1375 nodeType (XMLNode.nodeType, propriété) . . . . . . . . . . . . . . . . . 1376 nodeValue (XMLNode.nodeValue, propriété) . . . . . . . . . . . . . . . . 1378 parentNode (XMLNode.parentNode, propriété) . . . . . . . . . . . . . . 1379 prefix (XMLNode.prefix, propriété) . . . . . . . . . . . . . . . . . . . . . . . . . . 1380 previousSibling (XMLNode.previousSibling, propriété). . . . . . . . 1381 removeNode (XMLNode.removeNode, méthode) . . . . . . . . . . . . 1381 toString (XMLNode.toString, méthode) . . . . . . . . . . . . . . . . . . . . . 1382 XMLNode(), constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383 XMLSocket. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384 close (XMLSocket.close, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . 1387 connect (XMLSocket.connect, méthode) . . . . . . . . . . . . . . . . . . . . 1388 onClose (XMLSocket.onClose, gestionnaire) . . . . . . . . . . . . . . . .1390 onConnect (XMLSocket.onConnect, gestionnaire) . . . . . . . . . . .1390 onData (XMLSocket.onData, gestionnaire) . . . . . . . . . . . . . . . . . . 1391 onXML (XMLSocket.onXML, gestionnaire) . . . . . . . . . . . . . . . . . . 1392 send (XMLSocket.send, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . . 1393 XMLSocket, constructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394 30 Table des matières XMLUI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . accept (XMLUI.accept, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . . cancel (XMLUI.cancel, méthode). . . . . . . . . . . . . . . . . . . . . . . . . . . get (XMLUI.get, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . set (XMLUI.set, méthode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394 1395 1395 1396 1396 Chapitre 3 : ActionScript déconseillé . . . . . . . . . . . . . . . . . . . . .1397 Classe déconseillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions déconseillées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propriétés déconseillées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Opérateurs déconseillés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397 1397 1399 1399 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401 Table des matières 31 32 Table des matières CHAPITRE 1 1 Eléments du langage ActionScript Cette section fournit des informations sur la syntaxe, l'utilisation et des exemples de code concernant les fonctions et les propriétés globales (ces éléments n'appartenant pas à une classe ActionScript), ainsi que les directives de compilation ; pour les constantes, elle décrit les opérateurs, instructions et mots-clés utilisés dans ActionScript et définis par la spécification de langage ECMAScript (ECMA-262), version 4. Directives de compilation Cette section regroupe les directives à inclure dans votre fichier ActionScript pour demander au compilateur de prétraiter certaines instructions. Ne placez pas de point-virgule (;) à la fin de la ligne qui contient la directive. Résumé des directives de compilation Directive Description #endinitclip Indique la fin d'un bloc d'actions d'initialisation. #include Inclut le contenu du fichier spécifié, comme si les commandes du fichier faisaient partie du script d'appel. #initclip Indique le début d'un bloc d'actions d'initialisation. Directive #endinitclip #endinitclip Indique la fin d'un bloc d'actions d'initialisation. Ne placez pas de point-virgule (;) à la fin de la ligne qui contient la directive #endinitclip. Disponibilité : Flash Player 6.0 ; ActionScript 1.0 Exemple #initclip 33 ...initialization actions go here... #endinitclip Directive #include #include "[path]filename.as":String Inclut le contenu du fichier spécifié, comme si les commandes du fichier faisaient partie du script d'appel. La directive #include est appelée lors de la compilation. Cela signifie que si vous apportez des modifications à un fichier externe, vous devez enregistrer le fichier et recompiler tous les fichiers FLA qui l'utilisent. Si vous utilisez le bouton Vérifier la syntaxe pour un script contenant des instructions #include, la syntaxe des fichiers inclus est également vérifiée. Vous pouvez utiliser #include dans des fichiers FLA et dans des fichiers de script externes, mais pas dans les fichiers de classe ActionScript 2.0. Vous pouvez omettre le chemin, ou spécifier un chemin relatif ou absolu pour le fichier à inclure. Si vous ne spécifiez pas de chemin, le fichier AS doit figurer dans l'un des emplacements suivants : ■ Le même répertoire que le fichier FLA. Le même répertoire que le script contenant l'instruction #include ■ Le répertoire Include global, qui peut prendre l'une des formes suivantes : --Windows 2000 ou Windows XP : C:\Documents and Settings\utilisateur \Local Settings\ Application Data\Macromedia\Flash 8\langue\Configuration\Include --Macintosh OS X : Disque dur/Users/Library/Application Support/Macromedia/Flash 8/langue/ Configuration/Include ■ Le répertoire programme Flash 8\langue\First Run\Include. Si vous enregistrez un fichier à cet endroit, il est copié dans le répertoire Include global au prochain démarrage de Flash. Pour spécifier un chemin relatif pour le fichier AS, placez un point (.) pour représenter le répertoire actuel, deux points (..) pour représenter le répertoire parent et une barre oblique (/) pour représenter les sous-répertoires. Consultez les exemples suivants : Pour spécifier un chemin absolu pour le fichier AS, appliquez le format correspondant à votre plate-forme (Macintosh ou Windows). Consultez les exemples suivants : (Cette utilisation n'est pas recommandée car elle nécessite une structure de répertoires identique sur l'ordinateur servant à compiler le script.) Si vous placez des fichiers dans le répertoire First Run/Include ou dans le répertoire global Include, sauvegardez ces fichiers. En effet, si vous devez désinstaller et réinstaller Flash, ces répertoires risquent d'être supprimés ou remplacés. 34 Chapitre 1: Eléments du langage ActionScript Ne placez pas de point-virgule (;) à la fin de la ligne qui contient la directive #include. Disponibilité : Flash Player 4.0 ; ActionScript 1.0 Paramètres - filename.asLe nom de fichier et le chemin facultatif du script à ajouter au panneau Actions ou au script actuel. Nous recommandons d'utiliser l'extension .as. [path]filename.as:String Exemple Les exemples suivants indiquent différentes manières de spécifier un chemin pour un fichier à inclure dans votre script : // Note that #include statements do not end with a semicolon (;) // AS file is in same directory as FLA file or script // or is in the global Include directory or the First Run/Include directory #include "init_script.as" // AS file is in a subdirectory of one of the above directories // The subdirectory is named "FLA_includes" #include "FLA_includes/init_script.as" // AS file is in a subdirectory of the script file directory // The subdirectory is named "SCRIPT_includes" #include "SCRIPT_includes/init_script.as" // AS file is in a directory at the same level as one of the above directories // AS file is in a directory at the same level as the directory // that contains the script file // The directory is named "ALL_includes" #include "../ALL_includes/init_script.as" // AS file is specified by an absolute path in Windows // Note use of forward slashes, not backslashes #include "C:/Flash_scripts/init_script.as" // AS file is specified by an absolute path on Macintosh #include "Mac HD:Flash_scripts:init_script.as" Directive #initclip #initclip [order:Number] Directives de compilation 35 Indique le début d'un bloc d'actions d'initialisation. Lorsque plusieurs clips sont initialisés simultanément, vous pouvez utiliser le paramètre order pour spécifier l'initialisation devant se produire en premier. Les actions d'initialisation sont exécutées lorsqu'un symbole de clip est défini. Si le clip est un symbole exporté, les actions d'initialisation sont exécutées avant les actions de l'image 1 du fichier SWF. Sinon, elles sont exécutées immédiatement avant les actions portant sur l'image qui contient la première occurrence du symbole de clip correspondant. Les actions d'initialisation sont exécutées uniquement après la lecture d'un fichier SWF. Utilisez-les pour les initialisations uniques, telles que la définition de classe et l'enregistrement. Ne placez pas de point-virgule (;) à la fin de la ligne qui contient la directive #initclip. Disponibilité : Flash Player 6.0 ; ActionScript 1.0 Paramètres order:Number [facultatif ] - Un entier non négatif spécifiant l'ordre d'exécution des blocs de code #initclip. Ce paramètre est facultatif. Vous devez spécifier la valeur à l'aide d'un littéral entier (seules les valeurs décimales sont autorisées, et non pas les valeurs hexadécimales), et non à l'aide d'une variable. Si vous incluez plusieurs blocs #initclip dans un symbole de clip unique, le compilateur utilise alors la dernière valeur order spécifiée dans ce symbole de clip pour tous les blocs #initclip de ce symbole. Exemple Dans l'exemple suivant, le code ActionScript est placé sur l'image 1 au sein d'une occurrence de clip. Un fichier texte variables.txt est placé dans le même répertoire. #initclip trace("initializing app"); var variables:LoadVars = new LoadVars(); variables.load("variables.txt"); variables.onLoad = function(success:Boolean) { trace("variables loaded:"+success); if (success) { for (i in variables) { trace("variables."+i+" = "+variables[i]); } } }; 36 Chapitre 1: Eléments du langage ActionScript #endinitclip Constantes Une constante est une variable qui représente une propriété dont la valeur ne change jamais. Cette section décrit des constantes globales qui sont disponibles pour tous les scripts. Résumé des constantes Modificateurs Constante Description false Valeur booléenne unique qui représente l'opposé de true. Infinity Spécifie la valeur IEEE-754 représentant l'infini positif. -Infinity Spécifie la valeur IEEE-754 représentant l'infini négatif. NaN Variable prédéfinie incluant la valeur IEEE-754 pour NaN (n'est pas un nombre). newline Insère un caractère de retour chariot (\r) qui insère une ligne vierge dans le texte généré par votre code. null Valeur spéciale qui peut être affectée à des variables ou renvoyée par une fonction en l'absence de données. true Valeur booléenne unique qui représente l'opposé de false. undefined Une valeur spéciale, qui indique généralement qu'une variable n'a pas encore reçu de valeur. Constante false Valeur booléenne unique qui représente l'opposé de true. Lorsque le typage automatique de données convertit false en nombre, il renvoie 0. Lorsqu'il convertit false en chaîne, il renvoie "false". Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple Cet exemple indique comment le typage automatique de données convertit false en nombre et en chaîne : var bool1:Boolean = Boolean(false); Constantes 37 // converts it to the number 0 trace(1 + bool1); // outputs 1 // converts it to a string trace("String: " + bool1); // outputs String: false Constante Infinity Spécifie la valeur IEEE-754 représentant l'infini positif. La valeur de cette constante est identique à Number.POSITIVE_INFINITY. Disponibilité : Flash Player 5 ; ActionScript 1.0 Voir également POSITIVE_INFINITY (propriété Number.POSITIVE_INFINITY) Constante -Infinity Spécifie la valeur IEEE-754 représentant l'infini négatif. La valeur de cette constante est identique à Number.NEGATIVE_INFINITY. Disponibilité : Flash Player 5 ; ActionScript 1.0 Voir également NEGATIVE_INFINITY (propriété Number.NEGATIVE_INFINITY) Constante NaN Variable prédéfinie incluant la valeur IEEE-754 pour NaN (n'est pas un nombre). Pour déterminer si la valeur d'un nombre est NaN, utilisez isNaN(). Disponibilité : Flash Player 5 ; ActionScript 1.0 Voir également Fonction isNaN, NaN (propriété Number.NaN) Constante newline Insère un caractère de retour chariot (\r) qui insère une ligne vierge dans le texte généré par votre code. Utilisez newline pour ménager un espace pour les informations extraites par une fonction ou une instruction dans votre code. 38 Chapitre 1: Eléments du langage ActionScript Disponibilité : Flash Player 4 ; ActionScript 1.0 Exemple L'exemple suivant indique comment newline affiche la sortie à partir de l'instruction trace() sur plusieurs lignes. var myName:String = "Lisa", myAge:Number = 30; trace(myName+myAge); trace("-----"); trace(myName+newline+myAge); // output: Lisa30 ----Lisa 30 Voir également Fonction trace Constante null Valeur spéciale qui peut être affectée à des variables ou renvoyée par une fonction en l'absence de données. Vous pouvez utiliser null pour représenter les valeurs manquantes ou dont le type de données n'est pas défini. Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple L'exemple suivant vérifie les six premières valeurs d'un tableau indexé et renvoie un message si aucune valeur n'est définie (si la valeur == null) : var testArray:Array = new Array(); testArray[0] = "fee"; testArray[1] = "fi"; testArray[4] = "foo"; for (i = 0; i < 6; i++) { if (testArray[i] == null) { trace("testArray[" + i + "] == null"); } } Le code suivant est renvoyé : testArray[2] == null testArray[3] == null Constantes 39 testArray[5] == null Constante true Valeur booléenne unique qui représente l'opposé de false. Lorsque le typage automatique de données convertit true en nombre, il renvoie 1. Lorsqu'il convertit true en chaîne, il renvoie "true". Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple L'exemple suivant illustre l'utilisation de true dans une instruction if : var shouldExecute:Boolean; // ... // code that sets shouldExecute to either true or false goes here // shouldExecute is set to true for this example: shouldExecute = true; if (shouldExecute == true) { trace("your statements here"); } // // // // true is also implied, so the if statement could also be written: if (shouldExecute) { trace("your statements here"); } L'exemple suivant indique comment le typage automatique de données convertit true en nombre 1 : var myNum:Number; myNum = 1 + true; trace(myNum); // output: 2 Voir également Constante false, Boolean Constante undefined Une valeur spéciale, qui indique généralement qu'une variable n'a pas encore reçu de valeur. Une référence à une valeur non définie renvoie la valeur spéciale undefined. Le code ActionScript typeof(undefined) renvoie la chaîne "undefined". L'unique valeur du type undefined undefined est undefined. 40 Chapitre 1: Eléments du langage ActionScript Dans les fichiers publiés pour Flash Player 6 ou version précédente, la valeur de String(undefined) est " " (une chaîne vide). Dans les fichiers publiés pour Flash Player 7 ou version ultérieure, la valeur de String(undefined) est "undefined" (undefined est converti en chaîne). Dans les fichiers publiés pour Flash Player 6 ou version précédente, la valeur de Number(undefined) est 0. Dans les fichiers publiés pour Flash Player 7 ou version ultérieure, la valeur de Number(undefined) est NaN. La valeur undefined est similaire à la valeur spéciale null. Lorsque les propriétés null et undefined sont comparées avec l'opérateur d'égalité (==), elles sont considérées comme égales. Lorsque les propriétés null et undefined sont comparées avec l'opérateur d'égalité stricte (===), elles sont considérées comme différentes. Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple Dans l'exemple suivant, la variable x n'a pas été déclarée, sa valeur est donc undefined undefined. Dans la première section du code, l'opérateur d'égalité (==) compare la valeur de x à la valeur undefined ; le résultat approprié est ensuite envoyé au panneau de sortie. Dans la deuxième section du code, l'opérateur d'égalité (==) compare les valeurs null et undefined. // x has not been declared trace("The value of x is "+x); if (x == undefined) { trace("x is undefined"); } else { trace("x is not undefined"); } trace("typeof (x) is "+typeof (x)); if (null == undefined) { trace("null and undefined are equal"); } else { trace("null and undefined are not equal"); } Le résultat suivant s'affiche dans le panneau de sortie. The value of x is undefined x is undefined typeof (x) is undefined null and undefined are equal Constantes 41 Fonctions globales Cette section regroupe des fonctions intégrées qui sont disponibles dans tout fichier SWF ayant recours à ActionScript. Ces fonctions globales couvrent un vaste ensemble de tâches communes de programmation, telles que l'application des types de données (Boolean(), int(), etc.), la production d'informations de débogage (trace()) et la communication avec Flash Player ou le navigateur (fscommand()). Résumé des fonctions globales Modificateurs Signature Description Array([numElements:N Crée un nouveau tableau vide ou convertit les umber], éléments spécifiés en tableau. [elementN:Object]) asfunction(function: Un protocole spécial dédié aux URL des champs de String, parameter:String) texte HTML permettant à un lien HREF d'appeler une fonction ActionScript. Boolean(expression:O Convertit le paramètre expression en une valeur bject) booléenne et renvoie true ou false. call(frame:Object) Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser l'instruction function. Exécute le script dans l'image appelée sans positionner la tête de lecture sur celle-ci. chr(number:Number) Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode String.fromCharCode(). Convertit les numéros de code ASCII en caractères. clearInterval(interv Arrête l'appel setInterval(). alID:Number) duplicateMovieClip(t Crée une occurrence de clip pendant la lecture du arget:Object, fichier SWF. newname:String, depth:Number) escape(expression:St Convertit le paramètre en chaîne et applique le format ring) de code URL, où tous les caractères qui ne sont pas de type alphanumérique sont remplacés par des séquences hexadécimales %. eval(expression:Obje Accède aux variables, propriétés, objets ou clips en ct) 42 fonction de leur nom. Chapitre 1: Eléments du langage ActionScript Modificateurs Signature Description fscommand(command:St Permet au fichier SWF de communiquer avec Flash ring, parameters:String) Player ou le programme hébergeant Flash Player, tel qu'un navigateur Web. getProperty(my_mc:St Renvoie la valeur de la propriété spécifiée pour le clip ring, property) my_mc. getTimer() Renvoie le nombre de millisecondes qui se sont écoulées depuis le début de la lecture du fichier SWF. getURL(url:String, Charge un document en provenance d'une URL spécifique dans une fenêtre ou transmet des variables à une autre application à une URL donnée. [window:String], [method:String]) getVersion() Renvoie une chaîne contenant la version de Flash Player et des informations sur la plate-forme. gotoAndPlay([scene:S Place la tête de lecture sur l'image spécifiée dans une tring], frame:Object) séquence et commence la lecture à partir de cette image. gotoAndStop([scene:S Place la tête de lecture sur l'image spécifiée sur une tring], séquence et l'arrête à ce niveau. frame:Object) ifFrameLoaded([scene Déconseillée à partir de Flash Player 5. Cette fonction :String], frame:Object) int(value:Number) est déconseillée. Macromedia vous recommande d'utiliser la propriété MovieClip._framesloaded. Vérifie si le contenu d'une image spécifique est disponible localement. Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode Math.round(). Convertit un nombre décimal en valeur entière en tronquant la valeur décimale. isFinite(expression: Evalue l'expression et renvoie true s'il s'agit d'un Object) nombre fini ou false s'il s'agit de l'infini ou de l'infini négatif. isNaN(expression:Obj Evalue le paramètre et renvoie true si la valeur est NaN ect) (not a number - n'est pas un nombre). length(expression:St Déconseillée à partir de Flash Player 5. Cette fonction, ring, variable:Object) à l'instar de toutes les fonctions de chaîne, est déconseillée. Macromedia vous recommande d'utiliser les méthodes de la classe String et la propriété String.length pour effectuer les mêmes opérations. Renvoie la longueur de la chaîne ou variable spécifiée. Fonctions globales 43 Modificateurs Signature Description loadMovie(url:String Charge un fichier SWF ou JPEG dans Flash Player , target:Object, pendant la lecture du fichier SWF d'origine. [method:String]) loadMovieNum(url:Str Charge un fichier SWF ou JPEG dans l'un des niveaux ing, level:Number, de Flash Player pendant la lecture du fichier SWF. [method:String]) loadVariables(url:St Lit les données dans un fichier externe, tel qu'un fichier ring, target:Object, texte ou du texte généré par ColdFusion, un script CGI, [method:String]) des pages ASP (Active Server Pages), PHP ou un script Perl et définit les valeurs pour les variables dans un clip cible. loadVariablesNum(url Lit les données dans un fichier externe, tel qu'un fichier :String, level:Number, [method:String]) texte ou du texte généré par ColdFusion, un script CGI, des pages ASP (Active Server Pages), PHP ou un script Perl et définit les valeurs pour les variables dans un niveau de Flash Player. mbchr(number:Number) Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode String.fromCharCode(). Convertit un numéro de code ASCII en caractère multi-octets. mblength(string:Stri Déconseillée à partir de Flash Player 5. Il est ng) recommandé d'utiliser les méthodes et les propriétés de la classe String. Renvoie la longueur de la chaîne de caractères multioctets. mbord(character:Stri Déconseillée à partir de Flash Player 5. Il est ng) recommandé d'utiliser la méthode String.charCodeAt(). Convertit le caractère spécifié en nombre multi-octets. mbsubstring(value:St Déconseillée à partir de Flash Player 5. Il est ring, index:Number, count:Number) recommandé d'utiliser la méthode String.substr(). Extrait une nouvelle chaîne de caractères multi-octets d'une chaîne de caractères multi-octets. MMExecute(command:St Permet d'émettre des commandes de l'API Flash 44 ring) JavaScript (JSAPI) à partir d'ActionScript. nextFrame() Place la tête de lecture sur l'image suivante. nextScene() Place la tête de lecture sur l'image 1 de la séquence suivante. Chapitre 1: Eléments du langage ActionScript Modificateurs Signature Description Number(expression:Ob Convertit le paramètre expression en valeur ject) numérique. Object([value:Object Crée un objet vide ou convertit le nombre, la chaîne ou ]) la valeur booléenne spécifié en objet. on(mouseEvent:Object Spécifie l'événement de type souris ou pression de ) touche devant déclencher une action. onClipEvent(movieEve Déclenche les actions définies pour une instance nt:Object) spécifique de clip. ord(character:String Déconseillée à partir de Flash Player 5. Il est ) recommandé d'utiliser les méthodes et les propriétés de la classe String. Convertit les caractères en numéros de code ASCII. parseFloat(string:St Convertit une chaîne en nombre à virgule flottante. ring) parseInt(expression: Convertit une chaîne en entier. String, [radix:Number]) play() Fait avancer la tête de lecture au sein du scénario. prevFrame() Place la tête de lecture sur l'image précédente. prevScene() Place la tête de lecture sur l'image 1 de la séquence précédente. print(target:Object, Imprime le clip target en fonction des limites boundingBox:String) spécifiées par le paramètre (bmovie, bmax ou bframe). printAsBitmap(target Imprime le clip target en tant que bitmap en fonction :Object, boundingBox:String) des limites spécifiées par le paramètre (bmovie, bmax ou bframe). printAsBitmapNum(lev Imprime un niveau dans Flash Player en tant que el:Number, boundingBox:String) bitmap en fonction des limites spécifiées par le paramètre (bmovie, bmax ou bframe). printNum(level:Numbe Imprime le niveau dans Flash Player en fonction des r, boundingBox:String) limites spécifiées par le paramètre boundingBox (bmovie, bmax, bframe). random(value:Number) Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode Math.random(). Renvoie un entier aléatoire compris entre 0 et un inférieur au nombre entier spécifié dans le paramètre <code><em>value</em></code>&#160;. Fonctions globales 45 Modificateurs Signature Description removeMovieClip(targ Supprime le clip spécifié. et:Object) setInterval(function Appelle une fonction ou une méthode d'un objet à des Reference:Function, interval:Number, intervalles périodiques pendant la lecture d'un fichier SWF. [param:Object], objectReference:Obje ct, methodName:String) setProperty(target:O Modifie la valeur des propriétés d'un clip pendant la bject, lecture de ce dernier. property:Object, expression:Object) showRedrawRegions(en Permet au débogueur de délimiter les zones able:Boolean, redessinées de l'écran. [color:Number]) startDrag(target:Obj Rend le clip target déplaçable pendant la lecture de ect, [lock:Boolean], l'animation. [left,top,right,bott om:Number]) stop() Arrête le fichier SWF en cours de lecture. stopAllSounds() Arrête tous les sons en cours de diffusion à partir d'un fichier SWF, sans arrêter la tête de lecture. stopDrag() Arrête l'opération de déplacement en cours. String(expression:Ob Renvoie une chaîne représentant le paramètre ject) spécifié. substring(string:Str Déconseillée à partir de Flash Player 5. Il est ing, index:Number, count:Number) recommandé d'utiliser la méthode String.substr(). Extrait une partie d'une chaîne. targetPath(targetObj Renvoie une chaîne contenant le chemin cible de ect:Object) movieClipObject. tellTarget(target:St Déconseillée à partir de Flash Player 5. Macromedia ring, statement(s)) 46 vous recommande d'utiliser une notation de type point (.) et l'instruction with. Applique les instructions spécifiées dans le paramètre statements au scénario spécifié dans le paramètre target. Chapitre 1: Eléments du langage ActionScript Modificateurs Signature toggleHighQuality() Description Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode _quality. Active et désactive l'anticrénelage dans Flash Player. trace(expression:Obj Evalue l'expression et renvoie le résultat. ect) unescape(string:Stri Evalue le paramètre x en tant que chaîne, décode la ng) chaîne qui est au format codé en URL (en convertissant toutes les séquences hexadécimales en caractères ASCII) et renvoie la chaîne. unloadMovie(target:O Supprime le clip qui a été chargé par l'intermédiaire de bject) la fonction loadMovie() de Flash Player. unloadMovieNum(level Supprime un fichier SWF ou une image qui a été :Number) chargé par l'intermédiaire de la fonction loadMovieNum() de Flash Player. updateAfterEvent() Met à jour l'affichage lorsque vous l'appelez à partir d'un gestionnaire ou via setInterval(). Fonction Array Array() : Array Array(numElements:Number) : Array Array(element0:Object, [element1, element2, ...elementN]) : Array Crée un nouveau tableau de longueur 0 ou supérieure, ou un tableau contenant la liste des éléments spécifiés, probablement de types de données différents. Utilisez la méthode Array() pour créer l'un des tableaux suivants : ■ Un tableau vide ■ Un tableau d'une longueur spécifique mais dont les éléments ont des valeurs non définies ■ Un tableau dont les éléments ont des valeurs spécifiques L'utilisation de cette fonction revient à créer un tableau avec le constructeur Array (voir « Constructeur pour la classe Array »). Vous pouvez transmettre un nombre (numElements) ou la liste des éléments contenant un ou plusieurs types différents (element0, element1, ... elementN). Les paramètres qui peuvent accepter plusieurs types de données sont répertoriés dans la signature sous le type Object. Disponibilité : Flash Player 6 ; ActionScript 1.0 Fonctions globales 47 Paramètres numElements:Number [facultatif ] - Un entier positif spécifiant le nombre d'éléments contenus dans le tableau. Vous pouvez spécifier numElements ou la liste des éléments, mais pas les deux. [facultatif ] - Un ou plusieurs paramètres, element0, element1, ... , elementN, dont les valeurs peuvent être de n'importe quel type. Les paramètres qui peuvent accepter plusieurs types de données sont répertoriés sous le type Object. Vous pouvez spécifier numElements ou la liste des éléments, mais pas les deux. elementN:Object Renvoie Array - Un tableau. Exemple var myArray:Array = Array(); myArray.push(12); trace(myArray); //traces 12 myArray[4] = 7; trace(myArray); //traces 12,undefined,undefined,undefined,7 Utilisation 2 : L'exemple suivant crée un tableau de longueur 4 qui n'inclut aucun élément défini : var myArray:Array = Array(4); trace(myArray.length); // traces 4 trace(myArray); // traces undefined,undefined,undefined,undefined Utilisation 3 : L'exemple suivant crée un tableau incluant trois éléments définis : var myArray:Array = Array("firstElement", "secondElement", "thirdElement"); trace (myArray); // traces firstElement,secondElement,thirdElement Unlike the Array class constructor, the Array() function does not use the keyword new . Voir également Array Protocole asfunction asfunction:function:Function, parameter:String 48 Chapitre 1: Eléments du langage ActionScript Un protocole spécial dédié aux URL des champs de texte HTML permettant à un lien HREF d'appeler une fonction ActionScript. Dans les champs de texte HTML, vous pouvez créer des liens à l'aide de la balise A HTML. L'attribut HREF de la balise A contient une URL qui utilise un protocole standard tel que HTTP, HTTPS ou FTP. Le protocole asfunction est un protocole supplémentaire spécifique à Flash, ce qui engendre l'appel d'une fonction ActionScript à partir du lien. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres function:String - Un identificateur pour une fonction. parameter:String - Une chaîne transmise à la fonction nommée dans le paramètre function. Exemple Dans l'exemple suivant, la fonction playMP3() est définie. L'objet TextField list_txt est créé et défini de manière à pouvoir restituer le texte HTML. Le texte Track 1 et Track 2 constitue des liens dans le champ de texte. La fonction playMP3() est appelée lorsque l'utilisateur clique sur le lien et lit le fichier MP3 transmis en tant que paramètre de l'appel asfunction. var myMP3:Sound = new Sound(); function playMP3(mp3:String) { myMP3.loadSound(mp3, true); myMP3.onLoad = function(success) { if (!success) { // code to handle errors here } }; } this.createTextField("list_txt", this.getNextHighestDepth(), 0, 0, 200, 100); list_txt.autoSize = true; list_txt.html = true; list_txt.multiline = true; list_txt.htmlText = "<a href=\"asfunction:playMP3, track1.mp3\">Track 1</ a><br>"; list_txt.htmlText += "<a href=\"asfunction:playMP3, track2.mp3\">Track 2</ a><br>"; Lorsque vous cliquez sur un lien, le fichier son MP3 est lu dans Flash Player. Voir également htmlText (propriété TextField.htmlText) Fonctions globales 49 Fonction Boolean Boolean(expression:Object) : Boolean Convertit le paramètre expression en valeur booléenne et renvoie une valeur comme indiqué dans la liste suivante : ■ Si expression est une valeur booléenne, la valeur renvoyée est expression. ■ Si expression est un nombre, la valeur renvoyée est true si le nombre diffère de 0 ; sinon, la valeur renvoyée est false. Si expression est une chaîne, renvoie l'une des valeurs suivantes : ■ Dans les fichiers publiés pour Flash Player 6 ou version antérieure, la chaîne est tout d'abord convertie en nombre. Sa valeur est true pour les nombres différents de zéro, false dans les autres cas. ■ Dans les fichiers publiés pour Flash Player 7 ou version ultérieure, le résultat est true si la longueur de la chaîne est supérieure à zéro et false en cas de chaîne vide. Si expression est une chaîne, le résultat est true si la longueur de cette chaîne est supérieure à zéro, false en cas de chaîne vide. ■ Si l'expression est undefined ou NaN (n'est pas un nombre), la valeur renvoyée est false. ■ Si expression est un clip ou un objet, la valeur renvoyée est true. Contrairement au constructeur de classe Boolean, la fonction Boolean() n'utilise pas le motclé new. De plus, le constructeur de classe Boolean initialise un objet booléen sur false si aucun paramètre n'est spécifié, bien que la fonction Boolean() renvoie undefined en l'absence de paramètres. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres expression:Object - Une expression à convertir en valeur booléenne. Renvoie Boolean - Une valeur booléenne. Exemple trace(Boolean(-1)); // output: true trace(Boolean(0)); // output: false trace(Boolean(1)); // output: true trace(Boolean(true)); // output: true 50 Chapitre 1: Eléments du langage ActionScript trace(Boolean(false)); // output: false trace(Boolean("true")); // output: true trace(Boolean("false")); // output: true trace(Boolean("Craiggers")); // output: true trace(Boolean("")); // output: false Si les fichiers sont publiés pour Flash Player 6 ou version antérieure, les résultats diffèrent pour trois des exemples précédents : trace(Boolean("true")); // output: false trace(Boolean("false")); // output: false trace(Boolean("Craiggers")); // output: false Cet exemple illustre une différence significative entre l'utilisation de la fonction Boolean() et celle de la classe Boolean. La fonction Boolean() permet de créer une valeur Boolean, tandis que la classe Boolean crée un objet Boolean. Les valeurs booléennes sont comparées en fonction de leur valeur, tandis que les objets booléens sont comparés par référence. // Variables representing Boolean values are compared by value var a:Boolean = Boolean("a"); // a is true var b:Boolean = Boolean(1); // b is true trace(a==b); // true // Variables representing Boolean objects are compared by reference var a:Boolean = new Boolean("a"); // a is true var b:Boolean = new Boolean(1); // b is true trace(a == b); // false Voir également Boolean Fonction call call(frame) Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser l'instruction function. Exécute le script dans l'image appelée sans positionner la tête de lecture sur celle-ci. Les variables locales n'existent pas après l'exécution du script. ■ Si les variables ne sont pas déclarées dans un bloc ({}) mais que la liste d'action a été exécutée à l'aide d'une action call(), les variables sont locales et expirent à la fin de la liste actuelle. Fonctions globales 51 ■ Si les variables ne sont pas déclarées dans un bloc et que la liste d'action actuelle n'a pas été exécutée à l'aide de l'action call(), les variables sont interprétées en tant que variables de scénario. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres frame:Object - L'étiquette ou le numéro d'une image dans le scénario. Voir également Instruction function, call (méthode Function.call) Fonction chr chr(number:Number) : String Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode String.fromCharCode(). Convertit les numéros de code ASCII en caractères. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres number:Number - Un numéro de code ASCII. Renvoie String - La valeur de caractère du code ASCII spécifié. Exemple L'exemple suivant convertit le nombre 65 en lettre A et l'affecte à la variable myVar : myVar = chr(65); Voir également fromCharCode (méthode String.fromCharCode) Fonction clearInterval clearInterval(intervalID:Number) : Void Arrête l'appel setInterval(). Disponibilité : Flash Player 6 ; ActionScript 1.0 52 Chapitre 1: Eléments du langage ActionScript Paramètres intervalID:Number - Un identificateur numérique (entier) renvoyé par un appel à setInterval(). Exemple L'exemple suivant définit, puis supprime un appel interval : function callback() { trace("interval called: "+getTimer()+" ms."); } var intervalID:Number = setInterval(callback, 1000); Vous devez supprimer l'intervalle lorsque vous n'avez plus besoin d'utiliser la fonction. Créez un bouton intitulé clearInt_btn et utilisez le code ActionScript suivant pour supprimer setInterval() : clearInt_btn.onRelease = function(){ clearInterval( intervalID ); trace("cleared interval"); }; Voir également Fonction setInterval Fonction duplicateMovieClip duplicateMovieClip(target:String, newname:String, depth:Number) : Void duplicateMovieClip(target:MovieClip, newname:String, depth:Number) : Void Crée une occurrence de clip pendant la lecture du fichier SWF. La tête de lecture des clips dupliqués commence toujours à l'image 1, quelle que soit la position de la tête de lecture dans le clip d'origine. Les variables du clip d'origine ne sont pas copiées dans le clip dupliqué. Utilisez la fonction ou la méthode removeMovieClip() pour supprimer une occurrence de clip créée avec duplicateMovieClip(). Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - Le chemin cible du clip à dupliquer. Ce paramètre peut être de type String (tel que « my_mc ») ou une référence directe à l'occurrence de clip (par exemple my_mc). Les paramètres qui peuvent accepter plusieurs types de données sont répertoriés sous le type Object. target:Object newname:String - Un identificateur unique pour le clip dupliqué. Fonctions globales 53 - Un niveau de profondeur unique pour le clip dupliqué. Le niveau de profondeur correspond à l'ordre d'empilement des clips dupliqués. Cet ordre d'empilement correspond à l'ordre d'empilement des calques dans le scénario ; les clips dont le niveau de profondeur est inférieur sont masqués par les clips de niveau supérieur. Vous devez associer un niveau de profondeur à chaque clip pour ne pas remplacer les fichiers SWF figurant à des profondeurs non utilisées. depth:Number Exemple Dans l'exemple suivant, une nouvelle occurrence de clip intitulée img_mc. est créée. Une image est chargée dans le clip, puis le clip img_mc est dupliqué. Le clip dupliqué est intitulé newImg_mc ; ce nouveau clip est déplacé sur la scène afin de ne pas recouvrir le clip d'origine et la même image est chargée dans le deuxième clip. this.createEmptyMovieClip("img_mc", this.getNextHighestDepth()); img_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); duplicateMovieClip(img_mc, "newImg_mc", this.getNextHighestDepth()); newImg_mc._x = 200; newImg_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); Pour supprimer le clip dupliqué, vous pouvez ajouter ce code pour un bouton intitulé myButton_btn. this.myButton_btn.onRelease = function(){ removeMovieClip(newImg_mc); }; Voir également Fonction removeMovieClip, duplicateMovieClip (méthode MovieClip.duplicateMovieClip), removeMovieClip (méthode MovieClip.removeMovieClip) Fonction escape escape(expression:String) : String Convertit le paramètre en chaîne et applique le format de code URL, où tous les caractères qui ne sont pas de type alphanumérique sont remplacés par des séquences hexadécimales %. Lorsque cette fonction est utilisée dans une chaîne codée au format URL, le symbole pourcent (%) introduit les caractères d'échappement et ne doit pas être confondu avec l'opérateur modulo (%). Disponibilité : Flash Player 5 ; ActionScript 1.0 54 Chapitre 1: Eléments du langage ActionScript Paramètres expression:String - L'expression est convertie en chaîne et est codée au format URL. Renvoie String - Chaîne codée au format URL. Exemple Le code suivant donne le résultat someuser%40somedomain%2Ecom : var email:String = "someuser@somedomain.com"; trace(escape(email)); Dans cet exemple, le symbole (@) a été remplacé par %40 et le point (.) par %2E. Cela est particulièrement utile lorsque vous essayez de transmettre des informations à un serveur distant et si les données contiennent des caractères spéciaux (par exemple, & ou ?), comme indiqué dans le code suivant : var redirectUrl:String = "http:// www.somedomain.com?loggedin=true&username=Gus"; getURL("http://www.myothersite.com?returnurl="+ escape(redirectUrl)); Voir également Fonction unescape Fonction eval eval(expression:Object) : Object eval(expression:String) : Object Accède aux variables, propriétés, objets ou clips en fonction de leur nom. Lorsque l'expression est une variable ou une propriété, la fonction renvoie la valeur de cette variable ou de cette propriété. Si l'expression est un objet ou un clip, la fonction renvoie une référence de l'objet ou du clip. Si l'élément nommé dans l'expression est introuvable, la fonction renvoie undefined. Sous Flash 4, eval() permettait de simuler des tableaux ; à partir de Flash 5, vous devez utiliser la classe Array pour ce faire. Sous Flash 4, vous pouvez également utiliser eval() pour définir de façon dynamique la valeur d'une variable ou d'un nom d'occurrence et l'extraire. Cette opération est également possible avec l'opérateur de tableau ([]). A partir de Flash 5, vous ne pouvez plus recourir à eval() pour définir de façon dynamique et extraire la valeur d'une variable ou d'un nom d'occurrence, car vous ne pouvez pas utiliser eval() dans la partie gauche d'une équation. Par exemple, remplacez le code Fonctions globales 55 eval ("var" + i) = "first"; par : this["var"+i] = "first" ou par : set ("var" + i, "first"); Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres - Le nom d'une variable, d'une propriété, d'un objet ou d'un clip à extraire. Ce paramètre peut être de type String ou une référence directe à l'occurrence d'objet (les guillemets (" ") sont facultatifs.) expression:Object Renvoie Object - Une valeur, une référence à un objet ou un clip, ou undefined. Exemple L'exemple suivant utilise eval() pour définir les propriétés des clips nommés de façon dynamique. Ce code ActionScript définit la propriété _rotation de trois clips intitulés square1_mc, square2_mc et square3_mc. for (var i = 1; i <= 3; i++) { setProperty(eval("square"+i+"_mc"), _rotation, 5); } Vous pouvez également utiliser le code ActionScript suivant : for (var i = 1; i <= 3; i++) { this["square"+i+"_mc"]._rotation = -5; } Voir également Array, Instruction set variable Fonction fscommand fscommand(command:String, parameters:String) : Void Permet au fichier SWF de communiquer avec Flash Player ou le programme hébergeant Flash Player, tel qu'un navigateur Web. La fonction fscommand() permet également de transmettre des messages à Macromedia Director ou à Visual Basic (VB), Visual C++ et autres programmes ayant recours aux contrôles ActiveX. 56 Chapitre 1: Eléments du langage ActionScript La fonction fscommand() permet à un fichier SWF de communiquer avec un script dans une page Web. Cependant, l'accès au script est contrôlé par le paramètre allowScriptAccess de la page Web. (Vous pouvez définir cet attribut dans le code HTML intégré au fichier SWF, par exemple dans la balise PARAM pour Internet Explorer ou dans la balise EMBED pour Netscape. Lorsque l'attribut allowScriptAccess est défini sur "never", un fichier SWF ne peut pas accéder aux scripts de la page Web. A partir de Flash Player 7, lorsque l'attribut allowScriptAccess est défini sur "always", un fichier SWF peut toujours accéder aux scripts de la page Web. Lorsque l'attribut allowScriptAccess est défini sur "sameDomain", les scripts sont uniquement autorisés à partir des fichiers SWF qui se trouvent dans le même domaine que la page Web ; les scripts sont toujours autorisés sur les versions précédentes de Flash Player. Si l'attribut allowScriptAccess n'est pas spécifié dans une page HTML, il est défini par défaut sur "sameDomain" pour les fichiers SWF, version 8 et ultérieure ; et sur "always" pour les fichiers SWF, version 7 et antérieure. Utilisation 1 : Pour utiliser fscommand() afin d'envoyer un message à Flash Player, vous devez utiliser les commandes et les paramètres prédéfinis. Le tableau suivant indique les valeurs que vous pouvez spécifier pour les paramètres fscommand() command et parameters de la fonction. Ces valeurs contrôlent les fichiers SWF lus par Flash Player, y compris les projections. (Une projection est un fichier SWF enregistré sous un format permettant de l'exécuter en tant qu'application autonome, pouvant être lue sans Flash Player.) Commande Paramètre Rôle quit Aucun Ferme la projection. fullscreen true ou false Spécifiez true pour exécuter Flash Player en mode plein écran. Spécifiez false pour rétablir le mode d'affichage normal du menu. allowscale true ou false Si vous spécifiez false, le lecteur affiche toujours la taille d'origine du fichier SWF, sans le redimensionner. Si vous spécifiez true, le fichier SWF adopte l'échelle 100 % du lecteur. Fonctions globales 57 Commande Paramètre Rôle showmenu true ou false Spécifiez true pour activer le jeu complet d'éléments de menu contextuel. Spécifiez false pour masquer tous les éléments de menu contextuel, à l'exception de A propos de Flash Player et Paramètres. exec Chemin de l'application Exécute une application depuis la projection. trapallkeys true ou false Spécifiez true pour envoyer tous les événements de touche, y compris les touches de raccourci, au gestionnaire onClipEvent(keyDown/ keyUp) de Flash Player. Disponibilité : ■ Les commandes décrites dans le tableau ne sont pas disponibles pour les lecteurs Web. ■ Toutes les commandes sont disponibles dans les applications autonomes, telles que les projections. ■ Seuls allowscale et exec sont disponibles sur les lecteurs de tests d'animation. La commande exec ne peut contenir que les caractères compris entre A et Z, a et z, 0 et 9, les caractères point (.) et souligné (_). La commande exec ne s'exécute que dans le sousrépertoire fscommand. En d'autres termes, si vous utilisez la commande exec pour appeler une application, cette application doit résider dans un sous-répertoire appelé fscommand. La commande exec ne fonctionne qu'à partir d'un fichier de projection Flash. Utilisation 2 : Pour utiliser fscommand() pour envoyer un message à un langage de programmation tel que JavaScript dans un navigateur Web, vous pouvez transmettre deux arguments quelconques avec les paramètres command et parameters. Ces paramètres peuvent être des chaînes ou des expressions. Ils sont utilisés dans une fonction JavaScript qui gère ou traite la fonction fscommand(). 58 Chapitre 1: Eléments du langage ActionScript Dans un navigateur Web, la fonction fscommand() appelle la fonction JavaScript moviename_DoFScommand, résidant dans la page Web qui contient le fichier SWF. Pour moviename, attribuez le nom de l'objet Flash utilisé pour l'attribut NAME de la balise EMBED ou la propriété ID de la balise OBJECT. Si vous attribuez le nom myMovie au fichier SWF, la fonction JavaScript myMovie_DoFScommand est appelée. Dans la page Web qui contient le fichier SWF, définissez l'attribut allowScriptAccess de manière à autoriser, ou non, le fichier SWF à accéder à la page Web. (Vous pouvez définir cet attribut dans le code HTML intégré au fichier SWF, par exemple dans la balise PARAM pour Internet Explorer ou dans la balise EMBED pour Netscape.) Lorsque l'attribut allowScriptAccess est défini sur "never", les scripts externes échouent systématiquement. Lorsque l'attribut allowScriptAccess est défini sur "always", les scripts externes sont acceptés systématiquement. Lorsqu'il est défini sur "sameDomain", les scripts sont uniquement autorisés à partir des fichiers SWF qui se trouvent dans le même domaine que la page Web. Si l'attribut allowScriptAccess n'est pas spécifié dans une page Web, il est défini par défaut sur "sameDomain" pour Flash Player 8, et sur "always" pour les versions précédentes de Flash Player. Lorsque vous utilisez cette fonction, référez-vous au modèle de sécurité de Flash Player. Pour Flash Player 8, la fonction fscommand() n'est pas autorisée si le fichier SWF appelant se trouve dans le système de fichiers local ou dans le Sandbox de réseau local et si la page HTML contenant ce fichier se trouve dans un Sandbox non approuvé. Pour plus d'informations, consultez le : ■ Chapitre 17, « Fonctionnement de la sécurité » du guide Formation à ActionScript 2.0 dans Flash ■ Livre blanc concernant la sécurité de Flash Player 8 à l'adresse http:// www.macromedia.com/go/fp8_security ■ Livre blanc concernant les API liées à la sécurité de Flash Player 8 à l'adresse http:// www.macromedia.com/go/fp8_security_apis Utilisation 3 : La fonction fscommand() peut envoyer des messages à Macromedia Director. Ces messages sont interprétés par Lingo (le langage de script de Director) comme des chaînes, des événements ou un code Lingo exécutable. Si le message est une chaîne ou un événement, vous devez écrire le code Lingo devant recevoir le message de la fonction fscommand() et exécuter une action dans Director. Pour plus d'informations, consultez le centre d'assistance de Director à l'adresse www.macromedia.com/support/director. Fonctions globales 59 Utilisation 4 : Dans VisualBasic, Visual C++ et dans d'autres programmes ayant recours aux contrôles ActiveX, la fonction fscommand() envoie un événement VB avec deux chaînes qui peut être traité dans le langage de programmation de l'environnement. Pour plus d'informations, utilisez les mots-clés « méthode Flash » pour effectuer une recherche dans le centre de support de Flash à l'adresse www.macromedia.com/support/flash. Remarque : Si vous procédez à la publication de Flash Player 8 ou version ultérieure, la classe ExternalInterface offre de meilleures fonctionnalités de communication entre JavaScript et ActionScript (Utilisation 2), et entre ActionScript et VisualBasic, Visual C++ ou d'autres programmes pouvant héberger les contrôles ActiveX (Utilisation 4). Vous devriez continuer à utiliser la fonction fscommand() pour envoyer des messages à Flash Player (Utilisation 1) et à Macromedia Director (Utilisation 3). Disponibilité : Flash Player 3 ; ActionScript 1.0 Paramètres command:String - Une chaîne transmise à l'application hôte ou une commande passée à Flash Player. parameters:String - Une chaîne transmise à l'application hôte ou une valeur passée à Flash Player. Exemple Dans l'exemple suivant, la fonction fscommand() définit Flash Player pour qu'il affiche le fichier SWF en taille plein écran lorsque le bouton fullscreen_btn ou unfullscreen_btn est relâché : this.fullscreen_btn.onRelease = function() { fscommand("fullscreen", true); }; this.unfullscreen_btn.onRelease = function() { fscommand("fullscreen", false); }; L'exemple suivant applique la fonction fscommand() à un bouton dans Flash afin d'ouvrir une boîte de message JavaScript dans une page HTML. Le message est envoyé à JavaScript en tant que paramètre fscommand. 60 Chapitre 1: Eléments du langage ActionScript Vous devez ajouter une fonction à la page Web qui contient le fichier SWF. Cette fonction, myDocument _DoFSCommand(), attend un appel fscommand(). Lorsque la fonction fscommand() est déclenchée dans Flash (par exemple, lorsqu'un utilisateur clique sur le bouton), les chaînes command et parameter sont transmises à la fonction myDocument _DoFSCommand(). Vous pouvez utiliser les chaînes transmises dans votre code JavaScript ou VBScript à votre guise. Dans cet exemple, la fonction contient une instruction conditionnelle if qui vérifie si la chaîne de commande est "messagebox". Si tel est le cas, un message d'alerte JavaScript affiche le contenu de la chaîne de la fonction fscommand() parameters. function myDocument_DoFSCommand(command, args) { if (command == "messagebox") { alert(args); } } Dans le document Flash, ajoutez la fonction fscommand() à un bouton : fscommand("messagebox", "This is a message box called from within Flash.") Vous pouvez utiliser des expressions pour les paramètres de la fonction fscommand(), comme indiqué dans l'exemple suivant : fscommand("messagebox", "Hello, " + name + ", welcome to our website!") Pour tester le fichier SWF, pointez sur Fichier > Aperçu avant publication > HTML. Si vous publiez votre fichier SWF en utilisant le modèle Flash avec FSCommand (accessible depuis la boîte de dialogue Paramètres de publication après avoir sélectionné la balise HTML), Flash insère la fonction myDocument_DoFSCommand() automatiquement. Les attributs NAME et ID du fichier SWF constitueront le nom du fichier. Par exemple, pour le fichier myDocument.fla, les attributs seront définis sur myDocument. Voir également ExternalInterface (flash.external.ExternalInterface) Fonction getProperty getProperty(my_mc:Object, property:Object) : Object Renvoie la valeur de la propriété spécifiée pour le clip my_mc. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres my_mc:String property - Le nom d'occurrence d'un clip pour lequel la propriété est extraite. - Une propriété d'un clip. Fonctions globales 61 Renvoie Object - La valeur de la propriété spécifiée. Exemple L'exemple suivant crée un nouveau clip someClip_mc et affiche la valeur alpha (_alpha) du clip someClip_mc dans le panneau de sortie : this.createEmptyMovieClip("someClip_mc", 999); trace("The alpha of "+getProperty(someClip_mc, _name)+" is: "+getProperty(someClip_mc, _alpha)); Fonction getTimer getTimer() : Number Renvoie le nombre de millisecondes qui se sont écoulées depuis le début de la lecture du fichier SWF. Disponibilité : Flash Player 4 ; ActionScript 1.0 Renvoie - Le nombre de millisecondes qui se sont écoulées depuis le début de la lecture du fichier SWF. Number Exemple Dans l'exemple suivant, les fonctions getTimer() et setInterval() sont utilisées pour créer un minuteur simple : this.createTextField("timer_txt", this.getNextHighestDepth(), 0, 0, 100, 22); function updateTimer():Void { timer_txt.text = getTimer(); } var intervalID:Number = setInterval(updateTimer, 100); Fonction getURL getURL(url:String, [window:String, [method:String]]) : Void Charge un document en provenance d'une URL spécifique dans une fenêtre ou transmet des variables à une autre application à une URL donnée. Pour tester cette fonction, assurez-vous que le fichier à charger existe à l'emplacement prévu. Pour utiliser une URL absolue (par exemple, http://www.myserver.com), vous devez disposer d'une connexion réseau. 62 Chapitre 1: Eléments du langage ActionScript Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres url:String - L'URL permettant d'obtenir le document. [facultatif ] - Spécifie la fenêtre ou le cadre HTML dans lequel le document doit se charger. Vous pouvez entrer le nom d'une fenêtre spécifique ou le sélectionner à partir des noms cibles réservés suivants : window:String spécifie le cadre actif de la fenêtre en cours d'utilisation. ■ _self ■ _blank ■ _parent ■ _top crée une fenêtre. appelle le parent du cadre actif. sélectionne le cadre de plus haut niveau de la fenêtre active. method:String [facultatif ] - Une méthode GET ou POST permettant d'envoyer des variables. En l'absence de variables, omettez ce paramètre. La méthode GET ajoute les variables à la fin de l'URL et est utilisée lorsque les variables sont peu nombreuses. La méthode POST place les variables dans un en-tête HTTP distinct et s'applique aux variables longues de type chaîne. Exemple Cet exemple charge une image dans un clip. Lorsque l'utilisateur clique sur l'image, une nouvelle URL est chargée dans une nouvelle fenêtre de navigateur. var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc:MovieClip) { target_mc.onRelease = function() { getURL("http://www.macromedia.com/software/flash/flashpro/", "_blank"); }; }; var logo:MovieClipLoader = new MovieClipLoader(); logo.addListener(listenerObject); logo.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("macromedia_mc", this.getNextHighestDepth())); Dans l'exemple suivant, la fonction getURL() est utilisée pour envoyer un message électronique : myBtn_btn.onRelease = function(){ getURL("mailto:you@somedomain.com"); }; Dans le code ActionScript suivant, JavaScript est utilisé pour ouvrir une fenêtre d'alerte lorsque le fichier SWF est intégré à une fenêtre de navigateur (sachez que lorsque vous appelez JavaScript à l'aide de getURL(), le paramètre url est limité à 508 caractères) : myBtn_btn.onRelease = function(){ getURL("javascript:alert('you clicked me')"); }; Fonctions globales 63 Vous pouvez également utiliser la méthode GET ou POST pour envoyer des variables. L'exemple suivant utilise la méthode GET pour ajouter des variables à une URL : var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; myBtn_btn.onRelease = function() { getURL("http://www.macromedia.com", "_blank", "GET"); }; Le code ActionScript suivant utilise la méthode POST pour placer les variables dans l'en-tête HTTP. Assurez-vous de tester vos documents dans une fenêtre de navigateur ; sinon, vos variables sont envoyées à l'aide de la méthode GET : var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; getURL("http://www.macromedia.com", "_blank", "POST"); Voir également Fonction loadVariables, send (XML.send, méthode), sendAndLoad (XML.sendAndLoad, méthode) Fonction getVersion getVersion() : String Renvoie une chaîne contenant la version de Flash Player et des informations sur la plateforme. La fonction getVersion ne renvoie des informations qu'à partir de la version 5 de Flash Player. Disponibilité : Flash Player 5 ; ActionScript 1.0 Renvoie String - Une chaîne contenant la version de Flash Player et des informations sur la plate- forme. Exemple Les exemples suivants identifient le numéro de version du lecteur Flash Player sur lequel est lu le fichier SWF : var flashVersion:String = getVersion(); trace(flashVersion); // output: WIN 8,0,1,0 trace($version); // output: WIN 8,0,1,0 trace(System.capabilities.version); // output: WIN 8,0,1,0 64 Chapitre 1: Eléments du langage ActionScript La chaîne suivante est renvoyée par la fonction getVersion : WIN 8,0,1,0 Cette chaîne renvoyée indique que la plate-forme utilisée est Microsoft Windows, et que le numéro de version de Flash Player est la version majeure 8, version mineure 1 (8.1). Voir également os (propriété capabilities.os), version (propriété capabilities.version) Fonction gotoAndPlay gotoAndPlay([scene:String], frame:Object) : Void Place la tête de lecture sur l'image spécifiée dans une séquence et commence la lecture à partir de cette image. Si aucune séquence n'est spécifiée, la tête de lecture passe à l'image spécifiée de la séquence en cours. Le paramètre scene est réservé au scénario racine. Vous ne pouvez pas l'utiliser dans les scénarios des clips ou autres objets du document. Disponibilité : Flash Player 2 ; ActionScript 1.0 Paramètres scene:String [facultatif ] - Une chaîne qui spécifie le nom de la séquence cible de la tête de lecture. - Un nombre représentant le numéro d'image ou une chaîne représentant l'étiquette de l'image cible de la tête de lecture. frame:Object Exemple Dans l'exemple suivant, un document contient deux séquences : sceneOne et sceneTwo. La séquence 1 contient une étiquette d'image sur l'image 10 intitulée newFrame et deux boutons, myBtn_btn et myOtherBtn_btn. Ce code ActionScript est placé sur l'image 1, séquence 1 du scénario principal. stop(); myBtn_btn.onRelease = function(){ gotoAndPlay("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndPlay("sceneTwo", 1); }; Lorsque l'utilisateur clique sur les boutons, la tête de lecture se déplace à l'emplacement spécifié et continue la lecture. Fonctions globales 65 Voir également gotoAndPlay (méthode MovieClip.gotoAndPlay), Fonction nextFrame, Fonction play, Fonction prevFrame Fonction gotoAndStop gotoAndStop([scene:String], frame:Object) : Void Place la tête de lecture sur l'image spécifiée sur une séquence et l'arrête à ce niveau. Si aucune séquence n'est spécifiée, la tête de lecture passe à l'image de la séquence en cours. Le paramètre scene est réservé au scénario racine. Vous ne pouvez pas l'utiliser dans les scénarios des clips ou autres objets du document. Disponibilité : Flash Player 2 ; ActionScript 1.0 Paramètres scene:String [facultatif ] - Une chaîne qui spécifie le nom de la séquence cible de la tête de lecture. - Un nombre représentant le numéro d'image ou une chaîne représentant l'étiquette de l'image cible de la tête de lecture. frame:Object Exemple Dans l'exemple suivant, un document contient deux séquences : sceneOne et sceneTwo. La séquence 1 contient une étiquette d'image sur l'image 10 intitulée newFrame et deux boutons, myBtn_btn et myOtherBtn_btn. Ce code ActionScript est placé sur l'image 1, séquence 1 du scénario principal : stop(); myBtn_btn.onRelease = function(){ gotoAndStop("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndStop("sceneTwo", 1); }; Lorsque l'utilisateur clique sur les boutons, la tête de lecture se déplace à l'emplacement spécifié et arrête la lecture. 66 Chapitre 1: Eléments du langage ActionScript Voir également gotoAndStop (méthode MovieClip.gotoAndStop), Fonction stop, Fonction play, Fonction gotoAndPlay Fonction ifFrameLoaded ifFrameLoaded([scene:String], frame) { statement(s); } Déconseillée à partir de Flash Player 5. Cette fonction est déconseillée. Macromedia vous recommande d'utiliser la propriété MovieClip._framesloaded. Vérifie si le contenu d'une image spécifique est disponible localement. Utilisez la fonction ifFrameLoaded pour commencer à lire une animation simple pendant le téléchargement du reste du fichier SWF sur l'ordinateur local. La différence d'utilisation entre les fonctions _framesloaded et ifFrameLoaded réside dans le fait que _framesloaded vous permet d'ajouter des instructions if ou else personnalisées. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres scene:String [facultatif ] - Une chaîne qui spécifie le nom de la séquence à charger. - Le numéro ou l'étiquette d'image devant être chargé(e) avant l'exécution de l'instruction suivante. frame:Object Voir également , addListener (méthode MovieClipLoader.addListener) Fonction int int(value:Number) : Number Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode Math.round(). Convertit un nombre décimal en valeur entière en tronquant la valeur décimale. Cette fonction est l'équivalent de la fonction Math.floor() si le paramètre value est positif et de la fonction Math.ceil() si le paramètre value est négatif. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres value:Number - Un nombre devant être arrondi à un entier. Fonctions globales 67 Renvoie Number - Le nombre entier tronqué. Voir également round (méthode Math.round), floor (méthode Math.floor), ceil (méthode Math.ceil) Fonction isFinite isFinite(expression:Object) : Boolean Evalue l'expression et renvoie true s'il s'agit d'un nombre fini ou false s'il s'agit de l'infini ou de l'infini négatif. La présence du signe infini ou infini négatif indique une erreur mathématique, telle que la division par 0. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres expression:Object - Une valeur booléenne, une variable ou toute autre expression à évaluer. Renvoie Boolean - Une valeur booléenne. Exemple L'exemple suivant affiche les valeurs renvoyées pour isFinite : isFinite(56) // returns true isFinite(Number.POSITIVE_INFINITY) //returns false Fonction isNaN isNaN(expression:Object) : Boolean Evalue le paramètre et renvoie true si la valeur est NaN (not a number - n'est pas un nombre). Cette fonction permet de s'assurer qu'une expression mathématique a été évaluée correctement en tant que nombre. Disponibilité : Flash Player 5 ; ActionScript 1.0 68 Chapitre 1: Eléments du langage ActionScript Paramètres expression:Object - Une valeur booléenne, une variable ou toute autre expression à évaluer. Renvoie Boolean - Une valeur booléenne. Exemple Le code suivant illustre les valeurs renvoyées pour la fonction isNaN() : trace( isNaN("Tree") ); // returns true trace( isNaN(56) ); // returns false trace( isNaN(Number.POSITIVE_INFINITY) ) // returns false L'exemple suivant indique comment utiliser la fonction isNAN() afin de vérifier si une expression mathématique contient une erreur : var dividend:Number; var divisor:Number; divisor = 1; trace( isNaN(dividend/divisor) ); // output: true // The output is true because the variable dividend is undefined. // Do not use isNAN() to check for division by 0 because it will return false. // A positive number divided by 0 equals Infinity (Number.POSITIVE_INFINITY). // A negative number divided by 0 equals -Infinity (Number.NEGATIVE_INFINITY). Voir également Constante NaN, NaN (propriété Number.NaN) Fonction length length(expression:String)length(variable) Déconseillée à partir de Flash Player 5. Cette fonction, à l'instar de toutes les fonctions de chaîne, est déconseillée. Macromedia vous recommande d'utiliser les méthodes de la classe String et la propriété String.length pour effectuer les mêmes opérations. Renvoie la longueur de la chaîne ou variable spécifiée. Fonctions globales 69 Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres expression:String variable:Object - Une chaîne. - Le nom d'une variable. Renvoie Number - La longueur de la chaîne ou variable spécifiée. Exemple L'exemple suivant renvoie la longueur de la chaîne « Hello » : length("Hello");Le résultat est 5. Voir également Opérateur " (séparateur de chaîne), String, length (propriété String.length) Fonction loadMovie loadMovie(url:String, target:Object, [method:String]) : Void loadMovie(url:String, target:String, [method:String]) : Void Charge un fichier SWF, JPEG, GIF ou PNG dans un clip Flash Player lors de la lecture du fichier SWF d'origine. La prise en charge des fichiers GIF non animés, des fichiers PNG et des fichiers JPEG a été ajoutée à Flash Player 8. Si vous chargez un fichier GIF animé, seule la première image s'affiche. Conseil : Si vous souhaitez contrôler la progression du téléchargement, utilisez MovieClipLoader.loadClip() à la place de cette fonction. La fonction loadMovie() permet d'afficher plusieurs fichiers SWF à la fois et de basculer vers l'un de ces derniers sans avoir à charger un autre document HTML. En l'absence de la fonction loadMovie(), Flash Player affiche un seul fichier SWF. Si vous souhaitez charger un fichier SWF ou JPEG à un niveau spécifique, utilisez loadMovieNum() à la place de loadMovie(). Lorsqu'un fichier SWF est chargé dans un clip cible, vous pouvez utiliser le chemin cible de ce clip pour cibler le fichier SWF chargé. Un fichier SWF ou une image chargé dans une cible hérite de la position, des propriétés de rotation et d'échelle du clip ciblé. Le coin supérieur gauche de l'image chargée ou du fichier SWF s'aligne sur le point de référence du clip ciblé. Sinon, lorsque la cible correspond au scénario racine, le coin supérieur gauche de l'image ou du fichier SWF s'aligne sur le coin supérieur gauche de la scène. 70 Chapitre 1: Eléments du langage ActionScript La fonction unloadMovie() permet de supprimer les fichiers SWF chargés avec loadMovie(). Lorsque vous utilisez cette fonction, référez-vous au modèle de sécurité de Flash Player. Pour Flash Player 8 : ■ Le chargement n'est pas autorisé si le clip appelant se trouve dans le Sandbox du système de fichiers local et si le clip chargé provient d'un Sandbox de réseau. ■ Le chargement n'est pas autorisé si le fichier SWF appelant se trouve dans un Sandbox de réseau et si le clip à charger est local. ■ L'accès au Sandbox de réseau à partir du Sandbox approuvé en local ou du Sandbox de réseau local requiert une autorisation émanant du site Web via un fichier de régulation interdomaines. ■ Les clips qui se trouvent dans le Sandbox du système de fichiers local ne peuvent pas créer de scripts dans les clips du Sandbox de réseau local (et inversement). Pour Flash Player 7 et version ultérieure : ■ Les sites Web peuvent autoriser l'accès interdomaines à une ressource via un un fichier de régulation interdomaines. ■ La programmation entre les fichiers SWF est limitée selon le domaine d'origine des fichiers SWF. Utilisez la méthode System.security.allowDomain() pour ajuster ces restrictions. Pour plus d'informations, consultez le : ■ Chapitre 17, « Fonctionnement de la sécurité » du guide Formation à ActionScript 2.0 dans Flash ■ Livre blanc concernant la sécurité de Flash Player 8 à l'adresse http:// www.macromedia.com/go/fp8_security ■ Livre blanc concernant les API liées à la sécurité de Flash Player 8 à l'adresse http:// www.macromedia.com/go/fp8_security_apis Disponibilité : Flash Player 3 ; ActionScript 1.0 Paramètres - L'URL absolue ou relative du fichier SWF ou JPEG à charger. Un chemin relatif doit être relatif au fichier SWF au niveau 0. Les URL absolues doivent inclure la référence de protocole, telle que http:// ou file:///. url:String - Une référence à un objet clip ou une chaîne représentant le chemin d'un clip cible. Le clip cible est remplacé par le fichier SWF chargé ou l'image. target:Object Fonctions globales 71 [facultatif ] - Spécifie une méthode HTTP d'envoi des variables. Ce paramètre doit correspondre à la chaîne GET ou POST. En l'absence de variable à envoyer, omettez ce paramètre. La méthode GET ajoute les variables à la fin de l'URL et est utilisée lorsque les variables sont peu nombreuses. La méthode POST place les variables dans un en-tête HTTP distinct et s'applique aux variables longues de type chaîne. method:String Exemple Utilisation 1 : L'exemple suivant charge le fichier SWF circle.swf à partir du même répertoire et remplace un clip intitulé mySquare qui existe déjà sur la scène : loadMovie("circle.swf", mySquare); // equivalent statement (Usage 1): loadMovie("circle.swf", _level0.mySquare); // equivalent statement (Usage 2): loadMovie("circle.swf", "mySquare"); L'exemple suivant charge le fichier SWF circle.swf à partir du même répertoire, mais remplace le clip principal au lieu du clip mySquare : loadMovie("circle.swf", this); // Note that using "this" as a string for the target parameter will not work // equivalent statement (Usage 2): loadMovie("circle.swf", "_level0"); L'instruction loadMovie() suivante charge le fichier SWF sub.swf à partir du même répertoire dans un nouveau clip intitulé logo_mc, créé à l'aide de createEmptyMovieClip() : this.createEmptyMovieClip("logo_mc", 999); loadMovie("sub.swf", logo_mc); Vous pouvez ajouter le code suivant pour charger une image JPEG intitulée image1.jpg à partir du même répertoire que le fichier SWF chargeant sub.swf. L'image JPEG est chargée lorsque vous cliquez sur un bouton intitulé myBtn_btn. Ce code charge l'image JPEG dans logo_mc. Par conséquent, il remplace sub.swf par l'image JPEG. myBtn_btn.onRelease = function(){ loadMovie("image1.jpg", logo_mc); }; Utilisation 2 : L'exemple suivant charge le fichier SWF circle.swf à partir du même répertoire et remplace un clip intitulé mySquare qui existe déjà sur la scène : loadMovie("circle.swf", "mySquare"); Voir également _level, propriété, Fonction loadMovieNum, loadMovie (méthode MovieClip.loadMovie), loadClip (méthode MovieClipLoader.loadClip), Fonction unloadMovie 72 Chapitre 1: Eléments du langage ActionScript Fonction loadMovieNum loadMovieNum(url:String, level:Number, [method:String]) : Void Charge un fichier SWF, JPEG, GIF ou PNG dans un niveau lors de la lecture du fichier SWF d'origine. La prise en charge des fichiers GIF non animés, des fichiers PNG et des fichiers JPEG a été ajoutée à Flash Player 8. Si vous chargez un fichier GIF animé, seule la première image s'affiche. Conseil : Si vous souhaitez contrôler la progression du téléchargement, utilisez MovieClipLoader.loadClip() à la place de cette fonction. Normalement, Flash Player affiche un fichier SWF, puis se ferme. L'action loadMovieNum() permet d'afficher plusieurs fichiers SWF à la fois et de basculer vers l'un de ces derniers sans avoir à charger un autre document HTML. Si vous souhaitez spécifier une cible et non pas un niveau, utilisez loadMovie() à la place de loadMovieNum(). Flash Player empile les différents niveaux en commençant par le niveau 0. Ces niveaux correspondent à des feuilles de papier calque empilées les unes sur les autres, ils sont transparents à l'exception des objets placés à chaque niveau. Lorsque vous utilisez loadMovieNum(), vous devez spécifier le niveau de Flash Player devant recevoir le fichier SWF à charger. Lorsqu'un fichier SWF est chargé dans un niveau, utilisez la syntaxe, _level N, où N correspond au numéro du niveau cible. Lorsque vous chargez un fichier SWF, vous pouvez spécifier le niveau de votre choix et charger des fichiers SWF dans un niveau qui comporte déjà un fichier de ce type. Dans ce cas, le nouveau fichier SWF remplace le fichier existant. Si vous chargez un fichier SWF dans le niveau 0, tous les autres niveaux de Flash Player sont vidés et le niveau 0 utilise le nouveau fichier. Le fichier SWF du niveau 0 définit le débit d'images, la couleur d'arrière-plan et la taille d'image de tous les autres fichiers SWF chargés. L'action loadMovieNum() permet également de charger des fichiers JPEG dans un fichier SWF en cours de lecture. Pour les images et les fichiers SWF, le coin supérieur gauche de l'image s'aligne sur le coin supérieur gauche de la scène pendant le chargement du fichier. Dans les deux cas, le fichier chargé hérite des paramètres de rotation et de mise à l'échelle, et le contenu d'origine est remplacé au niveau spécifié. Remarque : Les fichiers JPEG enregistrés au format progressif ne sont pas pris en charge. La fonction unloadMovieNum() permet de supprimer des fichiers SWF ou des images qui ont été chargés avec loadMovieNum(). Lorque vous utilisez cette méthode, prenez en considération le modèle de sécurité de Flash Player. Fonctions globales 73 Pour Flash Player 8 : ■ Le chargement n'est pas autorisé si le clip appelant se trouve dans le Sandbox du système de fichiers local et si le clip chargé provient d'un Sandbox de réseau. ■ Le chargement n'est pas autorisé si le fichier SWF appelant se trouve dans un Sandbox de réseau et si le clip à charger est local. ■ L'accès au Sandbox de réseau à partir du Sandbox approuvé en local ou du Sandbox de réseau local requiert une autorisation émanant du site Web via un fichier de régulation interdomaines. ■ Les clips qui se trouvent dans le Sandbox du système de fichiers local ne peuvent pas créer de scripts dans les clips du Sandbox de réseau local (et inversement). Pour Flash Player 7 et version ultérieure : ■ Les sites Web peuvent autoriser l'accès interdomaines à une ressource via un un fichier de régulation interdomaines. ■ La programmation entre les fichiers SWF est limitée selon le domaine d'origine des fichiers SWF. Utilisez la méthode System.security.allowDomain() pour ajuster ces restrictions. Pour plus d'informations, consultez le : ■ Chapitre 17, « Fonctionnement de la sécurité » du guide Formation à ActionScript 2.0 dans Flash ■ Livre blanc concernant la sécurité de Flash Player 8 à l'adresse http:// www.macromedia.com/go/fp8_security ■ Livre blanc concernant les API liées à la sécurité de Flash Player 8 à l'adresse http:// www.macromedia.com/go/fp8_security_apis Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - L'URL absolue ou relative du fichier SWF ou JPEG à charger. Un chemin relatif doit faire référence au fichier SWF du niveau 0. Pour l'utilisation avec une version autonome de Flash Player ou en mode test dans l'application de programmation Flash, tous les fichiers SWF doivent être stockés dans le même dossier et les noms de fichier ne doivent pas inclure de spécifications de dossier ou lecteur de disque. url:String level:Number - Un entier spécifiant le niveau de Flash Player dans lequel le fichier SWF doit se charger. 74 Chapitre 1: Eléments du langage ActionScript [facultatif ] - Spécifie une méthode HTTP d'envoi des variables. Ce paramètre doit correspondre à la chaîne GET ou POST. En l'absence de variable à envoyer, omettez ce paramètre. La méthode GET ajoute les variables à la fin de l'URL et est utilisée lorsque les variables sont peu nombreuses. La méthode POST place les variables dans un en-tête HTTP distinct et s'applique aux variables longues de type chaîne. method:String Exemple L'exemple suivant permet de charger l'image JPEG tim.jpg dans le niveau 2 de Flash Player : loadMovieNum("http://www.helpexamples.com/flash/images/image1.jpg", 2); Voir également Fonction unloadMovieNum, Fonction loadMovie, loadClip (méthode MovieClipLoader.loadClip), _level, propriété Fonction loadVariables loadVariables(url:String, target:Object, [method:String]) : Void Lit les données dans un fichier externe, tel qu'un fichier texte ou du texte généré par ColdFusion, un script CGI, des pages ASP (Active Server Pages), PHP ou un script Perl et définit les valeurs pour les variables dans un clip cible. Cette action permet également de mettre à jour les variables du fichier SWF actif en fonction des nouvelles valeurs. Le texte de l'URL spécifiée doit être au format MIME standard application/x-www-formurlencoded (un format standard utilisé par les scripts CGI). Vous pouvez spécifier autant de variables que nécessaire. Par exemple, cette séquence définit plusieurs variables : company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103 Dans les fichiers SWF exécutés dans une version antérieure à Flash Player 7, l'url doit être dans le même superdomaine que le fichier SWF qui transmet cet appel. Un superdomaine est dérivé en supprimant le composant le plus à gauche de l'URL d'un fichier. Par exemple, un fichier SWF enregistré dans www.someDomain.com peut charger des données à partir d'une source figurant dans store.someDomain.com, car les deux fichiers appartiennent au même superdomaine que someDomain.com. Fonctions globales 75 Dans les fichiers SWF, quelle que soit leur version, qui s'exécutent dans Flash Player 7 ou version ultérieure, url doit figurer dans le même domaine que le fichier SWF qui envoie cet appel (voir « Fonctions de sécurité de Flash Player » dans le guide Utilisation d'ActionScript dans Flash). Par exemple, un fichier SWF situé à l'adresse www.someDomain.com peut charger des données en provenance de sources qui figurent également à l'adresse www.someDomain.com. Si vous souhaitez charger des données à partir d'un autre domaine, vous pouvez placer un fichier de régulation interdomaines sur le serveur hébergeant le fichier SWF en cours d'accès. Pour plus d'informations, voir « A propos de l'autorisation de chargement de données interdomaines » dans Utilisation d'ActionScript dans Flash. Si vous souhaitez charger des variables dans un niveau spécifique, utilisez loadVariablesNum() à la place de loadVariables(). Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - Une URL absolue ou relative par rapport à l'emplacement des variables. Si le fichier SWF effectuant cet appel s'exécute dans un navigateur Web, url doit appartenir au même domaine que le fichier SWF. Pour plus de détails, reportez-vous à la section Description. url:String target:Object - Le chemin cible d'un clip devant recevoir les variables chargées. [facultatif ] - Spécifie une méthode HTTP d'envoi des variables. Ce paramètre doit correspondre à la chaîne GET ou POST. En l'absence de variable à envoyer, omettez ce paramètre. La méthode GET ajoute les variables à la fin de l'URL et est utilisée lorsque les variables sont peu nombreuses. La méthode POST place les variables dans un en-tête HTTP distinct et s'applique aux variables longues de type chaîne. method:String Exemple L'exemple suivant permet de charger les informations d'un fichier texte intitulé params.txt dans le clip target_mc créé à l'aide de createEmptyMovieClip(). La fonction setInterval() permet de vérifier la progression du chargement. Le script recherche une variable dans le fichier params.txt appelé done. this.createEmptyMovieClip("target_mc", this.getNextHighestDepth()); loadVariables("params.txt", target_mc); function checkParamsLoaded() { if (target_mc.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in target_mc) { 76 Chapitre 1: Eléments du langage ActionScript trace(i+": "+target_mc[i]); } trace("-------------"); clearInterval(param_interval); } } var param_interval:Number = setInterval(checkParamsLoaded, 100); Le fichier externe, params.txt, inclut le texte suivant : var1="hello"&var2="goodbye"&done="done" Voir également Fonction loadVariablesNum, Fonction loadMovie, Fonction loadMovieNum, Fonction getURL, loadMovie (méthode MovieClip.loadMovie), loadVariables (méthode MovieClip.loadVariables), load (méthode LoadVars.load) Fonction loadVariablesNum loadVariablesNum(url:String, level:Number, [method:String]) : Void Lit les données dans un fichier externe, tel qu'un fichier texte ou du texte généré par ColdFusion, un script CGI, des pages ASP (Active Server Pages), PHP ou un script Perl et définit les valeurs pour les variables dans un niveau de Flash Player. Vous pouvez également utiliser cette fonction pour mettre à jour les variables du fichier SWF actif afin de tenir compte des nouvelles valeurs. Le texte de l'URL spécifiée doit être au format MIME standard application/x-www-formformat standard utilisé par les scripts CGI). Vous pouvez spécifier autant de variables que nécessaire. Par exemple, cette séquence définit plusieurs variables : urlencoded(un company=Macromedia&address=601+Townsend&city=San+Francisco&zip=94103 Pour les fichiers SWF lus par une version antérieure à Flash Player 7, le paramètre url doit correspondre au superdomaine du fichier SWF envoyant cet appel. Un superdomaine est dérivé en supprimant le composant le plus à gauche de l'URL d'un fichier. Par exemple, un fichier SWF à l'adresse www.someDomain.com peut charger des données à partir d'une source à l'adresse store.someDomain.com dans la mesure où les deux fichiers figurent dans le même superdomaine que someDomain.com. Fonctions globales 77 Dans les fichiers SWF, quelle que soit leur version, qui s'exécutent dans Flash Player 7 ou version ultérieure, url doit figurer dans le même domaine que le fichier SWF qui envoie cet appel (voir « Fonctions de sécurité de Flash Player » dans le guide Utilisation d'ActionScript dans Flash). Par exemple, un fichier SWF à l'adresse www.someDomain.com peut charger des données en provenance de sources qui figurent également à l'adresse www.someDomain.com. Si vous souhaitez charger des données à partir d'un autre domaine, vous pouvez placer un fichier de régulation interdomaines sur le serveur hébergeant le fichier SWF. Pour plus d'informations, voir « A propos de l'autorisation de chargement de données interdomaines » dans Utilisation d'ActionScript dans Flash. Si vous souhaitez charger des variables dans un clip cible, utilisez loadVariables() à la place de loadVariablesNum(). Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - Une URL absolue ou relative par rapport à l'emplacement des variables. Si le fichier SWF effectuant cet appel s'exécute dans un navigateur Web, url doit appartenir au même domaine que le fichier SWF. Pour plus de détails, reportez-vous à la section Description. url:String level:Number - Un entier spécifiant le niveau de Flash Player devant recevoir les variables. [facultatif ] - Spécifie une méthode HTTP d'envoi des variables. Ce paramètre doit correspondre à la chaîne GET ou POST. En l'absence de variable à envoyer, omettez ce paramètre. La méthode GET ajoute les variables à la fin de l'URL et est utilisée lorsque les variables sont peu nombreuses. La méthode POST place les variables dans un en-tête HTTP distinct et s'applique aux variables longues de type chaîne. method:String Exemple L'exemple suivant permet de charger les informations d'un fichier texte intitulé params.txt dans le scénario principal du fichier SWF au niveau 2 dans Flash Player. Les noms de variables des champs de texte doivent correspondre à ceux du fichier params.txt. La fonction setInterval() est utilisée pour vérifier la progression du chargement des données dans le fichier SWF. Le script recherche une variable dans le fichier params.txt appelé done. loadVariablesNum("params.txt", 2); function checkParamsLoaded() { if (_level2.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in _level2) { 78 Chapitre 1: Eléments du langage ActionScript trace(i+": "+_level2[i]); } trace("-------------"); clearInterval(param_interval); } } var param_interval:Number = setInterval(checkParamsLoaded, 100); // Params.txt includes the following text var1="hello"&var2="goodbye"&done="done" Voir également Fonction getURL, Fonction loadMovie, Fonction loadMovieNum, Fonction loadVariables, loadMovie (méthode MovieClip.loadMovie), loadVariables (méthode MovieClip.loadVariables), load (méthode LoadVars.load) Fonction mbchr mbchr(number:Number) Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode String.fromCharCode(). Convertit un numéro de code ASCII en caractère multi-octets. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres number:Number - Le nombre à convertir en caractère multi-octets. Voir également fromCharCode (méthode String.fromCharCode) Fonction mblength mblength(string:String) : Number Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser les méthodes et les propriétés de la classe String. Renvoie la longueur de la chaîne de caractères multi-octets. Disponibilité : Flash Player 4 ; ActionScript 1.0 Fonctions globales 79 Paramètres string:String - La chaîne à mesurer. Renvoie Number - La longueur de la chaîne de caractères multi-octets. Voir également String, length (propriété String.length) Fonction mbord mbord(character:String) : Number Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode String.charCodeAt(). Convertit le caractère spécifié en nombre multi-octets. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres character:String - character Le caractère à convertir en nombre multi-octets. Renvoie Number - Le caractère converti. Voir également charCodeAt (méthode String.charCodeAt) Fonction mbsubstring mbsubstring(value:String, index:Number, count:Number) : String Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode String.substr(). Extrait une nouvelle chaîne de caractères multi-octets d'une chaîne de caractères multi-octets. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - La chaîne multi-octets à partir de laquelle il convient d'extraire une nouvelle chaîne multi-octets. value:String 80 Chapitre 1: Eléments du langage ActionScript index:Number - Le numéro du premier caractère à extraire. count:Number - Le nombre de caractères à inclure dans la chaîne extraite, caractère d'indice non compris. Renvoie String - La chaîne extraite à partir de la chaîne de caractères multi-octets. Voir également substr (méthode String.substr) Fonction MMExecute MMExecute("Flash JavaScript API command;":String) : String Permet d'émettre des commandes de l'API Flash JavaScript (JSAPI) à partir d'ActionScript. Dans Flash MX 2004, la fonction MMExecute doit être appelée par une animation utilisée en tant que panneau Flash (fichier stocké dans le répertoire WindowSWF), par une boîte de dialogue XMLtoUI ou par l'interface utilisateur personnalisée d'un composant. Les commandes JSAPI n'ont aucun effet dans le lecteur, en mode test d'animation, ou en dehors de l'environnement de programmation. La JSAPI de Flash comporte plusieurs objets, méthodes et propriétés permettant de dupliquer ou d'émuler les commandes pouvant être entrées par un utilisateur dans l'environnement de programmation. La JSAPI permet d'écrire des scripts qui développent Flash de plusieurs façons : ajout de commandes à des menus, manipulation d'objets sur la scène, répétition de séquences de commandes, etc. De manière générale, un utilisateur exécute un script JSAPI en sélectionnant Commandes > Exécuter la commande. Cependant, vous pouvez utiliser cette fonction dans un script ActionScript pour appeler directement une commande JSAPI. Si vous utilisez MMExecute() dans un script pour l'image 1 de votre fichier, la commande s'exécute lors du chargement du fichier SWF. Pour plus d'informations sur la JSAPI, voir www.macromedia.com/go/jsapi_info_en. Disponibilité : Flash Player 7 ; ActionScript 1.0 Paramètres command:String - Toute commande pouvant être utilisée dans un fichier JSFL (Flash JavaScript). Fonctions globales 81 Renvoie - Le résultat représenté sous forme de chaîne, s'il y en a un, renvoyé par l'instruction JavaScript. String Exemple La commande suivante renvoie le nombre d'éléments contenus dans la bibliothèque du document actuel dans la fenêtre de trace. Vous devez exécuter cet exemple en tant que panneau Flash car les fichiers Flash ne peuvent pas appeler MMExecute s'ils sont exécutés en mode Tester l'animation ou dans le navigateur. ■ Placez le code suivant dans l'image 1 du scénario principal d'un document Flash vide : var numLibItems = MMExecute("fl.getDocumentDOM().library.items.length"); var message = numLibItems + " items in library"; MMExecute('fl.trace("' + message + '");'); ■ Enregistrez le fichier FLA dans le répertoire WindowSWF de votre répertoire Configuration, puis pointez sur Fichier > Publier (ou enregistrez-le ailleurs et publiez le fichier SWF directement dans ce répertoire, ou déplacez-le dans ce répertoire). ■ Quittez et redémarrez l'application (vous devez effectuer cette étape lorsque vous ajoutez votre fichier dans le répertoire WindowSWF pour la première fois). Vous pouvez désormais sélectionner votre fichier dans la partie inférieure du menu Fenêtre > Autres panneaux. La fonction trace d'ActionScript ne fonctionne pas dans un panneau Flash ; cet exemple utilise la version JavaScript fl.trace pour obtenir la sortie. La copie des résultats de MMExecute dans un champ de texte faisant partie du fichier de votre panneau Flash peut s'avérer plus facile. Fonction nextFrame nextFrame() : Void Place la tête de lecture sur l'image suivante. Disponibilité : Flash Player 2 ; ActionScript 1.0 82 Chapitre 1: Eléments du langage ActionScript Exemple Dans l'exemple suivant, lorsque l'utilisateur appuie sur la flèche droite ou bas, la tête de lecture se déplace jusqu'à l'image suivante et s'arrête. Si l'utilisateur appuie sur la flèche gauche ou haut, la tête de lecture se positionne sur l'image précédente et s'arrête. L'écouteur est initialisé pour attendre que l'utilisateur appuie sur la touche de direction et la variable init est utilisée pour empêcher que l'écouteur soit redéfini si la tête de lecture se repositionne sur l'image 1. stop(); if (init == undefined) { someListener = new Object(); someListener.onKeyDown = function() { if (Key.isDown(Key.LEFT) || Key.isDown(Key.UP)) { _level0.prevFrame(); } else if (Key.isDown(Key.RIGHT) || Key.isDown(Key.DOWN)) { _level0.nextFrame(); } }; Key.addListener(someListener); init = 1; } Voir également Fonction prevFrame Fonction nextScene nextScene() : Void Place la tête de lecture sur l'image 1 de la séquence suivante. Disponibilité : Flash Player 2 ; ActionScript 1.0 Exemple Dans l'exemple suivant, lorsqu'un utilisateur clique sur le bouton créé à l'exécution, la tête de lecture est positionnée sur l'image 1 de la séquence suivante. Créez deux séquences, puis entrez le code ActionScript suivant sur l'image 1 de la séquence 1. stop(); if (init == undefined) { this.createEmptyMovieClip("nextscene_mc", this.getNextHighestDepth()); nextscene_mc.createTextField("nextscene_txt", this.getNextHighestDepth(), 200, 0, 100, 22); Fonctions globales 83 nextscene_mc.nextscene_txt.autoSize = true; nextscene_mc.nextscene_txt.border = true; nextscene_mc.nextscene_txt.text = "Next Scene"; this.createEmptyMovieClip("prevscene_mc", this.getNextHighestDepth()); prevscene_mc.createTextField("prevscene_txt", this.getNextHighestDepth(), 00, 0, 100, 22); prevscene_mc.prevscene_txt.autoSize = true; prevscene_mc.prevscene_txt.border = true; prevscene_mc.prevscene_txt.text = "Prev Scene"; nextscene_mc.onRelease = function() { nextScene(); }; prevscene_mc.onRelease = function() { prevScene(); }; init = true; } Assurez-vous de placer une action stop() sur l'image 1 de la séquence 2. Voir également Fonction prevScene Fonction Number Number(expression) : Number Convertit le paramètre expression en nombre et renvoie une valeur comme indiqué dans la liste suivante : ■ Si expression est un nombre, la valeur renvoyée est expression. ■ Si expression est une valeur booléenne, la valeur renvoyée est 1 si expression est true, 0 si expression est false. ■ Si expression est une chaîne, la fonction tente d'analyser expression en tant que nombre décimal avec un exposant facultatif à la fin (ainsi, 1,57505e-3). ■ Si expression est NaN, la valeur renvoyée est NaN. ■ Si expression est undefined, renvoie l'une des valeurs suivantes : - Dans les fichiers publiés pour Flash Player 6 ou version antérieure, le résultat est 0. - Dans les fichiers publiés pour Flash Player 7 ou version ultérieure, le résultat est NaN. Disponibilité : Flash Player 4 ; ActionScript 1.0 84 Chapitre 1: Eléments du langage ActionScript Paramètres - Une expression à convertir en nombre. Les nombres ou chaînes commençant par 0x sont interprété(e)s en tant que valeurs hexadécimales. Les nombres ou chaînes commençant par 0 sont interprété(e)s en tant que valeurs octales. expression:Object Renvoie Number - Un nombre ou NaN (n'est pas un nombre). Exemple Dans l'exemple suivant, un champ de texte est créé sur la scène à l'exécution : this.createTextField("counter_txt", this.getNextHighestDepth(), 0, 0, 100, 22); counter_txt.autoSize = true; counter_txt.text = 0; function incrementInterval():Void { var counter:Number = counter_txt.text; // Without the Number() function, Flash would concatenate the value instead // of adding values. You could also use "counter_txt.text++;" counter_txt.text = Number(counter) + 1; } var intervalID:Number = setInterval(incrementInterval, 1000); Voir également Constante NaN, Number, Fonction parseInt, Fonction parseFloat Fonction Object Object([value:Object]) : Object Crée un objet vide ou convertit le nombre, la chaîne ou la valeur booléenne spécifié en objet. Cette commande revient à créer un objet avec le constructeur Object (voir « Constructeur de la classe Object »). Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres value:Object [facultatif ] - Une valeur de type numérique, chaîne ou booléen. Renvoie Object - Un objet. Fonctions globales 85 Exemple Dans l'exemple suivant, un objet vide est créé, puis renseigné par des valeurs : var company:Object = new Object(); company.name = "Macromedia, Inc."; company.address = "600 Townsend Street"; company.city = "San Francisco"; company.state = "CA"; company.postal = "94103"; for (var i in company) { trace("company."+i+" = "+company[i]); } Voir également Object Gestionnaire on on(mouseEvent:Object) { // your statements here } Spécifie l'événement de type souris ou pression de touche devant déclencher une action. Disponibilité : Flash Player 2 ; ActionScript 1.0 Paramètres - mouseEvent est un déclencheur appelé par un événement event. Lorsque cet événement se produit, les instructions qui le suivent entre accolades ({ }) s'exécutent. Vous pouvez spécifier n'importe laquelle des valeurs suivantes pour le paramètre mouseEvent : mouseEvent:Object L'utilisateur appuie sur le bouton de la souris pendant que le pointeur de la souris survole le bouton. ■ press ■ release L'utilisateur relâche le bouton de la souris pendant que le pointeur de la souris survole le bouton. ■ releaseOutside Pendant que le pointeur de la souris survole le bouton, l'utilisateur appuie sur le bouton de la souris puis éloigne le pointeur du bouton juste avant le relâchement du bouton. Les événements press et dragOut précèdent toujours l'événement releaseOutside. ■ rollOut ■ rollOver 86 Le pointeur quitte la zone du bouton. Le pointeur de la souris survole le bouton. Chapitre 1: Eléments du langage ActionScript ■ dragOut Pendant que le pointeur de la souris survole le bouton, l'utilisateur appuie sur le bouton de la souris puis place le pointeur en dehors de la zone du bouton. ■ dragOver Pendant que le pointeur est au-dessus du bouton, l'utilisateur appuie sur le bouton de la souris, fait glisser le pointeur en dehors de la zone du bouton, puis le ramène sur ce dernier. ■ keyPress « < key > » L'utilisateur appuie sur la touche spécifiée du clavier. Pour la section key du paramètre, spécifiez une constante de touche, comme indiqué par le conseil de code du panneau Actions. Vous pouvez utiliser ce paramètre pour intercepter l'utilisation d'une touche, ce qui revient à contourner le comportement intégré de la touche spécifiée. L'emplacement du bouton n'a pas d'importance, il peut être sur la scène ou en dehors. L'une des limites de cette technique est que vous ne pouvez pas appliquer le gestionnaire on() pendant l'exécution ; vous devez l'appliquer pendant la programmation. Assurezvous que Contrôle > Désactiver les raccourcis clavier est sélectionné ou que les touches associées à un comportement intégré ne seront pas ignorées lorsque vous testez l'application avec Contrôle > Tester l'animation. Pour consulter la liste des constantes de touches, voir la classe Key. Exemple Dans le script suivant, la fonction startDrag() s'exécute lorsque l'utilisateur clique sur le bouton de la souris et le script conditionnel est exécuté lorsqu'il relâche le bouton de la souris et que l'objet est déposé : on (press) { startDrag(this); } on (release) { trace("X:"+this._x); trace("Y:"+this._y); stopDrag(); } Voir également Gestionnaire onClipEvent, Key Gestionnaire onClipEvent onClipEvent(movieEvent:Object) { // your statements here } Déclenche les actions définies pour une instance spécifique de clip. Disponibilité : Flash Player 5 ; ActionScript 1.0 Fonctions globales 87 Paramètres - movieEvent est un déclencheur appelé par un événement event. Lorsque cet événement se produit, les instructions qui le suivent entre accolades ({ }) s'exécutent. Vous pouvez spécifier n'importe laquelle des valeurs suivantes pour le paramètre movieEvent : movieEvent:Object L'action commence dès que le clip est instancié et s'affiche dans le scénario. ■ load ■ L'action commence dès la première image, après que le clip est supprimé du scénario. Les actions associées à l'événement Unload du clip sont traitées avant les actions associées à l'image affectée. ■ L'action est déclenchée de façon continue en suivant le débit d'images du clip. Les actions associées à l'événement enterFrame du clip sont traitées avant les actions sur les images associées aux images affectées. ■ mouseMove unload enterFrame _ymouse ■ L'action commence dès que la souris bouge. Les propriétés _xmouse et permettent de déterminer la position du curseur. mouseDown L'action commence dès que l'utilisateur appuie sur le bouton gauche de la souris. ■ mouseUp L'action commence dès que l'utilisateur relâche le bouton gauche de la souris. ■ keyDown L'action commence dès que l'utilisateur appuie sur une touche. La méthode permet d'extraire des informations sur la dernière touche utilisée. Key.getCode() ■ keyUp L'action commence dès que l'utilisateur relâche une touche. La méthode permet d'extraire des informations sur la dernière touche utilisée. Key.getCode() ■ L'action commence dès que des données sont reçues par une action ou loadMovie(). Lorsque ce paramètre est spécifié avec une action loadVariables(), l'événement data ne se produit qu'une seule fois, lorsque la dernière variable est chargée. Par contre, lorsqu'il est spécifié avec une action loadMovie(), l'événement data se répète, lors de la réception de chaque section de données. data loadVariables() Exemple L'exemple suivant utilise onClipEvent() avec l'événement de clip keyDown et est conçu pour être associé à un clip ou bouton. L'événement de clip keyDown est généralement utilisé avec une ou plusieurs méthodes et propriétés de l'objet Key. Le script suivant utilise Key.getCode() pour savoir sur quelle touche l'utilisateur a appuyé ; si la touche sur laquelle il a appuyé correspond à la propriété Key.RIGHT, la tête de lecture est positionnée sur l'image suivante ; si elle correspond à la propriété Key.LEFT, la tête de lecture est positionnée sur l'image précédente. onClipEvent (keyDown) { if (Key.getCode() == Key.RIGHT) { 88 Chapitre 1: Eléments du langage ActionScript this._parent.nextFrame(); } else if (Key.getCode() == Key.LEFT) { this._parent.prevFrame(); } } L'exemple suivant utilise onClipEvent() avec les événements de clips load et mouseMove. Les propriétés _xmouse et _ymouse suivent la position de la souris à chaque fois qu'elle se déplace, apparaissant dans le champ de texte créé à l'exécution. onClipEvent (load) { this.createTextField("coords_txt", this.getNextHighestDepth(), 0, 0, 100, 22); coords_txt.autoSize = true; coords_txt.selectable = false; } onClipEvent (mouseMove) { coords_txt.text = "X:"+_root._xmouse+",Y:"+_root._ymouse; } Voir également Key, _xmouse (propriété MovieClip._xmouse), _ymouse (propriété MovieClip._ymouse), Gestionnaire on, Fonction updateAfterEvent Fonction ord ord(character:String) : Number Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser les méthodes et les propriétés de la classe String. Convertit les caractères en numéros de code ASCII. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres character:String - Le caractère à convertir en numéro de code ASCII. Renvoie Number - Le numéro de code ASCII du caractère spécifié. Voir également String, charCodeAt (méthode String.charCodeAt) Fonctions globales 89 Fonction parseFloat parseFloat(string:String) : Number Convertit une chaîne en nombre à virgule flottante. Cette fonction lit, ou analyse, et renvoie les nombres dans une chaîne jusqu'à ce que cette dernière atteigne un caractère qui ne fait pas partie du nombre initial. Si la chaîne ne commence pas par un nombre qui peut être analysé, parseFloat() renvoie NaN. L'espace blanc qui précède un entier valide est ignoré, comme les caractères de fin non numériques. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres string:String - La chaîne à lire et convertir en nombre à virgule flottante. Renvoie Number - Un nombre ou NaN (n'est pas un nombre). Exemple Les exemples suivants utilisent la fonction parseFloat() pour évaluer divers types de nombres : trace(parseFloat("-2")); // output: -2 trace(parseFloat("2.5")); // output: 2.5 trace(parseFloat(" 2.5")); // output: 2.5 trace(parseFloat("3.5e6")); // output: 3500000 trace(parseFloat("foobar")); // output: NaN trace(parseFloat("3.75math")); // output: 3.75 trace(parseFloat("0garbage")); // output: 0 Voir également Constante NaN, Fonction parseInt Fonction parseInt parseInt(expression:String, [radix:Number]) : Number Convertit une chaîne en entier. Si la chaîne spécifiée des paramètres ne peut pas être convertie en nombre, la fonction renvoie NaN. Les chaînes commençant par 0x sont interprétées en tant que nombres hexadécimaux. Les entiers commençant par 0 ou spécifiant une base 8 sont interprétés en tant que nombres octaux. L'espace blanc qui précède un entier valide est ignoré, comme les caractères de fin non numériques. Disponibilité : Flash Player 5 ; ActionScript 1.0 90 Chapitre 1: Eléments du langage ActionScript Paramètres expression:String - Une chaîne à convertir en entier. [facultatif ] - Un entier représentant la base du nombre à analyser. Les valeurs valides sont comprises entre 2 et 36. radix:Number Renvoie Number - Un nombre ou NaN (n'est pas un nombre). Exemple Les exemples de cette section utilisent la fonction parseInt() pour évaluer divers types de nombres. L'exemple suivant renvoie 3 : parseInt("3.5") L'exemple suivant renvoie NaN : parseInt("bar") L'exemple suivant renvoie 4 : parseInt("4foo") L'exemple suivant illustre une conversion hexadécimale qui renvoie 1016 : parseInt("0x3F8") L'exemple suivant illustre une conversion hexadécimale utilisant le paramètre radix facultatif qui renvoie 1000 : parseInt("3E8", 16) L'exemple suivant illustre une conversion binaire et renvoie 10, soit la représentation décimale du binaire 1010 : parseInt("1010", 2) Les exemples suivants illustrent l'analyse des nombres octaux et renvoient 511, soit la représentation décimale du nombre octal 777 : parseInt("0777") parseInt("777", 8) Voir également , Fonction parseFloat Fonctions globales 91 Fonction play play() : Void Fait avancer la tête de lecture au sein du scénario. Disponibilité : Flash Player 2 ; ActionScript 1.0 Exemple Dans l'exemple suivant, deux occurrences de clip intitulées stop_mc et play_mc se trouvent sur la scène. Le script ActionScript arrête la lecture du fichier SWF lorsque l'utilisateur clique sur l'occurrence de clip stop_mc. La lecture reprend lorsque l'utilisateur clique sur l'occurrence play_mc. this.stop_mc.onRelease = function() { stop(); }; this.play_mc.onRelease = function() { play(); }; trace("frame 1"); Voir également Fonction gotoAndPlay, gotoAndPlay (méthode MovieClip.gotoAndPlay) Fonction prevFrame prevFrame() : Void Place la tête de lecture sur l'image précédente. Si l'image active est l'image 1, la tête de lecture ne bouge pas. Disponibilité : Flash Player 2 ; ActionScript 1.0 Exemple Lorsque l'utilisateur clique sur un bouton intitulé myBtn_btn et que le code ActionScript suivant est placé sur une image du scénario correspondant à ce bouton, la tête de lecture est positionnée sur l'image précédente : stop(); this.myBtn_btn.onRelease = function(){ prevFrame(); }; Voir également Fonction nextFrame, 92 prevFrame (méthode MovieClip.prevFrame) Chapitre 1: Eléments du langage ActionScript Fonction prevScene prevScene() : Void Place la tête de lecture sur l'image 1 de la séquence précédente. Disponibilité : Flash Player 2 ; ActionScript 1.0 Voir également Fonction nextScene Fonction print print(target:Object, boundingBox:String) : Void Imprime le clip target en fonction des limites spécifiées par le paramètre (bmovie, bmax ou bframe). Si vous souhaitez imprimer des images spécifiques du clip cible, associez une étiquette #p à ces images. Bien que la fonction print() produise des impressions de meilleure qualité que la fonction printAsBitmap(), elle ne permet pas d'imprimer des clips comportant des transparences alpha ou des effets spéciaux de couleur. Si vous utilisez bmovie pour le paramètre boundingBox, mais n'associez pas d'étiquette #b à une image, la zone d'impression est déterminée par la taille de la scène du clip chargé. (Le clip chargé n'hérite pas de la taille de la scène du clip principal.) Tous les éléments imprimables d'un clip doivent avoir été chargés de façon intégrale avant le début de l'impression. La fonction d'impression de Flash Player prend en charge les imprimantes PostScript et non PostScript. Les imprimantes non PostScript convertissent les vecteurs en bitmaps. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - Le nom d'occurrence du clip à imprimer. Par défaut, l'ensemble des images de l'occurrence cible peuvent être imprimées. Si vous souhaitez imprimer des images spécifiques du clip, associez une étiquette #p à ces images. target:Object boundingBox:String - Un modificateur qui définit la zone d'impression du clip. Placez ce paramètre entre guillemets simples ou doubles (' ou ") et spécifiez l'une des valeurs suivantes : ■ Désigne le cadre de délimitation d'une image spécifique dans un clip en tant que zone d'impression pour l'ensemble des images imprimables du clip. Associez une étiquette d'image #b à l'image dont vous souhaitez utiliser le cadre de délimitation en tant que zone imprimable. bmovie Fonctions globales 93 ■ bmax Désigne une combinaison de l'ensemble des cadres de délimitation de l'ensemble des images imprimables en tant que zone d'impression. Spécifiez bmax si la taille des images imprimables de votre clip varie. ■ bframe Indique que le cadre de délimitation de chaque image imprimable doit être utilisé en tant que zone d'impression pour cette image, ce qui change la zone d'impression de chaque image et met les objets à l'échelle pour les adapter à la zone d'impression. Utilisez bframe si vous avez des objets de différentes tailles dans chaque image et souhaitez que chaque objet remplisse la page imprimée. Exemple L'exemple suivant imprime toutes les images imprimables dans holder_mc en appliquant une zone d'impression définie par le cadre de délimitation de chaque image : this.createEmptyMovieClip("holder_mc", 999); holder_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); this.myBtn_btn.onRelease = function() { print(this._parent.holder_mc, "bframe"); }; Dans le script ActionScript précédent, vous pouviez remplacer bframe par bmovie de manière à ce que la zone d'impression soit définie par le cadre de délimitation d'une image à laquelle est associée l'étiquette #b. Voir également Fonction printAsBitmap, Fonction printAsBitmapNum, PrintJob, Fonction printNum Fonction printAsBitmap printAsBitmap(target:Object, boundingBox:String) : Void Imprime le clip target en tant que bitmap en fonction des limites spécifiées par le paramètre (bmovie, bmax ou bframe). Utilisez printAsBitmap() pour imprimer des clips qui contiennent des images avec des objets qui appliquent des effets de transparence ou de couleur. L'action printAsBitmap() imprime à la résolution la plus élevée disponible, de façon à préserver la définition et la qualité autant que faire se peut. Si votre clip ne contient pas de transparences alpha ou d'effets de couleur, Macromedia recommande d'utiliser la fonction print() pour de meilleurs résultats qualitatifs. Si vous utilisez bmovie pour le paramètre boundingBox, mais n'associez pas d'étiquette #b à une image, la zone d'impression est déterminée par la taille de la scène du clip chargé. (Le clip chargé n'hérite pas de la taille de la scène du clip principal.) 94 Chapitre 1: Eléments du langage ActionScript Tous les éléments imprimables d'un clip doivent avoir été chargés de façon intégrale avant le début de l'impression. La fonction d'impression de Flash Player prend en charge les imprimantes PostScript et non PostScript. Les imprimantes non PostScript convertissent les vecteurs en bitmaps. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - Le nom d'occurrence du clip à imprimer. Par défaut, l'ensemble des images du clip sont imprimées. Si vous souhaitez imprimer des images spécifiques du clip, associez une étiquette #p à ces images. target:Object boundingBox:String - Un modificateur qui définit la zone d'impression du clip. Placez ce paramètre entre guillemets simples ou doubles (' ou ") et spécifiez l'une des valeurs suivantes : ■ Désigne le cadre de délimitation d'une image spécifique dans un clip en tant que zone d'impression pour l'ensemble des images imprimables du clip. Associez une étiquette d'image #b à l'image dont vous souhaitez utiliser le cadre de délimitation en tant que zone imprimable. ■ bmax Désigne une combinaison de l'ensemble des cadres de délimitation de l'ensemble des bmovie images imprimables en tant que zone d'impression. Spécifiez le paramètre bmax lorsque la taille des images imprimables de votre clip varie. ■ bframe Indique que le cadre délimitation de chaque image imprimable doit servir de zone d'impression pour cette image. Ceci change la zone d'impression de chaque image et met l'objet à l'échelle de la zone d'impression. Utilisez bframe si vous avez des objets de différentes tailles dans chaque image et souhaitez que chaque objet remplisse la page imprimée. Exemple L'exemple suivant imprime toutes les images imprimables dans holder_mc en appliquant une zone d'impression définie par le cadre de délimitation de l'image : this.createEmptyMovieClip("holder_mc", 999); holder_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); this.myBtn_btn.onRelease = function() { printAsBitmap(this._parent.holder_mc, "bframe"); }; Voir également Fonction print, Fonction printAsBitmapNum, Fonction printNum, PrintJob Fonctions globales 95 Fonction printAsBitmapNum printAsBitmapNum(level:Number, boundingBox:String) : Void Imprime un niveau dans Flash Player en tant que bitmap en fonction des limites spécifiées par le paramètre (bmovie, bmax ou bframe). Utilisez printAsBitmapNum() pour imprimer des clips qui contiennent des images avec des objets qui appliquent des effets de transparence ou de couleur. L'action printAsBitmapNum() imprime à la résolution la plus élevée disponible, de façon à préserver la plus haute définition possible et la qualité autant que faire se peut. Pour calculer la taille du fichier imprimable d'une image à imprimer au format bitmap, multipliez la largeur en pixels par la hauteur en pixels par la résolution de l'imprimante. Si votre clip ne contient pas de transparences alpha ou d'effets de couleur, utilisez printNum() pour de meilleurs résultats qualitatifs. Si vous utilisez bmovie pour le paramètre boundingBox, mais n'associez pas d'étiquette #b à une image, la zone d'impression est déterminée par la taille de la scène du clip chargé. (Le clip chargé n'hérite pas de la taille de la scène de l'animation principale.) Tous les éléments imprimables d'un clip doivent avoir été chargés de façon intégrale avant le début de l'impression. La fonction d'impression de Flash Player prend en charge les imprimantes PostScript et non PostScript. Les imprimantes non PostScript convertissent les vecteurs en bitmaps. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres - Le niveau de Flash Player à imprimer. Par défaut, l'ensemble des images du niveau sont imprimées. Si vous souhaitez imprimer des images spécifiques du niveau, associez une étiquette #p à ces images. level:Number boundingBox:String - Un modificateur qui définit la zone d'impression du clip. Placez ce paramètre entre guillemets simples ou doubles (' ou ") et spécifiez l'une des valeurs suivantes : ■ Désigne le cadre de délimitation d'une image spécifique dans un clip en tant que zone d'impression pour l'ensemble des images imprimables du clip. Associez une étiquette d'image #b à l'image dont vous souhaitez utiliser le cadre de délimitation en tant que zone imprimable. ■ bmax Désigne une combinaison de l'ensemble des cadres de délimitation de l'ensemble des bmovie images imprimables en tant que zone d'impression. Spécifiez le paramètre bmax lorsque la taille des images imprimables de votre clip varie. 96 Chapitre 1: Eléments du langage ActionScript ■ bframe Indique que le cadre délimitation de chaque image imprimable doit servir de zone d'impression pour cette image. Ceci change la zone d'impression de chaque image et met l'objet à l'échelle de la zone d'impression. Utilisez bframe si vous avez des objets de différentes tailles dans chaque image et souhaitez que chaque objet remplisse la page imprimée. Exemple L'exemple suivant imprime le contenu de la scène lorsque l'utilisateur clique sur le bouton La zone à imprimer est définie par le cadre de délimitation de l'image. myBtn_btn. myBtn_btn.onRelease = function(){ printAsBitmapNum(0, "bframe") }; Voir également Fonction print, Fonction printAsBitmap, PrintJob, Fonction printNum Fonction printNum printNum(level:Number, boundingBox:String) : Void Imprime le niveau dans Flash Player en fonction des limites spécifiées par le paramètre boundingBox (bmovie, bmax, bframe). Si vous souhaitez imprimer des images spécifiques du clip cible, associez une étiquette #p à ces images. Bien que printNum() permette de bénéficier d'une meilleure qualité que printAsBitmapNum(), vous ne pouvez pas utiliser printNum() pour imprimer des animations comportant des transparences alpha ou des effets spéciaux de couleur. Si vous utilisez bmovie pour le paramètre boundingBox, mais n'associez pas d'étiquette #b à une image, la zone d'impression est déterminée par la taille de la scène du clip chargé. (Le clip chargé n'hérite pas de la taille de la scène de l'animation principale.) Tous les éléments imprimables d'un clip doivent avoir été chargés de façon intégrale avant le début de l'impression. La fonction d'impression de Flash Player prend en charge les imprimantes PostScript et non PostScript. Les imprimantes non PostScript convertissent les vecteurs en bitmaps. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres - Le niveau de Flash Player à imprimer. Par défaut, l'ensemble des images du niveau sont imprimées. Si vous souhaitez imprimer des images spécifiques du niveau, associez une étiquette #p à ces images. level:Number Fonctions globales 97 boundingBox:String - Un modificateur qui définit la zone d'impression du clip. Placez ce paramètre entre guillemets simples ou doubles (' ou ") et spécifiez l'une des valeurs suivantes : ■ Désigne le cadre de délimitation d'une image spécifique dans un clip en tant que zone d'impression pour l'ensemble des images imprimables du clip. Associez une étiquette d'image #b à l'image dont vous souhaitez utiliser le cadre de délimitation en tant que zone imprimable. ■ bmax Désigne une combinaison de l'ensemble des cadres de délimitation de l'ensemble des bmovie images imprimables en tant que zone d'impression. Spécifiez le paramètre bmax lorsque la taille des images imprimables de votre clip varie. ■ bframe Indique que le cadre délimitation de chaque image imprimable doit servir de zone d'impression pour cette image. Ceci change la zone d'impression de chaque image et met l'objet à l'échelle de la zone d'impression. Utilisez bframe si vous avez des objets de différentes tailles dans chaque image et souhaitez que chaque objet remplisse la page imprimée. Voir également Fonction print, Fonction printAsBitmap, Fonction printAsBitmapNum, PrintJob Fonction random random(value:Number) : Number Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode Math.random(). Renvoie un entier aléatoire compris entre 0 et un inférieur au nombre entier spécifié dans le paramètre value. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres value:Number - Un entier. Renvoie Number - Un entier aléatoire. Exemple L'utilisation suivante de la fonction random() renvoie une valeur de 0, 1, 2, 3 ou 4 : random(5); 98 Chapitre 1: Eléments du langage ActionScript Voir également random (méthode Math.random) Fonction removeMovieClip removeMovieClip(target:Object) Supprime le clip spécifié. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - Le chemin cible d'une occurrence de clip créée avec ou le nom d'occurrence d'un clip créé avec MovieClip.attachMovie(), MovieClip.duplicateMovieClip(), ou MovieClip.createEmptyMovieClip(). target:Object duplicateMovieClip() Exemple L'exemple suivant crée un nouveau clip intitulé myClip_mc et le duplique. Le second clip est appelé newClip_mc. Les images sont chargées dans les deux clips. Lorsque l'utilisateur clique sur un bouton, button_mc, le clip dupliqué est retiré de la scène. this.createEmptyMovieClip("myClip_mc", this.getNextHighestDepth()); myClip_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); duplicateMovieClip(this.myClip_mc, "newClip_mc", this.getNextHighestDepth()); newClip_mc.loadMovie("http://www.helpexamples.com/flash/images/ image1.jpg"); newClip_mc._x = 200; this.button_mc.onRelease = function() { removeMovieClip(this._parent.newClip_mc); }; Voir également Fonction duplicateMovieClip, duplicateMovieClip (méthode MovieClip.duplicateMovieClip), attachMovie (méthode MovieClip.attachMovie), removeMovieClip (méthode MovieClip.removeMovieClip), createEmptyMovieClip (méthode MovieClip.createEmptyMovieClip) Fonctions globales 99 Fonction setInterval setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number Appelle une fonction ou une méthode d'un objet à des intervalles périodiques pendant la lecture d'un fichier SWF. Vous pouvez utiliser setInterval() pour exécuter une fonction de manière répétitive dans le temps. Utilisez les conseils suivants lorsque vous utilisez setInterval() : ■ Identifiez le domaine de la fonction appelée. ■ Identifiez le domaine dans lequel l'ID d'intervalle (la valeur renvoyée de setInterval()) a été défini. ■ Supprimez les intervalles définis avant d'en déterminer de nouveaux. Ces conseils sont décrits de façon plus détaillée dans les paragraphes qui suivent. Identifiez le domaine de la fonction appelée. Pour identifier le domaine de la fonction appelée, définissez l'objet sur lequel la méthode setInterval() peut s'exécuter (le domaine de l'objet) comme étant le premier paramètre et le nom de la méthode que vous souhaitez exécuter comme étant le deuxième paramètre (comme indiqué dans la deuxième signature). Ceci permet de s'assurer que la méthode voulue s'exécute à partir du domaine de la référence d'objet transmise. Lorsque cette méthode est ainsi exécutée, elle permet de faire référence à des variables de membre de l'objet utilisant le mot-clé this. Identifiez le domaine dans lequel l'identificateur d'intervalle a été défini. Pour identifier le domaine dans lequel l'identificateur d'intervalle (intervalId) a été défini, vous pouvez l'affecter à une variable de membre du domaine de l'objet transmis à setInterval(). La fonction appelée peut ainsi localiser l'identificateur d'intervalle au niveau de this.intervalId. Supprimez les intervalles précédemment définis. Pour supprimer les intervalles définis avant d'en déterminer de nouveaux, vous devez généralement appeler clearInterval() avant setInterval(). Ceci vous évite d'écraser ou de détruire votre variable intervalId, la seule référence à l'intervalle en cours d'exécution. Pour appeler clearInterval() avant setInterval(), le script d'initialisation et le script exécuté doivent avoir accès à intervalId, comme indiqué dans les exemples. Remarque : Veillez à appeler clearInterval() pour arrêter la lecture en boucle du script. Disponibilité : Flash Player 6 ; ActionScript 1.0 100 Chapitre 1: Eléments du langage ActionScript Paramètres functionReference:Function interval:Number - Une référence à la fonction à appeler. - Le nombre de millisecondes séparant les appels de la fonction ou methodName transmise. functionReference Si la valeur d'interval est inférieure à la cadence d'images du fichier SWF (par exemple, 10 images par seconde [fps] correspond à des intervalles de 100 millisecondes), la fonction d'intervalle est appelée aussi près que possible de la valeur interval. L'exécution de scripts longs, utilisant beaucoup de mémoire, au cours d'un intervalle entraîne des retards. Si la fonction appelée modifie les éléments visuels, vous devez utiliser la fonction updateAfterEvent() afin de vous assurer que l'écran est régulièrement actualisé. Si la valeur interval est supérieure à la cadence d'images du fichier SWF, la fonction interval n'est appelée que lorsque interval a expiré et que la tête de lecture passe sur l'image suivante, ce qui réduit l'impact à chaque fois que l'écran est actualisé. param:Object [facultatif ] - Paramètres transmis à la fonction envoyée à functionReference ou methodName. Les paramètres multiples doivent être séparés par des virgules : param1 , param2 , ..., paramN objectReference:Object methodName:String - Un objet contenant la méthode spécifiée par methodName. - Une méthode qui existe dans le domaine de l'objet spécifié par objectReference. Renvoie Number - Un entier qui identifie l'intervalle (l'ID d'intervalle) que vous pouvez transmettre à pour annuler l'intervalle. clearInterval() Exemple Exemple 1 : L'exemple suivant trace un message selon un intervalle de 20 millisecondes, jusqu'à 10 fois, puis supprime l'intervalle. Le domaine de l'objet, this, est transmis comme étant le premier paramètre ; le nom de la méthode, executeCallback, comme étant le deuxième. Ceci permet de s'assurer que executeCallback() s'exécute à partir du même domaine que celui du script effectuant l'appel. var var var var intervalId:Number; count:Number = 0; maxCount:Number = 10; duration:Number = 20; function executeCallback():Void { trace("executeCallback intervalId: " + intervalId + " count: " + count); if(count >= maxCount) { Fonctions globales 101 clearInterval(intervalId); } count++; } intervalId = setInterval(this, "executeCallback", duration); Exemple 2 : L'exemple suivant est similaire au premier, à la différence qu'il appelle clearInterval() avant setInterval(). Cette méthode peut empêcher l'obtention de boucles non souhaitées et s'avère particulièrement importante au sein des systèmes basés sur des événements, dans lesquels le script d'initialisation peut être exécuté à plusieurs reprises avant la suppression d'un intervalle spécifique. var var var var intervalId:Number; count:Number = 0; maxCount:Number = 10; duration:Number = 20; function executeCallback():Void { trace("executeCallback intervalId: " + intervalId + " count: " + count); if(count >= maxCount) { clearInterval(intervalId); } count++; } function beginInterval():Void { if(intervalId != null) { trace("clearInterval"); clearInterval(intervalId); } intervalId = setInterval(this, "executeCallback", duration); } beginInterval(); beginInterval(); beginInterval(); Exemple 3 : L'exemple suivant indique comment transmettre un argument personnalisé à la fonction appelée. var intervalId:Number; var count:Number = 0; var maxCount:Number = 10; var duration:Number = 20; var colors:Array = new Array("red", "blue", 102 Chapitre 1: Eléments du langage ActionScript "yellow", "purple", "green", "orange", "salmon", "pink", "lilac", "powder blue", "mint"); function executeCallback(param:String) { trace("executeCallback intervalId: " + intervalId + " count: " + count + " param: " + param); clearInterval(intervalId); if(count < maxCount) { count++; intervalId = setInterval(this, "executeCallback", duration, colors[count]); } } if(intervalId != null) { clearInterval(intervalId); } intervalId = setInterval(this, "executeCallback", duration, colors[count]); Exemple 4 : L'exemple suivant indique comment utiliser correctement setInterval() à partir d'une classe ActionScript 2.0 personnalisée. Remarquez que, comme dans les exemples précédents, le paramètre this est transmis à la fonction setInterval() afin de s'assurer que la méthode appelée s'exécute dans le domaine approprié. class CustomClass { private var intervalId:Number; private var count:Number = 0; private var maxCount:Number = 10; private var duration:Number = 20; public function CustomClass():Void { beginInterval(); } private function beginInterval():Void { if(intervalId != null) { trace("clearInterval"); clearInterval(intervalId); } intervalId = setInterval(this, "executeCallback", duration); Fonctions globales 103 } public function executeCallback():Void { trace("executeCallback intervalId: " + intervalId + " count: " + count); if(count >= maxCount) { clearInterval(intervalId); } count++; } } Dans un nouveau document, instanciez une nouvelle occurrence de la nouvelle classe : var custom:CustomClass = new CustomClass(); Voir également Fonction clearInterval, Fonction updateAfterEvent, Instruction class Fonction setProperty setProperty(target:Object, property:Object, expression:Object) : Void Modifie la valeur des propriétés d'un clip pendant la lecture de ce dernier. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres target:Object - Le chemin du nom d'occurrence du clip dont la propriété doit être définie. property:Object - La propriété à définir. - Soit la nouvelle valeur littérale de la propriété, soit une équation qui reprend la nouvelle valeur de la propriété. expression:Object Exemple Le code ActionScript suivant crée un nouveau clip et charge une image dans celui-ci. Les coordonnées _xet _y sont définies pour le clip à l'aide de setProperty(). Lorsque vous cliquez sur le bouton intitulé right_btn, la coordonnée _x d'un clip nommé params_mc est incrémentée de 20 pixels. this.createEmptyMovieClip("params_mc", 999); params_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); setProperty(this.params_mc, _y, 20); setProperty(this.params_mc, _x, 20); this.right_btn.onRelease = function() { 104 Chapitre 1: Eléments du langage ActionScript setProperty(params_mc, _x, getProperty(params_mc, _x)+20); }; Voir également Fonction getProperty Fonction showRedrawRegions showRedrawRegions(enable:Boolean, [color:Number]) : Void Permet au débogueur de délimiter les zones redessinées de l'écran (c'est-à-dire les zones sales mises à jour). Les contours peuvent également être activés via l'option de menu Redessiner les régions. Disponibilité : Flash Player 8 ; ActionScript 1.0 Paramètres enable:Boolean - Indique si Redessiner les régions doit être activé (true) ou désactivé (false). Lorsque l'option est définie sur true, les rectangles redessinés s'affichent. Lorsque l'option est définie sur false, les rectangles redessinés sont supprimés. color:Number [facultatif ] - La couleur utilisée pour dessiner. La valeur par défaut est rouge : 0xFF0000. Exemple L'exemple suivant illustre la fonction showRedrawRegions. var w:Number = 100; var h:Number = 100; var shape1:MovieClip = createShape("shape1"); shape1.onEnterFrame = function():Void { this._x += 5; this._y += 5; } var shape2:MovieClip = createShape("shape2"); shape2.onEnterFrame = function():Void { this._y += 5; } _global.showRedrawRegions(true); function createShape(name:String):MovieClip { var mc:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); Fonctions globales 105 mc.beginFill(0xFFCC00); mc.moveTo(200, 200); mc.curveTo(300, 200, 300, 100); mc.curveTo(300, 0, 200, 0); mc.curveTo(100, 0, 100, 100); mc.curveTo(100, 200, 200, 200); mc.endFill(); return mc; } Fonction startDrag startDrag(target:Object, [lock:Boolean, left:Number, top:Number, right:Number, bottom:Number]) : Void Rend le clip target déplaçable pendant la lecture de l'animation. Vous ne pouvez déplacer qu'un seul clip à la fois. Après l'exécution d'une opération startDrag(), le clip reste déplaçable jusqu'à ce qu'il soit arrêté de façon explicite par stopDrag() ou jusqu'à ce qu'une action startDrag() soit appelée pour un autre clip. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres target:Object - Le chemin cible du clip à déplacer. [facultatif ] - Une valeur booléenne spécifiant si le clip à déplacer doit être verrouillé au centre de la position de la souris (true) ou verrouillé au point où l'utilisateur a cliqué sur le clip en premier lieu (false). lock:Boolean left,top,right,bottom:Number [facultatif ] - Valeurs relatives aux coordonnées du parent du clip qui spécifient un rectangle de délimitation pour le clip. Exemple L'exemple suivant crée, à l'exécution, un clip pic_mc que les utilisateurs peuvent faire glisser vers l'emplacement voulu en y associant les actions startDrag() et stopDrag(). Une image est chargée dans pic_mc à l'aide de la classe MovieClipLoader. var pic_mcl:MovieClipLoader = new MovieClipLoader(); pic_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth())); var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc) { target_mc.onPress = function() { startDrag(this); }; target_mc.onRelease = function() { stopDrag(); 106 Chapitre 1: Eléments du langage ActionScript }; }; pic_mcl.addListener(listenerObject); Voir également Fonction stopDrag, _droptarget (propriété MovieClip._droptarget), startDrag (méthode MovieClip.startDrag) Fonction stop stop() : Void Arrête le fichier SWF en cours de lecture. Cette fonction sert généralement à contrôler les clips avec des boutons. Disponibilité : Flash Player 2 ; ActionScript 1.0 Voir également Fonction gotoAndStop, gotoAndStop (méthode MovieClip.gotoAndStop) Fonction stopAllSounds stopAllSounds() : Void Arrête tous les sons en cours de diffusion à partir d'un fichier SWF, sans arrêter la tête de lecture. Les sons diffusés en continu sont émis de nouveau lorsque la tête de lecture passe audessus des images contenant ces sons. Disponibilité : Flash Player 3 ; ActionScript 1.0 Exemple Le code suivant crée un champ de texte dans lequel s'affichent les informations ID3 de la chanson. Une nouvelle occurrence de l'objet Sound est créée et votre fichier MP3 est chargé dans le fichier SWF. Les informations ID3 sont extraites du fichier audio. Lorsque l'utilisateur clique sur stop_mc,, le son s'interrompt. Lorsque l'utilisateur clique sur play_mc,, la chanson reprend à partir de la position à laquelle elle a été interrompue. this.createTextField("songinfo_txt", this.getNextHighestDepth, 0, 0, Stage.width, 22); var bg_sound:Sound = new Sound(); bg_sound.loadSound("yourSong.mp3", true); bg_sound.onID3 = function() { songinfo_txt.text = "(" + this.id3.artist + ") " + this.id3.album + " - " + this.id3.track + " - " + this.id3.songname; Fonctions globales 107 for (prop in this.id3) { trace(prop+" = "+this.id3[prop]); } trace("ID3 loaded."); }; this.play_mc.onRelease = function() { /* get the current offset. if you stop all sounds and click the play button, the MP3 continues from where it was stopped, instead of restarting from the beginning. */ var numSecondsOffset:Number = (bg_sound.position/1000); bg_sound.start(numSecondsOffset); }; this.stop_mc.onRelease = function() { stopAllSounds(); }; Voir également Sound Fonction stopDrag stopDrag() : Void Arrête l'opération de déplacement en cours. Disponibilité : Flash Player 4 ; ActionScript 1.0 Exemple Le code suivant, placé dans le scénario principal, arrête le mouvement sur l'occurrence de clip my_mc lorsque l'utilisateur relâche le bouton de la souris : my_mc.onPress = function () { startDrag(this); } my_mc.onRelease = function() { stopDrag(); } Voir également Fonction startDrag, _droptarget (propriété MovieClip._droptarget), startDrag (méthode MovieClip.startDrag), stopDrag (méthode MovieClip.stopDrag) 108 Chapitre 1: Eléments du langage ActionScript Fonction String String(expression:Object) : String Renvoie une chaîne représentant le paramètre spécifié, comme indiqué dans la liste suivante : ■ Si expression est un nombre, la chaîne renvoyée représente le nombre sous forme de texte. ■ Si expression est une chaîne, la chaîne renvoyée est expression. ■ Si expression est un objet, la valeur renvoyée est une chaîne représentant l'objet généré en appelant la propriété string de l'objet ou en appelant Object.toString() en l'absence de ce type de propriété. ■ Si expression est une valeur booléenne, la chaîne renvoyée est "true" ou "false". ■ Si expression est un clip, la valeur renvoyée est le chemin cible du clip avec la notation à barre oblique (/). Si expression est undefined, la fonction renvoie l'une des valeurs suivantes : ■ Dans les fichiers publiés pour Flash Player 6 ou version précédente, le résultat est une chaîne vide (" "). ■ Dans les fichiers publiés pour Flash Player 7 ou version ultérieure, le résultat est undefined. Remarque : La notation avec barre oblique n'est pas prise en charge par ActionScript 2.0. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres expression:Object - Une expression à convertir en chaîne. Renvoie String - Une chaîne. Exemple Dans l'exemple suivant, vous utilisez ActionScript pour convertir les expressions spécifiées en chaîne : var string1:String = String("3"); var string2:String = String("9"); trace(string1+string2); // output: 39 Etant donné que les deux paramètres sont des chaînes, les valeurs sont concaténées au lieu d'être ajoutées. Fonctions globales 109 Voir également toString (méthode Number.toString), toString (méthode Object.toString), String, Opérateur " (séparateur de chaîne) Fonction substring substring(string:String, index:Number, count:Number) : String Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode String.substr(). Extrait une partie d'une chaîne. Cette fonction est de base un tandis que les méthodes de l'objet String sont de base zéro. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres string:String - La chaîne à partir de laquelle il convient d'extraire la nouvelle chaîne. index:Number - Le numéro du premier caractère à extraire. count:Number - Le nombre de caractères à inclure dans la chaîne extraite, caractère d'indice non compris. Renvoie String - La sous-chaîne extraite. Voir également substr (méthode String.substr) Fonction targetPath targetpath(targetObject:Object) : String Renvoie une chaîne contenant le chemin cible d'un objet MovieClip, Button, TextField ou Video. Le chemin cible est renvoyé sous forme de notation par point (.). Pour extraire le chemin cible sous forme de notation à barre oblique (/), utilisez la propriété _target. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres targetObject:Object - Référence (par exemple, _root ou _parent) à l'objet pour lequel le chemin cible est extrait. Il peut s'agir d'un objet MovieClip, Button ou TextField. 110 Chapitre 1: Eléments du langage ActionScript Renvoie String - Une chaîne contenant le chemin cible de l'objet spécifié. Exemple L'exemple suivant présente le chemin cible d'un clip dès la fin de son chargement : this.createEmptyMovieClip("myClip_mc", this.getNextHighestDepth()); trace(targetPath(myClip_mc)); // _level0.myClip_mc Voir également Fonction eval Fonction tellTarget tellTarget(target:String) { statement(s); } Déconseillée à partir de Flash Player 5. Macromedia vous recommande d'utiliser une notation de type point (.) et l'instruction with. Applique les instructions spécifiées dans le paramètre statements au scénario spécifié dans le paramètre target. L'action tellTarget est particulièrement utile pour les contrôles de navigation. Affectez la fonction tellTarget aux boutons qui permettent d'arrêter ou de démarrer les clips ailleurs sur la scène. Vous pouvez également contraindre les clips à accéder à une image spécifique dans ce clip. Par exemple, vous pouvez affecter la fonction tellTarget aux boutons qui permettent d'arrêter ou de démarrer les clips sur la scène ou inviter les clips à atteindre une image spécifique. Dans Flash 5 ou version ultérieure, vous pouvez utiliser une notation de type point (.) au lieu de l'action tellTarget. Vous pouvez utiliser l'action with pour publier plusieurs actions dans le même scénario. Vous pouvez utiliser l'action with pour cibler l'objet de votre choix, tandis que l'action tellTarget peut uniquement cibler les clips. Disponibilité : Flash Player 3 ; ActionScript 1.0 Paramètres target:String statement(s) - Une chaîne qui spécifie le chemin cible du scénario à contrôler. - Les instructions à exécuter lorsque la condition est true. Fonctions globales 111 Exemple Cette instruction tellTarget contrôle la balle de l'occurrence de clip sur le scénario principal. L'image 1 de l'occurrence balle est vide et est associée à une action stop() : elle n'est donc pas visible sur la scène. Lorsque vous cliquez sur le bouton permettant d'effectuer l'action suivante, tellTarget indique à la tête de lecture de la balle d'atteindre l'image 2, où l'animation démarre : on(release) { tellTarget("_parent.ball") { gotoAndPlay(2); } } L'exemple suivant utilise une notation de type point (.) pour obtenir les mêmes résultats : on(release) { _parent.ball.gotoAndPlay(2); } Si vous devez émettre plusieurs commandes sur l'occurrence de balle, vous pouvez utiliser l'action with, comme indiqué dans l'instruction suivante : on(release) { with(_parent.ball) { gotoAndPlay(2); _alpha = 15; _xscale = 50; _yscale = 50; } } Voir également Instruction with Fonction toggleHighQuality toggleHighQuality() Déconseillée à partir de Flash Player 5. Il est recommandé d'utiliser la méthode _quality. Active et désactive l'anticrénelage dans Flash Player. L'anticrénelage adoucit les bords des objets et ralentit la lecture du fichier SWF. Cette action affecte tous les fichiers SWF dans Flash Player. Disponibilité : Flash Player 2 ; ActionScript 1.0 112 Chapitre 1: Eléments du langage ActionScript Exemple Le code suivant peut être appliqué à un bouton qui permet d'activer et de désactiver l'anticrénelage lorsque l'utilisateur clique dessus : on(release) { toggleHighQuality(); } Voir également , _quality, propriété Fonction trace trace(expression:Object) Vous pouvez utiliser Flash Debug Player pour capturer les sorties de la fonction trace() et afficher le résultat. Cette instruction permet d'écrire des notes de programmation ou d'afficher des messages dans le panneau Sortie pendant le test d'un fichier SWF. Utilisez le paramètre expression pour vérifier l'existence d'une condition ou pour afficher des valeurs dans le panneau de sortie. L'instruction trace() est similaire à la fonction alert de JavaScript. Vous pouvez également utiliser la commande Omettre les actions Trace de la boîte de dialogue Paramètres de publication pour supprimer les actions trace() du fichier SWF exporté. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres expression:Object - Une expression à évaluer. Lorsqu'un fichier SWF s'exécute dans l'outil de programmation Flash (avec la commande Tester l'animation), la valeur du paramètre s'affiche dans le panneau de sortie. expression Exemple L'exemple suivant utilise une instruction trace() pour afficher dans le panneau de sortie les méthodes et propriétés du champ de texte intitulé error_txt créé de manière dynamique : this.createTextField("error_txt", this.getNextHighestDepth(), 0, 0, 100, 22); for (var i in error_txt) { trace("error_txt."+i+" = "+error_txt[i]); } /* output: error_txt.styleSheet = undefined error_txt.mouseWheelEnabled = true Fonctions globales 113 error_txt.condenseWhite = false ... error_txt.maxscroll = 1 error_txt.scroll = 1 */ Fonction unescape unescape(string:String) : String Evalue le paramètre x en tant que chaîne, décode la chaîne qui est au format codé en URL (en convertissant toutes les séquences hexadécimales en caractères ASCII) et renvoie la chaîne. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres string:String - Une chaîne comportant des séquences d'échappement hexadécimales. Renvoie String - Une chaîne décodée à partir d'un paramètre codé au format URL. Exemple L'exemple suivant illustre le processus de conversion escape/unescape : var email:String = "user@somedomain.com"; trace(email); var escapedEmail:String = escape(email); trace(escapedEmail); var unescapedEmail:String = unescape(escapedEmail); trace(unescapedEmail); Le résultat suivant s'affiche dans le panneau de sortie. user@somedomain.com user%40somedomain%2Ecom user@somedomain.com Fonction unloadMovie unloadMovie(target:MovieClip) : Void unloadMovie(target:String) : Void Supprime le clip qui a été chargé par l'intermédiaire de la fonction loadMovie() de Flash Player. Pour décharger un clip chargé avec loadMovieNum(), utilisez unloadMovieNum() au lieu de unloadMovie(). Disponibilité : Flash Player 3 ; ActionScript 1.0 114 Chapitre 1: Eléments du langage ActionScript Paramètres - Le chemin cible d'un clip. Ce paramètre peut être de type String (tel que « my_mc » ) ou une référence directe à l'occurrence de clip (par exemple my_mc). Les paramètres qui peuvent accepter plusieurs types de données sont répertoriés sous le type Object. target:Object Exemple L'exemple suivant crée un nouveau clip intitulé pic_mc et charge une image dans celui-ci. Elle est chargée à l'aide de la classe MovieClipLoader. Lorsque vous cliquez sur l'image, le clip est déchargé du fichier SWF : var pic_mcl:MovieClipLoader = new MovieClipLoader(); pic_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth())); var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc) { target_mc.onRelease = function() { unloadMovie(pic_mc); /* or you could use the following, which refers to the movie clip referenced by 'target_mc'. */ //unloadMovie(this); }; }; pic_mcl.addListener(listenerObject); Voir également loadMovie (méthode MovieClip.loadMovie), unloadClip (méthode MovieClipLoader.unloadClip) Fonction unloadMovieNum unloadMovieNum(level:Number) : Void Supprime un fichier SWF ou une image qui a été chargée par l'intermédiaire de la fonction loadMovieNum() de Flash Player. Pour décharger un fichier SWF ou une image chargée avec MovieClip.loadMovie(), utilisez unloadMovie() au lieu de unloadMovieNum(). Disponibilité : Flash Player 3 ; ActionScript 1.0 Paramètres level:Number - Le niveau (_level N ) d'une animation chargée. Fonctions globales 115 Exemple L'exemple suivant charge une image dans un fichier SWF. Lorsque vous cliquez sur unload_btn, le contenu chargé est supprimé. loadMovieNum("yourimage.jpg", 1); unload_btn.onRelease = function() { unloadMovieNum(1); } Voir également Fonction loadMovieNum, Fonction unloadMovie, loadMovie (méthode MovieClip.loadMovie) Fonction updateAfterEvent updateAfterEvent() : Void Met à jour l'affichage (indépendamment du nombre d'images par seconde défini pour l'animation) lorsque vous l'appelez à partir d'un gestionnaire onClipEvent() ou dans le cadre d'une fonction ou d'une méthode que vous transmettez à setInterval(). Flash ignore les appels de mise à jour de la fonction updateAfterEvent qui ne font pas partie d'un gestionnaire onClipEvent() ou bien d'une fonction ou d'une méthode transmise à setInterval(). Cette fonction est uniquement compatible avec certains gestionnaires Mouse et MovieClip : les gestionnaires mouseDown, mouseUp, mouseMove, keyDown et keyUp de la classe Mouse ; les gestionnaires onMouseMove, onMouseDown, onMouseUp, onKeyDown et onKeyUp de la classe MovieClip. Elle n'est pas compatible avec la classe Key. Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple L'exemple suivant montre comment créer un curseur personnalisé intitulé cursor_mc. ActionScript est utilisé pour remplacer le curseur de la souris par cursor_mc. Ensuite, la fonction updateAfterEvent() est utilisée pour actualiser la scène de façon continue afin de lisser le mouvement du curseur. Mouse.hide(); cursor_mc.onMouseMove = function() { this._x = this._parent._xmouse; this._y = this._parent._ymouse; updateAfterEvent(); }; Voir également Gestionnaire onClipEvent, Fonction setInterval 116 Chapitre 1: Eléments du langage ActionScript Propriétés globales Les propriétés globales sont disponibles dans tous les scripts et sont accessibles à tous les scénarios et domaines de votre document. Par exemple, les propriétés globales permettent d'accéder aux scénarios des autres clips chargés, à la fois relatifs (_parent) et absolus (_root). Elles permettent également de restreindre (this) ou d'étendre (super) le domaine. Vous pouvez utiliser les propriétés globales pour régler les paramètres d'exécution, tels que la compatibilité avec les lecteurs d'écran, la qualité de la lecture et la taille du tampon audio. Récapitulatif des propriétés globales Modificateurs Propriété Description _accProps Permet de contrôler les options d'accessibilité relatives aux lecteurs d'écran pour les fichiers SWF, les clips, les boutons, les champs de texte dynamique et les champs de texte de saisie lors de l'exécution. _focusrect Propriété (globale) ; spécifie si un rectangle jaune doit s'afficher autour du bouton ou du clip qui a le focus du clavier. _global Une référence à l'objet global qui contient les principales classes ActionScript, telles que String, Object, Math et Array. _highquality Déconseillédepuis Flash Player 5. Cette propriété a été déconseillée en faveur de_quality. Spécifie le niveau d'anti-aliasing appliqué au fichier SWF actuel. _level Une référence au scénario racine de _level N. maxscroll Déconseillédepuis Flash Player 5. Cette propriété a été déconseillée en faveur deTextField.maxscroll. Indique le numéro de ligne de la ligne supérieure de texte visible dans un champ de texte lorsque la dernière ligne du champ est également visible. _parent Spécifie ou renvoie une référence au clip ou à l'objet qui contient le clip ou l'objet actuel. _quality Définit ou extrait la qualité du rendu appliqué à un clip. _root Spécifie ou renvoie une référence au scénario du clip racine. Propriétés globales 117 Modificateurs Propriété Description scroll Déconseillédepuis Flash Player 5. Cette propriété a été déconseillée en faveur deTextField.scroll. Contrôle l'affichage des informations dans un champ de texte associé à une variable. _soundbuftime Établit le nombre de secondes de son en diffusion continue à placer en mémoire tampon. this Fait référence à un objet ou une occurrence de clip. _accProps, propriété _accProps.propertyName instanceName._accProps.propertyName Permet de contrôler les options d'accessibilité relatives aux lecteurs d'écran pour les fichiers SWF, les clips, les boutons, les champs de texte dynamique et les champs de texte de saisie lors de l'exécution. Ces propriétés remplacent les paramètres correspondants, disponibles dans le panneau Accessibilité lors de la programmation. Pour appliquer les modifications de ces propriétés, vous devez appeler Accessibility.updateProperties(). Pour plus de détails sur le panneau Accessibilité, consultez la section « Panneau Accessibilité de Flash » dans le guide Utilisation de Flash. Pour spécifier si le lecteur doit s'exécuter dans un environnement qui prend en charge les fonctions d'accessibilité, utilisez la méthode System.capabilities.hasAccessibility(). 118 Chapitre 1: Eléments du langage ActionScript Le tableau suivant répertorie le nom et le type de données de chaque propriété _accProps, son paramètre équivalent dans le panneau Accessibilité et les types d'objet auxquels la propriété peut s'appliquer. Le terme logique inverse signifie que le paramètre de la propriété est l'inverse du paramètre correspondant dans le panneau Accessibilité. Par exemple, la définition de la propriété silent sur true (vrai) revient à désélectionner Rendre une animation accessible ou Rendre l'objet accessible. Propriété Type de données Equivalent dans le panneau Accessibilité S'applique à silent Boolean Rendre une animation Fichiers SWF entiers accessible/Rendre Clips Boutons Texte l'objet accessible dynamique Texte (logique inverse) d'entrée forceSimple Boolean Rendre les objets enfants accessibles (logique inverse) Fichiers SWF entiers Clips name String Nom Fichiers SWF entiers Clips Boutons Texte d'entrée description String Description Fichiers SWF entiers Clips Boutons Texte dynamique Texte d'entrée shortcut String Raccourci Clips Boutons Texte d'entrée Pour le champ Raccourci, utilisez des noms sous la forme Ctrl+A. L'ajout d'un raccourci clavier au panneau Accessibilité ne crée pas un raccourci clavier ; il signale simplement la présence d'un raccourci aux lecteurs d'écran. Pour plus d'informations sur l'affectation d'un raccourci clavier à un objet accessible, consultez la section Key.addListener(). Pour spécifier des paramètres qui correspondent au paramètre Index de tabulation dans le panneau Accessibilité, utilisez les propriétés Button.tabIndex, MovieClip.tabIndex ou TextField.tabIndex. Il est impossible de spécifier un paramètre Etiquetage auto lors de l'exécution. Pour faire référence à l'objet _accProps représentant le document Flash, omettez le paramètre La valeur _accProps doit être un objet. Ceci signifie que si aucun objet _accProps n'existe, vous devez en créer un, comme indiqué dans l'exemple suivant, avant de pouvoir affecter des valeurs aux propriétés de l'objet _accProps : instanceName. Propriétés globales 119 if ( _accProps == undefined ) { _accProps = new Object(); } _accProps.name = "My SWF file"; Lorsque _accProps est utilisé dans le paramètre instanceName, les modifications apportées aux propriétés _accProps s'appliquent à l'ensemble du fichier SWF. Par exemple, le code suivant définit la propriété name de la fonction d'accessibilité relative à l'ensemble du fichier SWF sur la chaîne "Pet Store", puis appelle Accessibility.updateProperties() pour provoquer ce changement : _accProps.name = "Pet Store"; Accessibility.updateProperties(); Par contraste, le code suivant définit la propriété name d'un clip, avec le nom d'occurrence price_mc, sur la chaîne "Price" : price_mc._accProps.name = "Price"; Accessibility.updateProperties(); Si vous spécifiez plusieurs propriétés d'accessibilité, apportez autant de changements que nécessaire avant d'appeler Accessibility.updateProperties(), au lieu de l'appeler après chaque instruction de propriété, comme indiqué dans l'exemple suivant : _accProps.name = "Pet Store"; animal_mc._accProps.name = "Animal"; animal_mc._accProps.description = "Cat, dog, fish, etc."; price_mc._accProps.name = "Price"; price_mc._accProps.description = "Cost of a single item"; Accessibility.updateProperties(); Si vous ne spécifiez pas de propriété d'accessibilité pour un document ou un objet, toutes les valeurs définies dans le panneau Accessibilité sont implémentées. Après avoir spécifié une propriété d'accessibilité, vous ne pouvez pas rétablir une valeur définie dans le panneau Accessibilité. Cependant, vous pouvez définir la propriété sur sa valeur par défaut (false pour les valeurs booléennes ; des chaînes vides pour les valeurs de type string) en supprimant la propriété de l'objet _accProps, comme indiqué dans l'exemple suivant : my_mc._accProps.silent = true; // set a property // other code here delete my_mc._accProps.silent; // revert to default value 120 Chapitre 1: Eléments du langage ActionScript La valeur _accProps doit être un objet. Ceci signifie que si aucun objet _accProps n'existe, vous devez en créer un, avant de pouvoir affecter des indices aux propriétés de l'objet _accProps. if (_accProps == undefined) { _accProps = new Object(); } _accProps.name = "My movie"; Disponibilité : Flash Player 6,0,65,0; ActionScript 1.0 Paramètres - Nom de propriété d'accessibilité (consultez la description suivante pour connaître les noms valides). instanceName propertyName:Boolean or String instanceName:String - Nom d'occurrence affecté à une occurrence de clip, un bouton, un champ de texte dynamique ou un champ de texte de saisie. Pour faire référence à l'objet _accProps représentant le document Flash, omettez le paramètre instanceName. Exemple Si vous modifiez une image et souhaitez mettre à jour sa description d'accessibilité, vous pouvez utiliser le code ActionScript suivant : my_mc.gotoAndStop(2); if (my_mc._accProps == undefined ) { my_mc._accProps = new Object(); } my_mc._accProps.name = "Photo of Mount Rushmore"; Accessibility.updateProperties(); Voir également isActive (méthode Accessibility.isActive), updateProperties (méthode Accessibility.updateProperties), hasAccessibility (propriété capabilities.hasAccessibility) Propriétés globales 121 _focusrect, propriété _focusrect = Boolean; Spécifie si un rectangle jaune doit s'afficher autour du bouton ou du clip qui a le focus du clavier. Si _focusrectest défini sur sa valeur par défaut, true (vrai), un rectangle jaune entoure le bouton ou le clip qui a le focus, lorsque l'utilisateur appuie sur la touche de tabulation pour parcourir les objets d'un fichier SWF. Spécifiez false (faux) si vous ne souhaitez pas afficher ce rectangle jaune. Cette propriété globale peut être remplacée pour des instances spécifiques. Si la propriété _focusrect est définie sur false (faux), le comportement par défaut de tous les boutons et clips est tel que la navigation au clavier se limite à la touche Tab. Toutes les autres touches, ce qui inclut la touche Entrée et les touches directionnelles, sont ignorées. Pour restaurer l'intégralité de l'accès clavier, vous devez définir _focusrect sur true (vrai). Pour restaurer les fonctionnalités de clavier complet d'un bouton ou d'un clip spécifique, vous pouvez annuler cette propriété globale à l'aide de Button._focusrectou de MovieClip._focusrect. Remarque : Si vous utilisez un composant, puis si FocusManager prend le relais de Flash Player pour la gestion du focus, incluez cette propriété globale. Disponibilité : Flash Player 4 ; ActionScript 1.0 Exemple L'exemple suivant démontre comment masquer le rectangle jaune autour des occurrences d'un fichier SWF lorsqu'elles ont le focus dans une fenêtre de navigateur. Créez des boutons ou clips et ajoutez le code ActionScript suivant dans l'image 1 du scénario : _focusrect = false; Définissez les paramètres de publication sur Flash Player 6, puis testez le fichier SWF dans une fenêtre de navigateur en pointant sur Fichier > Aperçu avant publication > HTML. Attribuez le focus au fichier SWF en cliquant sur celui-ci dans la fenêtre de navigateur, puis utilisez la touche Tab pour appliquer le focus à chaque occurrence. Si vous appuyez sur la touche Entrée ou Espace lorsque la propriété _focusrect est désactivée, cette opération ne permet pas d'appeler le gestionnaire d'événements onRelease. En revanche, celui-ci est appelé lorsque la propriété _focusrect est activée ou définie sur true. Voir également _focusrect (propriété Button._focusrect), _focusrect (propriété MovieClip._focusrect) 122 Chapitre 1: Eléments du langage ActionScript propriété _global _global.identifier Une référence à l'objet global qui contient les principales classes ActionScript, telles que String, Object, Math et Array. Par exemple, vous pouvez créer une bibliothèque qui est exposée en tant qu'objet global ActionScript, similaire à l'objet Math ou Date. Contrairement aux variables et aux fonctions déclarées dans le scénario ou en local, les variables et les fonctions globales restent visibles pour tous les scénarios et les domaines du fichier SWF, pourvues qu'elles ne soient pas masquées par des identificateurs portant le même nom dans les domaines internes. Remarque : Quand vous définissez une variable globale, vous devez utiliser le nom entièrement qualifié de la variable, par ex. _global.variableName. Le non respect de cette règle créera une variable locale du même nom qui masque la variable globale que vous essayez de définir. Renvoie Une référence à l'objet global qui contient les principales classes ActionScript, telles que String, Object, Math et Array. Disponibilité : Flash Player 6 ; ActionScript 1.0 Exemple L'exemple suivant crée une fonction de haut niveau, factorial(),, accessible à tous les scénarios et domaines d'un fichier SWF : _global.factorial = function(n:Number) { if(n <= 1) { return 1; } else { return n * factorial(n - 1); } } trace(factorial(1)); trace(factorial(2)); trace(factorial(3)); trace(factorial(4)); // // // // 1 2 6 24 L'exemple suivant illustre la façon dont des résultats inattendus sont obtenus si vous ne pouvez pas utiliser le nom complet de la variable lors de la définition de la valeur d'une variable globale : _global.myVar = "globalVariable"; trace(_global.myVar); // globalVariable trace(myVar); // globalVariable myVar = "localVariable"; trace(_global.myVar); // globalVariable Propriétés globales 123 trace(myVar); // localVariable Voir également Instruction var, Instruction set variable _highquality, propriété _highquality Déconseillédepuis Flash Player 5. Cette propriété a été déconseillée en faveur de_quality. Spécifie le niveau d'anti-aliasing appliqué au fichier SWF actuel. Spécifiez 2 (meilleure qualité) pour bénéficier de la meilleure qualité possible et activer le lissage de façon permanente. Spécifiez 1 (haute qualité) pour procéder à l'anti-aliasing ; ceci permet de lisser les bitmaps si le fichier SWF ne contient pas d'animation. Spécifiez 0 (faible qualité) pour empêcher l'anti-aliasing. Disponibilité : Flash Player 4 ; ActionScript 1.0 Exemple Le code ActionScript suivant est placé sur le scénario principal et définit la propriété qualité globale de sorte qu'elle applique toujours le lissage des bitmaps dans les fichiers non animés. _highquality = 1; Voir également _quality, propriété _level, propriété _levelN Une référence au scénario racine de _level N . Vous devez utiliser loadMovieNum() pour charger des fichiers SWF dans Flash Player avant d'utiliser la propriété _levelpour les cibler. Vous pouvez également utiliser _level N pour cibler un fichier SWF au niveau affecté par N. Le fichier SWF initial qui est chargé dans une occurrence de Flash Player est chargé automatiquement dans _level0. Le fichier SWF dans _level0 définit le débit d'images, la couleur d'arrière-plan et la taille d'image de tous les fichiers SWF chargés par la suite. Les fichiers SWF sont alors empilés dans les niveaux situés au-dessus du fichier SWF de _level0. 124 Chapitre 1: Eléments du langage ActionScript Vous devez affecter un niveau à chaque fichier SWF que vous chargez dans Flash Player avec loadMovieNum(). L'ordre d'affectation des niveaux n'est pas important. Si vous affectez un niveau qui contient déjà un fichier SWF (ce qui inclut _level0), le fichier SWF de ce niveau est purgé et remplacé par le nouveau fichier SWF. Disponibilité : Flash Player 4 ; ActionScript 1.0 Exemple L'exemple suivant arrête la tête de lecture dans le scénario principal du fichier SWF sub.swf chargé dans _level9. Le fichier sub.swf contient une animation et se trouve dans le même répertoire que le document incluant le code ActionScript suivant : loadMovieNum("sub.swf", 9); myBtn_btn.onRelease = function() { _level9.stop(); }; Dans l'exemple précédent, vous pouvez remplacer _level9.stop() par le code suivant : _level9.gotoAndStop(5); Cette action place la tête de lecture du scénario principal du fichier SWF chargé dans _level9 sur l'image 5 au lieu de l'arrêter. Voir également Fonction loadMovie, swapDepths (méthode MovieClip.swapDepths) maxscroll, propriété variable_name.maxscroll Déconseillédepuis Flash Player 5. Cette propriété a été déconseillée en faveur deTextField.maxscroll. Indique le numéro de ligne de la ligne supérieure de texte visible dans un champ de texte lorsque la dernière ligne du champ est également visible. La propriété maxscroll travaille conjointement avec la propriété scroll pour contrôler la façon dont les informations apparaissent dans un champ de texte. Cette propriété peut être récupérée mais pas modifiée. Disponibilité : Flash Player 4 ; ActionScript 1.0 Voir également maxscroll (propriété TextField.maxscroll), scroll (propriété TextField.scroll) Propriétés globales 125 _parent, propriété _parent.property _parent._parent.property Spécifie ou renvoie une référence au clip ou à l'objet qui contient le clip ou l'objet actuel. L'objet actuel est l'objet qui contient le code ActionScript faisant référence à _parent. Utilisez _parent pour spécifier un chemin relatif vers les clips ou les objets situés au-dessus du clip ou de l'objet actuel. Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple Dans l'exemple suivant, un clip portant le nom d'occurrence square_mc est placé sur la scène. Un autre clip portant le nom d'occurrence circle_mc figure dans ce clip. Le code ActionScript suivant vous permet de modifier l'occurrence circle_mc (à savoir square_mc) lorsque vous cliquez sur le cercle. Lorsque vous utilisez un adressage relatif (_parent au lieu de _root), il peut être judicieux d'utiliser le bouton Insérer un chemin cible dans le panneau Actions en premier. this.square_mc.circle_mc.onRelease = function() { this._parent._alpha -= 5; }; Voir également _root, propriété, Fonction targetPath _quality, propriété _quality:String Définit ou extrait la qualité du rendu appliqué à un clip. Les polices de périphérique sont toujours aliasées, ce qui implique qu'elles ne sont pas affectées par la propriété _quality. 126 Chapitre 1: Eléments du langage ActionScript La propriété _quality peut être définie par les valeurs du tableau suivant. Valeur Description Anticrénelage des graphiques Lissage des bitmaps "LOW" " LOW " Qualité de rendu inférieure. Les graphiques ne sont pas anticrénelés. Les bitmaps ne sont pas lissées. "MEDIUM" Qualité de rendu moyenne. Ce niveau de qualité convient aux animations qui ne contiennent pas de texte. Les graphiques sont anticrénelés en utilisant une grille de 2 x 2 pixels. Flash Player 8 : Les bitmaps sont lissées sur la base du paramètre smoothing utilisé dans les appels MovieClip.attachBitma p() et MovieClip.beginBitmap Fill(). Flash Player 6 et 7 : Les bitmaps ne sont pas lissées. "HIGH" Qualité de rendu supérieure. Il s'agit du paramètre de qualité de rendu par défaut de Flash. Les graphiques sont anticrénelés en utilisant une grille de 4 x 4 pixels. Flash Player 8 : Les bitmaps sont lissées sur la base du paramètre smoothing utilisé dans les appels MovieClip.attachBitma p() et MovieClip.beginBitmap Fill(). Flash Player 6 et 7 : Les bitmaps sont lissées si le clip est statique. Propriétés globales 127 Valeur Description Anticrénelage des graphiques Lissage des bitmaps "BEST" Très haute qualité de rendu. Les graphiques sont Flash Player 8 : Les anticrénelés en bitmaps sont lissées utilisant une grille de 4 sur la base du x 4 pixels. paramètre smoothing utilisé dans les appels MovieClip.attachBitma p() et MovieClip.beginBitmap Fill(). Quand smoothing est réglé sur "Best", le rendu est de qualité supérieure quand le clip est réduit à l'échelle en utilisant un algorithme d'égalisation. Le rendu peut être ralenti, mais cela permet par exemple d'obtenir des vignettes de grandes images en haute qualité. Flash Player 6 et 7 : Les bitmaps sont toujours lissées. Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple L'exemple suivant définit la qualité du rendu sur LOW : _quality = "LOW"; _root, propriété _root.movieClip _root.action _root.property Spécifie ou renvoie une référence au scénario du clip racine. Si un clip possède plusieurs niveaux, le scénario du clip racine se situe dans le niveau contenant le script en cours d'exécution. Par exemple, si un script de niveau 1 est évalué comme _root, _level1 est renvoyé. 128 Chapitre 1: Eléments du langage ActionScript Le fait de spécifier _root revient à utiliser la notation déconseillée, à barre oblique (/), pour spécifier un chemin absolu au sein du niveau actuel. Remarque : Si un clip contenant _root est chargé dans un autre clip, _root fait référence au scénario du clip en cours de chargement et non pas au scénario qui contient _root. Si vous souhaitez vous assurer que _root fait référence au scénario du clip chargé, même si ce dernier a été chargé dans un autre clip, utilisez MovieClip._lockroot. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres movieClip:String action:String - Nom d'occurrence d'un clip. - Action ou méthode. property:String - Propriété de l'objet MovieClip. Exemple L'exemple suivant arrête le scénario du niveau contenant le script en cours d'exécution : _root.stop(); L'exemple suivant suit les variables et les occurrences du domaine de _root : for (prop in _root) { trace("_root."+prop+" = "+_root[prop]); } Voir également _lockroot (propriété MovieClip._lockroot), _parent, propriété, Fonction targetPath scroll, propriété textFieldVariableName.scroll = x Déconseillédepuis Flash Player 5. Cette propriété a été déconseillée en faveur deTextField.scroll. Contrôle l'affichage des informations dans un champ de texte associé à une variable. La propriété scroll définit l'emplacement à partir duquel le champ de texte commence à afficher le contenu ; une fois l'emplacement défini, Flash Player le met à jour lorsque l'utilisateur fait défiler le champ de texte. La propriété scroll est utile pour diriger les utilisateurs vers un paragraphe spécifique dans un long passage ou pour créer des champs de texte défilants. Cette propriété peut être récupérée et modifiée. Disponibilité : Flash Player 4 ; ActionScript 1.0 Propriétés globales 129 Exemple Le code suivant est associé à un bouton Vers le haut qui fait défiler le champ de texte intitulé myText : on (release) { myText.scroll = myText.scroll + 1; } Voir également maxscroll (propriété TextField.maxscroll), scroll (propriété TextField.scroll) _soundbuftime, propriété _soundbuftime:Number = integer Établit le nombre de secondes de son en diffusion continue à placer en mémoire tampon. La valeur par défaut est de 5 secondes. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres integer:Number - Nombre de secondes précédant la diffusion en continu du fichier SWF. Exemple L'exemple suivant diffuse un fichier MP3 en continu et place le son en mémoire tampon afin qu'il ne soit lu par l'utilisateur. Deux champs de texte dédiés à l'horloge et aux informations de débogage sont créés lors de l'exécution. La propriété _soundbuftime est définie de sorte à mettre le fichier MP3 en mémoire tampon pendant 10 secondes. Une nouvelle occurrence de l'objet Sound est créée pour le fichier MP3. // create text fields to hold debug information. this.createTextField("counter_txt", this.getNextHighestDepth(), 0, 0, 100, 22); this.createTextField("debug_txt", this.getNextHighestDepth(), 0, 20, 100, 22); // set the sound buffer to 10 seconds. _soundbuftime = 10; // create the new sound object instance. var bg_sound:Sound = new Sound(); // load the MP3 sound file and set streaming to true. bg_sound.loadSound("yourSound.mp3", true); // function is triggered when the song finishes loading. bg_sound.onLoad = function() { 130 Chapitre 1: Eléments du langage ActionScript debug_txt.text = "sound loaded"; }; debug_txt.text = "sound init"; function updateCounter() { counter_txt.text++; } counter_txt.text = 0; setInterval(updateCounter, 1000); this, propriété this Fait référence à un objet ou une occurrence de clip. Lorsqu'un script s'exécute, this référence l'occurrence de clip qui contient le script. Lorsqu'une méthode est appelée, this contient une référence à l'objet qui contient la méthode appelée. Dans un gestionnaire d'événement on() associé à un bouton, this renvoie au scénario qui contient le bouton. Dans un gestionnaire d'événement onClipEvent() associé à un clip, this renvoie au scénario du clip. Dans la mesure où this est évalué dans le contexte du script qui le contient, vous ne pouvez pas utiliser this pour faire référence à une variable définie dans un fichier de classe. Disponibilité : Flash Player 5 ; ActionScript 1.0 Exemple Créez un fichier ActionsScript nommé ApplyThis.as et entrez le code suivant : class ApplyThis { var str:String = "Defined in ApplyThis.as"; function conctStr(x:String):String { return x+x; } function addStr():String { return str; } } Ensuite, dans un fichier FLA ou un autre fichier ActionScript, ajoutez le code suivant : var obj:ApplyThis = new ApplyThis(); var abj:ApplyThis = new ApplyThis(); abj.str = "defined in FLA or AS"; trace(obj.addStr.call(abj, null)); //output: defined in FLA or AS trace(obj.addStr.call(this, null)); //output: undefined trace(obj.addStr.call(obj, null)); //output: Defined in applyThis.as De même, pour appeler une fonction définie dans une classe dynamique, vous devez utiliser this pour appeler la fonction dans le domaine adéquat : Propriétés globales 131 // incorrect version of Simple.as /* dynamic class Simple { function callfunc() { trace(func()); } } */ // correct version of Simple.as dynamic class simple { function callfunc() { trace(this.func()); } } Dans le fichier FLA ou un autre fichier ActionScript, ajoutez le code suivant : var obj:Simple = new Simple(); obj.num = 0; obj.func = function() { return true; }; obj.callfunc(); // output: true Le code ci-dessus fonctionne quand vous utilisez this dans la méthode callfunc(). Cependant, vous aurez une erreur de syntaxe si vous avez utilisé la mauvaise version de Simple.as, qui a été commentée dans l'exemple ci-dessus. Dans l'exemple suivant, le mot-clé this fait référence à l'objet Circle : function Circle(radius:Number):Void { this.radius = radius; this.area = Math.PI*Math.pow(radius, 2); } var myCircle = new Circle(4); trace(myCircle.area); Dans l'instruction suivante affectée à une image dans un clip, le mot-clé this fait référence au clip actuel. // sets the alpha property of the current movie clip to 20 this._alpha = 20; Dans l'instruction suivante dans un gestionnaire MovieClip.onPress, le mot-clé this fait référence au clip actuel : this.square_mc.onPress = function() { startDrag(this); }; this.square_mc.onRelease = function() { stopDrag(); }; 132 Chapitre 1: Eléments du langage ActionScript Voir également Gestionnaire on, Gestionnaire onClipEvent Opérateurs Les opérateurs symboliques sont des caractères qui spécifient comment combiner, comparer ou modifier les valeurs d'une expression. Récapitulatif des opérateurs Opérateur Description + (addition) Ajoute des expressions numériques ou concatène (combine) des chaînes. += (addition Affecte à expression1 la valeur de expression1 + expression2. assignment) [] (array access) Initialise un nouveau tableau ou tableau multidimensionnel avec les éléments spécifiés (a0 , etc.) ou accède aux éléments dans un tableau. = (assignment) Affecte la valeur d'expression2 (le paramètre de droite) à la variable, à l'élément de tableau ou à la propriété dans expression1. & (bitwise AND) Convertit expression1 et expression2 en entiers 32 bits non signés et applique une opération booléenne AND sur chaque bit des entiers entrés en tant que paramètres. &= (bitwise AND Affecte à expression1 la valeur de expression1 & expression2. assignment) << (bitwise left shift) <<= (bitwise left shift and Convertit expression1 et expression2 en entiers 32 bits et décale tous les bits d'expression1 vers la gauche du nombre d'unités spécifié par l'entier résultant de la conversion d'expression2. Cet opérateur effectue un décalage vers la gauche au niveau du bit (<<=) et stocke ensuite le contenu dans expression1. assignment) ~ (bitwise NOT) Connu également sous la forme de complément d'opérateur du un ou opérateur de complément au niveau du bit. | (bitwise OR) Convertit expression1 et expression2 en entiers 32 bits non signés et renvoie un 1 pour chaque position de bit où les bits correspondants de expression1 ou expression2 ont la valeur 1. |= (bitwise OR Affecte à expression1 la valeur de expression1 | expression2. assignment) Opérateurs 133 Opérateur Description >> (bitwise right Convertit expression1 et expression2 en entiers 32 bits et décale tous les bits d'expression1 vers la droite du nombre d'unités spécifié par l'entier résultant de la conversion d'expression2. shift) >>= (bitwise right shift and Cet opérateur effectue un décalage vers la droite au niveau du bit et stocke ensuite le contenu dans expression1. assignment) >>> (bitwise unsigned right shift) >>>= (bitwise unsigned right shift Identique à l'opérateur de décalage vers la droite (>> ) au niveau du bit à l'exception du fait qu'il ne préserve pas le signe de l'expression d'origine dans la mesure où les bits de gauche sont toujours remplacés par 0. Les nombres à virgule flottante sont convertis en entiers en supprimant tous les chiffres situés après la virgule. Effectue un décalage vers la droite au niveau du bit non signé et stocke ensuite le contenu dans expression1. and assignment) ^ (bitwise XOR) Convertit expression1 and expression2 en entiers 32 bits non signés et renvoie un 1 pour chaque position de bit où les bits correspondants de expression1 ou expression2, mais pas les deux, ont la valeur 1. ^= (bitwise XOR Affecte à expression1 la valeur de expression1 ^ expression2. assignment) /*..*/ (block Démarque une ou plusieurs lignes de commentaires de script. comment delimiter) , (comma) Évalue expression1, puis expression2, etc. add (concatenation Déconseillédepuis Flash Player 5. Macromedia recommande d'utiliser l'opérateur add (+) lorsque vous créez du contenu pour Flash Player 5 ou supérieur. Cet opérateur n'est pas pris en charge dans Flash Player 8 ou supérieur. Concatène au moins deux chaînes. (strings)) ?: (conditional) Demande à Flash d'évaluer expression1 et si la valeur d'expression1 est true, la valeur d'expression2 est renvoyée ; sinon, la valeur d'expression3 est renvoyée. -- (decrement) Un opérateur unaire de pré et post-décrémentation qui soustrait 1 d' expression. / (division) Divise expression1 par expression2. /= (division Affecte à expression1 la valeur de expression1 / expression2. assignment) . (dot) 134 Permet de naviguer au sein des hiérarchies de clips pour accéder aux clips incorporés (enfants), aux variables ou aux propriétés. Chapitre 1: Eléments du langage ActionScript Opérateur Description == (equality) Vérifie si deux expressions sont égales. eq (equality Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur == (equality). Renvoie true si la représentation de chaîne de expression1 est égale à celle de expression2, sinon renvoie false. (strings)) > (greater than) Compare deux expressions et détermine si expression1 est supérieure à expression2 ; dans l'affirmative, cet opérateur renvoie true. gt (greater than Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur > (supérieur à). Compare la représentation de chaîne de expression1 avec celle de expression2 et renvoie true si expression1 est plus grand que expression2, sinon renvoie false. (strings)) >= (greater than or equal to) ge (greater than or equal to (strings)) Compare deux expressions et détermine si expression1 est supérieure ou égale à expression2 (true) ou si expression1 est inférieure à expression2 (false). Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur >= (supérieur ou égal à). Renvoie true si expression1 est supérieure ou égale à expression2, sinon renvoiefalse . ++ (increment) Un opérateur unaire de pré et post-incrémentation qui ajoute 1 à expression . != (inequality) Recherche l'inverse de l'opérateur d'égalité (==). <> (inequality) Déconseillé depuis Flash Player 5. Cet opérateur est déconseillé. Macromedia recommande d'utiliser l'opérateur != (inequality). Recherche l'inverse de l'opérateur d'égalité (==). instanceof Teste si object est une occurrence de classConstructor ou une sousclasse de classConstructor. < (less than) Compare deux expressions et détermine si expression1 est inférieure à expression2 ; dans l'affirmative, cet opérateur renvoie true. lt (less than Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur < (inférieur à). Renvoie true si l'expression1 est inférieure à l'expression2 ; false sinon. (strings)) <= (less than or equal to) Compare deux expressions et détermine si expression1 est inférieure ou égale à expression2 ; dans l'affirmative, cet opérateur renvoie true. Opérateurs 135 Opérateur Description le (less than or Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé dans Flash 5 en faveur de l'opérateur <= (inférieur ou égal à). Renvoie true si expression1 est inférieure ou égale à expression2, sinon renvoie false. equal to (strings)) // (line comment Signale le début d'un commentaire de script. delimiter) && (logical AND) Effectue une opération booléenne sur les valeurs des deux expressions. and (logical AND) Déconseillé depuis Flash Player 5. Macromedia recommande d'utiliser l'opérateur AND logique (&&). Effectue une opération AND logique (&&) ) dans Flash Player 4. ! (logical NOT) Inverse la valeur booléenne d'une variable ou d'une expression. not (logical NOT) Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur ! (logical NOT). Effectue une opération NOT (!) logique dans Flash Player 4. || (logical OR) Evalue l'expression1 (l'expression située à gauche de l'opérateur) et renvoie true si cette expression est évaluée à true. or (logical OR) Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur || (logical OR). Evalue condition1 et condition2, si l'une des deux expressions est true, l'expression entière est true. % (modulo) Calcule le reste de expression1 divisé par expression2. %= (modulo Affecte à expression1 la valeur de expression1 % expression2. assignment) * (multiplication) Multiplie deux expressions numériques. *= (multiplication Affecte à expression1 la valeur de expression1 * expression2. assignment) new Crée un objet, initialement anonyme, et appelle la fonction identifiée par le paramètre constructor. ne (not equal Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur != (inequality). Renvoie true si expression1 n'est pas égale à expression2, sinon renvoie false . (strings)) {} (object initializer) 136 Crée un objet et l'initialise avec les paires de propriétés spécifiées name et value. Chapitre 1: Eléments du langage ActionScript Opérateur Description () (parentheses) Effectue une opération de regroupement sur un ou plusieurs paramètres, évalue les expressions de façon séquentielle ou entoure un ou plusieurs paramètres et les transmet en tant que paramètres à une fonction en dehors des parenthèses. === (strict equality) Teste l'égalité de deux expressions ; l'opérateur d'égalité stricte (===) se comporte de la même façon que l'opérateur d'égalité (==), à la différence que les types de données ne sont pas convertis. !== (strict Recherche l'inverse exact de l'opérateur d'égalité stricte ( === ). inequality) " (string delimiter) Lorsqu'ils entourent des caractères, les guillemets (") indiquent que ces caractères ont une valeur littérale et doivent être traités en tant que chaîne et non pas en tant que variable, valeur numérique ou tout autre élément ActionScript. - (subtraction) Utilisé pour la négation ou la soustraction. -= (subtraction Affecte à expression1 la valeur de expression1 - expression2. assignment) : (type) Utilisé pour le typage strict des données ; cet opérateur spécifie le type de variable, le type de renvoi de la fonction ou le type de paramètre de la fonction. typeof L'opérateur typeof évalue l' expression et renvoie une chaîne spécifiant si l'expression est une valeur de type String, MovieClip, Object, Function, Number, ou Boolean. void L'opérateur void évalue une expression, puis supprime sa valeur, renvoyant undefined. Opérateur d'addition + expression1 + expression2 Ajoute des expressions numériques ou concatène (combine) des chaînes. Si l'une des expressions est une chaîne, toutes les autres expressions sont converties en chaîne et concaténées. Si les deux expressions sont des entiers, la somme est un entier. Si l'une ou les deux expressions sont des nombres à virgule flottante, la somme est un nombre à virgule flottante. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 - Nombre ou chaîne. Opérateurs 137 expression2 : Number - Nombre ou chaîne. Valeur renvoyée Object - Chaîne, entier ou nombre à virgule flottante. Exemple Utilisation 1 : L'exemple suivant concatène deux chaînes et affiche le résultat dans le panneau de sortie. var name:String = "Cola"; var instrument:String = "Drums"; trace(name + " plays " + instrument); // output: Cola plays Drums Utilisation 2 : Cette instruction additionne les entiers 2 et 3, puis affiche l'entier obtenu, 5, dans le panneau de sortie : trace(2 + 3); // output: 5 Cette instruction additionne les nombres à virgule flottante 2,5 et 3,25 puis affiche le nombre obtenu, 5,75 dans le panneau de sortie : trace(2.5 + 3.25); // output: 5.75 Utilisation 3 : Le type de données des variables associées aux champs de texte dynamique et de saisie est String. Dans l'exemple suivant, la variable deposit est un champ de texte de saisie sur la scène. Lorsque l'utilisateur a entré un nombre pour la variable deposit, le script tente d'additionner deposit à oldBalance. Toutefois, étant donné que le type de données de deposit est String, le script concatène les valeurs de variable (les associe pour former une chaîne) au lieu de les additionner. var oldBalance:Number = 1345.23; var currentBalance = deposit_txt.text + oldBalance; trace(currentBalance); Par exemple, si un utilisateur entre 475 dans le champ de texte deposit, l'instruction trace() envoie la valeur 4751345,23 vers le panneau de sortie. Pour y remédier, utilisez la fonction Number() pour convertir la chaîne en nombre de la manière suivante : var oldBalance:Number = 1345.23; var currentBalance:Number = Number(deposit_txt.text) + oldBalance; trace(currentBalance); L'exemple suivant montre que les sommes numériques à droite d'une expression de type String ne sont pas calculées : var a:String trace(a); // var b:String trace(b); // 138 = 3 + 10 + "asdf"; 13asdf = "asdf" + 3 + 10; asdf310 Chapitre 1: Eléments du langage ActionScript Opérateur d'affectation de l'addition += expression1 += expression2 Affecte à expression1 la valeur de expression1 + expression2. Par exemple, les deux instructions suivantes ont le même résultat : x += y; x = x + y; Cette opérateur procède également à la concaténation de chaînes. Toutes les règles de l'opérateur d'addition (+) s'appliquent à l'opérateur d'affectation de l'addition ((+=) ). Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou chaîne. expression2 : Number - Nombre ou chaîne. Valeur renvoyée Number - Résultat de l'addition. Exemple Utilisation 1 : Cet exemple utilise l'opérateur += associé à une expression de type String et envoie « My name is Gilbert » au panneau de sortie. var x1:String = "My name is "; x1 += "Gilbert"; trace(x1); // output: My name is Gilbert Utilisation 2 : L'exemple suivant illustre une utilisation numérique de l'opérateur d'affectation de l'addition (+=) : var x:Number = 5; var y:Number = 10; x += y; trace(x); // output: 15 Voir également Opérateur d'addition + Opérateurs 139 Opérateur d'accès au tableau [] myArray = [ a0, a1,...aN ] myArray[ i ] = value myObject [ propertyName ] Initialise un nouveau tableau ou tableau multidimensionnel avec les éléments spécifiés (a0, etc.) ou accède aux éléments dans un tableau. L'opérateur d'accès au tableau permet de définir et extraire de façon dynamique une occurrence, une variable et des noms d'objet. Il permet également d'accéder aux propriétés d'objet. Utilisation 1 : Un tableau est un objet dont les propriétés sont appelées des éléments, qui sont tous identifiés par des nombres constituant un index. Lorsque vous créez un tableau, vous entourez les éléments avec l'opérateur d'accès au tableau ([]) ou crochets). Un tableau peut regrouper différents types d'éléments. Par exemple, le tableau suivant, appelé employee, comporte trois éléments ; le premier est un nombre et les deux suivants sont des chaînes (entre guillemets) : var employee:Array = [15, "Barbara", "Jay"]; Vous pouvez incorporer des crochets pour représenter les tableaux multi-dimensionnels. Vous pouvez incorporer les tableaux jusqu'à 256 niveaux. Le code suivant crée un tableau appelé ticTacToe comportant trois éléments correspondant tous à un tableau de trois éléments : var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // Select Debug > List Variables in test mode // to see a list of the array elements. Utilisation 2 : Mettez l'index de chaque élément entre crochets ([]) pour y accéder directement. Vous pouvez ajouter un nouvel élément à un tableau ou bien modifier ou extraire la valeur d'un élément existant. Le premier index d'un tableau a toujours la valeur 0, comme indiqué dans l'exemple suivant : var my_array:Array = new Array(); my_array[0] = 15; my_array[1] = "Hello"; my_array[2] = true; Vous pouvez utiliser des crochets ([]) pour ajouter un quatrième élément, comme indiqué dans l'exemple suivant : my_array[3] = "George"; Vous pouvez utiliser les crochets ([]) pour accéder à un élément dans un tableau multidimensionnel. La première paire de crochets identifie l'élément dans le tableau d'origine, tandis que la deuxième identifie l'élément dans le tableau incorporé. Les lignes de code suivantes transmettent le chiffre 6 au panneau de sortie. var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; trace(ticTacToe[1][2]);// output: 6 140 Chapitre 1: Eléments du langage ActionScript Utilisation 3 : Vous pouvez utiliser l'opérateur d'accès au tableau ([]) à la place de la fonction pour définir et extraire de façon dynamique les valeurs de nom de clip ou toute propriété d'un objet. La ligne de code suivante transmet le chiffre 6 au panneau de sortie. eval() name["mc" + i] = "left_corner"; Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes myArray : Object - myArray - Nom d'un tableau. - a0,a1,...aN Eléments d'un tableau ; tout type natif ou occurrence d'objet, ce qui inclut les tableaux incorporés. a0, a1,...aN : Object i : Number - i Index entier supérieur ou égal à 0. myObject : Object - myObject - Nom d'un objet. propertyName : String - propertyName - Chaîne qui nomme une propriété de l'objet. Valeur renvoyée Object - Utilisation 1 : Référence à un tableau. Utilisation 2 : Une valeur du tableau ; soit un type natif, soit une occurrence d'objet (ce qui inclut une occurrence de tableau). Utilisation 3 : Une propriété de l'objet ; soit un type natif, soit une occurrence d'objet (ce qui inclut l'occurrence de tableau). Exemple L'exemple suivant illustre deux façons de créer un objet Array vide ; la première ligne utilise des crochets ([]) : var my_array:Array = []; var my_array:Array = new Array(); L'exemple suivant crée un tableau intitulé employee_array et utilise l'instruction trace() pour envoyer les éléments vers le panneau de sortie. À la quatrième ligne, un élément du tableau est modifié, et la cinquième ligne envoie le tableau qui vient d'être modifié vers le panneau de sortie : var employee_array = ["Barbara", "George", "Mary"]; trace(employee_array); // output: Barbara,George,Mary employee_array[2] = "Sam"; trace(employee_array); // output: Barbara,George,Sam Opérateurs 141 Dans l'exemple suivant, l'expression placée entre crochets ("piece" + i ) est évaluée et le résultat obtenu est utilisé en tant que nom de la variable à récupérer dans le clip my_mc. Dans cet exemple, la variable i doit se trouver sur le même scénario que le bouton. Si la variable i est égale à 5, par exemple, la valeur de la variable piece5 dans le clip my_mc s'affiche dans le panneau de sortie : myBtn_btn.onRelease = function() { x = my_mc["piece"+i]; trace(x); }; Dans l'exemple suivant, l'expression placée entre crochets est évaluée et le résultat obtenu est utilisé en tant que nom de la variable à récupérer dans le clip name_mc : name_mc["A" + i]; Si vous maîtrisez la syntaxe à barre oblique ActionScript de Flash 4, vous pouvez utiliser la fonction eval() pour obtenir le même résultat : eval("name_mc.A" & i); Vous pouvez utiliser le code ActionScript suivant pour passer en boucle sur tous les objets du domaine _root ce qui est particulièrement utile en vue du débogage : for (i in _root) { trace(i+": "+_root[i]); } Vous pouvez également utiliser l'opérateur d'accès au tableau ([]) dans la partie gauche d'une instruction d'affectation pour définir de façon dynamique les noms d'objet, de variable et d'occurrence : employee_array[2] = "Sam"; Voir également Array, Object, Fonction eval Opérateur d'affectation = expression1 = expression2 Affecte la valeur d'expression2 (le paramètre de droite) à la variable, à l'élément de tableau ou à la propriété dans expression1. L'affectation peut se faire par valeur ou par référence. L'affectation par valeur copie la valeur réelle d'expression2 et la place dans expression1. L'affectation par valeur est utilisée lorsqu'une variable se voit affecter un nombre ou une chaîne de littéral. L'affectation par référence place une référence à expression2 dans expression1. L'affectation par référence est généralement utilisée avec l'opérateur new. L'application de l'opérateur new crée un objet en mémoire. Une référence à l'emplacement de cet objet en mémoire est affectée à une variable. 142 Chapitre 1: Eléments du langage ActionScript Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Variable, élément de tableau ou propriété d'un objet. expression2 : Object - Valeur de tout type. Valeur renvoyée Object - Valeur affectée, expression2 . Exemple L'exemple suivant utilise l'affectation par valeur pour affecter la valeur de 5 à la variable x. var x:Number = 5; L'exemple suivant utilise l'affectation par valeur pour affecter la valeur « hello » à la variable x: var x:String; x = " hello "; L'exemple suivant utilise l'affectation par référence pour créer la variable moonsOfJupiter, qui contient une référence au nouvel objet Array créé. L'affectation par valeur est ensuite utilisée pour copier la valeur « Callisto » dans le premier élément du tableau référencé par la variable moonsOfJupiter : var moonsOfJupiter:Array = new Array(); moonsOfJupiter[0] = "Callisto"; L'exemple suivant utilise l'affectation par référence pour créer un objet et affecter une référence à cet objet à la variable mercury. L'affectation par valeur est ensuite utilisée pour affecter la valeur de 3030 à la propriété diameter de l'objet mercury : var mercury:Object = new Object(); mercury.diameter = 3030; // in miles trace (mercury.diameter); // output: 3030 L'exemple suivant s'articule autour de l'exemple précédent en créant une variable intitulée merkur (le mot allemand désignant le mercure) et en lui affectant la valeur de mercury. Deux variables faisant référence au même objet dans la mémoire sont ainsi créées, ce qui signifie que vous pouvez utiliser l'une ou l'autre pour accéder aux propriétés de cet objet. Nous pouvons ensuite modifier la propriété diameterpour utiliser les kilomètres au lieu des miles : var merkur:Object = mercury; merkur.diameter = 4878; // in kilometers trace (mercury.diameter); // output: 4878 Voir également Opérateur == (égalité) Opérateurs 143 & Opérateur AND au niveau du bit expression1 & expression2 Convertit expression1 et expression2 en entiers 32 bits non signés et applique une opération booléenne AND sur chaque bit des entiers entrés en tant que paramètres. Les nombres à virgule flottante sont convertis en entiers en supprimant les chiffres après la virgule. Le résultat est un nouvel entier de 32 bits. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus importants lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent également leurs chiffres les plus importants. La valeur renvoyée est interprétée en tant que nombre à complément à deux avec un signe, ce qui signifie que la valeur renvoyée est un entier compris entre -2147483648 et 2147483647. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre. expression2 : Number - Nombre. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple L'exemple suivant compare la représentation des nombres au niveau du bit et renvoie 1 uniquement si les deux bits ont la valeur 1 à la même position. Dans ce code ActionScript, vous ajoutez 13 (binaire 1101) et 11 (binaire 1011) et renvoyez 1 uniquement à la position où les deux nombres ont la valeur 1. var insert:Number = 13; var update:Number = 11; trace(insert & update); // output : 9 (or 1001 binary) Pour les nombres 13 et 11, le résultat est 9 car seules les première et dernière positions des deux nombres ont la valeur 1. 144 Chapitre 1: Eléments du langage ActionScript Les exemples suivants illustrent le comportement de la conversion de la valeur renvoyée : trace(0xFFFFFFFF); trace(0xFFFFFFFF & trace(0xFFFFFFFF & trace(4294967295 & trace(4294967295 & // 4294967295 0xFFFFFFFF); // -1 -1); // -1 -1); // -1 4294967295); // -1 Voir également &= Opérateur d'affectation AND au niveau du bit, Opérateur ^ (XOR au niveau du bit), Opérateur ^= (affectation XOR au niveau du bit), | Opérateur OR au niveau du bit, |= Opérateur d'affectation OR au niveau du bit, ~ Opérateur NOT au niveau du bit &= Opérateur d'affectation AND au niveau du bit expression1 &= expression2 Affecte à expression1 la valeur de expression1 & expression2. Par exemple, les deux expressions suivantes sont équivalentes : x &= y; x = x & y; Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre. expression2 : Number - Nombre. Valeur renvoyée Number - Valeur affectée, expression1 & expression2. Exemple L'exemple suivant affecte la valeur 9 à x : var x:Number = 15; var y:Number = 9; trace(x &= y); // output: 9 Voir également & Opérateur AND au niveau du bit, Opérateur ^ (XOR au niveau du bit), Opérateur ^= (affectation XOR au niveau du bit), | Opérateur OR au niveau du bit, |= Opérateur d'affectation OR au niveau du bit, ~ Opérateur NOT au niveau du bit Opérateurs 145 << Opérateur de décalage gauche au niveau du bit expression1 << expression2 Convertit expression1 et expression2 en valeurs de nombres entiers 32 bits que vous pouvez appeler V1 et V2. Décale tous les bits de la valeur de V1 vers la gauche sur les positions de V2. Rejette les bits décalés à l'extrémité gauche de V1 par cette opération et insère des zéros aux emplacements de bits qui sont vides à droite. Le fait de décaler une valeur d'une unité vers la gauche revient à la multiplier par 2. Les nombres à virgule flottante sont convertis en entiers en supprimant les chiffres après la virgule. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus importants lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent leurs chiffres les plus importants. La valeur renvoyée est interprétée en tant que nombre à complément à deux avec un signe, ce qui signifie que la valeur renvoyée sera un entier compris entre -2147483648 et 2147483647. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression à décaler vers la gauche. expression2 : Number - Nombre ou expression à convertir en entier compris entre 0 et 31. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple Dans l'exemple suivant, l'entier 1 est décalé de 10 bits vers la gauche : x = 1 << 10 Le résultat de cette opération est x = 1024. Ce résultat est dû au fait qu'un 1 décimal égale un 1 binaire, le 1 binaire décalé de 10 bits à gauche est 10000000000 en binaire, et 10000000000 en binaire est 1024 en décimal. Dans l'exemple suivant, l'entier 7 est décalé de 8 bits vers la gauche : x = 7 << 8 Le résultat de cette opération est x = 1792. Ce résultat est dû au fait qu'un 7 décimal égale un 111 binaire, le 111 binaire décalé de 8 bits à gauche est 11100000000 en binaire, et 11100000000 en binaire est 1792 en décimal. Si vous suivez l'exemple suivant, vous remarquez que les bits ont été déplacés de deux espaces vers la gauche : 146 Chapitre 1: Eléments du langage ActionScript // 2 binary == 0010 // 8 binary == 1000 trace(2 << 2); // output: 8 Voir également >>= Opérateur de décalage droit au niveau du bit et d'affectation, >> Opérateur de décalage droit au niveau du bit, <<= Opérateur de décalage gauche au niveau du bit et d'affectation, >>> Opérateur de décalage droit non signé au niveau du bit, >>>= Opérateur de décalage droit non signé au niveau du bit et d'affectation <<= Opérateur de décalage gauche au niveau du bit et d'affectation expression1 <<= expression2 Cet opérateur effectue un décalage vers la gauche au niveau du bit (<<=) et stocke ensuite le contenu dans expression1. Les deux expressions suivantes sont équivalentes : A <<= B; A = (A << B) Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression à décaler vers la gauche. expression2 : Number - Nombre ou expression à convertir en entier compris entre 0 et 31. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple Dans l'exemple suivant, vous utilisez l'opérateur de décalage gauche au niveau du bit et d'affectation (<<=) pour décaler tous les bits d'un espace vers la gauche : var x:Number // shift all x <<= 1; trace(x); // // 4 decimal // 8 decimal = 4; bits one slot to the left. output: 8 = 0100 binary = 1000 binary Opérateurs 147 Voir également << Opérateur de décalage gauche au niveau du bit, >>= Opérateur de décalage droit au niveau du bit et d'affectation, >> Opérateur de décalage droit au niveau du bit ~ Opérateur NOT au niveau du bit ~expression Connu également sous la forme de complément d'opérateur du un ou opérateur de complément au niveau du bit. Convertit l'expression en un entier signé de 32 bits, puis applique un complément à un au niveau du bit. Ainsi, tout bit 0 devient 1 et inversement. Le résultat est un nouvel entier signé de 32 bits. Par exemple, la valeur hexadécimale 0x7777 est représentée de la façon suivante en binaire : 0111011101110111 La négation au niveau du bit de cette valeur, ~0x7777, renvoie : 1000100010001000 En hexadécimal, ceci se traduit par 0x8888. Par conséquent, ~0x7777 donne 0x8888. L'utilisation la plus répandue des opérateurs au niveau du bit consiste à représenter les bits indicateurs (valeurs booléennes contractées sur 1 bit). Les nombres à virgule flottante sont convertis en entiers en supprimant les chiffres après la virgule. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus importants lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent leurs chiffres les plus importants. La valeur renvoyée est interprétée en tant que nombre à complément à deux avec un signe, ce qui signifie que la valeur renvoyée est un entier compris entre -2147483648 et 2147483647. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression : Number - Nombre. Valeur renvoyée Number 148 - Résultat de l'opération au niveau du bit. Chapitre 1: Eléments du langage ActionScript Exemple L'exemple suivant décrit l'utilisation de l'opérateur NOT (-) au niveau du bit avec les bits indicateurs : var ReadOnlyFlag:Number = 0x0001; // defines bit 0 as the read-only flag var flags:Number = 0; trace(flags); /* To set the read-only flag in the flags variable, the following code uses the bitwise OR: */ flags |= ReadOnlyFlag; trace(flags); /* To clear the read-only flag in the flags variable, first construct a mask by using bitwise NOT on ReadOnlyFlag. In the mask, every bit is a 1 except for the read-only flag. Then, use bitwise AND with the mask to clear the read-only flag. The following code constructs the mask and performs the bitwise AND: */ flags &= ~ReadOnlyFlag; trace(flags); // output: 0 1 0 Voir également & Opérateur AND au niveau du bit, &= Opérateur d'affectation AND au niveau du bit, Opérateur ^ (XOR au niveau du bit), Opérateur ^= (affectation XOR au niveau du bit), | Opérateur OR au niveau du bit, |= Opérateur d'affectation OR au niveau du bit | Opérateur OR au niveau du bit expression1 | expression2 Convertit expression1 et expression2 en entiers 32 bits non signés et renvoie un 1 pour chaque position de bit où les bits correspondants de expression1 ou expression2 ont la valeur 1. Les nombres à virgule flottante sont convertis en entiers en supprimant tous les chiffres situés après la virgule. Le résultat est un nouvel entier de 32 bits. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus importants lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent leurs chiffres les plus importants. Opérateurs 149 La valeur renvoyée est interprétée en tant que nombre à complément à deux avec un signe, ce qui signifie que la valeur renvoyée sera un entier compris entre -2147483648 et 2147483647. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre. expression2 : Number - Nombre. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple L'exemple suivant illustre une opération OR (|) au niveau du bit : // 15 decimal = 1111 binary var x:Number = 15; // 9 decimal = 1001 binary var y:Number = 9; // 1111 | 1001 = 1111 trace(x | y); // returns 15 decimal (1111 binary) Ne confondez pas l'opération unique | (OR au niveau du bit) avec l'opérateur || (OR logique). Voir également & Opérateur AND au niveau du bit, &= Opérateur d'affectation AND au niveau du bit, Opérateur ^ (XOR au niveau du bit), Opérateur ^= (affectation XOR au niveau du bit), |= Opérateur d'affectation OR au niveau du bit, ~ Opérateur NOT au niveau du bit |= Opérateur d'affectation OR au niveau du bit expression1 |= expression2 Affecte à expression1 la valeur de expression1 | expression2. Par exemple, les deux instructions suivantes sont équivalentes : x |= y; x = x | y; Disponibilité : Flash Player 5 ; ActionScript 1.0 150 Chapitre 1: Eléments du langage ActionScript Opérandes expression1 : Number - Nombre ou variable. expression2 : Number - Nombre ou variable. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple L'exemple suivant utilise l'opérateur (|=)) d'affectation OR au niveau du bit : // 15 decimal = 1111 binary var x:Number = 15; // 9 decimal = 1001 binary var y:Number = 9; // 1111 |= 1001 = 1111 trace(x |= y); // returns 15 decimal (1111 binary) Voir également & Opérateur AND au niveau du bit, &= Opérateur d'affectation AND au niveau du bit, Opérateur ^ (XOR au niveau du bit), Opérateur ^= (affectation XOR au niveau du bit), | Opérateur OR au niveau du bit, |= Opérateur d'affectation OR au niveau du bit, ~ Opérateur NOT au niveau du bit >> Opérateur de décalage droit au niveau du bit expression1 >> expression2 Convertit expression1 et expression2 en entiers 32 bits et décale tous les bits d'expression1 vers la droite du nombre d'unités spécifié par l'entier résultant de la conversion d'expression2. Les bits décalés vers la droite sont supprimés. Pour préserver le signe de l'expression d'origine, les bits situés à gauche sont remplacés par des 0 si le bit le plus significatif (le bit le plus à gauche) d'expression1 est 0, et par des 1 si le bit le plus significatif est 1. Le décalage d'une valeur d'une unité équivaut à une division par 2 et au rejet du reste. Opérateurs 151 Les nombres à virgule flottante sont convertis en entiers en supprimant les chiffres après la virgule. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus importants lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent leurs chiffres les plus importants. La valeur renvoyée est interprétée en tant que nombre à complément à deux avec un signe, ce qui signifie que la valeur renvoyée sera un entier compris entre -2147483648 et 2147483647. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression à décaler vers la droite. expression2 : Number - Nombre ou expression à convertir en entier compris entre 0 et 31. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple L'exemple suivant convertit 65535 en entier 32 bits et le décale de 8 bits vers la droite : var x:Number = 65535 >> 8; trace(x); // outputs 255 L'exemple suivant affiche le résultat de l'exemple précédent : var x:Number = 255; Ceci est dû au fait que 65535 en décimal équivaut à 1111111111111111 en binaire (seize 1), 1111111111111111 en binaire décalé de 8 bits vers la droite représente 11111111 en binaire, et que 11111111 en binaire est égal à 255 en décimal. Le bit le plus significatif est 0 car il s'agit d'entiers 32 bits, le bit de remplissage est donc 0. L'exemple suivant convertit -1 en entier 32 bits et le décale de 1 bit vers la droite : var x:Number = -1 >> 1; trace(x); // outputs -1 L'exemple suivant affiche le résultat de l'exemple précédent : var x:Number = -1; 152 Chapitre 1: Eléments du langage ActionScript Ceci est dû au fait que -1 en décimal équivaut à 11111111111111111111111111111111 en binaire (trente-deux 1), le décalage de un bit vers la droite entraîne la suppression du bit le moins significatif (le bit le plus à droite) et le remplacement du bit le plus significatif par la valeur 1. Le résultat obtenu est 11111111111111111111111111111111 (trente-deux 1) en binaire, soit l'entier 32 bits -1. Voir également >>= Opérateur de décalage droit au niveau du bit et d'affectation >>= Opérateur de décalage droit au niveau du bit et d'affectation expression1 >>= expression2 Cet opérateur effectue un décalage vers la droite au niveau du bit et stocke ensuite le contenu dans expression1. Les deux instructions suivantes sont équivalentes : A >>= B; A = (A >> B); Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression à décaler vers la droite. expression2 : Number - Nombre ou expression à convertir en entier compris entre 0 et 31. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple Le code commenté suivant utilise l'opérateur (>>=) de décalage droit au niveau du bit et d'affectation. function convertToBinary(numberToConvert:Number):String { var result:String = ""; for (var i = 0; i<32; i++) { // Extract least significant bit using bitwise AND var lsb:Number = numberToConvert & 1; // Add this bit to the result string result = (lsb ? "1" : "0")+result; // Shift numberToConvert right by one bit, to see next bit numberToConvert >>= 1; Opérateurs 153 } return result; } trace(convertToBinary(479)); // Returns the string 00000000000000000000000111011111 // This string is the binary representation of the decimal // number 479 Voir également >> Opérateur de décalage droit au niveau du bit >>> Opérateur de décalage droit non signé au niveau du bit expression1 >>> expression2 Identique à l'opérateur de décalage vers la droite au niveau du bit (>>), à la différence qu'il ne préserve pas le signe de l'expression d'origine car les bits de gauche sont toujours remplacés par des 0. Les nombres à virgule flottante sont convertis en entiers en supprimant les chiffres après la virgule. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus significatifs lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent leurs chiffres les plus significatifs. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression à décaler vers la droite. expression2 : Number - Nombre ou expression à convertir en entier compris entre 0 et 31. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple L'exemple suivant convertit -1 en entier 32 bits et le décale de 1 bit vers la droite : var x:Number = -1 >>> 1; 154 Chapitre 1: Eléments du langage ActionScript trace(x); // output: 2147483647 Ceci est dû au fait que -1 en décimal équivaut à 11111111111111111111111111111111 en binaire (trente-deux 1), et que lorsque vous effectuez un décalage de 1 bit vers la droite (non signé), le bit le moins significatif (le plus à droite) est supprimé, et le bit le plus significatif (le plus à gauche) est remplacé par la valeur 0. Le résultat obtenu est 01111111111111111111111111111111 en binaire, soit l'entier 32 bits 2147483647. Voir également >>= Opérateur de décalage droit au niveau du bit et d'affectation >>>= Opérateur de décalage droit non signé au niveau du bit et d'affectation expression1 >>>= expression2 Effectue un décalage vers la droite au niveau du bit non signé et stocke ensuite le contenu dans expression1. Les deux instructions suivantes sont équivalentes : A >>>= B; A = (A >>> B); Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression à décaler vers la droite. expression2 : Number - Nombre ou expression à convertir en entier compris entre 0 et 31. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple Voir également >>> Opérateur de décalage droit non signé au niveau du bit, >>= Opérateur de décalage droit au niveau du bit et d'affectation Opérateur ^ (XOR au niveau du bit) expression1 ^ expression2 Opérateurs 155 Convertit expression1 et expression2 en entiers 32 bits non signés et renvoie un 1 pour chaque position de bit où les bits correspondants de expression1 ou expression2, mais pas les deux, ont la valeur 1. Les nombres à virgule flottante sont convertis en entiers en supprimant tous les chiffres situés après la virgule. Le résultat est un nouvel entier de 32 bits. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus significatifs lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent leurs chiffres les plus significatifs. La valeur renvoyée est interprétée en tant que nombre à complément à deux avec un signe, ce qui signifie que la valeur renvoyée sera un entier compris entre -2147483648 et 2147483647. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre. expression2 : Number - Nombre. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple L'exemple suivant utilise l'opérateur XOR au niveau du bit sur les décimales 15 et 9 et affecte le résultat à la variable x : // 15 decimal = 1111 binary // 9 decimal = 1001 binary var x:Number = 15 ^ 9; trace(x); // 1111 ^ 1001 = 0110 // returns 6 decimal (0110 binary) Voir également & Opérateur AND au niveau du bit, &= Opérateur d'affectation AND au niveau du bit, Opérateur ^= (affectation XOR au niveau du bit), | Opérateur OR au niveau du bit, |= Opérateur d'affectation OR au niveau du bit, ~ Opérateur NOT au niveau du bit 156 Chapitre 1: Eléments du langage ActionScript Opérateur ^= (affectation XOR au niveau du bit) expression1 ^= expression2 Affecte à expression1 la valeur de expression1 ^ expression2. Par exemple, les deux instructions suivantes sont équivalentes : x ^= y; x = x ^ y; Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Number - Entiers et variables. expression2 : Number - Entiers et variables. Valeur renvoyée Number - Résultat de l'opération au niveau du bit. Exemple L'exemple suivant illustre l'opération (^=) d'affectation XOR au niveau du bit : // 15 decimal = 1111 binary var x:Number = 15; // 9 decimal = 1001 binary var y:Number = 9; trace(x ^= y); // returns 6 decimal (0110 binary) Voir également & Opérateur AND au niveau du bit, &= Opérateur d'affectation AND au niveau du bit, Opérateur ^ (XOR au niveau du bit), | Opérateur OR au niveau du bit, |= Opérateur d'affectation OR au niveau du bit, ~ Opérateur NOT au niveau du bit Opérateur /*..*/ (séparateur de commentaires de bloc) comment */ comment comment */ /* /* Opérateurs 157 Démarque une ou plusieurs lignes de commentaires de script. Tout caractère qui s'affiche entre la balise ouvrante de commentaires (/*) et la balise fermante (*/) est interprété en tant que commentaire et ignoré par l'interpréteur d'ActionScript. Préférez l'opérateur // (séparateur de commentaires) pour les commentaires sur une ligne. Retenez l'opérateur /* pour identifier les commentaires répartis sur plusieurs lignes. L'omission de la balise fermante (*/) renvoie un message d'erreur. Le fait d'incorporer plusieurs balises de commentaires les unes dans les autres renvoie également un message d'erreur. Ainsi, lorsque vous utilisez une balise ouvrante (/*), la première balise fermante (*/) termine ce commentaire, quel que soit le nombre de balises (/*) intercalées. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes comment - Tout caractère. Exemple Le script suivant utilise des séparateurs de commentaires au début du script : /* records the X and Y positions of the ball and bat movie clips */ var ballX:Number = ball_mc._x; var ballY:Number = ball_mc._y; var batX:Number = bat_mc._x; var batY:Number = bat_mc._y; La tentative d'incorporation suivante de plusieurs balises de commentaires les unes dans les autres renvoie un message d'erreur : /* this is an attempt to nest comments. /* But the first closing tag will be paired with the first opening tag */ and this text will not be interpreted as a comment */ Voir également Opérateur // (séparateur de commentaires sur une ligne) Opérateur , (virgule) (expression1 , expression2 [, expressionN... ]) Évalue expression1, puis expression2, etc. Cet opérateur est destiné principalement à l'instruction loop for et est souvent utilisé en conjonction avec l'opérateur parenthèses (). Disponibilité : Flash Player 4 ; ActionScript 1.0 158 Chapitre 1: Eléments du langage ActionScript Opérandes expression1 : Number - Expression à évaluer. expression2 : Number - Expression à évaluer. expressionN : Number - Nombre quelconque d'expressions supplémentaires à évaluer. Valeur renvoyée Object - Valeur d'expression1, puis d'expression2, etc. Exemple L'exemple suivant utilise l'opérateur virgule (,) dans une boucle for : for (i = 0, trace("i = } // Output: // i = 0, j // i = 1, j j = 0; i < 3 && j < 3; i++, j+=2) { " + i + ", j = " + j); = 0 = 2 L'exemple suivant utilise l'opérateur virgule (,) sans l'opérateur parenthèses () et montre que l'opérateur virgule renvoie uniquement la valeur de la première expression sans l'opérateur parenthèses () : var v:Number = 0; v = 4, 5, 6; trace(v); // output: 4 L'exemple suivant utilise l'opérateur virgule (,) en conjonction avec l'opérateur parenthèses () et montre que l'opérateur virgule renvoie la valeur de la dernière expression lorsqu'il est utilisé avec l'opérateur parenthèses () : var v:Number = 0; v = (4, 5, 6); trace(v); // output: 6 L'exemple suivant utilise l'opérateur virgule (,) sans l'opérateur parenthèses () et montre que l'opérateur virgule évalue de manière séquentielle toutes les expressions mais renvoie uniquement la valeur de la première expression. La deuxième expression, z++, est évaluée et la valeur z est incrémentée de un. var v:Number = 0; var z:Number = 0; v = v + 4 , z++, v + 6; trace(v); // output: 4 trace(z); // output: 1 L'exemple suivant est identique au précédent à ceci près qu'il inclut l'opérateur parenthèses () et montre à nouveau que, lorsqu'il est utilisé conjointement avec l'opérateur parenthèses (), l'opérateur virgule (,) renvoie la valeur de la dernière expression de la série : Opérateurs 159 var v:Number = 0; var z:Number = 0; v = (v + 4, z++, v + 6); trace(v); // output: 6 trace(z); // output: 1 Voir également Opérateur () (parenthèses) Opérateur de concaténation add (chaînes) string1 add string2 Déconseillédepuis Flash Player 5. Macromedia recommande d'utiliser l'opérateur add (+) lorsque vous créez du contenu pour Flash Player 5 ou version ultérieure. Cet opérateur n'est pas pris en charge dans Flash Player 8 ou supérieur. Concatène au moins deux chaînes. L'opérateur d'ajout (+) remplace l'opérateur & de Flash 4 ; les fichiers Flash Player 4 qui utilisent l'opérateur & sont automatiquement convertis pour pouvoir utiliser l'opérateur d'ajout (+) en vue de la concaténation de chaînes lorsqu'ils sont importés dans l'environnement de programmation Flash 5 ou version ultérieure. Utilisez l'opérateur d'ajout (+) pour concaténer des chaînes lorsque vous créez du contenu pour Flash Player 4 ou ses versions antérieures. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes string1 : String - Chaîne. string2 : String - Chaîne. Valeur renvoyée String - Chaîne concaténée. Voir également Opérateur d'addition + ?: opérateur conditionnel expression1 ? expression2 : expression3 Demande à Flash d'évaluer expression1 et si la valeur d'expression1 est true, la valeur d'expression2 est renvoyée ; sinon, la valeur d'expression3 est renvoyée. 160 Chapitre 1: Eléments du langage ActionScript Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes - Expression qui renvoie une valeur booléenne ; généralement une expression de comparaison, telle que x < 5. expression1 : Object expression2 : Object - Valeurs de tout type. expression3 : Object - Valeurs de tout type. Valeur renvoyée Object - Valeur de expression2 ou expression3. Exemple L'instruction suivante affecte la valeur de la variable x à la variable z car expression1 renvoie true : var x:Number = 5; var y:Number = 10; var z = (x < 6) ? x: y; trace (z); // returns 5 L'exemple suivant illustre une instruction conditionnelle abrégée : var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM"; trace(timecode); Cette même instruction conditionnelle peut également être écrite de manière non abrégée, comme indiqué dans l'exemple suivant : if (new Date().getHours() < 11) { var timecode:String = "AM"; } else { var timecode:String = "PM"; } trace(timecode); Opérateur -- (décrément) --expression expression-Un opérateur unaire de pré et post-décrémentation qui soustrait 1 d' expression . expression peut être une variable, un élément de tableau ou une propriété d'objet. La forme post-décrément de l'opérateur (--expression) soustrait 1 d' expression et renvoie le résultat. La forme pré-décrément de l'opérateur (expression--) soustrait 1 de l' expression et renvoie la valeur initiale d' expression (la valeur précédant la soustraction). Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérateurs 161 Opérandes expression : Number - Nombre ou variable qui renvoie un nombre. Valeur renvoyée Number - Résultat de la valeur décrémentée. Exemple La forme pré-décrément de l'opérateur décrémente x pour obtenir 2 (x - 1 = 2) et renvoie le résultat dans y : var x:Number = 3; var y:Number = --x; //y is equal to 2 La forme post-décrément de l'opérateur décrémente x pour obtenir 2 (x - 1 = 2) et renvoie la valeur d'origine de xcomme résultat y : var x:Number = 3; var y:Number = x--; //y is equal to 3 L'exemple suivant boucle de 10 à 1 et chaque itération de la boucle diminue la variable du compteur i de 1. for (var i = 10; i>0; i--) { trace(i); } Opérateur / (division) expression1 / expression2 Divise expression1 par expression2. Le résultat de l'opération de division est un nombre à virgule flottante comportant deux décimales. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression : Number - Nombre ou variable évaluée sous forme de nombre. Valeur renvoyée Number - Résultat, en virgule flottante, de l'opération. Exemple L'instruction suivante divise la largeur et la hauteur actuelles de la scène, puis affiche le résultat dans le panneau de sortie. trace(Stage.width/2); 162 Chapitre 1: Eléments du langage ActionScript trace(Stage.height/2); Avec une largeur et une hauteur de scène de 550 x 400 par défaut, on obtient les valeurs 275 et 150. Voir également Opérateur % (modulo) Opérateur /= (affectation de division) expression1 /= expression2 Affecte à expression1 la valeur de expression1 / expression2. Par exemple, les deux instructions suivantes sont équivalentes : x /= y; x = x / y; Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou variable évaluée sous forme de nombre. expression2 : Number - Nombre ou variable évaluée sous forme de nombre Valeur renvoyée Number - Nombre. Exemple Le code suivant indique comment utiliser l'opérateur affectation de division (/=)) avec des variables et des nombres : var x:Number = 10; var y:Number = 2; x /= y; trace(x); // output: 5 Voir également Opérateur / (division) . Opérateur point (.) object.property_or_methodinstancename.variable instancename.childinstanceinstancename.childinstance.variable Opérateurs 163 Permet de naviguer au sein des hiérarchies de clips pour accéder aux clips incorporés (enfants), aux variables ou aux propriétés. L'opérateur point permet également de tester ou définir les propriétés d'un objet ou d'une classe de premier niveau, d'exécuter une méthode d'un objet ou d'une classe de premier niveau ou de créer une structure de données. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes object : Object - Occurrence de classe. Cet objet peut être une occurrence de l'une des classes ActionScript intégrées ou d'une classe personnalisée. Ce paramètre figure toujours à gauche de l'opérateur point (.). - Nom d'une propriété ou d'une méthode associée à un objet. Toutes les méthodes et les propriétés valides pour les classes intégrées figurent dans les tableaux récapitulatifs des méthodes et des propriétés pour cette classe. Ce paramètre figure toujours à droite de l'opérateur point (.). property_or_method instancename : MovieClip - Nom d'occurrence d'un clip.variable - Le nom d'occurrence à gauche de l'opérateur point (.) peut également représenter une variable sur le scénario du clip. childinstance : MovieClip - Occurrence de clip qui est un enfant d'un autre clip ou qui est incorporée dans ce dernier. Valeur renvoyée Object Méthode, propriété ou clip nommés à droite du point. Exemple L'exemple suivant identifie la valeur actuelle de la variable hairColor dans le clip person_mc : person_mc.hairColor L'environnement de programmation Flash 4 ne prenait pas en charge la syntaxe à point ; en revanche, les fichiers Flash MX 2004 publiés pour Flash Player 4 peuvent utiliser l'opérateur point. L'exemple précédent équivaut à la syntaxe Flash 4 (déconseillée) suivante : /person_mc:hairColor L'exemple suivant crée un nouveau clip dans le domaine _root. Ensuite, un champ texte est créé dans le clip intitulé container_mc. La propriété autoSize du champ de texte est définie sur true, puis renseignée avec la date du jour. this.createEmptyMovieClip("container_mc", this.getNextHighestDepth()); this.container_mc.createTextField("date_txt", this.getNextHighestDepth(), 0, 0, 100, 22); this.container_mc.date_txt.autoSize = true; 164 Chapitre 1: Eléments du langage ActionScript this.container_mc.date_txt.text = new Date(); L'opérateur point (.) est utilisé lorsque vous ciblez des occurrences dans le fichier SWF et lorsque vous devez définir leurs propriétés et valeurs. Opérateur == (égalité) expression1 == expression2 Vérifie si deux expressions sont égales. Le résultat est true lorsque les expressions sont égales. La définition de l'égalité dépend du type de données du paramètre : ■ Les nombres ou les valeurs booléennes sont considérés comme égaux lorsque leur valeur est identique. ■ Les expressions de type String sont égales lorsqu'elles comportent le même nombre de caractères et que ces caractères sont identiques. ■ Les variables représentant des objets, des tableaux et des fonctions sont comparées par référence. Deux variables sont égales lorsqu'elles font référence au même objet, au même tableau ou à la même fonction. Deux tableaux distincts ne sont jamais considérés comme égaux, même s'ils comportent le même nombre d'éléments. Lorsque la comparaison porte sur la valeur, si expression1 et expression2 ont un type de donnée différent, ActionScript tente de convertir le type de données d'expression2 pour le faire correspondre à celui d' expression1. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. expression2 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple L'exemple suivant utilise l'opérateur d'égalité (==) conjointement avec une instruction if: var a:String = "David", b:String = "David"; if (a == b) { trace("David is David"); } Opérateurs 165 Les exemples suivants affichent les résultats des opérations qui comparent des types mixtes : var x:Number = var y:String = trace(x == y); var x:String = var y:String = trace(x == y); var x:String = var y:String = trace(x == y); 5; "5"; // output: true "5"; "66"; // output: false "chris"; "steve"; // output: false Les exemples suivants affichent la comparaison par référence. Le premier exemple compare deux tableaux dont la longueur et les éléments sont identiques. L'opérateur d'égalité renvoie la valeur false pour ces deux tableaux. Bien que les tableaux semblent équivalents, la comparaison par référence exige qu'ils se réfèrent tous deux au même tableau. Le deuxième exemple crée la variable thirdArray qui pointe vers le même tableau que la variable firstArray. L'opérateur d'égalité renvoie la valeur true pour ces deux tableaux car les deux variables font référence au même tableau. var firstArray:Array = new Array("one", "two", "three"); var secondArray:Array = new Array("one", "two", "three"); trace(firstArray == secondArray); // will output false // Arrays are only considered equal // if the variables refer to the same array. var thirdArray:Array = firstArray; trace(firstArray == thirdArray); // will output true Voir également ! Opérateur NOT logique, Opérateur != (inégalité), Opérateur !== (inégalité stricte), Opérateur && (AND logique), Opérateur || (OR logique), Opérateur === (égalité stricte) Opérateur eq d'égalité (chaînes) expression1 eq expression2 Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur == (equality). Compare l'égalité de deux expressions et renvoie une valeur true si la chaîne représentant l'expression1 est égale à la chaîne représentant l'expression2, false sinon. Disponibilité : Flash Player 4 ; ActionScript 1.0 166 Chapitre 1: Eléments du langage ActionScript Opérandes expression1 : Object - Nombres, chaînes ou variables. expression2 : Object - Nombres, chaînes ou variables. Valeur renvoyée Boolean - Résultat de la comparaison. Voir également Opérateur == (égalité) > Opérateur supérieur à expression1 > expression2 Compare deux expressions et détermine si expression1 est supérieure à expression2 ; dans l'affirmative, cet opérateur renvoie true. Si expression1 est inférieure ou égale à expression2, l'opérateur renvoie false (faux). Les expressions de type chaîne sont évaluées en fonction de l'ordre alphabétique ; toutes les lettres majuscules précèdent les lettres minuscules. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Nombre ou chaîne. expression2 : Object - Nombre ou chaîne. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple Dans l'exemple suivant, l'opérateur supérieur à (>) est utilisé pour déterminer si la valeur du champ de texte score_txt est supérieure à 90 : if (score_txt.text>90) { trace("Congratulations, you win!"); } else { trace("sorry, try again"); } Opérateurs 167 Opérateur gt supérieur à (chaînes) expression1 gt expression2 Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur > (supérieur à). Compare la représentation de chaîne de expression1 avec celle de expression2 et renvoie si expression1 est supérieur à expression2, sinon renvoie false. true Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Nombres, chaînes ou variables. expression2 : Object - Nombres, chaînes ou variables. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Voir également > Opérateur supérieur à Opérateur >= (supérieur ou égal à) expression1 >= expression2 Compare deux expressions et détermine si expression1 est supérieure ou égale à expression2 (true) ou si expression1 est inférieure à expression2 (false). Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Chaîne, entier ou nombre à virgule flottante. expression2 : Object - Chaîne, entier ou nombre à virgule flottante. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple Dans l'exemple suivant, l'opérateur supérieur ou égal à (>=) est utilisé pour déterminer si l'heure est supérieure ou égale à 12 : if (new Date().getHours() >= 12) { 168 Chapitre 1: Eléments du langage ActionScript trace("good afternoon"); } else { trace("good morning"); } Opérateur ge supérieur ou égal à (chaînes) expression1 ge expression2 Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur >= (supérieur ou égal à). Compare la représentation de chaîne de expression1 avec celle de expression2 et renvoie true si expression1 est supérieur ou égal à expression2, sinon renvoie false . Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Nombres, chaînes ou variables. expression2 : Object - Nombres, chaînes ou variables. Valeur renvoyée Boolean - Résultat de la comparaison. Voir également Opérateur >= (supérieur ou égal à) Opérateur ++ (incrément) ++expression expression++ Un opérateur unaire de pré et post-incrémentation qui ajoute 1 à expression . expression peut être une variable, un élément de tableau ou une propriété d'objet. La forme pré-incrément de l'opérateur (++expression) ajoute 1 à expression et renvoie le résultat. La forme post-incrément de l'opérateur (expression++) ajoute 1 à expression et renvoie la valeur initiale d' expression (la valeur précédant l'addition). The pre-increment form of the operator increments x to 2 (x + 1 = 2) and returns the result as y: var x:Number = var y:Number = trace("x:"+x); trace("y:"+y); 1; ++x; //traces x:2 //traces y:2 Opérateurs 169 La forme post-incrément de l'opérateur incrémente x pour obtenir 2 (x + 1 = 2) et renvoie la valeur d'origine de xcomme résultat y : var x:Number = var y:Number = trace("x:"+x); trace("y:"+y); 1; x++; //traces x:2 //traces y:1 Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression : Number - Nombre ou variable évaluée sous forme de nombre Valeur renvoyée Number - Résultat de l'incrément. Exemple L'exemple suivant utilise ++ en tant qu'opérateur de post-incrémentation pour qu'une boucle while s'exécute à cinq reprises : var i:Number = 0; while (i++ < 5) { trace("this is execution " + i); } /* output: this is execution 1 this is execution 2 this is execution 3 this is execution 4 this is execution 5 */ L'exemple suivant utilise ++ en tant qu'opérateur de pré-incrémentation : var a:Array = new Array(); var i:Number = 0; while (i < 10) { a.push(++i); } trace(a.toString()); //traces: 1,2,3,4,5,6,7,8,9,10 Cet exemple utilise également ++ en tant qu'opérateur de pré-incrémentation. var a:Array = []; for (var i = 1; i <= 10; ++i) { a.push(i); } trace(a.toString()); //traces: 1,2,3,4,5,6,7,8,9,10 170 Chapitre 1: Eléments du langage ActionScript Ce script affiche le résultat suivant dans le panneau de sortie : 1,2,3,4,5,6,7,8,9,10 L'exemple suivant utilise ++ en tant qu'opérateur de post-incrémentation dans une boucle while : // using a while loop var a:Array = new Array(); var i:Number = 0; while (i < 10) { a.push(i++); } trace(a.toString()); //traces 0,1,2,3,4,5,6,7,8,9 L'exemple suivant utilise ++ en tant qu'opérateur de post-incrémentation dans une boucle : for // using a for loop var a:Array = new Array(); for (var i = 0; i < 10; i++) { a.push(i); } trace(a.toString()); //traces 0,1,2,3,4,5,6,7,8,9 Ce script affiche le résultat suivant dans le panneau de sortie : 0,1,2,3,4,5,6,7,8,9 Opérateur != (inégalité) expression1 != expression2 Recherche l'inverse de l'opérateur d'égalité (==). Si expression1 est égale à expression2 , le résultat est false. Comme pour l'opérateur d'égalité (==), la définition de l'égalité dépend des types de données comparés, comme illustré dans la liste suivante : ■ Les valeurs booléennes, les nombres et les chaînes sont comparés en fonction de leur valeur. ■ Les objets, les tableaux et les fonctions sont comparés par référence. ■ Une variable est comparée par valeur ou par référence, en fonction de son type. La comparaison par valeur, comme son nom l'indique signifie que deux expressions ont la même valeur. Par exemple, l'expression (2 + 3) est égale à l'expression (1 + 4) lorsque la comparaison porte sur la valeur. La comparaison par référence signifie que deux expressions ne sont égales que si elles font toutes deux référence au même objet, tableau ou fonction. Les valeurs figurant dans l'objet, le tableau ou la fonction ne sont pas comparées. Opérateurs 171 Lorsque la comparaison porte sur la valeur, si expression1 et expression2 ont un type de donnée différent, ActionScript tente de convertir le type de données d' expression2 pour le faire correspondre à celui d'expression1. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression1 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. expression2 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple L'exemple suivant affiche le résultat de l'opérateur d'inégalité (!=) : trace(5 != 8); // returns true trace(5 != 5) //returns false L'exemple suivant illustre l'utilisation de l'opérateur d'inégalité (!=) dans une instruction if : var a:String = "David"; var b:String = "Fool"; if (a != b) { trace("David is not a fool"); } L'exemple suivant illustre la comparaison par référence avec deux fonctions : var a:Function = function() { trace("foo"); }; var b:Function = function() { trace("foo"); }; a(); // foo b(); // foo trace(a != b); // true a = b; a(); // foo b(); // foo trace(a != b); // false // trace statement output: foo foo true foo foo false L'exemple suivant illustre la comparaison par référence avec deux tableaux : var a:Array = [ var b:Array = [ trace(a); // 1, trace(b); // 1, trace(a!=b); // 172 1, 2, 3 ]; 1, 2, 3 ]; 2, 3 2, 3 true Chapitre 1: Eléments du langage ActionScript a = b; trace(a); // 1, 2, 3 trace(b); // 1, 2, 3 trace(a != b); // false // trace statement output: 1,2,3 1,2,3 true 1,2,3 1,2,3 false Voir également ! Opérateur NOT logique, Opérateur !== (inégalité stricte), Opérateur && (AND logique), Opérateur || (OR logique), Opérateur == (égalité), Opérateur === (égalité stricte) Opérateur d'inégalité <> expression1 <> expression2 Déconseillé depuis Flash Player 5. Cet opérateur est déconseillé. Macromedia recommande d'utiliser l'opérateur != (inequality). Recherche l'inverse de l'opérateur d'égalité (==). Si expression1 est égale à expression2, le résultat est false. Comme pour l'opérateur d'égalité (==), la définition de l'égalité dépend des types de données comparés : ■ Les valeurs booléennes, les nombres et les chaînes sont comparés en fonction de leur valeur. ■ Les objets, les tableaux et les fonctions sont comparés par référence. ■ Les variables sont comparées par valeur ou par référence, en fonction de leur type. Disponibilité : Flash Player 2 ; ActionScript 1.0 Opérandes expression1 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. expression2 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Voir également Opérateur != (inégalité) Opérateurs 173 Opérateur instanceof object instanceof classConstructor Teste si object est une occurrence de classConstructor ou une sous-classe de classConstructor. L'opérateur instanceof ne convertit pas les types primitifs en enveloppes. Par exemple, le code suivant renvoie true : new String("Hello") instanceof String; Tandis que le code suivant renvoie false : "Hello" instanceof String; Disponibilité : Flash Player 6 ; ActionScript 1.0 Opérandes object : Object - Objet ActionScript. classConstructor : Function - Référence à une fonction constructeur ActionScript, telle que String ou Date. Valeur renvoyée - Si object est une occurence ou une sous-classe de classConstructor, renvoietrue, sinon il renvoie false. De même, _global instanceof Object renvoie false. Boolean instanceof Voir également Opérateur typeof Opérateur < (inférieur à) expression1 < expression2 Compare deux expressions et détermine si expression1 est inférieure à expression2 ; dans l'affirmative, cet opérateur renvoie true. Si expression1 est supérieure ou égale à expression2, l'opérateur renvoie false. Les expressions de type chaîne sont évaluées en fonction de l'ordre alphabétique ; toutes les lettres majuscules précèdent les lettres minuscules. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou chaîne. expression2 : Number - Nombre ou chaîne. 174 Chapitre 1: Eléments du langage ActionScript Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple Les exemples suivants renvoient des valeurs true et false pour les comparaisons numériques et de type chaîne : trace(3 < 10); // true trace(10 < 3); // false trace("Allen" < "Jack"); // true trace("Jack" < "Allen"); //false trace("11" < "3"); // true trace("11" < 3); // false (numeric comparison) trace("C" < "abc"); // true trace("A" < "a"); // true Opérateur lt inférieur à (chaînes) expression1 lt expression2 Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur < (inférieur à). Compare expression1 à expression2 et renvoie true si expression1 est inférieur à dans les autre cas. expression2, false Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Nombres, chaînes ou variables. expression2 : Object - Nombres, chaînes ou variables. Valeur renvoyée Boolean - Résultat de la comparaison. Voir également Opérateur < (inférieur à) Opérateur <= (inférieur ou égal à) expression1 <= expression2 Opérateurs 175 Compare deux expressions et détermine si expression1 est inférieure ou égale à expression2 ; dans l'affirmative, cet opérateur renvoie true. Si expression1 est supérieure à expression2, l'opérateur renvoie false. Les expressions de type chaîne sont évaluées en fonction de l'ordre alphabétique ; toutes les lettres majuscules précèdent les lettres minuscules. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Nombre ou chaîne. expression2 : Object - Nombre ou chaîne. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple Les exemples suivants renvoient des valeurs true et false pour les comparaisons numériques et de type chaîne : trace(5 <= 10); // true trace(2 <= 2); // true trace(10 <= 3); // false trace("Allen" <= "Jack"); // true trace("Jack" <= "Allen"); // false trace("11" <= "3"); // true trace("11" <= 3); // false (numeric comparison) trace("C" <= "abc"); // true trace("A" <= a); // true Opérateur le inférieur ou égal à (chaînes) expression1 le expression2 Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé dans Flash 5 en faveur de l'opérateur <= (inférieur ou égal à). Compare expression1 à expression2 et renvoie true si expression1 est inférieure ou égale à expression2, false dans les autre cas. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Nombres, chaînes ou variables. expression2 : Object - Nombres, chaînes ou variables. 176 Chapitre 1: Eléments du langage ActionScript Valeur renvoyée Boolean - Résultat de la comparaison. Voir également Opérateur <= (inférieur ou égal à) Opérateur // (séparateur de commentaires sur une ligne) // comment Signale le début d'un commentaire de script. Tout caractère qui s'affiche entre le séparateur de commentaires (//) et le caractère de fin de ligne est interprété en tant que commentaire et ignoré par l'interpréteur d'ActionScript. Disponibilité : Flash Player 1,0 ; ActionScript 1.0 Opérandes comment - Tout caractère. Exemple Le script suivant utilise des séparateurs de commentaires pour identifier les première, troisième, cinquième et septième lignes en tant que commentaires : // record the X position of the var ballX:Number = ball_mc._x; // record the Y position of the var ballY:Number = ball_mc._y; // record the X position of the var batX:Number = bat_mc._x; // record the Y position of the var batY:Number = bat_mc._y; ball movie clip ball movie clip bat movie clip ball movie clip Voir également Opérateur /*..*/ (séparateur de commentaires de bloc) Opérateur && (AND logique) expression1 && expression2 Opérateurs 177 Effectue une opération booléenne sur les valeurs des deux expressions. Si expression1 et expression2 ont toutes deux la valeur true, true est renvoyé, sinon false est renvoyé. Expression Renvoie true&&true true true&&false false false&&false false false&&true false Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Valeur booléenne ou expression qui se convertit en valeur booléenne. expression2 : Number - Valeur booléenne ou une expression qui se convertit en valeur booléenne. Valeur renvoyée Boolean - Résultat booléen de l'opération logique. Exemple L'exemple suivant utilise l'opérateur AND logique (&&) pour effectuer un test permettant de déterminer si un joueur a gagné la partie. Les variables turns et score sont mises à jour lorsqu'un joueur prend la main ou marque des points au cours de la partie. Le script affiche le texte « You Win the Game ! » dans le panneau de sortie lorsque le score du joueur atteint au moins la valeur 75 pour 3 parties jouées ou moins. var turns:Number = 2; var score:Number = 77; if ((turns <= 3) && (score >= 75)) { trace("You Win the Game!"); } else { trace("Try Again!"); } // output: You Win the Game! Voir également ! Opérateur NOT logique, Opérateur != (inégalité), Opérateur !== (inégalité stricte), Opérateur || (OR logique), Opérateur == (égalité), Opérateur === (égalité stricte) 178 Chapitre 1: Eléments du langage ActionScript Opérateur AND (and logique) condition1 and condition2 Deconseillé depuis Flash Player 5. Macromedia recommande d'utiliser l'opérateur AND logique (&&). Effectue une opération AND logique (&&) dans Flash Player 4. Si les deux expressions renvoient true, l'expression toute entière a la valeur true. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes condition1 : Boolean true condition2 : Boolean true - condition1,condition2 Conditions ou expressions renvoyant ou false. - condition1,condition2 Conditions ou expressions renvoyant ou false. Valeur renvoyée Boolean - Résultat booléen de l'opération logique. Voir également Opérateur && (AND logique) ! Opérateur NOT logique ! expression Inverse la valeur booléenne d'une variable ou d'une expression. Si expression est une variable dont la valeur absolue ou convertie est true, la valeur de ! expression est false. Si l'expression x && y renvoie false, l'expression !(x && y) renvoie true. Les expressions suivantes illustrent le résultat de l'utilisation de l'opérateur logique NON (!) : ! true renvoie false, ! false renvoie true Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression : Boolean - Expression ou variable qui renvoie une valeur booléenne. Valeur renvoyée Boolean - Résultat booléen de l'opération logique. Opérateurs 179 Exemple Dans l'exemple suivant, la variable happy est définie sur false. La condition if évalue la condition !happy, et si elle est true, l'instruction trace() envoie une chaîne vers le panneau de sortie. var happy:Boolean = false; if (!happy) { trace("don't worry, be happy"); //traces don't worry, be happy } L'instruction trace parce que !false égale true. Voir également Opérateur != (inégalité), Opérateur !== (inégalité stricte), Opérateur && (AND logique), Opérateur || (OR logique), Opérateur == (égalité), Opérateur === (égalité stricte) Opérateur NOT non logique not expression Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur ! (logical NOT). Effectue une opération NOT logique (!) dans Flash Player 4. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression : Object - Variable ou autre expression qui se convertit en valeur booléenne. Valeur renvoyée Boolean - Résultat de l'opération logique. Voir également ! Opérateur NOT logique Opérateur || (OR logique) expression1 || expression2 180 Chapitre 1: Eléments du langage ActionScript Evalue expression1 (l'expression située à gauche de l'opérateur) et renvoie true si cette expression est vraie. Si expression1 renvoie false, expression2 (l'expression située à droite de l'opérateur) est évaluée. Si expression2 renvoie false, le résultat final est false. Sinon, le résultat est true. Si vous utilisez un appel de fonction en tant qu'expression2, la fonction ne sera pas exécutée par cet appel si expression1 renvoie true. Le résultat est truetrue si l'une des expressions, voire les deux, renvoie(nt) true. Le résultat est false si et uniquement si les deux expressions renvoient false. Vous pouvez utiliser l'opérateur OR logique avec autant d'opérandes que nécessaire. Si l'un des opérandes renvoie true, le résultat est true. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Valeur booléenne ou une expression qui se convertit en valeur booléenne. expression2 : Number - Valeur booléenne ou une expression qui se convertit en valeur booléenne. Valeur renvoyée Boolean - Résultat de l'opération logique. Exemple L'exemple suivant utilise l'opérateur OR logique ||) dans une instruction if. La deuxième expression renvoie true, par conséquent, le résultat final est true : var x:Number = 10; var y:Number = 250; var start:Boolean = false; if ((x > 25) || (y > 200) || (start)) { trace("the logical OR test passed"); // output: the logical OR test passed } Le message « the logical OR test passed » apparaît car l'une des conditions de l'instruction if est true (y>200). Bien que les deux autres expressions renvoient false, tant qu'une condition renvoie true, le bloc if s'exécute . L'exemple suivant illustre la façon dont des résultats inattendus peuvent être obtenus si vous utilisez un appel de fonction en tant qu'expression2. Si l'expression située à gauche de l'opérateur renvoie true, ce résultat est renvoyé sans évaluer l'expression située à droite (la fonction fx2() n'est pas appelée). function fx1():Boolean { Opérateurs 181 trace("fx1 called"); return true; } function fx2():Boolean { trace("fx2 called"); return true; } if (fx1() || fx2()) { trace("IF statement entered"); } Les informations suivantes apparaissent dans le panneau de sortie : fonction fx1 appelée, instruction IF entrée Voir également ! Opérateur NOT logique, Opérateur != (inégalité), Opérateur !== (inégalité stricte), Opérateur && (AND logique), Opérateur == (égalité), Opérateur === (égalité stricte) Opérateur OR ou logique condition1 or condition2 Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur || (logical OR). Evalue condition1 et condition2, si l'une des deux expressions est true, l'expression entière est true. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes condition1 : Boolean - Expression qui prend pour valeur true ou false. condition2 : Boolean - Expression qui prend pour valeur true ou false. Valeur renvoyée Boolean - Résultat de l'opération logique. Voir également Opérateur || (OR logique), | Opérateur OR au niveau du bit Opérateur % (modulo) expression1 % expression2 182 Chapitre 1: Eléments du langage ActionScript Calcule le reste de expression1 divisé par expression2. Si l'un des paramètres d'expression n'est pas numérique, l'opérateur modulo (%) tente de le convertir en nombre. expression peut être un nombre ou une chaîne à convertir en valeur numérique. Le signe du résultat de l'opération modulo correspond au signe du dividende (le premier nombre). Par exemple, -4 % 3 et -4 % -3 renvoient tous deux -1. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression évaluée sous forme de nombre. expression2 : Number - Nombre ou expression évaluée sous forme de nombre. Valeur renvoyée Number - Résultat de l'opération arithmétique. Exemple L'exemple numérique suivant utilise l'opérateur modulo (%) : trace(12%5); // traces 2 trace(4.3%2.1); // traces 0.0999999999999996 trace(4%4); // traces 0 La première instruction trace renvoie 2, plutôt que 12/5 ou 2,4 car l'opérateur modulo (%) renvoie uniquement le reste. La deuxième instruction trace renvoie 0,0999999999999996 au lieu de la valeur 0,1 attendue en raison des limites d'exactitude des nombres à virgule flottante inhérentes au calcul binaire. Voir également Opérateur / (division), round (méthode Math.round) Opérateur %= (affectation modulo) expression1 %= expression2 Affecte à expression1 la valeur de expression1 % expression2. Les deux instructions suivantes sont équivalentes : x %= y; x = x % y; Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression évaluée sous forme de nombre. Opérateurs 183 expression2 : Number - Nombre ou expression évaluée sous forme de nombre. Valeur renvoyée Number - Résultat de l'opération arithmétique. Exemple L'exemple suivant affecte la valeur 4 à la variable x : var x:Number = 14; var y:Number = 5; trace(x = y); // output: 4 Voir également Opérateur % (modulo) Opérateur * (multiplication) expression1 * expression2 Multiplie deux expressions numériques. Lorsque les deux expressions sont des entiers, le produit est un entier. Lorsque l'une ou les deux expressions sont des nombres à virgule flottante, le produit est un nombre à virgule flottante. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression évaluée sous forme de nombre. expression2 : Number - Nombre ou expression évaluée sous forme de nombre. Valeur renvoyée Number - Entier ou nombre à virgule flottante. Exemple Utilisation 1 : L'instruction suivante multiplie les entiers 2 et 3 : trace(2*3); // output: 6 Le résultat est 6 qui correspond à un entier. Utilisation 2 : Cette instruction multiplie les nombres à virgule flottante 2,0 et 3,1416 : trace(2.0 * 3.1416); // output: 6.2832 Le résultat est 6,2832 qui correspond à un nombre à virgule flottante. 184 Chapitre 1: Eléments du langage ActionScript Opérateur *= (affectation de multiplication) expression1 *= expression2 Affecte à expression1 la valeur de expression1 * expression2. Par exemple, les deux expressions suivantes sont équivalentes : x *= y; x = x * y Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression évaluée sous forme de nombre. expression2 : Number - Nombre ou expression évaluée sous forme de nombre. Valeur renvoyée - Valeur de expression1 * expression2. Si une expression ne peut pas être convertie en valeur numérique, elle renvoie NaN (non numérique). Number Exemple Utilisation 1 : L'exemple suivant affecte la valeur 50 à la variable x : var x:Number = 5; var y:Number = 10; trace(x *= y); // output: 50 Utilisation 2 : Les deuxième et troisième lignes de l'exemple suivant calculent les expressions situées à droite du signe égal et affectent les résultats à x et y : var i:Number = var x:Number = var y:Number = trace(x *= y); 5; 4 - 6; i + 2; // output: -14 Voir également Opérateur * (multiplication) Opérateur new new constructor() Crée un objet, initialement anonyme, et appelle la fonction identifiée par le paramètre constructor. L'opérateur new transmet à la fonction les paramètres facultatifs placés entre parenthèses, ainsi que le nouvel objet créé, référencé à l'aide du mot-clé this. La fonction constructor peut ensuite utiliser this pour définir les variables de l'objet. Opérateurs 185 Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes constructor : Object - Fonction suivie des paramètres facultatifs placés entre parenthèses. La fonction correspond généralement au nom du type d'objet (par exemple, Array, Number, ou Object) à construire. Exemple L'exemple suivant crée la fonction Book(), puis utilise l'opérateur new pour créer les objets book1 et book2. function Book(name, price){ this.name = name; this.price = price; } book1 = new Book("Confederacy of Dunces", 19.95); book2 = new Book("The Floating Opera", 10.95); L'exemple suivant utilise l'opérateur new pour créer un objet Array incluant 18 éléments : golfCourse_array = new Array(18); Voir également Opérateur d'accès au tableau [], Opérateur {} (initialiseur d'objet) Opérateur ne n'est pas égal à (chaînes) expression1 ne expression2 Déconseillédepuis Flash Player 5. Cet opérateur a été déconseillé en faveur de l'opérateur != (inequality). Compare expression1 à expression2 et renvoie true si expression1 n'est pas égal à expression2, false dans les autre cas. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object - Nombres, chaînes ou variables. expression2 : Object - Nombres, chaînes ou variables. Valeur renvoyée Boolean 186 - Renvoie true si expression1 n'est pas égal à expression2 ; false sinon. Chapitre 1: Eléments du langage ActionScript Voir également Opérateur != (inégalité) Opérateur {} (initialiseur d'objet) object = { name1 : value1 , name2 : value2 ,... nameN : valueN } [...expressionN]} Crée un objet et l'initialise avec les paires de propriétés spécifiées name et value. L'utilisation de cet opérateur a le même effet que la syntaxe new Object et le fait de compléter des paires de propriétés avec l'opérateur d'affectation. Le prototype du nouvel objet est génériquement appelé Object. {expression1; Cet opérateur est également utilisé pour marquer des blocs de code contigus associés aux instructions de contrôle du flux (for, while, if, else, switch) et aux fonctions. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes object : Object - Oobjet à créer. name1,2,...N - Noms des propriétés. value1,2,...N - Valeurs correspondantes pour chaque propriété name. Valeur renvoyée Object - Utilisation 1 : Un objet Object. Utilisation 2 : Rien, sauf lorsqu'une fonction renvoie une instruction return explicite, auquel cas le type renvoyé est spécifié lors de l'implémentation de la fonction. Exemple La première ligne du code suivant crée un objet vide à l'aide de l'opérateur ({}) initialiseur d'objet ; la deuxième ligne crée un nouvel objet à l'aide d'une fonction constructeur : var object:Object = {}; var object:Object = new Object(); L'exemple suivant crée un objet account et initialise les propriétés name, address, city, et balance avec les valeurs suivantes : state, zip, var account:Object = {name:"Macromedia, Inc.", address:"600 Townsend Street", city:"San Francisco", state:"California", zip:"94103", balance:"1000"}; for (i in account) { trace("account." + i + " = " + account[i]); } Opérateurs 187 L'exemple suivant indique comment imbriquer un tableau et des initialiseurs d'objet : var person:Object = {name:"Gina Vechio", children:["Ruby", "Chickie", "Puppa"]}; L'exemple suivant utilise les informations de l'exemple précédent et permet d'obtenir le même résultat à l'aide des fonctions constructeur : var person:Object = new Object(); person.name = "Gina Vechio"; person.children = new Array(); person.children[0] = "Ruby"; person.children[1] = "Chickie"; person.children[2] = "Puppa"; L'exemple ActionScript précédent peut également être écrit au format suivant : var person:Object = new Object(); person.name = "Gina Vechio"; person.children = new Array("Ruby", "Chickie", "Puppa"); Voir également Object Opérateur () (parenthèses) (expression1 [, expression2]) ( expression1, expression2 ) function ( parameter1,..., parameterN ) Effectue une opération de regroupement sur un ou plusieurs paramètres, évalue les expressions de façon séquentielle ou entoure un ou plusieurs paramètres et les transmet en tant que paramètres à une fonction en dehors des parenthèses. Utilisation 1 : Contrôle l'ordre suivant lequel les opérateurs s'exécutent dans l'expression. Les parenthèses remplacent la séquence normale et entraînent l'évaluation des expressions entre parenthèses en premier. Lorsque les parenthèses sont imbriquées, le contenu entre les parenthèses de plus bas niveau est évalué en premier. Utilisation 2 : Évalue une série d'expressions, séparées par des virgules, dans la séquence et renvoie le résultat de l'expression finale. Utilisation 3 : Entoure un ou plusieurs paramètres et les transmet en tant que paramètres à la fonction située en dehors des parenthèses. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Object 188 - Nombres, chaînes, variables ou texte. Chapitre 1: Eléments du langage ActionScript expression2 : Object function : Function - Nombres, chaînes, variables ou texte. - Fonction à exécuter sur le contenu des parenthèses. - Série de paramètres à exécuter avant de transmettre les résultats sous forme de paramètres à la fonction située en-dehors des parenthèses. parameter1...parameterN : Object Exemple Utilisation 1 : Les instructions suivantes illustrent l'utilisation de parenthèses afin de contrôler l'ordre dans lequel les expressions sont exécutées (la valeur de chaque expression apparaît dans le panneau de sortie) : trace((2 + 3)*(4 + 5)); // Output: 45 trace((2 + 3) * (4 + 5)); // Output: 45trace(2 + (3 * (4 + 5))); // // writes 29 trace(2 + (3 * (4 + 5))); // Output: 29trace(2+(3*4)+5); // writes 19 trace(2 + (3 * 4) + 5); // Output: 19 Utilisation 2 : L'exemple suivant évalue la fonction foo(), puis la fonction bar() et renvoie le résultat de l'expression a + b : var a:Number = 1; var b:Number = 2; function foo() { a += b; } function bar() { b *= 10; } trace((foo(), bar(), a + b)); // outputs 23 Utilisation 3 : L'exemple suivant illustre l'utilisation des parenthèses avec des fonctions : var today:Date = new Date(); trace(today.getFullYear()); // traces current year function traceParameter(param):Void { trace(param); } traceParameter(2 * 2); //traces 4 Voir également Instruction with Opérateur === (égalité stricte) expression1 === expression2 Teste l'égalité de deux expressions ; l'opérateur d'égalité stricte (===) se comporte de la même façon que l'opérateur d'égalité (==), à la différence que les types de données ne sont pas convertis. Le résultat est true lorsque les deux expressions sont égales, types de données inclus. La définition de l'égalité dépend du type de données du paramètre : Opérateurs 189 ■ Les nombres ou les valeurs booléennes sont considérés comme égaux lorsque leur valeur est identique. ■ Les expressions de type String sont égales lorsqu'elles comportent le même nombre de caractères et que ces caractères sont identiques. ■ Les variables représentant des objets, des tableaux et des fonctions sont comparées par référence. Deux variables sont égales lorsqu'elles font référence au même objet, au même tableau ou à la même fonction. Deux tableaux distincts ne sont jamais considérés comme égaux, même s'ils comportent le même nombre d'éléments. Disponibilité : Flash Player 6 ; ActionScript 1.0 Opérandes expression1 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. expression2 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple Les commentaires inclus dans le code suivant affichent la valeur renvoyée des opérations qui utilisent les opérateurs d'égalité et d'égalité stricte : // Both return true because no conversion is done var string1:String = "5"; var string2:String = "5"; trace(string1 == string2); // true trace(string1 === string2); // true // Automatic data typing in this example converts 5 to "5" var string1:String = "5"; var num:Number = 5; trace(string1 == num); // true trace(string1 === num); // false // Automatic data typing in this example converts true to "1" var string1:String = "1"; var bool1:Boolean = true; trace(string1 == bool1); // true trace(string1 === bool1); // false // Automatic data typing in this example converts false to "0" var string1:String = "0"; var bool2:Boolean = false; trace(string1 == bool2); // true trace(string1 === bool2); // false 190 Chapitre 1: Eléments du langage ActionScript Les exemples suivants illustrent la façon dont l'opérateur d'égalité stricte traite les références de variables différemment des variables incluant des valeurs littérales. C'est l'une des raisons pour laquelle il convient d'utiliser de façon systématique des littéraux de chaîne et d'éviter d'utiliser l'opérateur new avec la classe String. // Create a string variable using a literal value var str:String = "asdf"; // Create a variable that is a reference var stringRef:String = new String("asdf"); // The equality operator does not distinguish among literals, variables, // and references trace(stringRef == "asdf"); // true trace(stringRef == str); // true trace("asdf" == str); // true // The strict equality operator considers variables that are references // distinct from literals and variables trace(stringRef === "asdf"); // false trace(stringRef === str); // false Voir également ! Opérateur NOT logique, Opérateur != (inégalité), Opérateur !== (inégalité stricte), Opérateur && (AND logique), Opérateur || (OR logique), Opérateur == (égalité) Opérateur !== (inégalité stricte) expression1 !== expression2 Recherche l'inverse exact de l'opérateur d'égalité stricte (=== ). L'opérateur d'inégalité stricte opère de la même façon que l'opérateur d'inégalité, à la différence que le type de données n'est pas converti. Si expression1 est égal à expression2, et que leurs types de données sont égaux, le résultat est false Comme pour l'opérateur d'égalité stricte (===), la définition de l'égalité dépend des types de données comparés, comme illustré dans la liste suivante : ■ Les valeurs booléennes, les nombres et les chaînes sont comparés en fonction de leur valeur. ■ Les objets, les tableaux et les fonctions sont comparés par référence. ■ Une variable est comparée par valeur ou par référence, en fonction de son type. Disponibilité : Flash Player 6 ; ActionScript 1.0 Opérateurs 191 Opérandes expression1 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. expression2 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction. Valeur renvoyée Boolean - Résultat booléen de la comparaison. Exemple Les commentaires inclus dans le code suivant affichent la valeur renvoyée des opérations qui utilisent les opérateurs d'égalité (==), d'égalité stricte (===) et d'inégalité stricte (!==): var s1:String = "5"; var s2:String = "5"; var s3:String = "Hello"; var n:Number = 5; var b:Boolean = true; trace(s1 == s2); // true trace(s1 == s3); // false trace(s1 == n); // true trace(s1 == b); // false trace(s1 === s2); // true trace(s1 === s3); // false trace(s1 === n); // false trace(s1 === b); // false trace(s1 !== s2); // false trace(s1 !== s3); // true trace(s1 !== n); // true trace(s1 !== b); // true Voir également ! Opérateur NOT logique, Opérateur != (inégalité), Opérateur && (AND logique), Opérateur || (OR logique), Opérateur == (égalité), Opérateur === (égalité stricte) Opérateur " (séparateur de chaîne) "text" Lorsqu'ils entourent des caractères, les guillemets (") indiquent que ces caractères ont une valeur littérale et doivent être traités en tant que chaîne et non pas en tant que variable, valeur numérique ou tout autre élément ActionScript. 192 Chapitre 1: Eléments du langage ActionScript Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes text : String - Séquence de zéros ou de plusieurs caractères. Exemple L'exemple suivant utilise des guillemets (") pour indiquer que la valeur de la variable yourGuess est la chaîne littérale "Prince Edward Island", et non pas le nom d'une variable. La valeur province est une variable, et non un littéral ; pour déterminer la valeur de province, la valeur de yourGuess doit être déterminée. var yourGuess:String = "Prince Edward Island"; submit_btn.onRelease = function() { trace(yourGuess); }; // displays Prince Edward Island Voir également String, Fonction String Opérateur - (soustraction) (Negation) -expression (Subtraction) expression1 - expression2 Utilisé pour la négation ou la soustraction. Utilisation 1 : Lorsque cet opérateur est utilisé pour la négation, il inverse le signe de l'expression numérique expression. Utilisation 2 : Lorsqu'il est utilisé pour la soustraction, il effectue une soustraction arithmétique sur deux expressions numériques, en soustrayant expression2 de expression1. Lorsque les deux expressions sont des entiers, la différence est un entier. Lorsque l'une ou les deux expressions sont des nombres à virgule flottante, la différence est un nombre à virgule flottante. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression évaluée sous forme de nombre. expression2 : Number - Nombre ou expression évaluée sous forme de nombre. Valeur renvoyée Number - Entier ou nombre à virgule flottante. Opérateurs 193 Exemple Utilisation 1 : L'instruction suivante inverse le signe de l'expression 2 + 3 : trace(-(2+3)); // output: -5 Utilisation 2 : L'instruction suivante soustrait l'entier 2 de l'entier 5 : trace(5-2); // output: 3 Le résultat est 3 qui correspond à un entier. Utilisation 3 : L'instruction suivante soustrait le nombre à virgule flottante 1,5 du nombre à virgule flottante 3,25 : trace(3.25-1.5); // output: 1.75 Le résultat est 1,75 qui correspond à un nombre à virgule flottante. Opérateur -= (affectation de soustraction) expression1 -= expression2 Affecte à expression1 la valeur de expression1 - expression2. Par exemple, les deux instructions suivantes sont équivalentes : x -= y ;x = x - y; Les expressions de type String doivent être converties en nombres. Sinon, NaN (non numérique) est renvoyé. Disponibilité : Flash Player 4 ; ActionScript 1.0 Opérandes expression1 : Number - Nombre ou expression évaluée sous forme de nombre. expression2 : Number - Nombre ou expression évaluée sous forme de nombre. Valeur renvoyée Number - Résultat de l'opération arithmétique. Exemple L'exemple suivant utilise l'opérateur (-=) d'affectation de soustraction pour soustraire 10 de 5 et affecte le résultat à la variable x : var x:Number = 5; var y:Number = 10; x -= y; trace(x); // output: -5 L'exemple suivant indique comment convertir des chaînes en nombres : var x:String = "5"; var y:String = "10"; x -= y; trace(x); // output: -5 194 Chapitre 1: Eléments du langage ActionScript Voir également Opérateur - (soustraction) : Opérateur [ modifiers ] var variableName : type function functionName () : type { ... } function functionName ( parameter1:type , ... , parameterN:type ) [ :type ]{ ... } Utilisé pour le typage strict des données ; cet opérateur spécifie le type de variable, le type de renvoi de la fonction ou le type de paramètre de la fonction. Lorsqu'il est utilisé dans une déclaration une affectation de variable, cet opérateur spécifie le type de variable. Lorsqu'il fait partie d'une déclaration ou une définition de fonction, cet opérateur spécifie le type de renvoi de la fonction. Lorsqu'il est utilisé avec un paramètre de fonction dans une définition de fonction, cet opérateur spécifie le type de variable attendu pour ce paramètre. Un type est une fonction de compilation uniquement. Tous les types sont vérifiés lors de la compilation et des erreurs sont générées en cas d'incompatibilité. Les incompatibilités peuvent se produire pendant les opérations d'affectation, les appels de fonction et les ruptures de référence des membres de classe avec l'opérateur (.). Pour éviter les erreurs liées aux incompatibilités, appliquez le typage strict des données. Les types utilisables incluent tous les types d'objet, les classes et les interfaces natifs que vous avez définis, ainsi que Function et Void. Les types natifs reconnus sont Boolean, Number et String. Toutes les classes intégrées sont également prises en charge en tant que types natifs. Disponibilité : Flash Player 6 ; ActionScript 1.0 Opérandes - Identificateur pour une variable. type - Type de données natif, nom de classe que vous avez défini ou nom d'interface. functionName - Identificateur pour une fonction. parameter - Identificateur pour un paramètre de fonction. variableName : Object Exemple Utilisation 1 : L'exemple suivant déclare une variable publique intitulée userName de type String et lui affecte une chaîne vide : var userName:String = ""; Utilisation 2 : L'exemple suivant indique comment spécifier le type de paramètre d'une fonction en définissant une fonction intitulée randomInt() qui prend un paramètre intitulé integer de type Number : function randomInt(integer:Number):Number { return Math.round(Math.random()*integer); Opérateurs 195 } trace(randomInt(8)); Utilisation 3 : L'exemple suivant définit une fonction intitulée ssquareRoot() qui prend un paramètre intitulé val de type Number et renvoie la racine carrée de val, également de type Number : function squareRoot(val:Number):Number { return Math.sqrt(val); } trace(squareRoot(121)); Voir également Instruction var, Instruction function Opérateur typeof typeof(expression) Evalue l' expression et renvoie une chaîne spécifiant si l'expression est une valeur de type String, MovieClip, Object, Function, Number, ou Boolean. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression : Object - Chaîne, clip, bouton, objet ou fonction. Valeur renvoyée - Représentation sous forme de String du type d'expression. Le tableau suivant affiche les résultats de l'opérateur typeof pour chaque type d'expression. String Type d'expression Résultat String string Movie clip movieclip Button object Text field object Number number Boolean boolean Object object Function function 196 Chapitre 1: Eléments du langage ActionScript Voir également Opérateur instanceof Opérateur void void expression L'opérateur void évalue une expression, puis supprime sa valeur, renvoyant undefined. L'opérateur void est souvent utilisé dans les comparaisons incluant l'opérateur == pour tester les valeurs non définies. Disponibilité : Flash Player 5 ; ActionScript 1.0 Opérandes expression : Object - Expression à évaluer. Instructions Les instructions sont des éléments de langage qui effectuent ou spécifient une action. Par exemple, l'instruction return renvoie un résultat sous forme de valeur de la fonction dans laquelle il s'exécute. L'instruction if évalue une condition pour déterminer l'action suivante à exécuter. L'instruction switch crée une structure arborescente pour les instructions ActionScript. Récapitulatif des instructions Instruction Description break Apparaît au sein d'une boucle (for , for..in, do..while ou while) ou dans un bloc d'instructions associées à un cas donné au sein d'une instruction switch. case Définit une condition pour l'instruction switch. class Définit une classe personnalisée, ce qui permet de créer des occurrences des objets qui partagent les méthodes et les propriétés que vous définissez. continue Ignore toutes les instructions restantes dans la boucle imbriquée de plus bas niveau et passe à l'itération suivante, comme si le contrôle avait été transmis à la fin de la boucle normalement. default Définit le cas par défaut d'une instruction switch. delete Détruit la référence d'objet spécifiée par le paramètre reference et renvoie true si la référence est supprimée correctement ; false sinon. Instructions 197 Instruction Description do..while Semblable à une boucle while, à la différence que les instructions sont exécutées une fois avant l'évaluation initiale de la condition. dynamic Spécifie que les objets basés sur la classe spécifiée peuvent ajouter des propriétés dynamiques et y accéder pendant l'exécution. else Spécifie les instructions à exécuter si la condition incluse dans l'instruction ifrenvoie false. else if Évalue une condition et spécifie les instructions à exécuter si la condition incluse dans l'instruction if initiale renvoie false. extends Définit une classe qui est une sous-classe d'une autre classe, cette dernière formant la superclasse. for Évalue l'expression init (initialiser) une fois, puis amorce une séquence de bouclage. for..in Répète en boucle les propriétés d'un objet ou d'éléments de tableau, puis exécute l'instruction statement pour chaque propriété ou élément. function Comprend un ensemble d'instructions que vous définissez pour effectuer une certaine tâche. get Autorise la lecture de propriétés associées aux objets sur la base des classes que vous avez définies dans les fichiers de classe externes. if Évalue une condition pour déterminer l'action suivante d'un fichier SWF. implements Spécifie qu'une classe doit définir toutes les méthodes déclarées dans l'interface (ou les interfaces) en cours d'implémentation. import Permet d'accéder aux classes sans spécifier leur nom complet, avec qualificatifs. interface Définit une interface. intrinsic Autorise la vérification des types lors de la compilation des classes définies précédemment. private Spécifie qu'une variable ou une fonction est disponible uniquement pour la classe qui la déclare ou la définit, ou pour les sous-classes de cette classe. public Spécifie qu'une variable ou une fonction est disponible à tout appelant. return Spécifie la valeur renvoyée par une fonction. set Autorise la définition implicite de propriétés associées aux objets sur la base des classes que vous avez définies dans les fichiers de classe externes. set variable Associe une valeur à une variable. 198 Chapitre 1: Eléments du langage ActionScript Instruction Description static Spécifie qu'une variable ou une fonction n'est créée qu'une fois par classe et non pas créée dans chaque objet en fonction de cette classe. super Invoque la version superclass d'une méthode ou d'un constructeur. switch Crée une structure arborescente pour les instructions ActionScript. throw Génère ou renvoie une erreur qui peut être traitée ou interceptée par un bloc de code catch{}. try..catch..finally Entoure un bloc de code dans lequel une erreur peut se produire et être traitée. var Permet de déclarer des variables locales ou de scénario. while Évalue une condition. Si cette condition renvoie true, exécute une instruction ou une série d'instructions avant de suivre la boucle et d'évaluer de nouveau la condition. with Permet de spécifier un objet (tel qu'un clip) avec le paramètre object et évalue les expressions et les actions au sein de cet objet avec le paramètre statement(s). Instruction break break Apparaît au sein d'une boucle (for , for..in, do..while ou while) ou dans un bloc d'instructions associées à un cas donné au sein d'une instruction switch. Lorsqu'elle est utilisée dans une boucle, l'instruction break force Flash à ignorer le reste du corps de la boucle, arrête l'action de la boucle et exécute l'instruction suivant l'instruction de bouclage. Lors de l'utilisation dans le cadre d'une instruction switch, l'instruction break force Flash à ignorer le reste des instructions de ce bloc case et passe à la première instruction suivant l'instruction switch qui l'encadre. Dans les boucles incorporées, l'instruction break ignore uniquement le reste de la boucle immédiate, sans sortir de la série de boucles incorporées. Pour sortir d'une série de boucles incorporées, voir try..catch..finally. Disponibilité : Flash Player 4 ; ActionScript 1.0 Exemple L'exemple suivant utilise l'instruction break pour fermer une boucle sans fin : var i:Number = 0; while (true) { trace(i); Instructions 199 if (i >= 10) { break; // this will terminate/exit the loop } i++; } ce qui permet de suivre les informations suivantes : 0 1 2 3 4 5 6 7 8 9 10 Voir également Instruction for Instruction case case expression : statement(s) Définit une condition pour l'instruction switch. Si le paramètre expression est égal au paramètre expression de l'instruction switch en appliquant l'égalité stricte (===), Flash Player exécute les instructions du paramètre statement(s) jusqu'à ce qu'il détecte une instruction break ou la fin d'une instruction switch. Si vous utilisez l'instruction case en dehors d'une instruction switch, ceci produit une erreur et le script ne se compile pas. Remarque : Vous devez toujours compléter le paramètre statement(s) par une instruction break. Si vous omettez break statement dans le paramètre statement(s) , l'exécution continue avec l'instruction case suivante au lieu de sortir de l'instruction switch. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres expression:String - Toute expression. Exemple L'exemple suivant définit les conditions de l'instruction switch thisMonth. Si thisMonth équivaut à l'expression de l'instruction case, l'instruction s'exécute. 200 Chapitre 1: Eléments du langage ActionScript var thisMonth:Number = new Date().getMonth(); switch (thisMonth) { case 0 : trace("January"); break; case 1 : trace("February"); break; case 5 : case 6 : case 7 : trace("Some summer month"); break; case 8 : trace("September"); break; default : trace("some other month"); } Voir également Instruction break Instruction class [dynamic] class className [ interfaceName... ] ] { // class definition here } extends superClass ] [ implements interfaceName[, Définit une classe personnalisée, ce qui permet de créer des occurrences des objets qui partagent les méthodes et les propriétés que vous définissez. Par exemple, si vous développez un système de suivi de factures, vous pouvez créer une classe invoice (facturation) qui définit toutes les méthodes et propriétés communes à l'ensemble des factures. Vous pouvez alors utiliser la commande new invoice() pour créer des objets facture. Le nom de la classe doit correspondre au nom du fichier externe qui contient cette classe. Le nom du fichier externe doit être identique au nom de la classe auquel vient s'ajouter l'extension .as. Par exemple, si vous nommez une classe Stagiaire, le fichier qui définit la classe doit s'appeler Stagiaire.as. Instructions 201 Si une classe appartient à un package, la déclaration de classe doit utiliser le nom de classe entièrement qualifié de la forme base.sub1.sub2.MyClass. De même, le fichier AS de la classe doit être stocké avec son chemin dans une structure d'adresse reflétant la structure du package, telle que base/sub1/sub2/MyClass.as. Si une définition de classe est de forme « class MyClass », elle est dans le package par défaut et le fichier MyClass.as doit se trouver au niveau supérieur d'une adresse dans le chemin. De ce fait, il est recommandé de planifier votre structure de répertoires avant de commencer la création de classes. En effet, si vous décidez de déplacer les fichiers de classe après leur création, vous devrez modifier les instructions de déclaration de classe pour indiquer leur nouvel emplacement. Vous ne pouvez pas incorporer des définitions de classe. En d'autres termes, vous ne pouvez pas définir de classes supplémentaires dans une définition de classe. Pour indiquer que des objets peuvent ajouter des propriétés dynamiques pendant la période d'exécution et y accéder, faites précéder l'instruction class par un mot-clé dynamic. Pour déclarer qu'une classe implémente une interface, utilisez le mot-clé implements. Pour créer des sous-classes d'une classe, utilisez le mot-clé extends. (Une classe ne peut étendre qu'une seule autre classe, mais peut implémenter plusieurs interfaces.) Vous pouvez utiliser implements et extends au sein d'une instruction unique. Les exemples suivants présentent des exemples type des mots-clés implements et extends : class C implements Interface_i, Interface_j // OK class C extends Class_d implements Interface_i, Interface_j // OK class C extends Class_d, Class_e // not OK Disponibilité : Flash Player 6 ; ActionScript 2,0 Paramètres className:String - Nom de la classe avec tous ses attributs. Exemple L'exemple suivant crée une classe intitulée Plant. Le constructeur Plant réclame deux paramètres. // Filename Plant.as class Plant { // Define property names and types var leafType:String; var bloomSeason:String; // Following line is constructor // because it has the same name as the class function Plant(param_leafType:String, param_bloomSeason:String) { // Assign passed values to properties when new Plant object is created this.leafType = param_leafType; 202 Chapitre 1: Eléments du langage ActionScript this.bloomSeason = param_bloomSeason; } // Create methods to return property values, because best practice // recommends against directly referencing a property of a class function getLeafType():String { return leafType; } function getBloomSeason():String { return bloomSeason; } } Dans un fichier de script externe ou dans le panneau Actions, utilisez l'opérateur new pour créer un objet Plant. var pineTree:Plant = new Plant("Evergreen", "N/A"); // Confirm parameters were passed correctly trace(pineTree.getLeafType()); trace(pineTree.getBloomSeason()); L'exemple suivant crée une classe intitulée ImageLoader. Le constructeur ImageLoader réclame trois paramètres. // Filename ImageLoader.as class ImageLoader extends MovieClip { function ImageLoader(image:String, target_mc:MovieClip, init:Object) { var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target) { for (var i in init) { target[i] = init[i]; } }; var JPEG_mcl:MovieClipLoader = new MovieClipLoader(); JPEG_mcl.addListener(listenerObject); JPEG_mcl.loadClip(image, target_mc); } } Dans un fichier de script externe ou dans le panneau Actions, utilisez l'opérateur new pour créer un objet ImageLoader. var jakob_mc:MovieClip = this.createEmptyMovieClip("jakob_mc", this.getNextHighestDepth()); var jakob:ImageLoader = new ImageLoader("http://www.helpexamples.com/flash/ images/image1.jpg", jakob_mc, {_x:10, _y:10, _alpha:70, _rotation:-5}); Voir également Instruction dynamic Instructions 203 Instruction continue continue Ignore toutes les instructions restantes dans la boucle imbriquée de plus bas niveau et passe à l'itération suivante, comme si le contrôle avait été transmis à la fin de la boucle normalement. Elle n'a aucun effet en dehors d'une boucle. Disponibilité : Flash Player 4 ; ActionScript 1.0 Exemple Dans la boucle while suivante, l'instruction continue force l'interpréteur Flash à ignorer le reste du corps de la boucle et à passer au début de la boucle, où la condition est testée : trace("example 1"); var i:Number = 0; while (i < 10) { if (i % 3 == 0) { i++; continue; } trace(i); i++; } Dans la boucle do..while suivante, l'instruction continue force l'interpréteur Flash à ignorer le reste du corps de la boucle et à passer au début de la boucle, où la condition est testée : trace("example 2"); var i:Number = 0; do { if (i % 3 == 0) { i++; continue; } trace(i); i++; } while (i < 10); Dans une boucle for, l'instruction continue force l'interpréteur Flash à ignorer le reste du corps de la boucle. Dans l'exemple suivant, si le modulo i 3 est égal à 0, l'instruction trace(i) est ignorée : trace("example 3"); for (var i = 0; i < 10; i++) { if (i % 3 == 0) { continue; } 204 Chapitre 1: Eléments du langage ActionScript trace(i); } Dans la boucle for..in suivante, l'instruction continue force l'interpréteur Flash à ignorer le reste du corps de la boucle et à passer de nouveau au début de la boucle, où la valeur suivante de l'énumération est traitée : for (i in _root) { if (i == "$version") { continue; } trace(i); } Voir également Instruction default default: statements Définit le cas par défaut d'une instruction switch. Les instructions s'exécutent si le paramètre expression de l'instruction switch n'est pas égal (en appliquant l'opération d'égalité stricte [===]) à l'un des paramètres expression qui suivent les mots-clés case d'une instruction switch donnée. L'instruction switch ne doit pas nécessairement inclure l'instruction case par default. L'instruction case par default ne doit pas nécessairement figurer en fin de liste. Si vous utilisez l'instruction default en dehors d'une instruction switch, ceci produit une erreur et le script ne se compile pas. Disponibilité : Flash Player 6 ; ActionScript 1.0 Paramètres statements:String - Toute instruction. Exemple Dans l'exemple suivant, l'expression A n'est pas égale aux expressions B ou D, donc l'instruction suivant le mot clé default est exécutée et l'instruction trace() est envoyée vers le panneau de sortie. var dayOfWeek:Number = new Date().getDay(); switch (dayOfWeek) { case 1 : trace("Monday"); break; case 2 : Instructions 205 trace("Tuesday"); break; case 3 : trace("Wednesday"); break; case 4 : trace("Thursday"); break; case 5 : trace("Friday"); break; default : trace("Weekend"); } Voir également Instruction switch Instruction delete delete reference Détruit la référence d'objet spécifiée par le paramètre reference et renvoie true si la référence est supprimée correctement ; false sinon. Cet opérateur permet de libérer la mémoire utilisée par les scripts. Vous pouvez utiliser l'opérateur delete pour supprimer des références à des objets. Une fois toutes les références à un objet supprimées, Flash Player supprime cet objet et libère la mémoire qu'il utilise. Bien que delete soit un opérateur, il est généralement utilisé en tant qu'instruction, comme indiqué dans l'exemple suivant : delete x; L'opérateur delete peut échouer et renvoyer false si le paramètre reference n'existe pas ou ne peut pas être supprimé. L'instruction var ne vous permet pas de supprimer d'objets et de propriétés prédéfinis, ni de variables déclarées au sein d'une fonction. Vous ne pouvez pas utiliser l'opérateur delete pour supprimer des clips. Disponibilité : Flash Player 5 ; ActionScript 1.0 Valeur renvoyée Boolean - Valeur booléenne. Paramètres reference:Object 206 - Nom de la variable ou de l'objet à éliminer. Chapitre 1: Eléments du langage ActionScript Exemple Utilisation 1 : L'exemple suivant crée un objet, l'utilise, puis le supprime lorsqu'il n'est plus requis : var account:Object = new Object(); account.name = "Jon"; account.balance = 10000; trace(account.name); //output: Jon delete account; trace(account.name); //output: undefined Utilisation 2 : L'exemple suivant supprime une propriété d'un objet : // create the new object "account" var account:Object = new Object(); // assign property name to the account account.name = "Jon"; // delete the property delete account.name; Utilisation 3 : L'exemple suivant supprime une propriété d'objet : var my_array:Array = new Array(); my_array[0] = "abc"; // my_array.length == 1 my_array[1] = "def"; // my_array.length == 2 my_array[2] = "ghi"; // my_array.length == 3 // my_array[2] is deleted, but Array.length is not changed delete my_array[2]; trace(my_array.length); // output: 3 trace(my_array); // output: abc,def,undefined Utilisation 4 : L'exemple suivant illustre le comportement de l'instruction delete sur des références à un objet : var ref1:Object = new Object(); ref1.name = "Jody"; // copy the reference variable into a new variable // and delete ref1 ref2 = ref1; delete ref1; trace("ref1.name "+ref1.name); //output: ref1.name undefined trace("ref2.name "+ref2.name); //output: ref2.name Jody Si ref1 n'avait pas été copié dans ref2, l'objet aurait été supprimé au moment de la suppression de ref1 car il ne contient aucune référence. Si vous supprimez ref2, il n'existe aucune référence à l'objet ; celui-ci sera détruit et la mémoire qu'il utilisait devient disponible. Voir également Instruction var Instructions 207 Instruction do..while do { statement(s) } while (condition) Semblable à une boucle while, à la différence que les instructions sont exécutées une fois avant l'évaluation initiale de la condition. Par conséquent, les instructions ne sont exécutées que si la condition renvoie true. La boucle ddo..while permet de s'assurer que le code de la boucle s'exécute au moins une fois. Bien que ceci puisse également se faire avec une boucle while en plaçant une copie des instructions à exécuter avant le début de la boucle while, de nombreux programmeurs trouvent les boucles do..while plus faciles à lire. Si la condition renvoie toujours true, la boucle do..while est infinie. Si vous activez une boucle infinie, vous subirez des problèmes au niveau de Flash Player et recevrez un message d'avertissement, voire subirez un arrêt du lecteur. Dans la mesure du possible, utilisez une boucle for si vous connaissez le nombre de répétitions de la boucle. Bien que les boucles for soient plus faciles à lire et déboguer, elles ne sont pas totalement interchangeables avec les boucles do..while. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres - Condition à évaluer. Les instructions statement(s) à l'intérieur du bloc de code do sont exécutées tant que le paramètre condition renvoie true . condition:Boolean Exemple L'exemple suivant utilise une boucle do..while afin de déterminer si une condition a la valeur true, et suit myVar jusqu'à ce que la valeur de myVar soit supérieure à 5. Lorsque la valeur de myVar est supérieure à 5, la boucle se termine. var myVar:Number = 0; do { trace(myVar); myVar++; } while (myVar < 5); /* output: 0 1 2 3 4 */ 208 Chapitre 1: Eléments du langage ActionScript Voir également Instruction break Instruction dynamic className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { dynamic class // class definition here } Spécifie que les objets basés sur la classe spécifiée peuvent ajouter des propriétés dynamiques et y accéder pendant l'exécution. La vérification du type des classes dynamiques est moins stricte que pour les classes non dynamiques, dans la mesure où les membres sollicités au sein de la définition de classe et dans les occurrences de classe ne sont pas comparées à celles qui sont définies dans le domaine de la classe. Les fonctions des membres de la classe, cependant, peuvent toujours faire l'objet d'une vérification du type de renvoi ou de paramètre. Ce comportement est particulièrement utile lorsque vous travaillez avec des objets MovieClip, dans la mesure où il existe de nombreuses façons d'ajouter de façon dynamique des propriétés et des objets à un clip, telles que MovieClip.createEmptyMovieClip() et MovieClip.createTextField(). Les sous-classes des classes dynamiques sont également des classes dynamiques. Spécifiez bien le type lors de la déclaration d'un objet, comme ci-dessous : var x:MyClass = new MyClass(); Si vous ne spécifiez pas le type lors de la déclaration d'un objet (comme ci-dessous), l'objet est alors considéré comme dynamique : var x = new MyClass(); Disponibilité : Flash Player 6 ; ActionScript 2,0 Exemple Dans l'exemple suivant, la classe Person2 n'a pas encore été définie comme étant dynamique ; par conséquent, l'appel d'une fonction non déclarée sur celle-ci génère une erreur lors de la compilation : class Person2 { var name:String; var age:Number; function Person2(param_name:String, param_age:Number) { trace ("anything"); this.name = param_name; this.age = param_age; } } Instructions 209 Dans un fichier FLA ou AS qui se trouve dans le même répertoire, ajoutez le code ActionScript suivant à l'image 1 sur le scénario : // Before dynamic is added var craig:Person2 = new Person2("Craiggers", 32); for (i in craig) { trace("craig." + i + " = " + craig[i]); } /* output: craig.age = 32 craig.name = Craiggers */ Si vous ajoutez une fonction non déclarée, dance, une erreur est générée, comme indiqué dans l'exemple suivant : trace(""); craig.dance = true; for (i in craig) { trace("craig." + i + " = " + craig[i]); } /* output: **Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 14: There is no property with the name 'dance'. craig.dance = true; Total ActionScript Errors: 1 Reported Errors: 1 */ Ajoutez le mot-clé dynamic à la classe Person2, de manière à ce que la première ligne s'affiche comme suit : dynamic class Person2 { Testez le code de nouveau ; vous obtenez le code suivant : craig.dance = true craig.age = 32 craig.name = Craiggers Voir également Instruction class Instruction else if (condition){ statement(s); } else { statement(s); } Spécifie les instructions à exécuter si la condition incluse dans l'instruction ifrenvoie false. Les accolades ({}), qui servent normalement à entourer le bloc d'instructions que l'instruction else doit exécuter, peuvent être omises si une seule instruction doit s'exécuter. Disponibilité : Flash Player 4 ; ActionScript 1.0 210 Chapitre 1: Eléments du langage ActionScript Paramètres condition:Boolean - Expression qui prend pour valeur true ou false. Exemple Dans l'exemple suivant, la condition else est utilisée afin de vérifier si la variable age_txt est supérieure ou inférieure à 18 : if (age_txt.text>=18) { trace("welcome, user"); } else { trace("sorry, junior"); userObject.minor = true; userObject.accessAllowed = false; } Dans l'exemple suivant, les accolades (({})) ne sont pas nécessaires car une seule instruction suit l'instruction else : if (age_txt.text>18) { trace("welcome, user"); } else trace("sorry, junior"); Voir également Instruction if Instruction else if if(condition) { statement(s); } else if(condition) { statement(s); } Évalue une condition et spécifie les instructions à exécuter si la condition incluse dans l'instruction if initiale renvoie false. Lorsque la condition else if renvoie true, l'interpréteur Flash exécute les instructions qui suivent la condition entre accolades ({}). Si la condition else if est à false, Flash ignore les instructions entre accolades et exécute les instructions qui suivent ces accolades. Utilisez l'instruction else if pour créer des arborescences logiques dans vos scripts. En présence de plusieurs branches, envisagez l'utilisation d'une instruction switch. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres condition:Boolean - Expression qui prend pour valeur true ou false. Instructions 211 Exemple L'exemple suivant utilise des instructions else if pour comparer score_txt à une valeur spécifiée : if (score_txt.text>90) { trace("A"); } else if (score_txt.text>75) { trace("B"); } else if (score_txt.text>60) { trace("C"); } else { trace("F"); } Voir également Instruction if Instruction extends class className extends otherClassName {} interface interfaceName extends otherInterfaceName {} Définit une classe qui est une sous-classe d'une autre classe, cette dernière formant la superclasse. La sous-classe hérite de toutes les méthodes, propriétés, fonctions, etc. qui sont définies dans la superclasse. Les interfaces peuvent également être développées avec le mot clé extends. Une interface qui développe une autre interface reprend toutes les déclarations de méthode de l'interface d'origine. Disponibilité : Flash Player 6 ; ActionScript 2,0 Paramètres className:String - Nom de la classe en cours de définition. Exemple Dans l'exemple suivant, la classe Car étend la classe Vehicle de manière à ce que toutes ses méthodes, propriétés et fonctions soient héritées. Si votre script instancie un objet Car, les méthodes de la classe Car et de la classe Vehicle peuvent être utilisées. L'exemple suivant affiche le contenu d'un fichier intitulé Vehicle.as, qui définit la classe Vehicle : 212 Chapitre 1: Eléments du langage ActionScript class Vehicle { var numDoors:Number; var color:String; function Vehicle(param_numDoors:Number, param_color:String) { this.numDoors = param_numDoors; this.color = param_color; } function start():Void { trace("[Vehicle] start"); } function stop():Void { trace("[Vehicle] stop"); } function reverse():Void { trace("[Vehicle] reverse"); } } L'exemple suivant affiche un deuxième fichier AS, intitulé Car.as, dans le même répertoire. Cette classe étend la classe Vehicle, la modifiant de trois façons. D'abord, la classe Car ajoute une variable fullSizeSpare afin de déterminer si, oui ou non, l'objet car est doté d'un pneu de secours de taille normale. Ensuite, elle ajoute une nouvelle méthode spécifique aux voitures, activateCarAlarm(), permettant d'activer l'alarme antivol de la voiture. Enfin, elle remplace la fonction stop() pour spécifier que la classe Car utilise un système de frein antiblocage pour s'arrêter. class Car extends Vehicle { var fullSizeSpare:Boolean; function Car(param_numDoors:Number, param_color:String, param_fullSizeSpare:Boolean) { this.numDoors = param_numDoors; this.color = param_color; this.fullSizeSpare = param_fullSizeSpare; } function activateCarAlarm():Void { trace("[Car] activateCarAlarm"); } function stop():Void { trace("[Car] stop with anti-lock brakes"); } } L'exemple suivant instancie un objet Car, appelle une méthode définie dans la classe Vehicle (start()), puis celle remplacée par la classe Car (stop()) ; il appelle enfin une méthode de la classe Car (activateCarAlarm()) : var myNewCar:Car = new Car(2, "Red", true); myNewCar.start(); // output: [Vehicle] start myNewCar.stop(); // output: [Car] stop with anti-lock brakes myNewCar.activateCarAlarm(); // output: [Car] activateCarAlarm Instructions 213 Une sous-classe de la classe Vehicle peut également être écrite à l'aide du mot-clé super que la sous-classe peut utiliser pour accéder aux propriétés et méthodes de la superclasse. L'exemple suivant affiche un troisième fichier AS, intitulé Truck.as, une fois encore dans le même répertoire. La classe Truck utilise le mot-clé super dans le constructeur et, de nouveau, dans la fonction reverse() remplacée. class Truck extends Vehicle { var numWheels:Number; function Truck(param_numDoors:Number, param_color:String, param_numWheels:Number) { super(param_numDoors, param_color); this.numWheels = param_numWheels; } function reverse():Void { beep(); super.reverse(); } function beep():Void { trace("[Truck] make beeping sound"); } } L'exemple suivant instancie un objet Truck, appelle une méthode remplacée par la classe Truck (reverse()), puis une méthode définie dans la classe Vehicle (stop()) : var myTruck:Truck = new Truck(2, "White", 18); myTruck.reverse(); // output: [Truck] make beeping sound [Vehicle] reverse myTruck.stop(); // output: [Vehicle] stop Voir également Instruction class Instruction for for(init; condition; next) { statement(s); } Évalue l'expression init (initialiser) une fois, puis amorce une séquence de bouclage. La séquence de bouclage commence par évaluer l'expression condition. Si l'expression condition renvoie true, l'instruction statement s'exécute et l'expression next est évaluée. La séquence de bouclage reprend par l'évaluation de l'expression condition. Les accolades ({}), qui servent normalement à entourer le bloc d'instructions que l'instruction doit exécuter, peuvent être omises si une seule instruction doit s'exécuter. for Disponibilité : Flash Player 5 ; ActionScript 1.0 214 Chapitre 1: Eléments du langage ActionScript Paramètres - Expression à évaluer avant d'amorcer la séquence de bouclage ; généralement une expression d'affectation. Ce paramètre autorise également une instruction var. init Exemple L'exemple suivant utilise l'instruction for pour ajouter les éléments dans un tableau : var my_array:Array = new Array(); for (var i:Number = 0; i < 10; i++) { my_array[i] = (i + 5) * 10; } trace(my_array); // output: 50,60,70,80,90,100,110,120,130,140 L'exemple suivant utilise l'instruction for pour effectuer la même action à plusieurs reprises. Dans le code, la boucle for ajoute les nombres de 1 à 100. var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) { sum += i; } trace(sum); // output: 5050 L'exemple suivant montre que les accolades ({}) ne sont pas nécessaires si une seule instruction s'exécute : var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) sum += i; trace(sum); // output: 5050 Voir également Opérateur ++ (incrément) Instruction for..in for (variableIterant in object) { statement(s); } Répète en boucle les propriétés d'un objet ou d'éléments de tableau, puis exécute l'instruction statement pour chaque propriété ou élément. Les méthodes d'un objet ne sont pas énumérées par l'action for..in. Certaines propriétés ne peuvent pas être énumérées par l'action for..in. Par exemple, les propriétés de clip, telles que _x et_y, ne sont pas énumérées. Dans les fichiers de classe externes, les membres statiques ne peuvent pas être énumérés, contrairement aux membres d'occurrences. Instructions 215 L'instruction for..in itère sur des propriétés des objets du chaînage de prototype de l'objet itéré. Les propriétés de l'objet sont énumérés en premier, puis les propriétés de son prototype immédiat, puis les propriétés du prototype du prototype, etc. L'instruction for..in n'énumère pas le même nom de propriété deux fois. Si l'objet child comporte un prototype parent et que tous deux contiennent la propriété prop, l'instruction for..in appelée pour child énumère les propriétés prop de child, mais ignore celles de parent. Les accolades ({}), qui servent normalement à entourer le bloc d'instructions que l'instruction for..in doit exécuter, peuvent être omises si une seule instruction doit s'exécuter. Si vous écrivez une boucle for..in dans un fichier de classe (un fichier externe AS), les membres d'instance ne seront plus disponibles pour la boucle, contrairement aux membres statiques. Cependant, si vous écrivez une boucle for..in dans un fichier FLA pour une occurrence de la classe, les membres de l'occurrence restent disponibles, contrairement aux membres statiques. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres variableIterant:String - Nom d'une variable devant servir d'itérant, référençant chaque propriété d'un objet ou d'un élément dans un tableau. Exemple L'exemple suivant utilise une boucle for..in sur les propriétés d'un objet : var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; for (var prop in myObject) { trace("myObject."+prop+" = "+myObject[prop]); } //output myObject.firstName = Tara myObject.age = 27 myObject.city = San Francisco L'exemple suivant utilise une boucle for..in sur les éléments d'un tableau : var myArray:Array = new Array("one", "two", "three"); for (var index in myArray) trace("myArray["+index+"] = " + myArray[index]); // output: myArray[2] = three myArray[1] = two myArray[0] = one L'exemple suivant utilise l'opérateur typeof conjointement avec for..in pour faire une itération sur un type d'enfant particulier : for (var name in this) { 216 Chapitre 1: Eléments du langage ActionScript if (typeof (this[name]) == "movieclip") { trace("I have a movie clip child named "+name); } } Remarque : Si vous disposez de plusieurs clips, le code obtenu inclut leurs noms d'occurrence. L'exemple suivant énumère les enfants d'un clip et les envoie à l'image 2 de leurs scénarios respectifs. Le clip RadioButtonGroup est un parent ayant trois enfants : _RedRadioButton_, _GreenRadioButton_, et _BlueRadioButton_. for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); } Instruction function Usage 1: (Declares a named function.) function functionname([parameter0, parameter1,...parameterN]){ statement(s) } Usage 2: (Declares an anonymous function and returns a reference to it.) function ([parameter0, parameter1,...parameterN]){ statement(s) } Comprend un ensemble d'instructions que vous définissez pour effectuer une certaine tâche. Vous pouvez définir une fonction à un emplacement et l'appeler à partir de différents scripts dans un fichier SWF. Lorsque vous définissez une fonction, vous pouvez également spécifier des paramètres pour la fonction. Les paramètres sont des espaces réservés pour les valeurs sur lesquelles la fonction opère. Vous pouvez passer différents paramètres à une fonction lors de chaque appel, de façon à pouvoir utiliser une fonction dans différentes situations. Utilisez l'instruction return dans le paramètre statement(s) d'une fonction pour que cette dernière génère ou renvoie une valeur. Vous pouvez utiliser cette instruction pour définir une function ayant les paramètres spécifiés functionname, parameters, et statement(s). Lorsqu'un script appelle une fonction, les instructions figurant dans la définition de la fonction s'exécute. Les références anticipées sont autorisées. Dans un script, une fonction peut être déclarée après son appel. Une définition de fonction remplace toute définition précédente de la même fonction. Vous pouvez utiliser cette syntaxe dans toutes les circonstances où une instruction est autorisée. Vous pouvez également utiliser cette instruction pour créer une fonction anonyme et lui renvoyer une référence. Cette syntaxe est utilisée dans des expressions et est particulièrement utile pour l'installation des méthodes dans les objets. Instructions 217 Pour bénéficier de fonctionnalités supplémentaires, vous pouvez utiliser l'objet arguments dans votre définition de fonction. Certaines utilisations communes de l'objet arguments créent une fonction qui accepte un nombre variable de paramètres et créent une fonction anonyme récursive. Disponibilité : Flash Player 5 ; ActionScript 1.0 Valeur renvoyée String : Utilisation 1 : Le formulaire de déclaration ne doit rien renvoyer. Utilisation 2 : référence à la fonction anonyme. Paramètres functionname:String - Nom de la fonction déclarée. Exemple L'exemple suivant définit la fonction sqr qui accepte un paramètre et renvoie la valeur du paramètre : Math.pow(x, 2) function sqr(x:Number) { return Math.pow(x, 2); } var y:Number = sqr(3); trace(y); // output: 9 Si la fonction est définie et utilisée dans le même script, la définition de fonction peut apparaître lorsque vous l'avez utilisée : var y:Number = sqr(3); trace(y); // output: 9 function sqr(x:Number) { return Math.pow(x, 2); } La fonction suivante crée un objet LoadVars et charge params.txt dans le fichier SWF. Si le chargement du fichier réussit, variables loaded est renvoyé : var myLV:LoadVars = new LoadVars(); myLV.load("params.txt"); myLV.onLoad = function(success:Boolean) { trace("variables loaded"); } Instruction get function get property () { // your statements here } 218 Chapitre 1: Eléments du langage ActionScript Autorise la lecture de propriétés associées aux objets sur la base des classes que vous avez définies dans les fichiers de classe externes. L'utilisation de méthodes get implicites permet d'accéder aux propriétés des objets sans accéder à la propriété directement. Les méthodes get/ set implicites sont des abréviations syntaxiques de la méthode Object.addProperty() dans ActionScript 1.0. Disponibilité : Flash Player 6 ; ActionScript 2,0 Paramètres property:String - Mot que vous utilisez pour faire référence à la propriété qui obtient l'accès ; cette valeur doit être identique à la valeur utilisée dans la commande set correspondante. Exemple Dans l'exemple suivant, vous définissez une classe Team. La classe Team inclut les méthodes get/set qui vous permettent de récupérer et de définir les propriétés au sein de la classe : class Team { var teamName:String; var teamCode:String; var teamPlayers:Array = new Array(); function Team(param_name:String, param_code:String) { this.teamName = param_name; this.teamCode = param_code; } function get name():String { return this.teamName; } function set name(param_name:String):Void { this.teamName = param_name; } } Entrez le code ActionScript suivant dans une image du scénario : var giants:Team = new Team("San Fran", "SFO"); trace(giants.name); giants.name = "San Francisco"; trace(giants.name); /* output: San Fran San Francisco */ Lorsque vous appliquez une instruction trace à giants.name, vous utilisez la méthode get pour renvoyer la valeur de la propriété. Voir également addProperty (méthode Object.addProperty) Instructions 219 Instruction if if(condition) { statement(s); } Évalue une condition pour déterminer l'action suivante d'un fichier SWF. Lorsque cette condition est true, Flash exécute les instructions qui suivent la condition entre accolades ({}). Si la condition est false, Flash ignore les instructions entre accolades et exécute les instructions qui suivent ces accolades. Utilisez l'instruction if en conjonction avec les instructions else et else if pour introduire une arborescence logique dans vos scripts. Les accolades ({}), qui servent normalement à entourer le bloc d'instructions que l'instruction doit exécuter, peuvent être omises si une seule instruction doit s'exécuter. if Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres condition:Boolean - Expression qui prend pour valeur true ou false. Exemple Dans l'exemple suivant, la condition placée entre parenthèses évalue le nom name de la variable afin de déterminer s'il a la valeur littérale "Erica". Si tel est le cas, la fonction play() placée entre accolades s'exécute. if(name == "Erica"){ play(); } L'exemple suivant utilise une instruction if pour évaluer le temps nécessaire à un utilisateur pour cliquer sur l'occurrence submit_btn d'un fichier SWF. Si l'utilisateur clique sur le bouton plus de 10 secondes après le début de la lecture du fichier SWF, la condition renvoie true et le message placé entre accolades ({}) apparaît dans un champ de texte créé lors de l'exécution (via createTextField()). Si l'utilisateur clique sur le bouton moins de 10 secondes après le début de la lecture du fichier SWF, la condition renvoie false et un message différent apparaît. this.createTextField("message_txt", this.getNextHighestDepth, 0, 0, 100, 22); message_txt.autoSize = true; var startTime:Number = getTimer(); this.submit_btn.onRelease = function() { var difference:Number = (getTimer() - startTime) / 1000; if (difference > 10) { this._parent.message_txt.text = "Not very speedy, you took "+difference+" seconds."; } 220 Chapitre 1: Eléments du langage ActionScript else { this._parent.message_txt.text = "Very good, you hit the button in "+difference+" seconds."; } }; Voir également Instruction else Instruction implements myClass implements interface01 [, interface02 , ...] Spécifie qu'une classe doit définir toutes les méthodes déclarées dans l'interface (ou les interfaces) en cours d'implémentation. Disponibilité : Flash Player 6 ; ActionScript 2.0 Exemple Voir la sectioninterface. Voir également Instruction class Instruction import className packageName.* Permet d'accéder aux classes sans spécifier leur nom complet, avec qualificatifs. Par exemple, si vous souhaitez utiliser une classe personnalisée, telle que macr.util.users.UserClass, dans un script, vous devez y faire référence avec son nom suivi de tous ses attributs ou l'importer. Si vous l'importez, vous pouvez y faire référence avec le nom de classe : import import // before importing var myUser:macr.util.users.UserClass = new macr.util.users.UserClass(); // after importing import macr.util.users.UserClass; var myUser:UserClass = new UserClass(); Lorsque le package contient plusieurs fichiers de classe (working_directory /macr/utils/ auxquels vous devez accéder, vous pouvez les importer tous dans une instruction unique, comme indiqué dans l'exemple suivant : users) import macr.util.users.*; Instructions 221 Vous devez émettre l'instruction import avant de tenter d'accéder à la classe importée sans spécifier l'ensemble du nom. Si vous importez une classe, mais ne l'utilisez pas dans votre script, cette dernière n'est pas exportée avec le fichier SWF. Ceci signifie que vous pouvez importer des packages volumineux sans vous soucier de la taille du fichier SWF. Le pseudo-code binaire associé à une classe n'est inclus dans un fichier SWF que si cette classe est véritablement utilisée. L'instruction import s'applique uniquement au script courant (image ou objet) dans lequel elle est appelée. Par exemple, supposons que vous deviez importer l'ensemble des classes du package macr.util dans l'image 1 d'un document Flash. Dans cette image, vous pouvez faire référence aux classes de ce package par leur nom simple : // On Frame 1 of a FLA: import macr.util.*; var myFoo:foo = new foo(); Dans un autre script d'image, cependant, vous devez faire référence aux classes de ce package par leur nom suivi de tous leurs attributs (var myFoo:foo = new macr.util.foo();) ou ajouter une instruction import à l'image qui importe les classes dans ce package. Disponibilité : Flash Player 6 ; ActionScript 2.0 Paramètres className:String - Nom qualifié d'une classe définie dans un fichier de classe externe. Exemple Instruction interface InterfaceName [extends InterfaceName ] {} Définit une interface. Une interface est similaire à une classe. Les différences fondamentales sont regroupées ci-dessous : interface ■ Les interfaces contiennent uniquement les déclarations des méthodes, pas leur implémentation. Ainsi, toute classe qui implémente une interface doit fournir une implémentation pour chaque méthode déclarée dans l'interface. ■ Seuls les membres publics sont autorisés dans la définition d'une interface. Les instances et les membres de classe ne sont pas permis. ■ Les instructions get et set ne sont pas autorisées dans les définitions d'interface. Disponibilité : Flash Player 6 ; ActionScript 2.0 222 Chapitre 1: Eléments du langage ActionScript Exemple L'exemple suivant présente plusieurs façons de définir et d'implémenter des interfaces : (in top-level package .as files Ia, B, C, Ib, D, Ic, E) // filename Ia.as interface Ia { function k():Number; // method declaration only function n(x:Number):Number; // without implementation } // filename B.as class B implements Ia { function k():Number { return 25; } function n(x:Number):Number { return x + 5; } } // external script or Actions panel // script file var mvar:B = new B(); trace(mvar.k()); // 25 trace(mvar.n(7)); // 12 // filename c.as class C implements Ia { function k():Number { return 25; } } // error: class must implement all interface methods // filename Ib.as interface Ib { function o():Void; } class D implements Ia, Ib { function k():Number { return 15; } function n(x:Number):Number { return x * x; } function o():Void { trace("o"); } } // external script or Actions panel // script file mvar = new D(); trace(mvar.k()); // 15 trace(mvar.n(7)); // 49 trace(mvar.o()); // "o" interface Ic extends Ia { function p():Void; } class E implements Ib, Ic { Instructions 223 function k():Number { return 25; } function n(x:Number):Number { return x + 5; } function o():Void { trace("o"); } function p():Void { trace("p"); } } Voir également Instruction class instruction intrinsic intrinsic class className [extends interfaceName...] ] { //class definition here } superClass] [implements interfaceName [, Autorise la vérification des types lors de la compilation des classes définies précédemment. Flash utilise des déclarations de classe intrinsèques pour permettre la vérification des types de classes intégrées tels que Array, Object, et String lors de la compilation. Ce mot-clé indique au compilateur qu'aucune implémentation de fonction n'est requise et qu'il n'est pas nécessaire de générer un pseudo-code binaire pour celle-ci. Le mot-clé intrinsic peut également être utilisé conjointement avec des déclarations de variable et de fonction. Flash utilise ce mot-clé pour permettre la vérification des types des fonctions et des propriétés globales lors de la compilation. Le mot-clé intrinsic a été spécialement créé pour permettre la vérification des types de classes et objets intégrés, ainsi que des variables et des fonctions lors de la compilation. Ce mot-clé n'est pas destiné à un usage général mais peut s'avérer utile pour les développeurs qui cherchent à autoriser la vérification des types lors de la compilation à l'aide de classes définies précédemment, notamment ci celles-ci sont définies via ActionScript 1.0. Ce mot-clé n'est pris en charge que lorsqu'il est utilisé dans des fichiers de script externes, et non pas dans les scripts écrits dans le panneau Actions. Disponibilité : Flash Player 6 ; ActionScript 2.0 224 Chapitre 1: Eléments du langage ActionScript Exemple L'exemple suivant indique comment activer la vérification de fichiers lors de la compilation pour une classe ActionScript 1.0 définie précédemment. Le code génère une erreur de compilation car l'appel myCircle.setRadius() envoie une valeur de type String en tant que paramètre au lieu d'une valeur de type Number. Vous pouvez éviter cette erreur en modifiant le paramètre pour le définir sur une valeur de type Number (par exemple, en changeant "10" par 10). // The following code must be placed in a file named Circle.as // that resides within your classpath: intrinsic class Circle { var radius:Number; function Circle(radius:Number); function getArea():Number; function getDiameter():Number; function setRadius(param_radius:Number):Number; } // This ActionScript 1.0 class definition may be placed in your FLA file. // Circle class is defined using ActionScript 1.0 function Circle(radius) { this.radius = radius; this.getArea = function(){ return Math.PI*this.radius*this.radius; }; this.getDiameter = function() { return 2*this.radius; }; this.setRadius = function(param_radius) { this.radius = param_radius; } } // ActionScript 2.0 code that uses the Circle class var myCircle:Circle = new Circle(5); trace(myCircle.getArea()); trace(myCircle.getDiameter()); myCircle.setRadius("10"); trace(myCircle.radius); trace(myCircle.getArea()); trace(myCircle.getDiameter()); Voir également Instruction class Instructions 225 Instruction private class someClassName{ private var name; private function name() { // your statements here } } Spécifie qu'une variable ou une fonction est disponible uniquement pour la classe qui la déclare ou la définit, ou pour les sous-classes de cette classe. Par défaut, une variable ou une fonction est disponible à tout appelant. Utilisez ce mot-clé si vous devez restreindre l'accès à une variable ou une fonction. Ce mot-clé est voulu comme une aide au développement du logiciel afin de faciliter de bonnes méthodes de codage telles que l'encapsulation, et non comme un mécanisme de sécurité permettant de dissimuler ou sécuriser les ddonnées sensibles. Il n'empêche pas obligatoirement l'accès à une variable lors de l'exécution. Ce mot-clé est réservé aux définitions de classe et ne permet pas de créer des définitions d'interface. Disponibilité : Flash Player 6 ; ActionScript 2.0 Paramètres name:String - Nom de la variable ou de la fonction à spécifier en tant que privée. Exemple L'exemple suivant montre comment restreindre l'accès aux variables ou fonctions par l'utilisation du mot-clé private. Créez un nouveau fichier AS intitulé Alpha.as : class Alpha { private var privateProperty = "visible only within class and subclasses"; public var publicProperty = "visible everywhere"; } Dans le même répertoire qu'Alpha.as, créez un nouveau fichier AS nommé Beta.as qui contiendra le code suivant : class Beta extends Alpha { function Beta() { trace("privateProperty is " + privateProperty); } } Comme le montre le code suivant, le constructeur de la classe Beta peut accéder à la propriété privateProperty qui est héritée de la classe Alpha : var myBeta:Beta = new Beta(); // Output: privateProperty is visible only within class and subclasses 226 Chapitre 1: Eléments du langage ActionScript Des essais pour accéder à la variable privateProperty en dehors de la classe Alpha ou d'une classe héritant de la classe Alpha entraînent une erreur. Le code suivant, qui est hors de toute classe, entraîne une erreur : trace(myBeta.privateProperty); // Error Voir également Instruction public Instruction public class someClassName{ public var name; public function name() { // your statements here } } Spécifie qu'une variable ou une fonction est disponible à tout appelant. Dans la mesure où les variables et les fonctions sont publiques par défaut, ce mot-clé est utilisé surtout pour des raisons de style. Par exemple, vous pouvez l'utiliser pour des raisons de cohérence dans un bloc de code qui contient également des variables privées ou statiques. Disponibilité : Flash Player 6 ; ActionScript 2.0 Paramètres name:String - Nom de la variable ou de la fonction à spécifier en tant que publique. Exemple L'exemple suivant indique comment utiliser des variables publiques dans un fichier de classe. Créez un nouveau fichier de classe intitulé User.as et entrez le code suivant : class User { public var age:Number; public var name:String; } Créez ensuite un nouveau fichier FLA ou AS dans le même répertoire, puis entrez le code ActionScript suivant dans l'image 1 du scénario : import User; var jimmy:User = new User(); jimmy.age = 27; jimmy.name = "jimmy"; Si vous convertissez l'une des variables publiques de la classe User en variable privée, une erreur est générée lorsque vous tentez d'accéder à la propriété. Instructions 227 Voir également Instruction private return, instruction return[expression] Spécifie la valeur renvoyée par une fonction. L'instruction return évalue expression et renvoie un résultat sous forme de valeur de la fonction dans laquelle elle s'exécute. L'instruction return transfère immédiatement l'exécution à la fonction appelante. Si l'instruction return est utilisée seule, elle renvoie undefined. (non défini). Vous ne pouvez pas renvoyer des valeurs multiples. En effet, seule la dernière valeur est renvoyée. Dans l'exemple suivant, la valeur c est renvoyée : return a, b, c ; Si vous devez renvoyer des valeurs multiples, utilisez un tableau ou un objet. Disponibilité : Flash Player 5 ; ActionScript 1.0 Valeur renvoyée String - Paramètre expression évalué, si disponible. Paramètres expression - Chaîne, nombre, valeur booléenne, tableau ou objet à évaluer et renvoyer sous forme de valeur de la fonction. Ce paramètre est facultatif. Exemple L'exemple suivant utilise l'instruction return qui figure dans le corps de la fonction sum() pour renvoyer la valeur ajoutée des trois paramètres. La ligne de code suivante appelle sum() et affecte la valeur renvoyée à la variable newValue. function sum(a:Number, b:Number, c:Number):Number { return (a + b + c); } var newValue:Number = sum(4, 32, 78); trace(newValue); // output: 114 Voir également Instruction function 228 Chapitre 1: Eléments du langage ActionScript Instruction set function set property(varName) { // your statements here } Autorise la définition implicite de propriétés associées aux objets sur la base des classes que vous avez définies dans les fichiers de classe externes. L'utilisation de méthodes set implicites permet de modifier la valeur de la propriété d'un objet sans accéder directement à cette propriété. Les méthodes get/set implicites sont des abréviations syntaxiques de la méthode Object.addProperty() dans ActionScript 1.0. Disponibilité : Flash Player 6 ; ActionScript 2.0 Paramètres - Mot faisant référence à la propriété cible de set ; cette valeur doit être identique à la valeur utilisée par la commande get correspondante. property:String Exemple L'exemple suivant crée une classe Login qui montre comment utiliser le mot-clé set pour définir des variables privées : class Login { private var loginUserName:String; private var loginPassword:String; public function Login(param_username:String, param_password:String) { this.loginUserName = param_username; this.loginPassword = param_password; } public function get username():String { return this.loginUserName; } public function set username(param_username:String):Void { this.loginUserName = param_username; } public function set password(param_password:String):Void { this.loginPassword = param_password; } } Dans un fichier FLA ou AS qui se trouve dans le même répertoire que le fichier Login.as, entrez le code ActionScript suivant dans l'image 1 du scénario : var gus:Login = new Login("Gus", "Smith"); trace(gus.username); // output: Gus gus.username = "Rupert"; trace(gus.username); // output: Rupert Instructions 229 Dans l'exemple suivant, la fonction get s'exécute lorsque la valeur est tracée. La fonction set se déclenche uniquement lorsque vous lui transmettez une valeur, comme indiqué sur la ligne : gus.username = "Rupert"; Voir également Instruction get Instruction set variable set("variableString",expression) Associe une valeur à une variable. Une variable est un conteneur qui stocke des données. Le conteneur reste toujours le même, c'est le contenu qui peut varier. La modification de la valeur d'une variable pendant la lecture du fichier SWF permet d'enregistrer les informations relatives aux actions de l'utilisateur, d'enregistrer les valeurs modifiées pendant la lecture du fichier SWF ou d'évaluer si une condition est true ou false. Les variables peuvent recouvrir tous les types de données, tels que String, Number, Boolean, Object ou MovieClip. Le scénario de chaque fichier SWF et clip comporte son propre jeu de variables, et chaque variable dispose de sa propre valeur, indépendamment des variables des autres scénarios. Le typage strict des données n'est pas pris en charge dans une instruction set. Si vous utilisez cette instruction pour définir une variable sur une valeur dont le type de données diffère du type associé à cette variable dans un fichier de classe, aucune erreur de compilation n'est générée. Il est important de noter que le paramètre variableString est une chaîne et non pas un nom de variable. Si vous transmettez une variable existante en tant que premier paramètre à set() sans le placer entre guillemets (""), la variable est évaluée avant que la valeur d'expression ne lui soit affectée. Par exemple, si vous créez une variable de type chaîne appelée myVariable et lui affectez la valeur « Tuesday » sans mettre cette dernière entre guillemets, vous créez une nouvelle variable appelée Tuesday et contenant la valeur normalement destinée à myVariable : var myVariable:String = "Tuesday"; set (myVariable, "Saturday"); trace(myVariable); // outputs Tuesday trace(Tuesday); // outputs Saturday Pour remédier à cette situation, incluez les guillemets ("") : set ("myVariable", "Saturday"); trace(myVariable); //outputs Saturday 230 Chapitre 1: Eléments du langage ActionScript Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres variableString:String - Chaîne nommant la variable devant contenir la valeur du paramètre expression. Exemple Dans l'exemple suivant, vous affectez une valeur à une variable. Vous affectez la valeur "Jakob" à la variable name. set("name", "Jakob"); trace(name); Le code suivant boucle à trois reprises et crée trois nouvelles variables intitulées caption0, caption1, et caption2 : for (var i = 0; i < 3; i++) { set("caption" + i, "this is caption " + i); } trace(caption0); trace(caption1); trace(caption2); Voir également Instruction var Instruction static class someClassName{ static var name; static function name() { // your statements here } } Spécifie qu'une variable ou une fonction n'est créée qu'une fois par classe et non pas créée dans chaque objet en fonction de cette classe. Vous pouvez accéder à un membre de classe statique sans créer une occurrence de sa classe en utilisant la syntaxe someClassName.name. Si vous créez une occurence de la classe, vous pouvez également accéder à un membre statique en utilisant l'occurence, mais uniquement par le biais d'une fonction non statique qui accéde au membre statique. Ce mot-clé est réservé aux définitions de classe et ne permet pas de créer des définitions d'interface. Disponibilité : Flash Player 6 ; ActionScript 2.0 Instructions 231 Paramètres name:String - Nom de la variable ou de la fonction à spécifier en tant que statique. Exemple L'exemple suivant présente l'utilisation du mot-clé static pour créer un compteur chargé de suivre le nombre d'occurrences de la classe créées. La variable numInstances étant statique, elle ne sera créée qu'une fois pour l'ensemble de la classe, pas pour chaque occurrence. Créez un nouveau fichier AS intitulé Users.as et entrez le code suivant : class Users { private static var numInstances:Number = 0; function Users() { numInstances++; } static function get instances():Number { return numInstances; } } Créez un document FLA ou AS dans le même répertoire, puis entrez le code ActionScript suivant dans l'image 1 du scénario : trace(Users.instances); var user1:Users = new Users(); trace(Users.instances); var user2:Users = new Users(); trace(Users.instances); Voir également Instruction private Instruction super super.method([arg1, ..., argN]) super([arg1, ..., argN]) Le premier style de syntaxe peut être utilisé dans le corps d'une méthode d'objet pour appeler la version superclass d'une méthode et peut transmettre des paramètres en option (arg1 ... argN) à la méthode superclass. Cet opérateur permet non seulement de créer des méthodes de sous-classe qui ajoutent des comportements supplémentaires aux méthodes superclass, mais encore d'exécuter leur comportement d'origine. 232 Chapitre 1: Eléments du langage ActionScript Le deuxième style de syntaxe peut s'utiliser dans le corps d'une fonction constructeur pour appeler la version superclass de cette fonction et peut lui transférer des paramètres en option. Ceci permet non seulement de créer une sous-classe qui procède à une initialisation supplémentaire, mais encore d'appeler la fonction constructeur superclass pour initialiser la superclasse. Disponibilité : Flash Player 6 ; ActionScript 1.0 Valeur renvoyée Les deux formes appellent une fonction. Cette fonction peut renvoyer toutes sortes de valeur. Paramètres method:Function - Méthode à appeler dans la superclasse. - Paramètres facultatifs qui sont transmis à la version superclass de la méthode (syntaxe 1) ou à la fonction constructeur de la superclasse (syntaxe 2). argN Instruction switch switch (expression){ caseClause: [defaultClause:] } Crée une structure arborescente pour les instructions ActionScript. Comme pour l'instruction if, l'instruction switch teste une condition et exécute des instructions si cette condition renvoie la valeur true. Toutes les instructions switch doivent inclure un cas par défaut. Ce cas doit inclure une instruction break pour prévenir les erreurs fall-through en cas d'ajout d'un autre cas. Lorsqu'un cas subit une erreur fall-through, il ne comporte pas d'instruction break. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres expression - Toute expression. Exemple Dans l'exemple suivant, si le paramètre String.fromCharCode(Key.getAscii()) évalue A, l'instruction trace() qui suit case "A" s'exécute; si le paramètre évalue a, l'instruction trace() qui suit case "a" s'exécute; etc. Si aucune expression case ne correspond au paramètre String.fromCharCode(Key.getAscii()), l'instruction trace() suivant le motclé default s'exécute. var listenerObj:Object = new Object(); Instructions 233 listenerObj.onKeyDown = function() { switch (String.fromCharCode(Key.getAscii())) { case "A" : trace("you pressed A"); break; case "a" : trace("you pressed a"); break; case "E" : case "e" : trace("you pressed E or e"); break; case "I" : case "i" : trace("you pressed I or i"); break; default : trace("you pressed some other key"); break; } }; Key.addListener(listenerObj); Voir également Opérateur === (égalité stricte) Instruction throw throw expression Génère ou renvoie une erreur qui peut être traitée ou interceptée par un bloc de code catch{}. Si aucune exception n'est interceptée par le bloc catch, la chaîne représentant la valeur renvoyée s'affiche dans le panneau de sortie. De manière générale, le système renvoie des occurrences de la classe Error ou de ses sousclasses (voir la section Exemple). Disponibilité : Flash Player 7 ; ActionScript 1.0 Paramètres expression:Object - Expression ou objet ActionScript. Exemple Dans cet exemple, une fonction intitulée checkEmail() vérifie si la chaîne qui lui est transmise est une adresse électronique correctement formatée. Si la chaîne ne contient pas le symbole @, la fonction renvoie une erreur. 234 Chapitre 1: Eléments du langage ActionScript function checkEmail(email:String) { if (email.indexOf("@") == -1) { throw new Error("Invalid email address"); } } checkEmail("someuser_theirdomain.com"); Le code suivant appelle ensuite la fonction checkEmail() dans un bloc de code try. Si la chaîne email_txt ne contient pas une adresse de messagerie valide, le message d'erreur apparaît dans un champ de texte (error_txt). try { checkEmail("Joe Smith"); } catch (e) { error_txt.text = e.toString(); } Dans l'exemple suivant, une sous-classe de la classe Error est renvoyée. La fonction checkEmail() est modifiée pour renvoyer une occurrence de cette sous-classe. // Define Error subclass InvalidEmailError // In InvalidEmailError.as: class InvalidEmailAddress extends Error { var message = "Invalid email address."; } Dans un fichier FLA ou AS, entrez le code ActionScript suivant dans l'image 1 du scénario : import InvalidEmailAddress; function checkEmail(email:String) { if (email.indexOf("@") == -1) { throw new InvalidEmailAddress(); } } try { checkEmail("Joe Smith"); } catch (e) { this.createTextField("error_txt", this.getNextHighestDepth(), 0, 0, 100, 22); error_txt.autoSize = true; error_txt.text = e.toString(); } Voir également Erreur Instruction try..catch..finally try { // ... try block ... } finally { Instructions 235 // ... finally block ... } try { // ... try block ... } catch(error [:ErrorType1]) { // ... catch block ... } [catch(error[:ErrorTypeN]) { // ... catch block ... }] [finally { // ... finally block ... }] Entoure un bloc de code dans lequel une erreur peut se produire et être traitée. Si du code figurant dans le bloc try renvoie une erreur (avec l'instruction throw), le contrôle passe au bloc catch, s'il existe, puis au bloc finally, s'il existe. Le bloc finallys'exécute toujours, qu'une erreur ait été renvoyée ou non. Si le code figurant dans le bloc try ne renvoie pas d'erreur (ce qui signifie que le bloc try se termine normalement), le code du bloc finally est toujours exécuté. Le bloc finally s'exécute même si le bloc try se termine par une instruction return. Un bloc try doit être suivi par un bloc catch, un bloc finally ou les deux. Un bloc try peut comporter plusieurs blocs catch mais un seul bloc finally. Vous pouvez incorporer plusieurs blocs try et créer autant de niveaux que nécessaire. Le paramètre error spécifié dans un gestionnaire catch doit être un simple identifiant tel que e, theException ou x. La variable d'un gestionnaire catch peut également être typée. Lorsqu'elles sont utilisées en conjonction avec plusieurs blocs catch, les erreurs typées permettent d'intercepter plusieurs types d'erreur à partir d'un bloc try unique. Si l'exception renvoyée est un objet, le type correspond lorsque l'objet renvoyé constitue une sous-classe du type spécifié. Si une erreur de type spécifique est renvoyée, le bloc catch qui traite l'erreur correspondante s'exécute. Si l'exception renvoyée n'est pas du type spécifié, le bloc catch ne s'exécute pas et l'exception est renvoyée automatiquement du bloc try, à destination du gestionnaire catch correspondant. Si une erreur est renvoyée au sein d'une fonction et si cette fonction n'inclut pas de gestionnaire catch, l'interpréteur ActionScript quitte alors cette fonction, ainsi que toute fonction appelante, jusqu'à ce qu'il détecte un bloc catch. Pendant ce processus, les gestionnaires finally sont appelés à tous les niveaux. Disponibilité : Flash Player 7 ; ActionScript 1.0 Paramètres error:Object - Expression renvoyée par une instruction throw, en général une instance de la classe Error ou l'une de ses sous-classes. 236 Chapitre 1: Eléments du langage ActionScript Exemple L'exemple suivant indique comment créer une instruction try..finally. Étant donné que l'exécution du code dans le bloc finally est garantie, ce code est généralement utilisé pour effectuer le nettoyage nécessaire après l'exécution d'un bloc try. Dans l'exemple suivant, setInterval() appelle une fonction toutes les 1000 millisecondes (1 seconde). Si une erreur se produit, elle est renvoyée et interceptée par le bloc catch. Le bloc finally est toujours exécuté, qu'une erreur se produise ou non. Étant donné que la méthode setInterval() est utilisée, clearInterval() doit être placé dans le bloc finally afin de s'assurer que l'intervalle est supprimé de la mémoire. myFunction = function () { trace("this is myFunction"); }; try { myInterval = setInterval(this, "myFunction", 1000); throw new Error("my error"); } catch (myError:Error) { trace("error caught: "+myError); } finally { clearInterval(myInterval); trace("error is cleared"); } Dans l'exemple suivant, le bloc finally est utilisé pour supprimer un objet ActionScript, qu'une erreur se soit produite ou non. Créez un nouveau fichier AS intitulé Account.as. class Account { var balance:Number = 1000; function getAccountInfo():Number { return (Math.round(Math.random() * 10) % 2); } } Dans le répertoire du fichier Account.as, créez un nouveau document AS ou FLA et entrez le code ActionScript suivant dans l'image 1 du scénario : import Account; var account:Account = new Account(); try { var returnVal = account.getAccountInfo(); if (returnVal != 0) { throw new Error("Error getting account information."); } } finally { if (account != null) { delete account; } Instructions 237 } L'exemple ci-dessous illustre une instruction try..catch. Le code inclus dans le bloc try est exécuté. Si une exception est renvoyée par du code inclus dans le bloc try, le contrôle passe au bloc catch qui affiche le message d'erreur dans un champ de texte à l'aide de la méthode Error.toString(). Dans le répertoire du fichier Account.as, créez un nouveau document FLA et entrez le code ActionScript suivant dans l'image 1 du scénario : import Account; var account:Account = new Account(); try { var returnVal = account.getAccountInfo(); if (returnVal != 0) { throw new Error("Error getting account information."); } trace("success"); } catch (e) { this.createTextField("status_txt", this.getNextHighestDepth(), 0, 0, 100, 22); status_txt.autoSize = true; status_txt.text = e.toString(); } L'exemple suivant présente un bloc de code try en conjonction avec plusieurs blocs de code typés catch. Selon le type d'erreur qui s'est produite, le bloc de code try renvoie un type d'objet différent. Dans ce cas, myRecordSet est une occurrence d'une classe (hypothétique) intitulée RecordSet dont la méthode sortRows() peut renvoyer deux types d'erreurs, RecordSetException et MalformedRecord. Dans l'exemple suivant, les objets RecordSetException et MalformedRecord sont des sousclasses de la classe Error. Chacune d'entre elles est définie dans son propre fichier de classe AS. // In RecordSetException.as: class RecordSetException extends Error { var message = "Record set exception occurred."; } // In MalformedRecord.as: class MalformedRecord extends Error { var message = "Malformed record exception occurred."; } Dans la méthode sortRows() de la classe RecordSet, l'un des objets d'erreur définis précédemment est renvoyé, en fonction du type d'exception rencontré. L'exemple suivant illustre l'aspect éventuel de ce code : class RecordSet { function sortRows() { var returnVal:Number = randomNum(); 238 Chapitre 1: Eléments du langage ActionScript if (returnVal == 1) { throw new RecordSetException(); } else if (returnVal == 2) { throw new MalformedRecord(); } } function randomNum():Number { return Math.round(Math.random() * 10) % 3; } } Enfin, dans un autre fichier AS ou script FLA, le code suivant appelle la méthode sortRows() sur une occurrence de la classe RecordSet. Il définit les blocs catch de chaque type d'erreur renvoyé par sortRows() import RecordSet; var myRecordSet:RecordSet = new RecordSet(); try { myRecordSet.sortRows(); trace("everything is fine"); } catch (e:RecordSetException) { trace(e.toString()); } catch (e:MalformedRecord) { trace(e.toString()); } Voir également Erreur Instruction var var variableName [= value1][...,variableNameN[=valueN]] Permet de déclarer des variables locales. Si vous déclarez des variables dans une fonction, ces variables sont locales. Elles sont définies pour la fonction et expirent à la fin de l'appel de fonction. De façon plus précise, une variable définie avec var est une variable locale pour le bloc de code qui la contient. Les blocs de code sont signalés par des accolades ({}). Si vous déclarez des variables en dehors d'une fonction, ces variables restent disponibles tout au long du scénario contenant l'instruction. Vous ne pouvez pas déclarer une variable dont le domaine est limité à un autre objet en tant que variable locale. my_array.length = 25; // ok var my_array.length = 25; // syntax error Instructions 239 Lorsque vous utilisez var, vous pouvez typer la variable de façon stricte. Vous pouvez déclarer plusieurs variables dans une instruction, en séparant les déclarations par des virgules (bien que cette syntaxe puisse réduire la clarté du code) : var first:String = "Bart", middle:String = "J.", last:String = "Bartleby"; Remarque : Vous devez également utiliser var lorsque vous déclarez des propriétés au sein de définitions de classe dans les scripts externes. Les fichiers de classe prennent également en charge des domaines de variables publics, privés et statiques. Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres variableName:String - Identificateur. Exemple Le script ActionScript suivant crée un nouveau tableau contenant des noms de produits. ajoute un élément à la fin du tableau. Si vous souhaitez utiliser le typage strict, vous devez impérativement utiliser le var var. Si le mot-clé var ne précède pas product_array, des erreurs se produisent lorsque vous tentez d'utiliser le typage strict. Array.push var product_array:Array = new Array("MX 2004", "Studio", "Dreamweaver", "Flash", "ColdFusion", "Contribute", "Breeze"); product_array.push("Flex"); trace(product_array); // output: MX 2004,Studio,Dreamweaver,Flash,ColdFusion,Contribute,Breeze,Flex Instruction while while(condition) { statement(s); } Évalue une condition. Si cette condition renvoie true, exécute une instruction ou une série d'instructions avant de suivre la boucle et d'évaluer de nouveau la condition. Lorsque la condition renvoie false, l'instruction ou la série d'instructions est ignorée et la boucle se termine. 240 Chapitre 1: Eléments du langage ActionScript L'instruction while exécute les séries d'instructions suivantes. Toute répétition des étapes 1 à 4 constitue une itération de la boucle. La condition condition est testée de nouveau au début de chaque itération, comme indiqué dans les étapes suivantes : ■ L'expression condition est évaluée. ■ Si condition renvoie true ou une valeur convertie en valeur booléenne true, telle qu'un nombre différent de zéro, passez à l'étape 3. Sinon, l'instruction while se termine et l'exécution reprend au niveau de l'instruction qui suit la boucle while. ■ Exécutez le bloc d'instructions statement(s). ■ Passez à l'étape 1. Les boucles permettent d'exécuter une action tant que la valeur de la variable de décompte est inférieure à la valeur spécifiée. A la fin de chaque boucle, le compteur est incrémenté jusqu'à ce qu'il atteigne la valeur maximale spécifiée. A ce stade, condition n'a plus la valeur true et la boucle se termine. Les accolades ({}), qui servent normalement à entourer le bloc d'instructions que l'instruction while doit exécuter, peuvent être omises si une seule instruction doit s'exécuter. Disponibilité : Flash Player 4 ; ActionScript 1.0 Paramètres condition:Boolean - Expression à évaluer pour savoir si sa valeur est true ou false. Exemple Dans l'exemple suivant, l'instruction while est utilisée pour tester une expression. Lorsque la valeur de i est inférieure à 20, la valeur de i est tracée. Lorsque la valeur de la condition n'est plus true, la boucle s'arrête. var i:Number = 0; while (i < 20) { trace(i); i += 3; } Le résultat suivant s'affiche dans le panneau de sortie. 0 3 6 9 12 15 18 Instructions 241 Voir également Instruction continue Instruction with with (object:Object) { statement(s); } Permet de spécifier un objet (tel qu'un clip) avec le paramètre object et évalue les expressions et les actions au sein de cet objet avec le paramètre statement(s). Ceci évite d'avoir à écrire plusieurs fois le nom de l'objet ou son chemin. Le paramètre object forme alors le contexte de lecture des propriétés, variables et fonctions du paramètre statement(s). Par exemple, si object est my_array, et que deux des propriétés spécifiées sont length et concat, ces propriétées sont automatiquement lues comme my_array.length et my_array.concat. Un autre exemple, si object est state.california, toutes les actions et instructions contenues dans l'instruction with sont appelées de l'intérieur de l'occurence california. Pour déterminer la valeur d'un identificateur dans le paramètre statement(s), ActionScript commence au début de la chaîne de domaine spécifiée par object et recherche l'identificateur à tous les niveaux de la chaîne de domaine, selon un ordre spécifique. La chaîne de domaine utilisée par l'instruction with pour résoudre les identificateurs commence par le premier élément dans la liste suivante et se poursuit jusqu'au dernier : ■ L'objet spécifié dans le paramètre object dans l'instruction with de plus bas niveau. ■ L'objet spécifié dans le paramètre object de l'instruction with de plus haut niveau. ■ Objet Activation. (Un objet temporaire qui est créé automatiquement lorsqu'une fonction est appelée et contient les variables locales appelées par la fonction.) ■ Le clip qui contient le script en cours d'exécution. ■ L'objet Global (objets intégrés tels que Math et String). Pour définir une variable dans une instruction with, vous devez avoir déclaré cette variable endehors de l'instruction with ou vous devez entrer le chemin complet du scénario cible de la variable. Si vous définissez une variable dans une instruction with sans la déclarer, l'instruction with recherche la valeur en fonction de la chaîne de domaine. Si la variable n'existe pas, la nouvelle valeur est définie sur le scénario ayant servi à appeler l'instruction with. Vous pouvez utiliser des chemins directs pour éviter with(). Si les chemins sont longs et difficiles à taper, créez une variable locale et enregistrez le chemin dans cette dernière. Vous pourrez alors le réutiliser dans votre code, comme indiqué dans le code ActionScript suivant. 242 Chapitre 1: Eléments du langage ActionScript var shortcut = this._parent._parent.name_txt; shortcut.text = "Hank"; shortcut.autoSize = true; Disponibilité : Flash Player 5 ; ActionScript 1.0 Paramètres object:Object - Occurrence de l'objet ActionScript ou du clip. Exemple L'exemple suivant définit les propriétés _x et _y de l'occurrence someOther_mc, puis indique à someOther_mc de se rendre à l'image 3 et de s'arrêter. with (someOther_mc) { _x = 50; _y = 100; gotoAndStop(3); } Le fragment de code suivant indique comment écrire le code qui précède sans instruction with. someOther_mc._x = 50; someOther_mc._y = 100; someOther_mc.gotoAndStop(3); L'instruction with est utile pour accéder à plusieurs éléments dans la liste de chaîne de domaine de manière simultanée. Dans l'exemple suivant, l'objet Math intégré est placé au début de la chaîne de domaine. Déterminer Math comme objet par défaut convertit respectivement les identificateurs cos, sin, et PI en Math.cos, Math.sin, et Math.PI. Les identificateurs a, x, y, et rne sont pas des méthodes ou des propriétés de l'objet Math mais, puisqu'ils existent dans le domaine d'activation d'objet de la fonction polar(), ils renvoient aux variables locales correspondantes. function polar(r:Number):Void { var a:Number, x:Number, y:Number; with (Math) { a = PI * pow(r, 2); x = r * cos(PI); y = r * sin(PI / 2); } trace("area = " + a); trace("x = " + x); trace("y = " + y); } polar(3); Le résultat suivant s'affiche dans le panneau de sortie. area = 28.2743338823081 x = -3 y = 3 Instructions 243 244 Chapitre 1: Eléments du langage ActionScript 2 CHAPITRE 2 Classes ActionScript La documentation relative aux classes ActionScript inclut des informations sur la syntaxe, l'utilisation et des exemples de code concernant les méthodes, les propriétés, les gestionnaires d'événements et les écouteurs appartenant à une classe spécifique dans ActionScript (par opposition aux fonctions ou propriétés globales). Les classes sont répertoriées par ordre alphabétique et incluent de nouvelles classes dans Flash Player 8, contenues dans les paquets flash.*. Si vous ne savez pas à quelle classe appartient une méthode ou une propriété spécifique, reportez-vous à l'index. Accessibility Object | +-Accessibility public class Accessibility extends Object La classe Accessibility gère la communication avec les logiciels de lecture d'écran. Les logiciels de lecture d'écran sont un type de technologie d'assistance conçu pour les utilisateurs malvoyants fournissant une version sonore du contenu de l'écran. Les méthodes de la classe Accessibility sont statiques : ainsi, vous n'avez pas besoin de créer d'occurence de la classe pour utiliser ses méthodes. Pour obtenir et définir les propriétés d'accessibilité d'un objet spécifique, tel qu'un bouton, clip ou champ de texte, utilisez la propriété _accProps. Pour spécifier si le lecteur doit s'exécuter dans un environnement qui prend en charge les fonctions d'accessibilité, utilisez System.capabilities.hasAccessibility. Disponibilité : ActionScript 1.0 ; Flash Player 6 Voir également hasAccessibility (propriété capabilities.hasAccessibility), _accProps, propriété 245 Résumé des propriétés Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé de la méthode Modificateurs Signature static Description isActive() : Boolean Indique si une option d'accessibilité est actuellement active et si le lecteur communique avec elle. static updateProperties() : Entraîne l'entrée en vigueur de toutes les modifications Void apportées aux objets _accProps (propriétés d'accessibilité). Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) isActive (méthode Accessibility.isActive) statique publique isActive() : Boolean Indique si une option d'accessibilité est actuellement active et si le lecteur communique avec elle. Utilisez cette méthode si vous souhaitez que votre application se comporte différemment en présence d'un logiciel de lecture d'écran ou de toute autre option d'accessibilité. Remarque : Si vous appelez cette méthode une ou deux secondes après que la fenêtre Flash, dans laquelle vous pouvez lire votre document, se soit affichée pour la première fois, vous recevrez peut-être une valeur de retour false même si le client Microsoft Active Accessibility (MSAA) est actif. Ceci est dû à un mécanisme de communication asynchrone entre les clients Flash et MSAA. Vous pouvez contourner cette restriction en respectant un délai de une à deux secondes, après avoir chargé votre document, avant d'appeler cette méthode. Disponibilité : ActionScript 1.0 ; Flash Player 6 246 Chapitre 2: Classes ActionScript Renvoie - Une valeur booléenne : true si Flash Player communique avec une option d'accessibilité (généralement un logiciel de lecture d'écran) ; false sinon. Boolean Exemple L'exemple suivant vérifie si une option d'accessibilité est actuellement active : if (Accessibility.isActive()) { trace ("An accessibility aid is currently active"); } else { trace ("There is currently no active accessibility aid"); } Voir également updateProperties (méthode Accessibility.updateProperties), _accProps, propriété, hasAccessibility (propriété capabilities.hasAccessibility) updateProperties (méthode Accessibility.updateProperties) statique publique updateProperties() : Void Entraîne l'entrée en vigueur de toutes les modifications apportées aux objets _accProps (propriétés d'accessibilité). Pour plus d'informations sur la configuration des propriétés d'accessibilité, consultez _accProps. Si vous modifiez les propriétés d'accessibilité de plusieurs objets, un seul appel de Accessibility.updateProperties() est nécessaire ; plusieurs appels peuvent entraîner des performances réduites et des résultats du logiciel de lecture d'écran inintelligibles. Disponibilité : ActionScript 1.0 ; Flash Player 6,0,65,0 Exemple Si vous modifiez une image et souhaitez mettre à jour sa description d'accessibilité, vous pouvez utiliser le code ActionScript suivant : my_mc.gotoAndStop(2); if (my_mc._accProps == undefined ) { my_mc._accProps = new Object(); } my_mc._accProps.name = "Photo of Mount Rushmore"; Accessibility.updateProperties(); Accessibility 247 Voir également isActive (méthode Accessibility.isActive), _accProps, propriété, hasAccessibility (propriété capabilities.hasAccessibility) arguments Object | +-arguments public class arguments extends Object Un objet arguments est utilisé pour stocker les arguments d'une fonction et y accéder. Lorsqu'il se trouve dans le corps de la fonction, vous pouvez y accéder via la variable arguments locale. Les arguments sont stockés en tant qu'éléments de tableau, le premier étant accessible en tant que arguments[0], le deuxième en tant que arguments[1], etc. La propriété arguments.length indique le nombre d'arguments transmis à la fonction. Sachez que le nombre d'arguments transmis peut différer de celui ayant été déclaré par la fonction. Disponibilité : ActionScript 1.0 ; Flash Player 5 Voir également Function Résumé des propriétés Modificateurs Propriété Description callee:Object Référence à la fonction en cours d'exécution. caller:Object Référence à la fonction ayant appelé la fonction en cours d'exécution ou null si elle n'a pas été appelée à partir d'une autre fonction. length:Number Le nombre d'arguments transmis à la fonction. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) 248 Chapitre 2: Classes ActionScript Résumé de la méthode Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) callee (propriété arguments.callee) public callee : Object Référence à la fonction en cours d'exécution. Disponibilité : ActionScript 1.0 ; Flash Player 5 Voir également caller (propriété arguments.caller) caller (propriété arguments.caller) public caller : Object Référence à la fonction ayant appelé la fonction en cours d'exécution ou null si elle n'a pas été appelée à partir d'une autre fonction. Disponibilité : ActionScript 1.0 ; Flash Player 6 Voir également callee (propriété arguments.callee) length (propriété arguments.length) public length : Number Le nombre d'arguments transmis à la fonction. Ce nombre peut être supérieur ou inférieur à celui ayant été déclaré par la fonction. Disponibilité : ActionScript 1.0 ; Flash Player 5 arguments 249 Array Object | +-Array public dynamic class extends Object Array La classe Array vous permet d'accéder aux tableaux indexés et de les manipuler. Un tableau indexé est un objet dont les propriétés sont identifiées par un nombre représentant leur position au sein de celui-ci. Ce nombre est appelé index. Tous les tableaux indexés sont basés sur zéro, ce qui signifie que le premier élément du tableau est [0], le deuxième est [1], etc. Pour créer un objet Array, utilisez le constructeur new Array(). Pour accéder aux éléments d'un tableau, utilisez l'opérateur d'accès au tableau ([]). Vous pouvez stocker divers types de données dans un élément de tableau, y compris les nombres, les chaînes, les objets et même d'autres tableaux. Vous pouvez créer un tableau multidimensionnel en concevant un tableau indexé et en affectant à chacun de ses éléments un tableau indexé différent. Ce type de tableau est considéré comme étant miltidimensionnel car il peut être utilisé pour représenter des données dans un tableau. L'affectation au tableau s'effectue par référence plutôt que par valeur : lorsque vous affectez une variable de tableau à une autre variable de tableau, elles renvoient toutes deux au même tableau : var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Both array variables refer to the same array. twoArray[0] = "z"; trace(oneArray); // Output: z,b,c. La classe Array ne doit pas être utilisée pour créer des tableaux associatifs car il s'agit de structures de données différentes qui contiennent des éléments nommés au lieu d'éléments numérotés. Il est recommandé d'utiliser la classe Object pour créer des tableaux associatifs (également appelés hachages). Bien que ActionScript vous permette de créer des tableaux associatifs à l'aide de la classe Array, vous ne pouvez pas utiliser les méthodes ou les propriétés de cette dernière. Sous sa forme de base, un tableau associatif est une occurrence de la classe Object et chaque paire clé/valeur est représentée par une propriété et sa valeur. Vous pouvez également déclarer un tableau associatif à l'aide du type de données Object pour la raison suivante : cela vous permet d'utiliser ensuite un littéral d'objet pour alimenter votre tableau associatif (uniquement au moment de la déclaration). L'exemple suivant crée un tableau associatif à l'aide d'un littéral d'objet, accède aux éléments à l'aide de l'opérateur point et d'accès au tableau, puis ajoute une nouvelle paire clé/valeur en créant une nouvelle propriété : var myAssocArray:Object = {fname:"John", lname:"Public"}; 250 Chapitre 2: Classes ActionScript trace(myAssocArray.fname); // Output: John trace(myAssocArray["lname"]); // Output: Public myAssocArray.initial = "Q"; trace(myAssocArray.initial); // Output: Q Disponibilité : ActionScript 1.0 ; Flash Player 5 Exemple Dans l'exemple suivant, my_array contient quatre mois de l'année : var my_array:Array = new Array(); my_array[0] = "January"; my_array[1] = "February"; my_array[2] = "March"; my_array[3] = "April"; Résumé des propriétés Modificateurs Propriété static Description CASEINSENSITIVE:Numb Dans les méthodes de tri, cette constante spécifie le tri er non sensible à la casse. DESCENDING:Number Dans les méthodes de tri, cette constante spécifie l'ordre de tri décroissant. length:Number Un entier non négatif spécifiant le nombre d'éléments contenus dans le tableau. static NUMERIC:Number Dans les méthodes de tri, cette constante spécifie le tri numérique (au lieu de la chaîne de caractères). static RETURNINDEXEDARRAY:N Spécifie qu'un tri renvoie un tableau indexé résultant static static umber de l'appel de la méthode sort() ou sortOn(). UNIQUESORT:Number Dans les méthodes de tri, cette constante spécifie l'unique exigence de tri. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des constructeurs Signature Description Array([value:Object] Permet de créer un tableau. ) Array 251 Résumé de la méthode Modificateurs Signature Description concat([value:Object Concatène les éléments spécifiés dans les paramètres ]) : Array avec ceux contenus dans un tableau et crée un nouveau tableau. join([delimiter:Stri Convertit les éléments d'un tableau en chaînes, insère ng]) : String le séparateur spécifié entre les éléments, les concatène, puis renvoie la chaîne obtenue. pop() : Object Supprime le dernier élément d'un tableau et renvoie la valeur de cet élément. push(value:Object) : Ajoute un ou plusieurs éléments à la fin d'un tableau et Number renvoie la nouvelle longueur du tableau. reverse() : Void Inverse le tableau. shift() : Object Supprime le premier élément d'un tableau et renvoie cet élément. slice([startIndex:Nu Renvoie un nouveau tableau constitué d'un éventail mber], d'éléments issus du tableau original, sans modifier ce [endIndex:Number]) : dernier. Array sort([compareFunctio Trie les éléments d'un tableau. n:Object], [options:Number]) : Array sortOn(fieldName:Obj Trie les éléments d'un tableau selon un ou plusieurs ect, champs du tableau. [options:Object]) : Array splice(startIndex:Nu Ajoute et supprime des éléments dans un tableau. mber, [deleteCount:Number] , [value:Object]) : Array toString() : String Renvoie une valeur de chaîne représentant les éléments dans l'objet Array spécifié. unshift(value:Object Ajoute un ou plusieurs éléments au début d'un tableau ) : Number 252 Chapitre 2: Classes ActionScript et renvoie la nouvelle longueur du tableau. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) constructeur Array public Array([value:Object]) Permet de créer un tableau. Vous pouvez utiliser le constructeur pour créer différents types de tableaux : un tableau vide, un tableau d'une longueur spécifique mais dont les éléments ont des valeurs non définies, ou un tableau dont les éléments ont des valeurs spécifiques. Utilisation 1 : si vous ne spécifiez aucun paramètre, un tableau d'une longueur de 0 est créé. Utilisation 2 : si vous spécifiez uniquement une longueur, un tableau contenant un nombre d'éléments de length est créé. La valeur de chaque élément est définie sur undefined. Utilisation 3 : Si vous utilisez les paramètres element pour spécifier des valeurs, un tableau est créé avec des valeurs spécifiques. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres value:Object [facultatif ] - Soit : ■ Un entier spécifiant le nombre d'éléments contenus dans le tableau. ■ Une liste de deux valeurs arbitraires ou plus. Les valeurs peuvent être de type Boolean, Number, String, Object ou Array. La valeur de l'index ou de la position du premier élément d'un tableau est toujours 0. Remarque : Si un seul paramètre numérique est transmis au constructeur Array, il s'agit du paramètre length par défaut ; celui-ci est converti en entier à l'aide de la fonction Integer(). Exemple Utilisation 1 : L'exemple suivant crée un nouvel objet Array d'une longueur initiale de 0 : var my_array:Array = new Array(); trace(my_array.length); // Traces 0. Utilisation 2 : L'exemple suivant crée un nouvel objet Array d'une longueur initiale de 4 : var my_array:Array = new Array(4); trace(my_array.length); // Returns 4. Array 253 trace(my_array[0]); // Returns undefined. if (my_array[0] == undefined) { // No quotation marks around undefined. trace("undefined is a special value, not a string"); } // Traces: undefined is a special value, not a string. Utilisation 3 : L'exemple suivant crée le nouvel objet Array go_gos_array d'une longueur initiale de 5 : var go_gos_array:Array = new Array("Belinda", "Gina", "Kathy", "Charlotte", "Jane"); trace(go_gos_array.length); // Returns 5. trace(go_gos_array.join(", ")); // Displays elements. Les éléments initiaux du tableau go_gos_array sont identifiés, comme indiqué dans l'exemple suivant : go_gos_array[0] go_gos_array[1] go_gos_array[2] go_gos_array[3] go_gos_array[4] = = = = = "Belinda"; "Gina"; "Kathy"; "Charlotte"; "Jane"; Le code suivant ajoute un sixième élément au tableau go_gos_array et modifie le deuxième élément : go_gos_array[5] = "Donna"; go_gos_array[1] = "Nina" trace(go_gos_array.join(" + ")); // Returns Belinda + Nina + Kathy + Charlotte + Jane + Donna. Voir également Opérateur d'accès au tableau [], length (propriété Array.length) CASEINSENSITIVE (propriété Array.CASEINSENSITIVE) statique publique CASEINSENSITIVE : Number Dans les méthodes de tri, cette constante spécifie le tri non sensible à la casse. Vous pouvez utiliser cette constante pour le paramètre options de la méthode sort() ou sortOn(). La valeur de cette constante est 1. Disponibilité : ActionScript 1.0 ; Flash Player 7 Voir également sort (méthode Array.sort), sortOn (méthode Array.sortOn) 254 Chapitre 2: Classes ActionScript concat (méthode Array.concat) public concat([value:Object]) : Array Concatène les éléments spécifiés dans les paramètres avec ceux contenus dans un tableau et crée un nouveau tableau. Si les paramètres value spécifient un tableau, les éléments de celuici sont concaténés, au lieu du tableau lui-même. Le tableau my_array demeure inchangé. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres value:Object [facultatif ] - Nombres, éléments ou chaînes à concaténer dans un nouveau tableau. Si vous ne transmettez aucune valeur, une duplication de my_array est créée. Renvoie Array - Un tableau qui contient les éléments de ce tableau suivi des éléments des paramètres. Exemple Le code suivant concatène deux tableaux : var alpha_array:Array = new Array("a","b","c"); var numeric_array:Array = new Array(1,2,3); var alphaNumeric_array:Array =alpha_array.concat(numeric_array); trace(alphaNumeric_array); // Creates array [a,b,c,1,2,3]. Le code suivant concatène trois tableaux : var num1_array:Array = [1,3,5]; var num2_array:Array = [2,4,6]; var num3_array:Array = [7,8,9]; var nums_array:Array=num1_array.concat(num2_array,num3_array) trace(nums_array); // Creates array [1,3,5,2,4,6,7,8,9]. Les tableaux incorporés ne sont pas aplatis de la même manière que les tableaux normaux. Les éléments d'un tableau incorporé ne sont pas séparés en éléments distincts dans le tableau x_array, comme indiqué dans l'exemple suivant : var a_array:Array = new Array ("a","b","c"); // 2 and 3 are elements in a nested array. var n_array:Array = new Array(1, [2, 3], 4); var x_array:Array = a_array.concat(n_array); trace(x_array[0]); // a trace(x_array[1]); // b trace(x_array[2]); // c trace(x_array[3]); // 1 Array 255 trace(x_array[4]); // 2, 3 trace(x_array[5]); // 4 DESCENDING (propriété Array.DESCENDING) statique publique DESCENDING : Number Dans les méthodes de tri, cette constante spécifie l'ordre de tri décroissant. Vous pouvez utiliser cette constante pour le paramètre options de la méthode sort() ou sortOn(). La valeur de cette constante est 2. Disponibilité : ActionScript 1.0 ; Flash Player 7 Voir également sort (méthode Array.sort), sortOn (méthode Array.sortOn) join (méthode Array.join) public join([delimiter:String]) : String Convertit les éléments d'un tableau en chaînes, insère le séparateur spécifié entre les éléments, les concatène, puis renvoie la chaîne obtenue. Un tableau imbriqué est toujours séparé par une virgule (,), et non pas par le séparateur transmis à la méthode join(). Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres delimiter:String [facultatif ] - Un caractère ou une chaîne séparant les éléments du tableau dans la chaîne renvoyée. Si vous omettez ce paramètre, une virgule (,) est utilisée en tant que séparateur par défaut. Renvoie String - Une chaîne. Exemple L'exemple suivant crée un tableau incluant trois éléments : Earth, Moon et Sun. Il relie ensuite le tableau trois fois, d'abord à l'aide du séparateur par défaut (une virgule [,] et un espace), puis à l'aide d'un tiret (-) et enfin d'un signe plus (+). var a_array:Array = new Array("Earth","Moon","Sun") trace(a_array.join()); // Displays Earth,Moon,Sun. trace(a_array.join(" - ")); // Displays Earth - Moon - Sun. 256 Chapitre 2: Classes ActionScript trace(a_array.join(" + ")); // Displays Earth + Moon + Sun. L'exemple suivant crée un tableau incorporé qui contient deux tableaux. Le premier tableau inclut trois éléments : Europa, Io et Callisto. Le deuxième tableau inclut deux éléments : Titan et Rhea. Il relie le tableau à l'aide d'un signe plus (+) mais les éléments de chaque tableau incorporé restent séparés par des virgules (,). var a_nested_array:Array = new Array(["Europa", "Io", "Callisto"], ["Titan", "Rhea"]); trace(a_nested_array.join(" + ")); // Returns Europa,Io,Callisto + Titan,Rhea. Voir également split (méthode String.split) length (propriété Array.length) public length : Number Un entier non négatif spécifiant le nombre d'éléments contenus dans le tableau. Cette propriété est automatiquement mise à jour lorsque vous ajoutez de nouveaux éléments dans le tableau. Lorsque vous affectez une valeur à un élément de tableau (par exemple, my_array[index] = value), si index est un nombre et si index+1 est supérieur à la propriété length, la propriété length est mise à jour et définie sur la valeur index+1. Remarque : Si vous affectez une valeur plus courte que la valeur existante à la propriété length, le tableau sera tronqué. Disponibilité : ActionScript 1.0 ; Flash Player 5 Exemple Le code suivant explique la façon dont la propriété length est mise à jour. La valeur de la longueur initiale est 0, puis 1, 2 et 10. Si vous affectez une valeur plus courte que la valeur existante à la propriété length, le tableau sera tronqué : var my_array:Array = new Array(); trace(my_array.length); // initial length is 0 my_array[0] = "a"; trace(my_array.length); // my_array.length is updated to 1 my_array[1] = "b"; trace(my_array.length); // my_array.length is updated to 2 my_array[9] = "c"; trace(my_array.length); // my_array.length is updated to 10 trace(my_array); // displays: Array 257 // a,b,undefined,undefined,undefined,undefined,undefined,undefined,undefine d,c // if the length property is now set to 5, the array will be truncated my_array.length = 5; trace(my_array.length); // my_array.length is updated to 5 trace(my_array); // outputs: a,b,undefined,undefined,undefined NUMERIC (propriété Array.NUMERIC) statique publique NUMERIC : Number Dans les méthodes de tri, cette constante spécifie le tri numérique (au lieu de la chaîne de caractères). Si vous l'incluez au paramètre options, cela oblige les méthodes sort() et sortOn() à trier les nombres en tant que valeurs numériques, et non en tant que chaînes de caractères numériques. En l'absence de la constante NUMERIC, le tri traite chaque élément de tableau en tant que chaîne de caractère et donne les résultats selon l'ordre Unicode. Prenons l'exemple suivant pour le tableau de valeurs [2005, 7, 35] : si la constante NUMERIC n'est pas incluse dans le paramètre options, le tableau trié est [2005, 35, 7] ; en revanche, si la constante NUMERIC est incluse, le tableau trié est [7, 35, 2005]. Notez que cette constante s'applique uniquement aux nombres contenus dans le tableau ; elle ne s'applique pas aux chaînes qui contiennent des données numériques (telles que [23, 5]). La valeur de cette constante est 16. Disponibilité : ActionScript 1.0 ; Flash Player 7 Voir également sort (méthode Array.sort), sortOn (méthode Array.sortOn) pop (méthode Array.pop) public pop() : Object Supprime le dernier élément d'un tableau et renvoie la valeur de cet élément. Disponibilité : ActionScript 1.0 ; Flash Player 5 Renvoie Object 258 - La valeur du dernier élément dans le tableau spécifié. Chapitre 2: Classes ActionScript Exemple Le code suivant crée le tableau myPets_array contenant quatre éléments, puis supprime son dernier élément : var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); var popped:Object = myPets_array.pop(); trace(popped); // Displays fish. trace(myPets_array); // Displays cat,dog,bird. Voir également push (méthode Array.push), shift (méthode Array.shift), unshift (méthode Array.unshift) push (méthode Array.push) public push(value:Object) : Number Ajoute un ou plusieurs éléments à la fin d'un tableau et renvoie la nouvelle longueur du tableau. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres value:Object - Une ou plusieurs valeurs à ajouter au tableau. Renvoie Number - Un entier représentant la longueur du nouveau tableau. Exemple L'exemple suivant crée le tableau myPets_array incluant deux éléments, cat et dog. La deuxième ligne ajoute deux éléments au tableau. Etant donné que la méthode push() renvoie la nouvelle longueur du tableau, l'instruction trace() de la dernière ligne envoie la nouvelle longueur du tableau myPets_array (4) vers le panneau de sortie. var myPets_array:Array = new Array("cat", "dog"); var pushed:Number = myPets_array.push("bird", "fish"); trace(pushed); // Displays 4. Voir également pop (méthode Array.pop), shift (méthode Array.shift), unshift (méthode Array.unshift) Array 259 RETURNINDEXEDARRAY (propriété Array.RETURNINDEXEDARRAY) statique publique RETURNINDEXEDARRAY : Number Spécifie qu'un tri renvoie un tableau indexé résultant de l'appel de la méthode sort() ou sortOn(). Vous pouvez utiliser cette constante pour le paramètre options de la méthode sort() ou sortOn(). Cette méthode fournit les fonctions d'aperçu et de copie en renvoyant un tableau qui représente les résultats du tri et ne modifie pas le tableau d'origine. La valeur de cette constante est 8. Disponibilité : ActionScript 1.0 ; Flash Player 7 Voir également sort (méthode Array.sort), sortOn (méthode Array.sortOn) reverse (méthode Array.reverse) public reverse() : Void Inverse le tableau. Disponibilité : ActionScript 1.0 ; Flash Player 5 Exemple L'exemple suivant utilise cette méthode pour inverser le tableau numbers_array : var numbers_array:Array = new Array(1, 2, 3, 4, 5, 6); trace(numbers_array); // Displays 1,2,3,4,5,6. numbers_array.reverse(); trace(numbers_array); // Displays 6,5,4,3,2,1. shift (méthode Array.shift) public shift() : Object Supprime le premier élément d'un tableau et renvoie cet élément. Disponibilité : ActionScript 1.0 ; Flash Player 5 Renvoie Object 260 - Le premier élément d'un tableau. Chapitre 2: Classes ActionScript Exemple Le code suivant crée le tableau myPets_array, supprime le premier élément du tableau, puis l'affecte à la variable shifted : var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); var shifted:Object = myPets_array.shift(); trace(shifted); // Displays "cat". trace(myPets_array); // Displays dog,bird,fish. Voir également pop (méthode Array.pop), push (méthode Array.push), unshift (méthode Array.unshift) slice (méthode Array.slice) public slice([startIndex:Number], [endIndex:Number]) : Array Renvoie un nouveau tableau constitué d'un éventail d'éléments issus du tableau original, sans modifier ce dernier. Le tableau renvoyé inclut l'élément startIndex et tous les éléments, excepté l'élément endIndex. Si vous ne transmettez aucun paramètre, une duplication du tableau d'origine est créée. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres startIndex:Number [facultatif ] - Un nombre spécifiant l'index du point de départ pour la découpe. Si start est un nombre négatif, le point de départ se trouve à la fin du tableau, où la valeur -1 est le dernier élément. endIndex:Number [facultatif ] - Un nombre spécifiant l'index du point d'arrivée pour la découpe. Si vous omettez ce paramètre, la découpe inclut tous les éléments du point de départ à la fin du tableau. Si end est un nombre négatif, le point d'arrivée spécifié se trouve à la fin du tableau, où la valeur -1 est le dernier élément. Renvoie Array - Un tableau constitué d'un éventail d'éléments issus du tableau original. Array 261 Exemple L'exemple suivant crée un tableau incluant cinq animaux domestiques et utilise la méthode slice() pour alimenter un nouveau tableau contenant uniquement les animaux à quatre pattes : var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myFourLeggedPets_array:Array = new Array(); var myFourLeggedPets_array = myPets_array.slice(0, 2); trace(myFourLeggedPets_array); // Returns cat,dog. trace(myPets_array); // Returns cat,dog,fish,canary,parrot. L'exemple suivant crée un tableau incluant cinq animaux domestiques, puis utilise la méthode slice() avec un paramètre start négatif pour copier les deux derniers éléments du tableau : var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myFlyingPets_array:Array = myPets_array.slice(-2); trace(myFlyingPets_array); // Traces canary,parrot. L'exemple suivant crée un tableau incluant cinq animaux domestiques et utilise la méthode slice() avec un paramètre end négatif pour copier l'élément central du tableau : var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myAquaticPets_array:Array = myPets_array.slice(2,-2); trace(myAquaticPets_array); // Returns fish. sort (méthode Array.sort) public sort([compareFunction:Object], [options:Number]) : Array Trie les éléments d'un tableau. Flash trie selon les valeurs Unicode. (ASCII est un sousensemble de Unicode.) Par défaut, Array.sort() fonctionne comme décrit dans la liste suivante : ■ Le tri tient compte de la casse (Z précède a). ■ Le tri est ascendant (a précède b). ■ Le tableau est modifié afin de refléter l'ordre de tri ; plusieurs éléments, dont les champs de tri sont identiques, sont placés de manière consécutive dans le tableau trié dans un ordre quelconque. ■ Les champs numériques sont triés comme s'il s'agissait de chaînes : ainsi, 100 précède 99 car « 1 » est une valeur de chaîne inférieure à « 9 ». 262 Chapitre 2: Classes ActionScript Si vous voulez trier un tableau à l'aide de paramètres qui ne correspondent pas aux paramètres par défaut, vous pouvez utiliser l'une des options de tri décrites dans l'entrée du paramètre options ou vous pouvez créer votre propre fonction personnalisée pour effectuer le tri. Si vous créez une fonction personnalisée, vous pouvez l'utiliser en appelant la méthode sort() et en utilisant le nom de votre fonction personnalisée en tant que premier paramètre (compareFunction). Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres [facultatif ] - Une fonction de comparaison utilisée pour déterminer l'ordre de tri des éléments dans un tableau. Etant donné les éléments A et B, le résultat de compareFunction peut être l'une des trois valeurs suivantes : compareFunction:Object ■ -1, si A apparaît avant B dans la séquence triée ■ 0, si A = B ■ 1, si A apparaît après B dans la séquence triée [facultatif ] - Un ou plusieurs nombres ou noms de constantes définies, séparés par l'opérateur OR | au niveau du bit, ce qui remplace le comportement de tri par défaut. Les valeurs suivantes sont valides pour le paramètre options : options:Number ou 1 ■ Array.CASEINSENSITIVE ■ Array.DESCENDING ou 2 ■ Array.UNIQUESORT ou 4 ■ Array.RETURNINDEXEDARRAY ■ Array.NUMERIC ou 8 ou 16 Pour plus d'informations sur ce paramètre, consultez la méthode Array.sortOn(). Remarque : La méthode Array.sort() est définie dans la norme ECMA-262 mais les options de tri de tableau introduites dans Flash Player 7 sont des extensions spécifiques à Flash de la spécification ECMA-262. Renvoie - La valeur de renvoi dépend du fait que vous transmettiez ou non des paramètres, comme décrit dans la liste suivante : Array ■ Si vous spécifiez une valeur de 4 ou Array.UNIQUESORT pour le paramètre options et si au moins deux éléments triés ont des champs de tri identiques, Flash renvoie une valeur de 0 et ne modifie pas le tableau. Array 263 ■ Si vous spécifiez une valeur de 8 ou Array.RETURNINDEXEDARRAY pour le paramètre options, Flash renvoie un tableau qui reflète les résultats du tri et ne modifie pas le tableau. ■ Dans le cas contraire, Flash ne renvoie rien et modifie le tableau pour refléter l'ordre de tri. Exemple Utilisation 1 : L'exemple suivant illustre l'utilisation de Array.sort(), avec et sans valeur transmise à options : var fruits_array:Array = new Array("oranges", "apples", "strawberries", "pineapples", "cherries"); trace(fruits_array); // Displays oranges,apples,strawberries,pineapples,cherries. fruits_array.sort(); trace(fruits_array); // Displays apples,cherries,oranges,pineapples,strawberries. trace(fruits_array); // Writes apples,cherries,oranges,pineapples,strawberries. fruits_array.sort(Array.DESCENDING); trace(fruits_array); // Displays strawberries,pineapples,oranges,cherries,apples. trace(fruits_array); // Writes strawberries,pineapples,oranges,cherries,apples. Utilisation 2 : L'exemple suivant utilise Array.sort() avec une fonction de comparaison. Les entrées sont triées sous la forme nom:mot de passe. Triez en utilisant uniquement la partie nom de l'entrée en tant que clé : var passwords_array:Array = new Array("mom:glam", "ana:ring", "jay:mag", "anne:home", "regina:silly"); function order(a, b):Number { var name1:String = a.split(":")[0]; var name2:String = b.split(":")[0]; if (name1<name2) { return -1; } else if (name1>name2) { return 1; } else { return 0; } } trace("Unsorted:"); //Displays Unsorted: trace(passwords_array); //Displays mom:glam,ana:ring,jay:mag,anne:home,regina:silly. //Writes mom:glam,ana:ring,jay:mag,anne:home,regina:silly passwords_array.sort(order); trace("Sorted:"); //Displays Sorted: 264 Chapitre 2: Classes ActionScript trace(passwords_array); //Displays ana:ring,anne:home,jay:mag,mom:glam,regina:silly. //Writes ana:ring,anne:home,jay:mag,mom:glam,regina:silly. Voir également | Opérateur OR au niveau du bit, sortOn (méthode Array.sortOn) sortOn (méthode Array.sortOn) public sortOn(fieldName:Object, [options:Object]) : Array Trie les éléments d'un tableau selon un ou plusieurs champs du tableau. Le tableau doit être doté des caractéristiques suivantes : ■ Le tableau est indexé et non associatif. ■ Chaque élément du tableau contient un objet doté d'une ou de plusieurs propriétés. ■ Tous les objets ont au moins une propriété en commun dont les valeurs peuvent être utilisées pour trier le tableau. Ce type de propriété est connu sous le nom de champ. Si vous transmettez plusieurs paramètres fieldName, le premier champ représente le champ de tri principal, le deuxième représente le champ de tri suivant, etc. Flash trie selon les valeurs Unicode. (ASCII est un sous-ensemble de Unicode.) Si l'un des éléments comparés ne contient pas le champ spécifié dans le paramètre fieldName, le champ est considéré comme étant undefined et les éléments sont placés de manière consécutive dans le tableau trié dans un ordre quelconque. Par défaut, Array.sortOn() fonctionne de la façon suivante : ■ Le tri tient compte de la casse (Z précède a). ■ Le tri est ascendant (a précède b). ■ Le tableau est modifié afin de refléter l'ordre de tri ; plusieurs éléments, dont les champs de tri sont identiques, sont placés de manière consécutive dans le tableau trié dans un ordre quelconque. ■ Les champs numériques sont triés comme s'il s'agissait de chaînes : ainsi, 100 précède 99 car « 1 » est une valeur de chaîne inférieure à « 9 ». Flash Player 7 a jouté le paramètre options que vous pouvez utiliser pour annuler le comportement de tri par défaut. Pour trier un tableau simple (par exemple, un tableau contenant un seul champ) ou pour spécifier un ordre de tri non pris en charge par le paramètre options, utilisez Array.sort(). Pour définir plusieurs indicateurs, séparez-les à l'aide de l'opérateur OR (|) au niveau du bit : my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC); Array 265 La fonctionnalité ajoutée à Flash Player 8 permet de spécifier une option de tri différente pour chaque champ lors d'un tri selon plusieurs champs. Dans Flash Player 8, le paramètre options accepte un tableau d'options de tri de telle sorte que chaque option de tri correspond à un champ de tri dans le paramètre fieldName. L'exemple suivant trie le champ de tri principal, a, selon un tri décroissant, le deuxième champ de tri, b, selon un tri numérique et le troisième champ de tri, c, selon un tri non sensible à la casse : Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]); Remarque : Les tableaux fieldName et options doivent contenir le même nombre d'éléments ; sinon, le tableau options est ignoré. En outre, les options Array.UNIQUESORT et Array.RETURNINDEXEDARRAY ne peuvent être utilisées qu'en tant que premier élément du tableau, sinon elles sont ignorées. Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres - Une chaîne identifiant un champ à utiliser en tant que valeur de tri ou un tableau dans lequel le premier élément représente le champ de tri principal, le deuxième le champ de tri secondaire, etc. fieldName:Object [facultatif ] - Un ou plusieurs nombres ou noms de constantes définies, séparés par l'opérateur bitwise OR (|), ce qui remplace le comportement de tri. Les valeurs suivantes sont valides pour le paramètre options : options:Object ou 1 ■ Array.CASEINSENSITIVE ■ Array.DESCENDING ou 2 ■ Array.UNIQUESORT ou 4 ■ Array.RETURNINDEXEDARRAY ■ Array.NUMERIC ou 8 ou 16 Les conseils de code sont activés si vous utilisez le format chaîne de l'indicateur (par exemple, au lieu du format numérique (2). DESCENDING) Renvoie Array ■ - La valeur de renvoi dépend du fait que vous transmettiez ou non des paramètres : Si vous spécifiez une valeur de 4 ou Array.UNIQUESORT pour le paramètre options et si au moins deux éléments triés ont des champs de tri identiques, la valeur 0 est renvoyée et le tableau n'est pas modifié. 266 Chapitre 2: Classes ActionScript ■ Si vous spécifiez une valeur de 8 ou Array.RETURNINDEXEDARRAY pour le paramètre options, un tableau qui reflète les résultats du tri est renvoyé et le tableau n'est pas modifié. ■ Dans le cas contraire, Flash ne renvoie rien et modifie le tableau pour refléter l'ordre de tri. Exemple L'exemple suivant crée un nouveau tableau et le trie selon les champs name et city. Le premier tri utilise name en tant que première valeur de tri et city en tant que deuxième valeur de tri. Le deuxième tri utilise city en tant que première valeur de tri et name en tant que deuxième valeur de tri. var rec_array:Array = new Array(); rec_array.push({name: "john", city: "omaha", zip: 68144}); rec_array.push({name: "john", city: "kansas city", zip: 72345}); rec_array.push({name: "bob", city: "omaha", zip: 94010}); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Results: // john, omaha // john, kansas city // bob, omaha rec_array.sortOn(["name", "city"]); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Results: // bob, omaha // john, kansas city // john, omaha rec_array.sortOn(["city", "name" ]); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Results: // john, kansas city // bob, omaha // john, omaha Le tableau d'objets suivant est utilisé par les exemples suivants, qui montrent comment utiliser le paramètre options : var my_array:Array = new my_array.push({password: my_array.push({password: my_array.push({password: Array(); "Bob", age:29}); "abcd", age:3}); "barb", age:35}); Array 267 my_array.push({password: "catchy", age:4}); La réalisation d'un tri par défaut à partir du champ du mot de passe donne les résultats suivants : my_array.sortOn("password"); // Bob // abcd // barb // catchy La réalisation d'un tri non sensible à la casse à partir du champ du mot de passe donne les résultats suivants : my_array.sortOn("password", Array.CASEINSENSITIVE); // abcd // barb // Bob // catchy La réalisation d'un tri décroissant non sensible à la casse à partir du champ du mot de passe donne les résultats suivants : my_array.sortOn("password", Array.CASEINSENSITIVE | Array.DESCENDING); // catchy // Bob // barb // abcd La réalisation d'un tri par défaut à partir du champ âge donne les résultats suivants : my_array.sortOn("age"); // 29 // 3 // 35 // 4 La réalisation d'un tri numérique à partir du champ âge donne les résultats suivants : my_array.sortOn("age", Array.NUMERIC); // my_array[0].age = 3 // my_array[1].age = 4 // my_array[2].age = 29 // my_array[3].age = 35 La réalisation d'un tri numérique décroissant à partir du champ âge donne les résultats suivants : my_array.sortOn("age", Array.DESCENDING | Array.NUMERIC); // my_array[0].age = 35 // my_array[1].age = 29 // my_array[2].age = 4 // my_array[3].age = 3 Lorsque vous utilisez l'option de tri Array.RETURNEDINDEXARRAY, vous devez affecter la valeur renvoyée à un tableau différent. Le tableau d'origine n'est pas modifié. 268 Chapitre 2: Classes ActionScript var indexArray:Array = my_array.sortOn("age", Array.RETURNINDEXEDARRAY); Voir également | Opérateur OR au niveau du bit, sort (méthode Array.sort) splice (méthode Array.splice) public splice(startIndex:Number, [deleteCount:Number], [value:Object]) : Array Ajoute et supprime des éléments dans un tableau. Cette méthode modifie le tableau sans faire de copie. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres - Un entier spécifiant l'index de la position d'insertion ou de suppression de l'élément dans le tableau. Vous pouvez spécifier un entier négatif pour définir une position par rapport à la fin du tableau (par exemple, la valeur -1 représente le dernier élément du tableau). startIndex:Number deleteCount:Number [facultatif ] - Un entier spécifiant le nombre d'éléments à supprimer. Ce nombre inclut l'élément spécifié dans le paramètre startIndex. Si aucune valeur n'est spécifiée pour le paramètre deleteCount, la méthode supprime toutes les valeurs comprises entre l'élément startIndex et le dernier élément du tableau. Si la valeur est 0, aucun élément n'est supprimé. [facultatif ] - Spécifie les valeurs à insérer dans le tableau au point d'insertion défini dans le paramètre startIndex. value:Object Renvoie Array - Un tableau contenant les éléments supprimés du tableau original. Exemple L'exemple suivant crée un tableau et le relie à l'aide de l'élément index 1 pour le paramètre startIndex. Tous les éléments du tableau à partir du deuxième élément sont ainsi supprimés : seul l'élément à l'index 0 est conservé dans le tableau d'origine : var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); trace( myPets_array.splice(1) ); // Displays dog,bird,fish. trace( myPets_array ); // cat Array 269 L'exemple suivant crée un tableau et le relie à l'aide de l'élément index 1 pour le paramètre startIndex et du nombre 2 pour le paramètre deleteCount. Deux éléments du tableau à partir du deuxième élément sont ainsi supprimés : seuls les premier et dernier éléments sont conservés dans le tableau d'origine : var myFlowers_array:Array = new Array("roses", "tulips", "lilies", "orchids"); trace( myFlowers_array.splice(1,2 ) ); // Displays tulips,lilies. trace( myFlowers_array ); // roses,orchids L'exemple suivant crée un tableau et le relie à l'aide de l'élément index 1 pour le paramètre startIndex, du nombre 0 pour le paramètre deleteCount et de la chaîne chair pour le paramètre value. Aucun élément n'est supprimé du tableau d'origine et la chaîne chair est ajoutée à l'index 1 : var myFurniture_array:Array = new Array("couch", "bed", "desk", "lamp"); trace( myFurniture_array.splice(1,0, "chair" ) ); // Displays empty array. trace( myFurniture_array ); // displays couch,chair,bed,desk,lamp toString (méthode Array.toString) public toString() : String Renvoie une valeur de chaîne représentant les éléments dans l'objet Array spécifié. Chaque élément du tableau, commençant par l'index 0 et se terminant par l'index le plus élevé, est converti en chaîne concaténée et séparé par des virgules. Pour spécifier un séparateur personnalisé, utilisez la méthode Array.join(). Disponibilité : ActionScript 1.0 ; Flash Player 5 Renvoie String - Une chaîne. Exemple L'exemple suivant crée le tableau my_array et le convertit en chaîne. var my_array:Array = new Array(); my_array[0] = 1; my_array[1] = 2; my_array[2] = 3; my_array[3] = 4; my_array[4] = 5; trace(my_array.toString()); // Displays 1,2,3,4,5. Cet exemple renvoie le résultat 1,2,3,4,5 de l'instruction trace. 270 Chapitre 2: Classes ActionScript Voir également split (méthode String.split), join (méthode Array.join) UNIQUESORT (propriété Array.UNIQUESORT) statique publique UNIQUESORT : Number Dans les méthodes de tri, cette constante spécifie l'unique exigence de tri. Vous pouvez utiliser cette constante pour le paramètre options de la méthode sort() ou sortOn(). L'option de tri unique abandonne le tri si deux éléments ou champs triés ont des valeurs identiques. La valeur de cette constante est 4. Disponibilité : ActionScript 1.0 ; Flash Player 7 Voir également sort (méthode Array.sort), sortOn (méthode Array.sortOn) unshift (méthode Array.unshift) public unshift(value:Object) : Number Ajoute un ou plusieurs éléments au début d'un tableau et renvoie la nouvelle longueur du tableau. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres value:Object - Un ou plusieurs nombres, éléments ou variables à insérer au début du tableau. Renvoie Number - Un entier représentant la nouvelle longueur du tableau. Exemple L'exemple suivant illustre l'utilisation de la méthode Array.unshift() : var pets_array:Array = new Array("dog", "cat", "fish"); trace( pets_array ); // Displays dog,cat,fish. pets_array.unshift("ferrets", "gophers", "engineers"); trace( pets_array ); // Displays ferrets,gophers,engineers,dog,cat,fish. Array 271 Voir également pop (méthode Array.pop), push (méthode Array.push), shift (méthode Array.shift) AsBroadcaster Object | +-AsBroadcaster public class AsBroadcaster extends Object Offre des fonctionnalités de notification d'événements et de gestion des écouteurs pouvant être ajoutées à des objets définis par l'utilisateur. Cette classe est destinée aux utilisateurs expérimentés qui souhaitent créer des mécanismes de gestion d'événements personnalisés. Vous pouvez utiliser cette classe pour définir un objet en tant que diffuseur d'événements et pour créer un ou plusieurs objets écouteurs qui reçoivent une notification à chaque fois que l'objet de diffusion appelle la méthode broadcastMessage(). Aucune fonction constructeur n'existe pour la classe AsBroadcaster. Pour utiliser cette classe, procédez comme suit : ■ Sélectionnez ou créez un objet faisant office de diffuseur d'événements. ■ Définissez l'objet en tant que diffuseur d'événements en appelant la méthode AsBroadcaster.initialize(obj:Object) statique, où le paramètre obj est le nom de l'objet que vous avez sélectionné en tant que diffuseur. ■ Sélectionnez ou créez un ou plusieurs objets écouteurs. Les objets écouteurs reçoivent une notification à chaque fois que l'objet de diffusion envoie un message ■ Définissez une méthode d'écouteur pour chaque objet écouteur. La méthode d'écouteur exécute le code ActionScript en réponse à la notification d'événement. Le nom de la méthode doit correspondre à celui de l'événement diffusé par l'objet de diffusion. ■ Enregistrez chaque objet écouteur avec le diffuseur d'événements en appelant myBroadcaster.addListener(myListener), où myBroadcaster est le nom de l'objet diffuseur d'événements et myListener le nom de l'objet écouteur. Chaque diffuseur d'événements stocke une liste d'objets écouteurs devant être informés lorsqu'un message est diffusé. Utilisez la méthode addListener() pour ajouter des écouteurs dans la liste et removeListener() pour les supprimer de la liste. 272 Chapitre 2: Classes ActionScript ■ Enfin, pour envoyer un message, appelez la méthode myBroadcaster.broadcastMessage(eventName:String), où myBroadcaster est le nom du diffuseur d'événements et eventName le nom de l'événement correspondant à celui de la méthode d'écouteur. Remarque : Une erreur courante consiste à mettre en majuscule la deuxième lettre de AsBroadcaster. Lorsque vous appelez la méthode AsBroadcaster.initialize(), assurezvous que la deuxième lettre est en minuscule. Toute faute d'orthographe apparaissant dans AsBroadcaster échoue sans indication. Disponibilité : ActionScript 1.0 ; Flash Player 6 Résumé des propriétés Modificateurs Propriété _listeners:Array [lecture seule] Description Une liste de références à tous les objets écouteurs enregistrés. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) AsBroadcaster 273 Résumé de la méthode Modificateurs Signature Description addListener(listener Enregistre un objet de façon à ce que ce dernier Obj:Object) : reçoive les messages de notification. Boolean broadcastMessage(eve Envoie un message d'événement à chaque objet de la ntName:String) : liste d'écouteurs. Void static initialize(obj:Objec Ajoute une fonctionnalité de notification d'événements t) : Void et de gestion des écouteurs à un objet donné. removeListener(liste Supprime un objet de la liste d'objets recevant des nerObj:Object) : messages de notification d'événement. Boolean Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) addListener (méthode AsBroadcaster.addListener) public addListener(listenerObj:Object) : Boolean Enregistre un objet de façon à ce que ce dernier reçoive les messages de notification. Cette méthode est appelée sur l'objet de diffusion et l'objet écouteur est envoyé en tant qu'argument. Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres listenerObj:Object - Le nom de l'objet écouteur recevant la notification d'événement. Renvoie Boolean - Bien que, d'un point de vue technique, cette méthode renvoie une valeur booléenne, elle renvoie Void dans la pratique car elle renvoie toujours la valeur true. 274 Chapitre 2: Classes ActionScript Exemple L'exemple suivant est tiré de l'exemple détaillé en intégralité dans l'entrée de la méthode AsBroadcaster.initialize(). someObject.addListener(myListener1); // Register myListener1 as listener. someObject.addListener(myListener2); // Register myListener2 as listener. Voir également initialize (méthode AsBroadcaster.initialize), removeListener (méthode AsBroadcaster.removeListener) broadcastMessage (méthode AsBroadcaster.broadcastMessage) public broadcastMessage(eventName:String) : Void Envoie un message d'événement à chaque objet de la liste d'écouteurs. Dès que l'objet d'écoute a reçu le message, Flash Player tente d'appeler une fonction du même nom sur l'objet d'écoute. Supposons que votre objet envoie un message d'événement tel que celui-ci : obj.broadcastMessage("onAlert"); Une fois ce message reçu, Flash Player appelle une méthode intitulée onAlert() sur l'objet écouteur de réception. Remarque : Vous pouvez transmettre des arguments à vos fonctions d'écouteur en incluant des arguments supplémentaires à la méthode broadcastMessage(). Tous les arguments apparaissant après le paramètre eventName sont reçus en tant qu'arguments par la méthode d'écouteur. Cette méthode ne peut être appelée qu'à partir d'un objet ayant été initialisé à l'aide de la méthode AsBroadcaster.initialize(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres - Le nom de l'événement à diffuser. Le nom des méthodes d'écouteur doit correspondre à ce paramètre afin de pouvoir recevoir l'événement de diffusion. Vous pouvez transmettre des arguments aux méthodes d'écouteur en incluant des arguments supplémentaires après eventName. eventName:String AsBroadcaster 275 Exemple L'exemple suivant est tiré de l'exemple détaillé en intégralité dans l'entrée de la méthode AsBroadcaster.initialize() : someObject.broadcastMessage("someEvent"); // Broadcast the "someEvent" message. L'exemple suivant est tiré du deuxième exemple détaillé en intégralité dans l'entrée de la méthode AsBroadcaster.initialize(). Il indique comment envoyer des arguments aux méthodes d'écouteur. someObject.broadcastMessage("someEvent", 3, "arbitrary string"); Voir également initialize (méthode AsBroadcaster.initialize), removeListener (méthode AsBroadcaster.removeListener) initialize (méthode AsBroadcaster.initialize) statique publique initialize(obj:Object) : Void Ajoute une fonctionnalité de notification d'événements et de gestion des écouteurs à un objet donné. Il s'agit d'une méthode statique ; elle doit être appelée à l'aide de la classe AsBroadcaster (où someObject est le nom de l'objet à initialiser en tant que diffuseur d'événements) : AsBroadcaster.initialize(someObject); Remarque : Une erreur courante consiste à mettre en majuscule la deuxième lettre de AsBroadcaster. Lorsque vous appelez la méthode AsBroadcaster.initialize(), assurezvous que la deuxième lettre est en minuscule. Toute faute d'orthographe apparaissant dans AsBroadcaster échoue sans indication. Cette méthode ajoute la propriété _listeners, ainsi que les trois méthodes suivantes, à l'objet spécifié par le paramètre obj : ■ obj.addListener() ■ obj.removeListener() ■ obj.broadcastMessage() Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres obj:Object 276 - Un objet faisant office d'objet de diffusion. Chapitre 2: Classes ActionScript Exemple L'exemple suivant crée un objet générique, someObject, et le transforme en diffuseur d'événements. Les valeurs obtenues doivent correspondre aux chaînes affichées dans les deux instructions trace() : var someObject:Object = new Object(); // Creates broadcast object. var myListener1:Object = new Object(); // Creates listener object. var myListener2:Object = new Object(); // Creates listener object. myListener1.someEvent = function() { // Creates listener method. trace("myListener1 received someEvent"); } myListener2.someEvent = function() { // Createz listener method. trace("myListener2 received someEvent"); } AsBroadcaster.initialize(someObject); // Makes someObject an event broadcaster. someObject.addListener(myListener1); // Registers myListener1 as listener. someObject.addListener(myListener2); // Registers myListener2 as listener. someObject.broadcastMessage("someEvent"); // Broadcasts the "someEvent" message. L'exemple suivant indique comment transmettre des arguments supplémentaires à une méthode d'écouteur à l'aide de la méthode broadcastMessage(). Les valeurs obtenues doivent correspondre aux trois chaînes affichées dans les trois instructions trace(), qui incluent également les arguments transmis via la méthode broadcastMessage(). var someObject:Object = new Object(); var myListener:Object = new Object(); myListener.someEvent = function(param1:Number, param2:String) { trace("myListener received someEvent"); trace("param1: " + param1); trace("param2: " + param2); } AsBroadcaster.initialize(someObject); someObject.addListener(myListener); someObject.broadcastMessage("someEvent", 3, "arbitrary string"); AsBroadcaster 277 _listeners (propriété AsBroadcaster._listeners) public _listeners : Array [lecture seule] Une liste de références à tous les objets écouteurs enregistrés. Cette propriété est réservée à un usage interne uniquement et n'est pas destinée à une manipulation directe. Les objets sont ajoutés et supprimés dans ce tableau en appelant les méthodes addListener() et removelistener(). Cette propriété ne peut être appelée qu'à partir d'un objet ayant été initialisé à l'aide de la méthode AsBroadcaster.initialize(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant indique comment utiliser la propriété length pour déterminer le nombre d'objets écouteurs actuellement enregistrés auprès d'un diffuseur d'événements. Le code suivant fonctionne s'il est ajouté au premier exemple détaillé en intégralité dans la section Exemples de l'entrée AsBroadcaster.initialize() : trace(someObject._listeners.length); // Output: 2 Pour les utilisateurs expérimentés, l'exemple suivant indique comment utiliser la propriété _listeners pour répertorier tous les écouteurs enregistrés avec un diffuseur d'événements, ainsi que toutes les propriétés de chaque objet écouteur. L'exemple suivant crée deux méthodes d'écouteur différentes pour le premier objet écouteur. var someObject:Object = new Object(); // create broadcast object var myListener1:Object = new Object(); // create listener object var myListener2:Object = new Object(); // create listener object myListener1.someEvent = function() { // create listener method trace("myListener1 received someEvent"); } myListener1.anotherEvent = function() { // create another listener method trace("myListener1 received anotherEvent"); } myListener2.someEvent = function() { // create listener method trace("myListener2 received someEvent"); } AsBroadcaster.initialize(someObject); // make someObject an event broadcaster someObject.addListener(myListener1); // register myListener1 as listener someObject.addListener(myListener2); // register myListener2 as listener var numListeners:Number = someObject._listeners.length; // get number of registered listeners 278 Chapitre 2: Classes ActionScript // cycle through all listener objects, listing all properties of each listener object for (var i:Number = 0; i < numListeners; i++) { trace("Listener " + i + " listens for these events:"); for (item in someObject._listeners[i]) { trace (" " + item + ": " + someObject._listeners[i][item]); } } Voir également initialize (méthode AsBroadcaster.initialize) removeListener (méthode AsBroadcaster.removeListener) public removeListener(listenerObj:Object) : Boolean Supprime un objet de la liste d'objets recevant des messages de notification d'événement. Cette méthode ne peut être appelée qu'à partir d'un objet ayant été initialisé à l'aide de la méthode AsBroadcaster.initialize(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres listenerObj:Object - Le nom d'un objet écouteur enregistré pour recevoir des notifications d'événement émanant de l'objet de diffusion. Renvoie Boolean - Renvoie true si l'objet écouteur est supprimé ; false sinon. Exemple L'exemple suivant indique comment supprimer un écouteur de la liste des écouteurs enregistrés. Le code suivant fonctionne s'il est ajouté au premier exemple détaillé en intégralité dans la section Exemples de l'entrée AsBroadcaster.initialize(). Les instructions trace() sont incluses uniquement pour s'assurer que le nombre d'écouteurs enregistrés est réduit d'une unité après avoir appelé la méthode removeListener(). trace(someObject._listeners.length); // Output: 2 someObject.removeListener(myListener1); trace(someObject._listeners.length); // Output: 1 AsBroadcaster 279 Voir également addListener (méthode AsBroadcaster.addListener), initialize (méthode AsBroadcaster.initialize) BevelFilter (flash.filters.BevelFilter) Object | +-flash.filters.BitmapFilter | +-flash.filters.BevelFilter public class BevelFilter extends BitmapFilter La classe BevelFilter vous permet d'ajouter un effet de biseau à divers objets dans Flash. L'effet de biseau donne aux objets tels que des boutons un aspect tridimensionnel. Vous pouvez personnaliser l'aspect du biseau grâce à différentes couleurs de soulignement et d'ombre, au montant de flou sur le biseau, à l'angle du biseau, au positionnement du biseau et à un effet de poinçonnage. L'utilisation de filtres dépend de l'objet auquel vous appliquez le filtre. ■ Pour appliquer des filtres aux clips, champs de texte et boutons lors de l'exécution, utilisez la propriété filters. Lorsque vous définissez la propriété filters d'un objet, celui-ci n'est pas modifié. En outre, vous pouvez l'annuler en supprimant la propriété filters. ■ Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode BitmapData.applyFilter(). L'appel de applyFilter sur un objet BitmapData prend l'objet BitmapData source et l'objet de filtre, et génère une image filtrée. Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d'informations, consultez la documentation relative à la programmation. Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d'origine de cacheAsBitmap est restaurée. Ce filtre prend en charge le redimensionnement de la scène. Toutefois, le redimensionnement général, la rotation et l'inclinaison ne sont pas pris en charge. Si l'objet est redimensionné (si _xscale et _yscale ne sont pas définis sur 100 %), le filtre ne l'est pas. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène. 280 Chapitre 2: Classes ActionScript Aucun filtre n'est appliqué si l'image obtenue dépasse 2 880 pixels en hauteur ou en largeur. Si, par exemple, vous effectuez un zoom avant sur un clip volumineux auquel est appliqué un filtre, celui-ci est désactivé si l'image obtenue dépasse la limite de 2 880 pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 Voir également filters (propriété MovieClip.filters), cacheAsBitmap (propriété MovieClip.cacheAsBitmap), filters (propriété Button.filters), cacheAsBitmap (propriété Button.cacheAsBitmap), filters (propriété TextField.filters), applyFilter (méthode BitmapData.applyFilter), MovieClip Résumé des propriétés Modificateurs Propriété Description angle:Number L'angle du biseau. blurX:Number Le montant de flou horizontal dans les pixels. blurY:Number Le montant de flou vertical dans les pixels. distance:Number La distance de décalage du biseau. highlightAlpha:Numbe La valeur de transparence alpha de la couleur de r soulignement. highlightColor:Numbe La couleur de soulignement du biseau. r knockout:Boolean Applique un effet de poinçonnage (true), qui rend le remplissage de l'objet effectivement transparent et révèle la couleur d'arrière-plan du document. quality:Number Le nombre d'applications du filtre. shadowAlpha:Number La valeur de transparence alpha de la couleur d'ombre. shadowColor:Number La couleur d'ombre du biseau. strength:Number L'intensité de l'impression ou du recouvrement. type:String Le type de biseau. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) BevelFilter (flash.filters.BevelFilter) 281 Résumé des constructeurs Signature Description BevelFilter([distanc Initialise une nouvelle occurrence BevelFilter avec les paramètres spécifiés. e:Number], [angle:Number], [highlightColor:Numb er], [highlightAlpha:Numb er], [shadowColor:Number] , [shadowAlpha:Number] , [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [type:String], [knockout:Boolean]) Résumé de la méthode Modificateurs Signature clone() : Description Renvoie une copie de cet objet filtre. BevelFilter Méthodes héritées de la classe BitmapFilter clone (méthode BitmapFilter.clone ) Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) 282 Chapitre 2: Classes ActionScript angle (propriété BevelFilter.angle) public angle : Number L'angle du biseau. Les valeurs valides sont comprises entre 0 et 360 degrés. La valeur par défaut est 45. La valeur d'angle représente l'angle de la source lumineuse théorique projetée sur l'objet et détermine le positionnement de l'effet par rapport à l'objet. Si la distance est définie sur 0, l'effet n'est pas décalé par rapport à l'objet ; par conséquent, la propriété angle n'a pas d'effet. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété angle d'une occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelDistance"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.angle = 225; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } BevelFilter (flash.filters.BevelFilter) 283 Constructeur BevelFilter public BevelFilter([distance:Number], [angle:Number], [highlightColor:Number], [highlightAlpha:Number], [shadowColor:Number], [shadowAlpha:Number], [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [type:String], [knockout:Boolean]) Initialise une nouvelle occurrence BevelFilter avec les paramètres spécifiés. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres distance:Number [facultatif ] - La distance de décalage du biseau, en pixels (virgule flottante). La valeur par défaut est 4. angle:Number [facultatif ] - L'angle du biseau, de 0 à 360 degrés. La valeur par défaut est 45. [facultatif ] - La couleur de soulignement du biseau, 0xRRVVBB. La valeur par défaut est 0xFFFFFF. highlightColor:Number highlightAlpha:Number [facultatif ] - La valeur de transparence alpha de la couleur de soulignement. Les valeurs valides sont comprises entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1. shadowColor:Number [facultatif ] - La couleur d'ombre du biseau, 0xRRVVBB. La valeur par défaut est 0x000000. [facultatif ] - La valeur de transparence alpha de la couleur d'ombre. Les valeurs valides sont comprises entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1. shadowAlpha:Number [facultatif ] - Le montant de flou horizontal dans les pixels. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs qui sont une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées de manière à ce que leur rendu soit obtenu plus rapidement que celui des autres valeurs. blurX:Number [facultatif ] - Le montant de flou vertical dans les pixels. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs qui sont une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées de manière à ce que leur rendu soit obtenu plus rapidement que celui des autres valeurs. blurY:Number strength:Number [facultatif ] - L'intensité de l'impression ou du recouvrement. Plus la valeur est élevée, plus l'intensité des couleurs apparaît à l'impression et plus le contraste est important entre le biseau et l'arrière-plan. Les valeurs valides sont comprises entre 0 et 255. La valeur par défaut est 1. 284 Chapitre 2: Classes ActionScript quality:Number [facultatif ] - Le nombre d'applications du filtre. La valeur par défaut est 1, ce qui correspond à un niveau de qualité faible. La valeur 2 correspond à une qualité moyenne et la valeur 3 à une qualité élevée. [facultatif ] - Le type de biseau. Les valeurs valides sont "inner", "outer" et La valeur par défaut est "inner". type:String "full". [facultatif ] - Applique un effet de poinçonnage (true), qui rend le remplissage de l'objet effectivement transparent et révèle la couleur d'arrière-plan du document. La valeur par défaut est false (pas de poinçonnage). knockout:Boolean Exemple L'exemple suivant instancie une nouvelle occurrence BevelFilter et l'applique à l'occurrence MovieClip (rect) : import flash.filters.BevelFilter; var var var var var var var var var var var var distance:Number = 5; angleInDegrees:Number = 45; highlightColor:Number = 0xFFFF00; highlightAlpha:Number = .8; shadowColor:Number = 0x0000FF; shadowAlpha:Number = .8; blurX:Number = 5; blurY:Number = 5; strength:Number = 5; quality:Number = 3; type:String = "inner"; knockout:Boolean = false; var filter:BevelFilter = new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); var rect:MovieClip = createRectangle(100, 100, 0x00CC00, "bevelFilterExample"); rect.filters = new Array(filter); function createRectangle(w:Number, h:Number, bgColor:Number, name:String):MovieClip { BevelFilter (flash.filters.BevelFilter) 285 var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; return rect; } blurX (propriété BevelFilter.blurX) public blurX : Number Le montant de flou horizontal dans les pixels. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs qui sont une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées de manière à ce que leur rendu soit obtenu plus rapidement que celui des autres valeurs. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété blurX de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelBlurX"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.blurX = 10; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; 286 Chapitre 2: Classes ActionScript rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } blurY (propriété BevelFilter.blurY) public blurY : Number Le montant de flou vertical dans les pixels. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs qui sont une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées de manière à ce que leur rendu soit obtenu plus rapidement que celui des autres valeurs. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété blurY de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelBlurY"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.blurY = 10; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); BevelFilter (flash.filters.BevelFilter) 287 rect.filters = new Array(filter); return rect; } clone (méthode BevelFilter.clone) public clone() : BevelFilter Renvoie une copie de cet objet filtre. Disponibilité : ActionScript 1.0 ; Flash Player 8 Renvoie - Une nouvelle occurrence BevelFilter dont toutes les propriétés sont identiques à celles de l'occurrence BevelFilter d'origine. flash.filters.BevelFilter Exemple L'exemple suivant crée trois objets BevelFilter et les compare. Vous pouvez créer l'objet filter_1 à l'aide du constructeur BevelFilter. Créez l'objet filter_2 en lui attribuant une valeur égale à filter_1. Créez clonedFilter en clonant filter_1. Vous pouvez constater que, contrairement à filter_2, considéré comme étant égal à filter_1, clonedFilter ne l'est pas, même s'il contient les mêmes valeurs que filter_1. import flash.filters.BevelFilter; var filter_1:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); var filter_2:BevelFilter = filter_1; var clonedFilter:BevelFilter = filter_1.clone(); trace(filter_1 == filter_2); // true trace(filter_1 == clonedFilter); // false for(var i in filter_1) { trace(">> " + i + ": " + filter_1[i]); // >> clone: [type Function] // >> type: inner // >> blurY: 20 // >> blurX: 20 // >> knockout: false // >> strength: 1 // >> quality: 3 // >> shadowAlpha: 0.8 // >> shadowColor: 255 // >> highlightAlpha: 0.8 // >> highlightColor: 16776960 // >> angle: 45 288 Chapitre 2: Classes ActionScript // >> distance: 5 } for(var i in clonedFilter) { trace(">> " + i + ": " + clonedFilter[i]); // >> clone: [type Function] // >> type: inner // >> blurY: 20 // >> blurX: 20 // >> knockout: false // >> strength: 1 // >> quality: 3 // >> shadowAlpha: 0.8 // >> shadowColor: 255 // >> highlightAlpha: 0.8 // >> highlightColor: 16776960 // >> angle: 45 // >> distance: 5 } Pour illustrer de manière plus détaillée les relations qui existent entre filter_1, filter_2 et clonedFilter, l'exemple suivant modifie la propriété knockout de filter_1. La modification de la propriété knockout démontre que la méthode clone() crée une occurrence en fonction des valeurs de filter_1 au lieu de se référer à ces valeurs. import flash.filters.BevelFilter; var filter_1:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); var filter_2:BevelFilter = filter_1; var clonedFilter:BevelFilter = filter_1.clone(); trace(filter_1.knockout); // false trace(filter_2.knockout); // false trace(clonedFilter.knockout); // false filter_1.knockout = true; trace(filter_1.knockout); // true trace(filter_2.knockout); // true trace(clonedFilter.knockout); // false distance (propriété BevelFilter.distance) public distance : Number La distance de décalage du biseau. Les valeurs valides sont en pixels (virgule flottante). La valeur par défaut est 4. Disponibilité : ActionScript 1.0 ; Flash Player 8 BevelFilter (flash.filters.BevelFilter) 289 Exemple L'exemple suivant modifie la propriété distance de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelDistance"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.distance = 3; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } highlightAlpha (propriété BevelFilter.highlightAlpha) public highlightAlpha : Number La valeur de transparence alpha de la couleur de soulignement. La valeur spécifiée est une valeur normalisée comprise entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété highlightAlpha de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; 290 Chapitre 2: Classes ActionScript var rect:MovieClip = createBevelRectangle("BevelHighlightAlpha"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.highlightAlpha = .2; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } highlightColor (propriété BevelFilter.highlightColor) public highlightColor : Number La couleur de soulignement du biseau. Les valeurs valides sont au format hexadécimal, 0xRRVVBB. La valeur par défaut est 0xFFFFFF. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété highlightColor de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelHighlightColor"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.highlightColor = 0x0000FF; this.filters = new Array(filter); BevelFilter (flash.filters.BevelFilter) 291 } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } knockout (propriété BevelFilter.knockout) public knockout : Boolean Applique un effet de poinçonnage (true), qui rend le remplissage de l'objet effectivement transparent et révèle la couleur d'arrière-plan du document. La valeur par défaut est false (pas de poinçonnage). Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété knockout de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelKnockout"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.knockout = true; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; 292 Chapitre 2: Classes ActionScript var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } quality (propriété BevelFilter.quality) public quality : Number Le nombre d'applications du filtre. La valeur par défaut est 1, ce qui correspond à un niveau de qualité faible. La valeur 2 correspond à une qualité moyenne et la valeur 3 à une qualité élevée. Les rendus des filtres de valeurs inférieures sont obtenus plus rapidement. Pour la plupart des applications, une valeur quality de 1, 2 ou 3 est suffisante. Bien que vous puissiez utiliser des valeurs numériques supplémentaires pouvant aller jusqu'à 15 pour obtenir d'autres effets, les rendus des valeurs plus élevées sont obtenus moins rapidement. Au lieu d'augmenter la valeur de quality, vous pouvez souvent obtenir un effet similaire dont le rendu est obtenu plus rapidement. Pour ce faire, il vous suffit d'augmenter les valeurs de blurX et blurY. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété quality de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelQuality"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.quality = 1; this.filters = new Array(filter); } BevelFilter (flash.filters.BevelFilter) 293 function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } shadowAlpha (propriété BevelFilter.shadowAlpha) public shadowAlpha : Number La valeur de transparence alpha de la couleur d'ombre. Cette valeur spécifiée est une valeur normalisée comprise entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété shadowAlpha de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelShadowAlpha"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.shadowAlpha = .2; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; 294 Chapitre 2: Classes ActionScript var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } shadowColor (propriété BevelFilter.shadowColor) public shadowColor : Number La couleur d'ombre du biseau. Les valeurs valides sont au format hexadécimal, 0xRRVVBB. La valeur par défaut est 0x000000. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété shadowColor de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelShadowColor"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.shadowColor = 0xFFFF00; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); BevelFilter (flash.filters.BevelFilter) 295 rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } strength (propriété BevelFilter.strength) public strength : Number L'intensité de l'impression ou du recouvrement. Les valeurs valides sont comprises entre 0 et 255. Plus la valeur est élevée, plus l'intensité des couleurs apparaît à l'impression et plus le contraste est important entre le biseau et l'arrière-plan. La valeur par défaut est 1. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété strength de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelStrength"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.strength = 10; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; 296 Chapitre 2: Classes ActionScript var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } type (propriété BevelFilter.type) public type : String Le type de biseau. Les valeurs valides sont "inner", "outer" et "full". Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété type de l'occurrence MovieClip existante (rect) lorsqu'un utilisateur clique sur celle-ci : import flash.filters.BevelFilter; var rect:MovieClip = createBevelRectangle("BevelType"); rect.onRelease = function() { var filter:BevelFilter = this.filters[0]; filter.type = "outer"; this.filters = new Array(filter); } function createBevelRectangle(name:String):MovieClip { var w:Number = 100; var h:Number = 100; var bgColor:Number = 0x00CC00; var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); rect.beginFill(bgColor); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; } BevelFilter (flash.filters.BevelFilter) 297 BitmapData (flash.display.BitmapData) Object | +-flash.display.BitmapData public class BitmapData extends Object La classe BitmapData vous permet de créer des images bitmap transparentes ou opaques dimensionnées de manière arbitraire et de les manipuler à votre guise lors de l'exécution. Cette classe vous permet de séparer les opérations de rendu de bitmap dans les routines de mise à jour de l'affichage interne de Flash Player. En manipulant un objet BitmapData directement, vous pouvez créer des images très complexes sans utiliser de temps système supplémentaire par image résultant du retraçage du contenu des données vectorielles. Les méthodes de la classe BitmapData prennent en charge de nombreux effets qui ne sont pas disponibles dans l'interface du filtre générique. Un objet BitmapData contient un tableau de données de pixels. Ces données peuvent représenter un bitmap entièrement opaque ou entièrement transparent contenant des données de canal alpha. Chaque type d'objet BitmapData est stocké en tant que tampon converti en entiers 32 bits. Chaque entier 32 bits détermine les propriétés d'un pixel unique du bitmap. Chaque entier 32 bits est une combinaison de quatre valeurs de canal de 8 bits (de zéro à 255) décrivant les valeurs de transparence alpha et de rouge, vert et bleu (ARVB) du pixel. Les quatre canaux (rouge, vert, bleu et alpha) sont représentés sous forme de nombres lorsque vous les utilisez avec la méthode BitmapData.copyChannel() ou avec les propriétés DisplacementMapFilter.componentX et DisplacementMapFilter.componentY, comme suit : ■ 1 (rouge) ■ 2 (vert) ■ 4 (bleu) ■ 8 (alpha) Vous pouvez associer des objets BitmapData à un objet MovieClip à l'aide de la méthode MovieClip.attachBitmap(). Vous pouvez utiliser un objet BitmapData pour remplir une zone d'un clip à l'aide de la méthode MovieClip.beginBitmapFill(). Les largeur et hauteur maximales d'un objet BitmapData sont de 2880 pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 298 Chapitre 2: Classes ActionScript Voir également attachBitmap (méthode MovieClip.attachBitmap), beginBitmapFill (méthode MovieClip.beginBitmapFill) Résumé des propriétés Modificateurs Propriété height:Number Description La hauteur de l'image bitmap en pixels. [lecture seule] rectangle:Rectangle [lecture seule] Le rectangle qui délimite la taille et l'emplacement de l'image bitmap. [lecture seule] Définit si l'image bitmap prend en charge la transparence par pixel. width:Number [lecture La largeur de l'image bitmap en pixels. transparent:Boolean seule] Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des constructeurs Signature Description BitmapData(width:Num Crée un objet BitmapData à la largeur et la hauteur spécifiées. ber, height:Number, [transparent:Boolean ], [fillColor:Number]) BitmapData (flash.display.BitmapData) 299 Résumé de la méthode Modificateurs Signature Description applyFilter(sourceBi Prend une image source et un objet filtre et génère tmap:BitmapData, l'image filtrée. sourceRect:Rectangle , destPoint:Point, filter:BitmapFilter) : Number clone() : BitmapData Renvoie un nouvel objet BitmapData, clone de l'occurrence d'origine avec une copie exacte du bitmap contenu. colorTransform(rect: Définit les valeurs de couleur dans une zone spécifiée Rectangle, d'une image bitmap avec un objet ColorTransform. colorTransform:Color Transform) : Void copyChannel(sourceBi Transfère les données du canal d'un autre objet tmap:BitmapData, BitmapData ou de l'objet actuel vers un canal de l'objet sourceRect:Rectangle BitmapData actuel. , destPoint:Point, sourceChannel:Number , destChannel:Number) : Void copyPixels(sourceBit Met en place une routine rapide permettant de map:BitmapData, manipuler les pixels de différentes images sans effets sourceRect:Rectangle d'étirement, de rotation ou de couleur. , destPoint:Point, [alphaBitmap:BitmapD ata], [alphaPoint:Point], [mergeAlpha:Boolean] ) : Void dispose() : Void 300 Chapitre 2: Classes ActionScript Libère la mémoire utilisée pour stocker l'objet BitmapData. Modificateurs Signature Description Dessine une image source ou un clip sur une image de destination avec la fonctionnalité de rendu vectoriel de [colorTransform:Colo Flash Player. draw(source:Object, [matrix:Matrix], rTransform], [blendMode:Object], [clipRect:Rectangle] , [smooth:Boolean]) : Void fillRect(rect:Rectan Remplit une zone rectangulaire de pixels avec une gle, color:Number) : couleur ARVB spécifiée. Void Effectue une opération de peinture sur une image à partir de certaines coordonnées (x, y) et à l'aide d'une color:Number) : Void certaine couleur. floodFill(x:Number, y:Number, generateFilterRect(s Détermine le rectangle de destination affecté par ourceRect:Rectangle, l'appel de la méthode applyFilter(), en fonction filter:BitmapFilter) d'un objet BitmapData, d'un rectangle source et d'un : Rectangle objet filtre spécifiés. getColorBoundsRect(m Détermine une zone rectangulaire qui regroupe tous ask:Number, color:Number, les pixels d'une couleur spécifiée au sein de l'image bitmap. [findColor:Boolean]) : Rectangle getPixel(x:Number, y:Number) : Number Renvoie un entier représentant une valeur de pixels RVB à partir d'un objet BitmapData à un point spécifique (x, y). getPixel32(x:Number, Renvoie une valeur de couleur ARVB qui contient des y:Number) : Number données de canal alpha, ainsi que les données RVB. hitTest(firstPoint:P Procède à la détection des clics au niveau des pixels oint, entre une image bitmap et un point, un rectangle ou firstAlphaThreshold: toute autre image bitmap. Number, secondObject:Object, [secondBitmapPoint:P oint], [secondAlphaThreshol d:Number]) : Boolean BitmapData (flash.display.BitmapData) 301 Modificateurs Signature static Description loadBitmap(id:String Renvoie un nouvel objet BitmapData qui contient une ) : BitmapData version bitmap du symbole identifié par un ID de liaison spécifié dans la bibliothèque. merge(sourceBitmap:B Procède au mélange canal par canal d'une image itmapData, source vers une image de destination. sourceRect:Rectangle , destPoint:Point, redMult:Number, greenMult:Number, blueMult:Number, alphaMult:Number) : Void noise(randomSeed:Num Remplit une image avec des pixels représentant un ber, [low:Number], bruit aléatoire. [high:Number], [channelOptions:Numb er], [grayScale:Boolean]) : Void paletteMap(sourceBit Remappe les valeurs des canaux de couleur dans une map:BitmapData, image recevant jusqu'à quatre tableaux de données de sourceRect:Rectangle palette de couleurs, un pour chaque canal. , destPoint:Point, [redArray:Array], [greenArray:Array], [blueArray:Array], [alphaArray:Array]) : Void perlinNoise(baseX:Nu Génère une image de bruit Perlin. mber, baseY:Number, numOctaves:Number, randomSeed:Number, stitch:Boolean, fractalNoise:Boolean , [channelOptions:Numb er], [grayScale:Boolean], [offsets:Object]) : Void 302 Chapitre 2: Classes ActionScript Modificateurs Signature Description pixelDissolve(source Procède à la dissolution de pixels, soit d'une image Bitmap:BitmapData, source vers une image de destination, soit en utilisant sourceRect:Rectangle la même image. , destPoint:Point, [randomSeed:Number], [numberOfPixels:Numb er], [fillColor:Number]) : Number scroll(x:Number, y:Number) : Void setPixel(x:Number, y:Number, Fait défiler une image en fonction d'un certain montant en pixels (x, y). Définit la couleur d'un pixel unique d'un objet BitmapData. color:Number) : Void setPixel32(x:Number, Définit la couleur et les valeurs de transparence alpha y:Number, d'un pixel unique d'un objet BitmapData. color:Number) : Void threshold(sourceBitm Teste les valeurs de pixels d'une image selon un seuil ap:BitmapData, spécifié et définit les pixels qui réussissent le test sur sourceRect:Rectangle de nouvelles valeurs de couleur. , destPoint:Point, operation:String, threshold:Number, [color:Number], [mask:Number], [copySource:Boolean] ) : Number Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) BitmapData (flash.display.BitmapData) 303 applyFilter (méthode BitmapData.applyFilter) public applyFilter(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter) : Number Prend une image source et un objet filtre et génère l'image filtrée. Cette méthode repose sur le comportement des objets filtres intégrés, contenant du code leur permettant de déterminer le rectangle de destination affecté par un rectangle source d'entrée. Une fois le filtre appliqué, la taille de l'image obtenue peut être supérieure à celle de l'image d'entrée. Par exemple, si vous utilisez une classe BlurFilter pour rendre flou un rectangle source de (50,50,100,100) et un point de destination de (10,10), la zone modifiée sur l'image de destination est supérieure à (10,10,60,60) en raison du flou. Cela se produit en interne au cours de l'appel applyFilter(). Si le paramètre sourceRect du paramètre sourceBitmapData est une zone intérieure, telle que (50,50,100,100) sur une image 200 x 200, le filtre utilise les pixels source hors du paramètre sourceRect pour générer le rectangle de destination. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres sourceBitmap:flash.display.BitmapData - L'image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'occurrence BitmapData actuelle. sourceRect:flash.geom.Rectangle - Un rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée. destPoint:flash.geom.Point - Le point sur l'image de destination (l'occurrence BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. filter:flash.filters.BitmapFilter - L'objet filtre utilisé pour effectuer l'opération de filtrage. Chaque type de filtre dispose d'exigences spécifiques, comme suit : ■ BlurFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes. Si les formats des images ne correspondent pas, la copie de l'image source effectuée lors du filtrage correspond au format de l'image de destination. ■ BevelFilter, DropShadowFilter, GlowFilter - L'image de destination de ces filtres doit être transparente. L'appel de DropShadowFilter ou de GlowFilter permet de créer une image contenant les données de canal alpha de l'ombre portée ou du rayonnement. Il ne permet pas de créer l'ombre portée sur l'image de destination. Si vous utilisez l'un de ces filtres sur une image de destination opaque, une valeur de code d'erreur de -6 est renvoyée. ■ ConvolutionFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes. 304 Chapitre 2: Classes ActionScript ■ ColorMatrixFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes. ■ DisplacementMapFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes à condition que leurs formats soient identiques. Renvoie - Un nombre indiquant si le filtre a été appliqué avec succès. Si 0 est renvoyé, cela signifie que le filtre a été appliqué avec succès. Si un nombre négatif est renvoyé, cela signifie qu'une erreur s'est produite au cours de l'application du filtre. Number Exemple L'exemple suivant indique comment appliquer un filtre de biseau à une occurrence BitmapData : import flash.display.BitmapData; import flash.filters.BevelFilter; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xCCCCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); mc.onPress = function() { myBitmapData.applyFilter(myBitmapData, myBitmapData.rectangle, new Point(0, 0), filter); } Voir également BevelFilter (flash.filters.BevelFilter), BlurFilter (flash.filters.BlurFilter), ColorMatrixFilter (flash.filters.ColorMatrixFilter), ConvolutionFilter (flash.filters.ConvolutionFilter), DisplacementMapFilter (flash.filters.DisplacementMapFilter), DropShadowFilter (flash.filters.DropShadowFilter), GlowFilter (flash.filters.GlowFilter), filters (propriété MovieClip.filters) BitmapData (flash.display.BitmapData) 305 Constructeur BitmapData public BitmapData(width:Number, height:Number, [transparent:Boolean], [fillColor:Number]) Crée un objet BitmapData à la largeur et la hauteur spécifiées. Si vous spécifiez une valeur pour le paramètre fillColor, chaque pixel du bitmap est défini sur cette couleur. Par défaut, le bitmap créé est opaque, sauf si vous transmettez la valeur true au paramètre transparent. Une fois le bitmap opaque créé, vous ne pouvez pas le transformer en bitmap transparent. Chaque pixel d'un bitmap opaque utilise uniquement 24 bits d'informations de canal de couleur. Si vous définissez le bitmap sur transparent, chaque pixel utilise 32 bits d'informations de canal de couleur, y compris un canal de transparence alpha. Les largeur et hauteur maximales d'un objet BitmapData sont de 2880 pixels. Si vous spécifiez une valeur de largeur ou de hauteur supérieure à 2880, la nouvelle occurrence n'est pas créée. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres width:Number - La largeur de l'image bitmap en pixels. height:Number - La hauteur de l'image bitmap en pixels. [facultatif ] - Spécifie si l'image bitmap prend en charge la transparence par pixel. La valeur par défaut est true (transparent). Pour créer un bitmap entièrement transparent, définissez la valeur du paramètre transparent sur true et celle du paramètre fillColor sur 0x00000000 (ou sur 0). transparent:Boolean fillColor:Number [facultatif ] - Une valeur de couleur ARVB 32 bits utilisée pour remplir la zone de l'image bitmap. La valeur par défaut est 0xFFFFFFFF (blanc uni). Exemple L'exemple suivant crée un nouvel objet BitmapData. Les valeurs utilisées dans cet exemple sont les valeurs par défaut des paramètres transparent et fillColor ; vous pouvez appeler le constructeur sans ces paramètres et obtenir le même résultat. import flash.display.BitmapData; var var var var width:Number = 100; height:Number = 80; transparent:Boolean = true; fillColor:Number = 0xFFFFFFFF; var bitmap_1:BitmapData = new BitmapData(width, height, transparent, fillColor); trace(bitmap_1.width); // 100 306 Chapitre 2: Classes ActionScript trace(bitmap_1.height); // 80 trace(bitmap_1.transparent); // true var bitmap_2:BitmapData = new BitmapData(width, height); trace(bitmap_2.width); // 100 trace(bitmap_2.height); // 80 trace(bitmap_2.transparent); // true clone (méthode BitmapData.clone) public clone() : BitmapData Renvoie un nouvel objet BitmapData, clone de l'occurrence d'origine avec une copie exacte du bitmap contenu. Disponibilité : ActionScript 1.0 ; Flash Player 8 Renvoie flash.display.BitmapData - Un nouvel objet BitmapData identique à l'original. Exemple L'exemple suivant crée trois objets BitmapData et les compare. Vous pouvez créer l'occurrence à l'aide du constructeur BitmapData. Créez l'occurrence bitmap_2 en lui attribuant une valeur égale à bitmap_1. Créez l'occurrence clonedBitmap en clonant bitmap_1. Vous pouvez constater que, contrairement à bitmap_2, considéré comme étant égal à bitmap_1, clonedBitmap ne l'est pas, même s'il contient les mêmes valeurs que bitmap_1. bitmap_1 import flash.display.BitmapData; var bitmap_1:BitmapData = new BitmapData(100, 80, false, 0x000000); var bitmap_2:BitmapData = bitmap_1; var clonedBitmap:BitmapData = bitmap_1.clone(); trace(bitmap_1 == bitmap_2); // true trace(bitmap_1 == clonedBitmap); // false for(var i in bitmap_1) { trace(">> " + i + ": " + bitmap_1[i]); // >> generateFilterRect: [type Function] // >> dispose: [type Function] // >> clone: [type Function] // >> copyChannel: [type Function] // >> noise: [type Function] // >> merge: [type Function] // >> paletteMap: [type Function] BitmapData (flash.display.BitmapData) 307 // // // // // // // // // // // // // // // // // // // // >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> hitTest: [type Function] colorTransform: [type Function] perlinNoise: [type Function] getColorBoundsRect: [type Function] floodFill: [type Function] setPixel32: [type Function] getPixel32: [type Function] pixelDissolve: [type Function] draw: [type Function] threshold: [type Function] scroll: [type Function] applyFilter: [type Function] copyPixels: [type Function] fillRect: [type Function] setPixel: [type Function] getPixel: [type Function] transparent: false rectangle: (x=0, y=0, w=100, h=80) height: 80 width: 100 } for(var i in clonedBitmap) { trace(">> " + i + ": " + clonedBitmap[i]); // >> generateFilterRect: [type Function] // >> dispose: [type Function] // >> clone: [type Function] // >> copyChannel: [type Function] // >> noise: [type Function] // >> merge: [type Function] // >> paletteMap: [type Function] // >> hitTest: [type Function] // >> colorTransform: [type Function] // >> perlinNoise: [type Function] // >> getColorBoundsRect: [type Function] // >> floodFill: [type Function] // >> setPixel32: [type Function] // >> getPixel32: [type Function] // >> pixelDissolve: [type Function] // >> draw: [type Function] // >> threshold: [type Function] // >> scroll: [type Function] // >> applyFilter: [type Function] // >> copyPixels: [type Function] // >> fillRect: [type Function] // >> setPixel: [type Function] // >> getPixel: [type Function] // >> transparent: false // >> rectangle: (x=0, y=0, w=100, h=80) // >> height: 80 308 Chapitre 2: Classes ActionScript // >> width: 100 } Pour illustrer de manière plus détaillée les relations qui existent entre bitmap_1, bitmap_2 et l'exemple suivant modifie la valeur de pixels au point (1, 1) de bitmap_1. La modification de la valeur de pixels au point (1, 1) montre que la méthode clone() crée une occurrence en fonction des valeurs de l'occurrence bitmap_1 au lieu de se référer à ces valeurs. clonedBitmap, import flash.display.BitmapData; var bitmap_1:BitmapData = new BitmapData(100, 80, false, 0x000000); var bitmap_2:BitmapData = bitmap_1; var clonedBitmap:BitmapData = bitmap_1.clone(); trace(bitmap_1.getPixel32(1, 1)); // -16777216 trace(bitmap_2.getPixel32(1, 1)); // -16777216 trace(clonedBitmap.getPixel32(1, 1)); // -16777216 bitmap_1.setPixel32(1, 1, 0xFFFFFF); trace(bitmap_1.getPixel32(1, 1)); // -1 trace(bitmap_2.getPixel32(1, 1)); // -1 trace(clonedBitmap.getPixel32(1, 1)); // -16777216 colorTransform (méthode BitmapData.colorTransform) public colorTransform(rect:Rectangle, colorTransform:ColorTransform) : Void Définit les valeurs de couleur dans une zone spécifiée d'une image bitmap avec un objet ColorTransform. Si le rectangle correspond aux limites de l'image bitmap, cette méthode transforme les valeurs de couleur de l'image toute entière. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres rect:flash.geom.Rectangle - Un objet Rectangle qui définit la zone de l'image dans laquelle l'objet ColorTransform est appliqué. colorTransform:flash.geom.ColorTransform - Un objet ColorTransform décrivant les valeurs de transformation de couleur à appliquer. Exemple L'exemple suivant indique comment appliquer une opération de transformation de couleurs à une occurrence BitmapData. import flash.display.BitmapData; BitmapData (flash.display.BitmapData) 309 import flash.geom.ColorTransform; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); mc.onPress = function() { myBitmapData.colorTransform(myBitmapData.rectangle, new ColorTransform(1, 0, 0, 1, 255, 0, 0, 0)); } Voir également ColorTransform (flash.geom.ColorTransform), Rectangle (flash.geom.Rectangle) copyChannel (méthode BitmapData.copyChannel) public copyChannel(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:Number, destChannel:Number) : Void Transfère les données du canal d'un autre objet BitmapData ou de l'objet actuel vers un canal de l'objet BitmapData actuel. Toutes les données contenues dans les autres canaux de l'objet BitmapData de destination sont préservées. La valeur du canal source et de destination peut être l'une des valeurs suivantes : ■ 1 (rouge) ■ 2 (vert) ■ 4 (bleu) ■ 8 (alpha) Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres sourceBitmap:flash.display.BitmapData - L'image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'objet BitmapData actuel. - L'objet Rectangle source. Si vous souhaitez uniquement copier les données de canal à partir d'une zone de taille inférieure sur le bitmap, spécifiez un rectangle source dont la taille est inférieure à la taille globale de l'objet BitmapData. sourceRect:flash.geom.Rectangle 310 Chapitre 2: Classes ActionScript destPoint:flash.geom.Point - L'objet Point de destination qui représente le coin supérieur gauche de la zone rectangulaire dans laquelle les nouvelles données de canal sont placées. Si vous souhaitez copier les données de canal d'une zone vers une autre sur l'image de destination, spécifiez un point autre que (0,0). - Le canal source. Utilisez l'une des valeurs de l'ensemble (1,2,4,8), représentant respectivement les canaux rouge, vert, bleu et alpha. sourceChannel:Number destChannel:Number - Le canal de destination. Utilisez l'une des valeurs de l'ensemble (1,2,4,8), représentant respectivement les canaux rouge, vert, bleu et alpha. Exemple L'exemple suivant indique comment copier un canal ARVB source à partir d'un objet BitmapData situé à un emplacement différent : import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); mc.onPress = function() { myBitmapData.copyChannel(myBitmapData, new Rectangle(0, 0, 50, 80), new Point(51, 0), 3, 1); } Voir également Rectangle (flash.geom.Rectangle) copyPixels (méthode BitmapData.copyPixels) public copyPixels(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, [alphaBitmap:BitmapData], [alphaPoint:Point], [mergeAlpha:Boolean]) : Void Met en place une routine rapide permettant de manipuler les pixels de différentes images sans effets d'étirement, de rotation ou de couleur. Cette méthode copie une zone rectangulaire d'une image source dans une zone rectangulaire de taille identique au point de destination de l'objet BitmapData de destination. BitmapData (flash.display.BitmapData) 311 Si elle inclut les paramètres alphaBitmap et alphaPoint, vous pouvez utiliser une image secondaire en tant que source alpha pour l'image source. Si l'image source contient des données alpha, les deux ensembles de données alpha sont utilisés pour composer des pixels de l'image source vers l'image de destination. Le paramètre alphaPoint est le point, sur l'image alpha, correspondant au coin supérieur gauche du rectangle source. Tous les pixels situés hors de l'intersection de l'image source et de l'image alpha ne sont pas copiés sur l'image de destination. La propriété mergeAlpha contrôle si le canal alpha est utilisé ou non lorsqu'une image transparente est copiée sur une autre image transparente. Pour copier des pixels (sans utiliser de valeur alpha), il vous suffit de définir la propriété mergeAlpha sur false. Tous les pixels sont ensuite copiés de la source vers la destination. Par défaut, la propriété mergeAlpha est définie sur true. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres sourceBitmap:flash.display.BitmapData - L'image bitmap d'entrée à partir de laquelle les pixels sont copiés. L'image source peut être une occurrence BitmapData différente ou peut faire référence à l'occurrence BitmapData actuelle. sourceRect:flash.geom.Rectangle - Un rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée. - Le point de destination représentant le coin supérieur gauche de la zone rectangulaire dans laquelle les nouveaux pixels sont placés. destPoint:flash.geom.Point alphaBitmap:flash.display.BitmapData [facultatif ] - Une source de l'objet BitmapData alpha secondaire. [facultatif ] - Le point, sur l'objet BitmapData alpha, correspondant au coin supérieur gauche du paramètre sourceRect. alphaPoint:flash.geom.Point mergeAlpha:Boolean [facultatif ] - Une valeur booléenne. Pour utiliser le canal alpha, définissez la valeur sur true. Pour copier des pixels sans canal alpha, définissez la valeur sur false. Exemple L'exemple suivant indique comment copier les pixels d'une occurrence BitmapData vers une autre. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bitmapData_1:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); 312 Chapitre 2: Classes ActionScript var bitmapData_2:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(bitmapData_1, this.getNextHighestDepth()); var mc_2:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_2.attachBitmap(bitmapData_2, this.getNextHighestDepth()); mc_2._x = 101; mc_1.onPress = function() { bitmapData_2.copyPixels(bitmapData_1, new Rectangle(0, 0, 50, 80), new Point(51, 0)); } mc_2.onPress = function() { bitmapData_1.copyPixels(bitmapData_2, new Rectangle(0, 0, 50, 80), new Point(51, 0)); } dispose (méthode BitmapData.dispose) public dispose() : Void Libère la mémoire utilisée pour stocker l'objet BitmapData. Lorsque cette méthode est appelée sur une image, la largeur et la hauteur de cette dernière sont définies sur 0. Une fois la mémoire d'un objet BitmapData libérée, les appels d'accès aux méthodes et propriétés effectués sur l'occurrence échouent et une valeur de -1 sera renvoyée. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant indique comment libérer de la mémoire sur une occurrence BitmapData, entraînant ainsi la suppression de l'occurrence. import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); mc.onPress = function() { myBitmapData.dispose(); trace(myBitmapData.width); // -1 BitmapData (flash.display.BitmapData) 313 trace(myBitmapData.height); // -1 trace(myBitmapData.transparent); // -1 } draw (méthode BitmapData.draw) public draw(source:Object, [matrix:Matrix], [colorTransform:ColorTransform], [blendMode:Object], [clipRect:Rectangle], [smooth:Boolean]) : Void Dessine une image source ou un clip sur une image de destination avec la fonctionnalité de rendu vectoriel de Flash Player. Vous pouvez utiliser les objets Matrix, ColorTransform, BlendMode et un objet Rectangle de destination pour contrôler la qualité du rendu. Vous pouvez également spécifier si le bitmap doit être lissé lorsqu'il est dimensionné. Cela fonctionne uniquement si l'objet source est un objet BitmapData. Cette méthode correspond directement au mode de traçage des objets à l'aide de la fonctionnalité de rendu vectoriel standard pour les objets dans l'interface de l'outil de programmation. Un objet MovieClip source n'utilise pas ses transformations sur scène pour cet appel. Il est traité de la manière dont il apparaît dans la bibliothèque ou dans le fichier, sans transformation de matrice, de couleurs et sans mode de fondu. Si vous souhaitez dessiner le clip en utilisant ses propres propriétés de transformation, vous pouvez utiliser son objet Transform pour transmettre les diverses propriétés de transformation. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres source:Object - L'objet BitmapData à dessiner. matrix:flash.geom.Matrix [facultatif ] - Un objet Matrix utilisé pour redimensionner, faire pivoter ou traduire les coordonnées du bitmap. Si aucun objet n'est fourni, l'image bitmap ne sera pas transformée. Définissez ce paramètre sur une matrice d'identité, créée à l'aide du constructeur new Matrix() par défaut, si vous devez le transmettre mais ne souhaitez pas transformer l'image. colorTransform:flash.geom.ColorTransform [facultatif ] - Un objet ColorTransform utilisé pour définir les valeurs de couleur du bitmap. Si aucun objet n'est fourni, les couleurs de l'image bitmap ne seront pas transformées. Définissez ce paramètre sur un objet ColorTransform, créé à l'aide du constructeur new ColorTransform() par défaut, si vous devez le transmettre mais ne souhaitez pas transformer l'image. blendMode:Object 314 [facultatif ] - Un objet BlendMode. Chapitre 2: Classes ActionScript clipRect:flash.geom.Rectangle [facultatif ] - Un objet Rectangle. Si cette valeur n'est pas fournie, aucun découpage n'est effectué. [facultatif ] - Une valeur booléenne indiquant si un objet BitmapData doit être lissé lorsqu'il est dimensionné. La valeur par défaut est false. smooth:Boolean Exemple L'exemple suivant indique comment dessiner à partir d'une occurrence MovieClip source sur un objet BitmapData. import import import import flash.display.BitmapData; flash.geom.Rectangle; flash.geom.Matrix; flash.geom.ColorTransform; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(myBitmapData, this.getNextHighestDepth()); var mc_2:MovieClip = createRectangle(50, 40, 0xFF0000); mc_2._x = 101; var myMatrix:Matrix = new Matrix(); myMatrix.rotate(Math.PI/2); var translateMatrix:Matrix = new Matrix(); translateMatrix.translate(70, 15); myMatrix.concat(translateMatrix); var myColorTransform:ColorTransform = new ColorTransform(0, 0, 1, 1, 0, 0, 255, 0); var blendMode:String = "normal"; var myRectangle:Rectangle = new Rectangle(0, 0, 100, 80); var smooth:Boolean = true; mc_1.onPress = function() { myBitmapData.draw(mc_2, myMatrix, myColorTransform, blendMode, myRectangle, smooth); } function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); BitmapData (flash.display.BitmapData) 315 mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } fillRect (méthode BitmapData.fillRect) public fillRect(rect:Rectangle, color:Number) : Void Remplit une zone rectangulaire de pixels avec une couleur ARVB spécifiée. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres rect:flash.geom.Rectangle - La zone rectangulaire à remplir. - La valeur de couleur ARVB qui remplit la zone. Les couleurs ARVB sont souvent spécifiées au format hexadécimal, par exemple 0xFF336699. color:Number Exemple L'exemple suivant indique comment remplir une zone définie par un Rectangle dans un à l'aide d'une couleur. BitmapData import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); mc.onPress = function() { myBitmapData.fillRect(new Rectangle(0, 0, 50, 40), 0x00FF0000); } Voir également Rectangle (flash.geom.Rectangle) 316 Chapitre 2: Classes ActionScript floodFill (méthode BitmapData.floodFill) public floodFill(x:Number, y:Number, color:Number) : Void Effectue une opération de peinture sur une image à partir de certaines coordonnées (x, y) et à l'aide d'une certaine couleur. La méthode floodFill() est similaire à l'outil Pot de peinture dans divers programmes de dessin. La couleur ARVB contient des informations alpha ainsi que des informations sur les couleurs. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres x:Number - La coordonnée x de l'image. y:Number - La coordonnée y de l'image. - La couleur ARVB à utiliser pour le remplissage. Les couleurs ARVB sont souvent spécifiées au format hexadécimal, tel que 0xFF336699. color:Number Exemple L'exemple suivant indique comment appliquer une couleur de peinture à une image à partir du point sur lequel l'utilisateur clique sur le bouton de la souris au sein d'un objet BitmapData. import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.fillRect(new Rectangle(0, 0, 50, 40), 0x00FF0000); mc.onPress = function() { myBitmapData.floodFill(_xmouse, _ymouse, 0x000000FF); } BitmapData (flash.display.BitmapData) 317 generateFilterRect (méthode BitmapData.generateFilterRect) public generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter) : Rectangle Détermine le rectangle de destination affecté par l'appel de la méthode applyFilter(), en fonction d'un objet BitmapData, d'un rectangle source et d'un objet filtre spécifiés. Par exemple, un filtre de flou affecte normalement une zone dont la taille est supérieure à celle de l'image d'origine. Une image de 100 x 200 pixels filtrée par une occurrence BlurFilter par défaut, où blurX = blurY = 4 génère un rectangle de destination de (-2,-2,104,204). La méthode generateFilterRect() vous permet de déterminer la taille de ce rectangle de destination à l'avance de manière à ce que vous puissiez dimensionner l'image de destination de manière appropriée avant d'effectuer une opération de filtrage. Certains filtres découpent leur rectangle de destination selon la taille de l'image source. Par exemple, un filtre DropShadow interne ne génère pas de résulat dont la taille est supérieure à celle de son image source. Dans cette interface API, l'objet BitmapData fait office de bornes source et n'est pas utilisé en tant que paramètre rect. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres sourceRect:flash.geom.Rectangle - Un rectangle définissant la zone de l'image source à utiliser en tant qu'entrée. filter:flash.filters.BitmapFilter - Un objet filtre utilisé pour calculer les dimensions du rectangle de destination. Renvoie flash.geom.Rectangle - Un rectangle de destination dont les dimensions ont été calculées à l'aide d'une image, du paramètre sourceRect et d'un filtre. Exemple L'exemple suivant indique comment déterminer le rectangle de destination affecté par la méthode applyfilter() : import flash.display.BitmapData; import flash.filters.BevelFilter; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xCCCCCCCC); 318 Chapitre 2: Classes ActionScript var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "outter", false); var filterRect:Rectangle = myBitmapData.generateFilterRect(myBitmapData.rectangle, filter); trace(filterRect); // (x=-31, y=-31, w=162, h=142) getColorBoundsRect (méthode BitmapData.getColorBoundsRect) public getColorBoundsRect(mask:Number, color:Number, [findColor:Boolean]) : Rectangle Détermine une zone rectangulaire qui regroupe tous les pixels d'une couleur spécifiée au sein de l'image bitmap. Par exemple, si vous disposez d'une image source et souhaitez déterminer le rectangle de l'image qui contient un canal alpha différent de zéro, utilisez {mask: 0xFF000000, color: 0x00000000} en tant que paramètres. Les bornes de pixels ayant le paramètre (value & mask) != color sont recherchées dans l'image toute entière. Pour déterminer les espaces blancs autour d'une image, utilisez {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} pour rechercher les bornes des pixels autres que blanc. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres mask:Number - Une valeur de couleur hexadécimale. color:Number - Une valeur de couleur hexadécimale. findColor:Boolean [facultatif ] - Si la valeur est définie sur true, renvoie les bornes d'une valeur de couleur dans une image. Si la valeur est définie sur false, renvoie les bornes sur lesquelles cette couleur n'existe pas dans une image. La valeur par défaut est true. Renvoie flash.geom.Rectangle - La zone de l'image correspondant à la couleur spécifiée. Exemple L'exemple suivant indique comment déterminer une zone rectangulaire qui regroupe tous les pixels d'une couleur spécifiée au sein de l'image bitmap : import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); BitmapData (flash.display.BitmapData) 319 var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.fillRect(new Rectangle(0, 0, 50, 40), 0x00FF0000); mc.onPress = function() { var colorBoundsRect:Rectangle = myBitmapData.getColorBoundsRect(0x00FFFFFF, 0x00FF0000, true); trace(colorBoundsRect); // (x=0, y=0, w=50, h=40) } getPixel (méthode BitmapData.getPixel) public getPixel(x:Number, y:Number) : Number Renvoie un entier représentant une valeur de pixels RVB à partir d'un objet BitmapData à un point spécifique (x, y). La méthode getPixel() renvoie une valeur de pixels non multipliée. Aucune information alpha n'est renvoyée. Tous les pixels d'un objet BitmapData sont stockés en tant que valeurs de couleur prémultipliées. Les valeurs des canaux de couleur rouge, vert et bleu d'un pixel image prémultiplié sont déjà multipliées par les données alpha. Par exemple, si la valeur alpha est 0, les canaux RVB sont également définis sur 0, indépendamment de leurs valeurs non multipliées. Cette perte de données peut entraîner certains problèmes lorsque vous effectuez ces opérations. Toutes les méthodes Flash Player utilisent et renvoient des valeurs non multipliées. La représentation des pixels interne est non multipliée avant d'être renvoyée en tant que valeur. Au cours d'une opération de définition, la valeur de pixels est prémultipliée avant de définir le pixel d'image brut. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres x:Number - La coordonnée x du pixel. y:Number - La coordonnée y du pixel. Renvoie - Un nombre représentant une valeur de pixels RVB. Si les coordonnées (x, y) se trouvent à l'extérieur des limites de l'image, la valeur 0 est renvoyée. Number 320 Chapitre 2: Classes ActionScript Exemple L'exemple suivant utilise la méthode getPixel() pour récupérer la valeur RVB d'un pixel à un emplacement x et y spécifique. import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace("0x" + myBitmapData.getPixel(0, 0).toString(16)); // 0xcccccc Voir également getPixel32 (méthode BitmapData.getPixel32) getPixel32 (méthode BitmapData.getPixel32) public getPixel32(x:Number, y:Number) : Number Renvoie une valeur de couleur ARVB qui contient des données de canal alpha, ainsi que les données RVB. Cette méthode est similaire à la méthode getPixel() qui renvoie une couleur RVB sans les données de canal alpha. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres x:Number - La coordonnée x du pixel. y:Number - La coordonnée y du pixel. Renvoie - Un nombre représentant une valeur de pixels ARVB. Si les coordonnées (x, y) se trouvent à l'extérieur des limites de l'image, la valeur 0 est renvoyée. Si le bitmap créé est opaque et non transparent, cette méthode renvoie alors un code d'erreur de -1. Number Exemple L'exemple suivant utilise la méthode getPixel32() pour récupérer la valeur ARVB d'un pixel à un emplacement x et y spécifique : import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xFFAACCEE); BitmapData (flash.display.BitmapData) 321 var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); var alpha:String = (myBitmapData.getPixel32(0, 0) >> 24 & 0xFF).toString(16); trace(">> alpha: " + alpha); // ff var red:String = (myBitmapData.getPixel32(0, 0) >> 16 & 0xFF).toString(16); trace(">> red: " + red); // aa var green:String = (myBitmapData.getPixel32(0, 0) >> 8 & 0xFF).toString(16); trace(">> green: " + green); // cc var blue:String = (myBitmapData.getPixel32(0, 0) & 0xFF).toString(16); trace(">> blue: " + blue); // ee trace("0x" + alpha + red + green + blue); // 0xffaaccee Voir également getPixel (méthode BitmapData.getPixel) height (propriété BitmapData.height) public height : Number [lecture seule] La hauteur de l'image bitmap en pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant montre que la propriété height de l'occurrence BitmapData est en lecture seule car il essaie de la définir mais échoue : import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace(myBitmapData.height); // 80 myBitmapData.height = 999; trace(myBitmapData.height); // 80 322 Chapitre 2: Classes ActionScript hitTest (méthode BitmapData.hitTest) public hitTest(firstPoint:Point, firstAlphaThreshold:Number, secondObject:Object, [secondBitmapPoint:Point], [secondAlphaThreshold:Number]) : Boolean Procède à la détection des clics au niveau des pixels entre une image bitmap et un point, un rectangle ou toute autre image bitmap. Aucun étirement, aucune rotation ou autre transformation n'est pris en compte lorsque vous effectuez un test de recherche. Si une image est opaque, elle est considérée comme étant un rectangle entièrement opaque pour cette méthode. Les deux images doivent être transparentes pour effectuer un test de recherche au niveau des pixels tenant compte de la transparence. Lorsque vous testez deux images transparentes, les paramètres de seuil alpha déterminent les valeurs des canaux alpha, comprises entre 0 et 255, considérées comme étant opaques. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres firstPoint:flash.geom.Point - Un point qui définit l'emplacement d'un pixel dans l'occurrence BitmapData actuelle. - La valeur du canal alpha la plus élevée considéré comme étant opaque pour ce test de recherche. firstAlphaThreshold:Number secondObject:Object - Un objet Rectangle, Point ou BitmapData. secondBitmapPoint:flash.geom.Point [facultatif ] - Un point qui définit l'emplacement d'un pixel dans le deuxième objet BitmapData. Utilisez uniquement ce paramètre lorsque la valeur de secondObject est un objet BitmapData. [facultatif ] - La valeur du canal alpha la plus élevée considéré comme étant opaque dans le deuxième objet BitmapData. Utilisez uniquement ce paramètre lorsque la valeur de secondObject est un objet BitmapData et que les deux objets BitmapData sont transparents. secondAlphaThreshold:Number Renvoie - Une valeur booléenne. En cas de correspondance, renvoie une valeur de true ; dans le cas contraire. Boolean false Exemple L'exemple suivant indique comment déterminer si un objet BitmapData entre en collision avec MovieClip. import flash.display.BitmapData; import flash.geom.Point; BitmapData (flash.display.BitmapData) 323 var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(myBitmapData, this.getNextHighestDepth()); var mc_2:MovieClip = createRectangle(20, 20, 0xFF0000); var destPoint:Point = new Point(myBitmapData.rectangle.x, myBitmapData.rectangle.y); var currPoint:Point = new Point(); mc_1.onEnterFrame = function() { currPoint.x = mc_2._x; currPoint.y = mc_2._y; if(myBitmapData.hitTest(destPoint, 255, currPoint)) { trace(">> Collision at y:" + currPoint.x + " and y:" + currPoint.y); } } mc_2.startDrag(true); function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } loadBitmap (méthode BitmapData.loadBitmap) statique publique loadBitmap(id:String) : BitmapData Renvoie un nouvel objet BitmapData qui contient une version bitmap du symbole identifié par un ID de liaison spécifié dans la bibliothèque. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres id:String 324 - Un ID de liaison d'un symbole dans la bibliothèque. Chapitre 2: Classes ActionScript Renvoie flash.display.BitmapData - Le symbole représenté sous forme d'image bitmap. Exemple L'exemple suivant charge un bitmap avec l'ID de liaison libraryBitmap à partir de votre bibliothèque. Vous devez l'associer à un objet MovieClip pour lui attribuer une représentation visuelle. import flash.display.BitmapData; var linkageId:String = "libraryBitmap"; var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId); trace(myBitmapData instanceof BitmapData); // true var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); merge (méthode BitmapData.merge) public merge(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, redMult:Number, greenMult:Number, blueMult:Number, alphaMult:Number) : Void Procède au mélange canal par canal d'une image source vers une image de destination. La formule suivante est utilisée pour chaque canal : new red dest = (red source * redMult) + (red dest * (256 - redMult) / 256; Les valeurs redMult, greenMult, blueMult et alphaMult sont les multiplicateurs utilisés pour chaque canal de couleur. Leur plage valide est comprise entre 0 et 256. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres sourceBitmap:flash.display.BitmapData - L'image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'objet BitmapData actuel. sourceRect:flash.geom.Rectangle - Un rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée. destPoint:flash.geom.Point - Le point sur l'image de destination (l'occurrence BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. redMult:Number - Un nombre par lequel la valeur de canal red doit être multipliée. greenMult:Number - Un nombre par lequel la valeur de canal green doit être multipliée. BitmapData (flash.display.BitmapData) 325 blueMult:Number - Un nombre par lequel la valeur de canal blue doit être multipliée. alphaMult:Number - Un nombre par lequel la valeur de transparence alpha doit être multipliée. Exemple L'exemple suivant indique comment fusionner deux parties d'une occurrence BitmapData. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bitmapData_1:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmapData_2:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(bitmapData_1, this.getNextHighestDepth()); var mc_2:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_2.attachBitmap(bitmapData_2, this.getNextHighestDepth()); mc_2._x = 101; mc_1.onPress = function() { bitmapData_1.merge(bitmapData_2, new Rectangle(0, 0, 50, 40), new Point(25, 20), 128, 0, 0, 0); } noise (méthode BitmapData.noise) public noise(randomSeed:Number, [low:Number], [high:Number], [channelOptions:Number], [grayScale:Boolean]) : Void Remplit une image avec des pixels représentant un bruit aléatoire. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres randomSeed:Number - La valeur de départ aléatoire à utiliser. low:Number [facultatif ] - La valeur la plus faible à générer pour chaque canal (de 0 à 255). La valeur par défaut est 0. high:Number [facultatif ] - La valeur la plus élevée à générer pour chaque canal (de 0 à 255). La valeur par défaut est 255. 326 Chapitre 2: Classes ActionScript channelOptions:Number [facultatif ] - Un nombre pouvant être une combinaison des quatre valeurs de canaux de couleur : 1 (rouge), 2 (vert), 4 (bleu) et 8(alpha). Vous pouvez utiliser l'opérateur logique OR | pour combiner les valeurs de canaux. La valeur par défaut est (1 | 2 | 4). [facultatif ] - Une valeur booléenne. Si la valeur est true, une image en nuances de gris est créée en définissant tous les canaux de couleur sur la même valeur. La sélection du canal alpha n'est pas affectée en définissant ce paramètre sur true. La valeur par défaut est false. grayScale:Boolean Exemple L'exemple suivant indique comment appliquer un bruit pixel à un objet BitmapData pour un bitmap couleur et noir et blanc. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bitmapData_1:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmapData_2:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(bitmapData_1, this.getNextHighestDepth()); var mc_2:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_2.attachBitmap(bitmapData_2, this.getNextHighestDepth()); mc_2._x = 101; mc_1.onPress = function() { bitmapData_1.merge(bitmapData_2, new Rectangle(0, 0, 50, 40), new Point(25, 20), 128, 0, 0, 0); } mc_1.onPress = function() { bitmapData_1.noise(128, 0, 255, 1, true); } mc_2.onPress = function() { bitmapData_2.noise(128); } BitmapData (flash.display.BitmapData) 327 paletteMap (méthode BitmapData.paletteMap) public paletteMap(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, [redArray:Array], [greenArray:Array], [blueArray:Array], [alphaArray:Array]) : Void Remappe les valeurs des canaux de couleur dans une image recevant jusqu'à quatre tableaux de données de palette de couleurs, un pour chaque canal. Flash Player utilise la formule suivante pour générer l'image résultante. Une fois le calcul des valeurs rouge, vert, bleu et alpha effectué, celles-ci sont additionnées en effectuant une opération arithmétique standard s'articulant autour d'un entier 32 bits. Les valeurs de couleur rouge, vert, bleu et alpha de chaque pixel sont extraites dans une valeur comprise entre 0 et 255 distincte. Ces valeurs sont utilisées pour rechercher les nouvelles valeurs de couleur dans le tableau approprié : redArray, greenArray, blueArray et alphaArray. Chacun de ces quatre tableaux doit contenir 256 valeurs. Une fois les quatre nouvelles valeurs de canaux récupérées, elles sont combinées dans une valeur ARVB standard appliquée au pixel. Les effets multi-canaux sont pris en charge par cette méthode. Chaque tableau d'entrée peut contenir des valeurs entières 32 bits ; aucun décalage ne se produit lorsque les valeurs sont additionnées. Cette routine ne prend pas en charge le verrouillage canal par canal. Si aucun tableau n'est spécifié pour un canal, le canal de couleur est simplement copié de l'image source vers l'image de destination. Vous pouvez utiliser cette méthode pour de nombreux effets, tel que le mappage de palette général (qui consiste à sélectionner un canal pour le convertir en image couleur de valeur false). Vous pouvez également utiliser cette méthode pour de nombreux algorithmes de manipulation de couleurs avancés, tels que gamma, courbes, niveaux et quantification. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres sourceBitmap:flash.display.BitmapData - L'image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'objet BitmapData actuel. sourceRect:flash.geom.Rectangle - Un rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée. destPoint:flash.geom.Point - Le point sur l'image de destination (l'objet BitmapData actuel) correspondant au coin supérieur gauche du rectangle source. redArray:Array [facultatif ] - Si redArray n'est pas null, red = redArray[source red value] else red = source rect value. 328 Chapitre 2: Classes ActionScript greenArray:Array [facultatif ] - Si greenArray n'est pas null, green = greenArray[source green value] else green = source green value. [facultatif ] - Si blueArray n'est pas null, blue = blueArray[source blue value] else blue = source blue value. blueArray:Array alphaArray:Array [facultatif ] - Si alphaArray n'est pas null, alpha = alphaArray[source alpha value] else alpha = source alpha value. Exemple L'exemple suivant indique comment utiliser une palette pour convertir le rouge uni en vert, et le vert uni en rouge, dans un objet BitmapData unique. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.fillRect(new Rectangle(51, 0, 50, 80), 0x0000FF00); mc.onPress = function() { var redArray:Array = new Array(256); var greenArray:Array = new Array(256); for(var i = 0; i < 255; i++) { redArray[i] = 0x00000000; greenArray[i] = 0x00000000; } redArray[0xFF] = 0x0000FF00; greenArray[0xFF] = 0x00FF0000; myBitmapData.paletteMap(myBitmapData, new Rectangle(0, 0, 100, 40), new Point(0, 0), redArray, greenArray, null, null); } BitmapData (flash.display.BitmapData) 329 perlinNoise (méthode BitmapData.perlinNoise) public perlinNoise(baseX:Number, baseY:Number, numOctaves:Number, randomSeed:Number, stitch:Boolean, fractalNoise:Boolean, [channelOptions:Number], [grayScale:Boolean], [offsets:Object]) : Void Génère une image de bruit Perlin. L'algorithme permettant de générer un bruit Perlin interpole et combine des fonctions de bruit aléatoire individuelles (appelées octaves) en fonction unique qui génère un bruit aléatoire qui semble plus naturel. Tout comme les octaves musicales, la fréquence de chaque fonction d'octave est doublée par rapport à celle qui la précède. Le bruit Perlin est décrit comme étant une « somme de bruit fractale » car il combine plusieurs ensembles de données de bruit avec différents niveaux de détails. Vous pouvez utiliser les fonctions de bruit Perlin pour simuler des phénomènes naturels et des paysages tels que le grain du bois, les nuages ou les chaînes de montagnes. Dans la plupart des cas, la sortie d'une fonction de bruit Perlin ne s'affiche pas directement mais est utilisée pour améliorer d'autres images et leur attribuer des variations pseudo-aléatoires. Les fonctions de bruit aléatoire numériques simples produisent souvent des images aux points durs et contrastés. On ne retrouve pas souvent ce type de contraste dur dans la nature. L'algorithme de bruit Perlin mélange plusieurs fonctions de bruit ayant des niveaux de détails différents. Cet algorithme engendre des variations plus petites parmi les valeurs des pixels environnants. Remarque : On doit l'algorithme de bruit Perlin à Ken Perlin qui a été le premier à le mettre au point après avoir créé des images graphiques sur ordinateur pour le film Tron sorti en 1982. Perlin a reçu un Oscar pour avoir mis au point la fonction de bruit Perlin en 1997. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres - Fréquence à utiliser dans la direction x. Par exemple, pour générer un bruit adapté à une image de 64 x 128 pixels, définissez la valeur baseX sur 64. baseX:Number - Fréquence à utiliser dans la direction y. Par exemple, pour générer un bruit adapté à une image de 64 x 128 pixels, définissez la valeur baseY sur 128. baseY:Number numOctaves:Number - Nombre d'octaves ou fonctions de bruit individuelles à combiner pour créer ce bruit. Plus les nombres d'octaves sont élevés, plus les images créées sont détaillées. Les nombres d'octaves plus élevés nécessitent également un temps de traitement plus important. 330 Chapitre 2: Classes ActionScript - Le nombre de la valeur de départ aléatoire à utiliser. Si vous conservez tous les autres paramètres, vous pouvez générer différents résultats pseudo-aléatoires en variant la valeur de départ aléatoire. La fonction de bruit Perlin est une fonction de mappage et non une fonction permettant de générer des nombres aléatoires de valeur true. Elle permet donc de créer les mêmes résultats à chaque fois à partir de la même valeur de départ aléatoire. randomSeed:Number stitch:Boolean - Une valeur booléenne. Si la valeur est true, la méthode tente de lisser les bords de transition de l'image pour créer des textures transparentes en vue du remplissage du bitmap en forme de mosaïque. - Une valeur booléenne. Si la valeur est true, la méthode génère un bruit fractal ; sinon, elle génère une turbulence. Les dégradés d'une image créée à partir d'une turbulence présentent des discontinuités visibles qui lui permettent de mieux appréhender les effets visuels plus saillants, comme les flammes ou les vagues de l'océan. fractalNoise:Boolean [facultatif ] - Un nombre indiquant un ou plusieurs canaux de couleur. Pour créer cette valeur, vous pouvez utiliser ou combiner l'une des quatre constantes de canaux de couleur : 1 (rouge), 2 (vert), 4 (bleu) et 8(alpha). Vous pouvez combiner les valeurs de canaux à l'aide de l'opérateur logique OR ; par exemple, vous pouvez combiner les canaux rouge et vert en utilisant le code suivant : 1 | 2. channelOptions:Number [facultatif ] - Une valeur booléenne. Si la valeur est true, une image en nuances de gris est créée en définissant les canaux de couleur rouge, vert et bleu sur des valeurs identiques. La valeur du canal alpha n'est pas affectée si cette valeur est définie sur true. La valeur par défaut est false. grayScale:Boolean [facultatif ] - Un tableau de points correspondant aux décalages x et y pour chaque octave. En manipulant les valeurs de décalage, vous pouvez effectuer un défilement lisse d'une image perlinNoise. Chaque point du tableau de décalage affecte une fonction de bruit d'octave spécifique. offsets:Object Exemple L'exemple suivant indique comment appliquer un bruit Perlin à un objet BitmapData. import flash.display.BitmapData; var bitmapData_1:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmapData_2:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(bitmapData_1, this.getNextHighestDepth()); var mc_2:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_2.attachBitmap(bitmapData_2, this.getNextHighestDepth()); BitmapData (flash.display.BitmapData) 331 mc_2._x = 101; mc_1.onPress = function() { var randomNum:Number = Math.floor(Math.random() * 10); bitmapData_1.perlinNoise(100, 80, 6, randomNum, false, true, 1, true, null); } mc_2.onPress = function() { var randomNum:Number = Math.floor(Math.random() * 10); bitmapData_2.perlinNoise(100, 80, 4, randomNum, false, false, 15, false, null); } pixelDissolve (méthode BitmapData.pixelDissolve) public pixelDissolve(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, [randomSeed:Number], [numberOfPixels:Number], [fillColor:Number]) : Number Procède à la dissolution de pixels, soit d'une image source vers une image de destination, soit en utilisant la même image. Flash Player utilise une valeur randomSeed pour générer une dissolution de pixels aléatoire. La valeur renvoyée par la fonction doit être transmise lors des appels suivants pour poursuivre la dissolution de pixels jusqu'à ce qu'elle soit terminée. Si l'image source diffère de l'image de destination, les pixels sont copiés de la source vers la destination à l'aide de toutes les propriétés. Cela permet de procéder à la dissolution d'une image vide dans une image entièrement remplie. Si les images source et de destination sont équivalentes, les pixels sont remplis avec le paramètre color. Cela permet de procéder à la dissolution d'une image entièrement remplie. Dans ce mode, le paramètre point de destination est ignoré. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres sourceBitmap:flash.display.BitmapData - L'image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'occurrence BitmapData actuelle. sourceRect:flash.geom.Rectangle - Un rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée. destPoint:flash.geom.Point - Le point sur l'image de destination (l'occurrence BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. randomSeed:Number [facultatif ] - La valeur de départ aléatoire à utiliser pour démarrer la dissolution de pixels. La valeur par défaut est 0. 332 Chapitre 2: Classes ActionScript numberOfPixels:Number [facultatif ] - La valeur par défaut est égale à 1/30 de la zone source (largeur x hauteur). fillColor:Number [facultatif ] - Une valeur de couleur ARVB utilisée pour remplir les pixels dont la valeur source est égale à sa valeur de destination. La valeur par défaut est 0. Renvoie Number - La nouvelle valeur de départ aléatoire à utiliser pour les prochains appels. Exemple L'exemple suivant utilise pixelDissolve() pour convertir un objet BitmapData gris en rouge en procédant à la dissolution de 40 pixels à la fois jusqu'à ce que les 8000 pixels aient changé de couleurs : import flash.display.BitmapData; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); mc.onPress = function() { var randomNum:Number = Math.floor(Math.random() * 10); dissolve(randomNum); } var intervalId:Number; var totalDissolved:Number = 0; var totalPixels:Number = 8000; function dissolve(randomNum:Number) { var newNum:Number = myBitmapData.pixelDissolve(myBitmapData, myBitmapData.rectangle, new Point(0, 0), randomNum, 40, 0x00FF0000); clearInterval(intervalId); if(totalDissolved < totalPixels) { intervalId = setInterval(dissolve, 10, newNum); } totalDissolved += 40; } BitmapData (flash.display.BitmapData) 333 rectangle (propriété BitmapData.rectangle) public rectangle : Rectangle [lecture seule] Le rectangle qui délimite la taille et l'emplacement de l'image bitmap. Le haut et le côté gauche du rectangle sont définis sur 0 ; la largeur et la hauteur sont égales à la largeur et à la hauteur, en pixels, de l'objet BitmapData. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant montre que la propriété rectangle de l'occurrence Bitmap est en lecture seule car il essaie de la définir mais échoue : import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace(myBitmapData.rectangle); // (x=0, y=0, w=100, h=80) myBitmapData.rectangle = new Rectangle(1, 2, 4, 8); trace(myBitmapData.rectangle); // (x=0, y=0, w=100, h=80) scroll (méthode BitmapData.scroll) public scroll(x:Number, y:Number) : Void Fait défiler une image en fonction d'un certain montant en pixels (x, y). Les zones du bord situées hors de la zone de défilement demeurent inchangées. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres x:Number - La valeur définie en vue du défilement horizontal. y:Number - La valeur définie en vue du défilement vertical. Exemple L'exemple suivant illustre comment faire défiler un objet BitmapData. import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); 334 Chapitre 2: Classes ActionScript var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.fillRect(new Rectangle(0, 0, 25, 80), 0x00FF0000); mc.onPress = function() { myBitmapData.scroll(25, 0); } setPixel (méthode BitmapData.setPixel) public setPixel(x:Number, y:Number, color:Number) : Void Définit la couleur d'un pixel unique d'un objet BitmapData. La valeur de canal alpha actuelle du pixel de l'image est préservée au cours de cette opération. La valeur du paramètre de couleur RVB est traitée en tant que valeur de couleur non multipliée. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres x:Number - La coordonnée x du pixel dont la valeur change. y:Number - La coordonnée y du pixel dont la valeur change. color:Number - La couleur RVB sur laquelle le pixel va être défini. Exemple L'exemple suivant utilise la méthode setPixel() pour affecter la valeur RVB à un pixel à un emplacement x et y spécifique. Vous pouvez dessiner sur le bitmap créé sur la valeur 0x000000 en le faisant glisser. import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); mc.onPress = function() { this.onEnterFrame = sketch; } mc.onRelease = function() { delete this.onEnterFrame; } BitmapData (flash.display.BitmapData) 335 function sketch() { myBitmapData.setPixel(_xmouse, _ymouse, 0x000000); } Voir également getPixel (méthode BitmapData.getPixel), setPixel32 (méthode BitmapData.setPixel32) setPixel32 (méthode BitmapData.setPixel32) public setPixel32(x:Number, y:Number, color:Number) : Void Définit la couleur et les valeurs de transparence alpha d'un pixel unique d'un objet BitmapData. Cette méthode est similaire à la méthode setPixel() ; la principale différence réside dans le fait que la méthode setPixel32() adopte une valeur de couleur ARVB contenant les informations de canal alpha. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres x:Number - La coordonnée x du pixel dont la valeur change. y:Number - La coordonnée y du pixel dont la valeur change. - La couleur ARVB sur laquelle le pixel va être défini. Si vous avez créé un bitmap opaque (non transparent), la partie de transparence alpha de cette valeur de couleur est ignorée. color:Number Exemple L'exemple suivant utilise la méthode setPixel32() pour affecter une valeur ARVB à un pixel à un emplacement x et y spécifique. Vous pouvez dessiner sur le bitmap créé sur la valeur 0x000000 en l'absence de valeur alpha. Pour ce faire, il vous suffit d'appuyer sur le bouton de la souris et de le faire glisser. import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xFFCCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); mc.onPress = function() { this.onEnterFrame = sketch; } 336 Chapitre 2: Classes ActionScript mc.onRelease = function() { delete this.onEnterFrame; } function sketch() { myBitmapData.setPixel32(_xmouse, _ymouse, 0x00000000); } Voir également getPixel32 (méthode BitmapData.getPixel32), setPixel (méthode BitmapData.setPixel) threshold (méthode BitmapData.threshold) public threshold(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:Number, [color:Number], [mask:Number], [copySource:Boolean]) : Number Teste les valeurs de pixels d'une image selon un seuil spécifié et définit les pixels qui réussissent le test sur de nouvelles valeurs de couleur. L'utilisation de la méthode threshold() vous permet d'isoler et de remplacer les gammes de couleurs d'une image et d'effectuer d'autres opérations logiques sur les pixels de l'image. La logique du test de seuil est définie comme suit : if ((pixelValue & mask) operation (threshold & mask)) then set pixel to color else if (copySource) then set pixel to corresponding pixel value from sourceBitmap Le paramètre operation spécifie l'opérateur de comparaison à utiliser pour le test de seuil. Par exemple, si vous utilisez « == », vous pouvez isoler une valeur de couleur spécifique dans une image. Ou si vous utilisez {operation: "<", mask: 0xFF000000, threshold: 0x7f000000, color: 0x00000000}, vous pouvez définir tous les pixels de destination comme étant entièrement transparents lorsque la valeur alpha du pixel de l'image source est inférieure à 0x7F. Vous pouvez utiliser cette technique pour les transitions animées et les autres effets. Disponibilité : ActionScript 1.0 ; Flash Player 8 BitmapData (flash.display.BitmapData) 337 Paramètres sourceBitmap:flash.display.BitmapData - L'image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'occurrence BitmapData actuelle. sourceRect:flash.geom.Rectangle - Un rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée. destPoint:flash.geom.Point - Le point sur l'image de destination (l'occurrence BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. - L'un des opérateurs de comparaison suivants, transmis en tant que chaîne : "<", "<=", ">", ">=", "==", "!=" operation:String threshold:Number - La valeur par rapport à laquelle chaque pixel est testé afin de déterminer s'il se trouve dans la plage du seuil ou s'il le dépasse. [facultatif ] - La valeur de couleur sur laquelle un pixel est défini si le test de seuil réussit. La valeur par défaut est 0x00000000. color:Number mask:Number [facultatif ] - Le masque à utiliser pour isoler un composant de couleur. La valeur par défaut est 0xFFFFFFFF. copySource:Boolean [facultatif ] - Une valeur booléenne. Si la valeur est true, les valeurs de pixels de l'image source sont copiées vers la destination lorsque le test de seuil échoue. Si la valeur est false, l'image source n'est pas copiée lorsque le test de seuil échoue. La valeur par défaut est false. Renvoie Number - Le nombre de pixels modifiés. Exemple L'exemple suivant indique comment modifier la valeur de couleur des pixels dont la valeur de couleur est supérieure ou égale à un seuil donné. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.fillRect(new Rectangle(0, 0, 50, 80), 0x00FF0000); 338 Chapitre 2: Classes ActionScript mc.onPress = function() { myBitmapData.threshold(myBitmapData, new Rectangle(0, 0, 100, 40), new Point(0, 0), ">=", 0x00CCCCCC, 0x000000FF, 0x00FF0000, false); } transparent (propriété BitmapData.transparent) public transparent : Boolean [lecture seule] Définit si l'image bitmap prend en charge la transparence par pixel. Vous pouvez définir cette valeur uniquement lorsque vous créez un objet BitmapData en transmettant la valeur true au paramètre transparent. Après avoir créé un objet BitmapData, vous pouvez vérifier s'il prend en charge la transparence par pixel en déterminant si la valeur de la propriété transparent est true. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant montre que la propriété transparent de l'occurrence Bitmap est en lecture seule car il essaie de la définir mais échoue : import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace(myBitmapData.transparent); // false myBitmapData.transparent = true; trace(myBitmapData.transparent); // false width (propriété BitmapData.width) public width : Number [lecture seule] La largeur de l'image bitmap en pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant montre que la propriété width de l'occurrence Bitmap est en lecture seule car il essaie de la définir mais échoue : import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); BitmapData (flash.display.BitmapData) 339 var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace(myBitmapData.width); // 100 myBitmapData.width = 999; trace(myBitmapData.width); // 100 BitmapFilter (flash.filters.BitmapFilter) Object | +-flash.filters.BitmapFilter public class BitmapFilter extends Object La classe de base BitmapFilter pour tous les effets de filtrage d'image. Les classes BevelFilter, BlurFilter, ColorMatrixFilter, ConvolutionFilter, DisplacementMapFilter, DropShadowFilter, GlowFilter, GradientBevelFilter et GradientGlowFilter héritent de la classe BitmapFilter. Vous pouvez appliquer ces effets de filtre aux bitmaps et aux occurrences MovieClip. Vous pouvez créer des sous-classes uniquement pour les précédentes sous-classes de la classe BitmapFilter. Disponibilité : ActionScript 1.0 ; Flash Player 8 Résumé des propriétés Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) 340 Chapitre 2: Classes ActionScript Résumé de la méthode Modificateurs Signature Description Renvoie un objet BitmapFilter qui est une copie exacte de l'objet BitmapFilter d'origine. clone() : BitmapFilter Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) clone (méthode BitmapFilter.clone ) public clone() : BitmapFilter Renvoie un objet BitmapFilter qui est une copie exacte de l'objet BitmapFilter d'origine. Disponibilité : ActionScript 1.0 ; Flash Player 8 Valeur renvoyée flash.filters.BitmapFilter - Objet BitmapFilter. BlurFilter (flash.filters.BlurFilter) Object | +-flash.filters.BitmapFilter | +-flash.filters.BlurFilter public class BlurFilter extends BitmapFilter La classe BlurFilter vous permet d'appliquer un effet visuel de flou à divers objets dans Flash. Un effet de flou adoucit les détails d'une image. Vous pouvez produire une panoplie de flous vous permettant d'obtenir un aspect doux n'ayant pas le focus, un flou gaussien ou encore un aspect voilé dont l'effet est identique à celui d'une image que l'on regarde à travers un verre semi-opaque. Quand la propriété quality de ce filtre est réglée sur 1, vous obtenez un aspect doux n'ayant pas le focus. Quand la propriété quality est réglée sur 3, il se rapproche d'un filtre de flou gaussien. BlurFilter (flash.filters.BlurFilter) 341 L'utilisation de filtres dépend de l'objet auquel vous appliquez le filtre. ■ Pour appliquer des filtres aux clips, champs de texte et boutons lors de l'exécution, utilisez la propriété filters. Lorsque vous définissez la propriété filters d'un objet, celui-ci n'est pas modifié. En outre, vous pouvez l'annuler en supprimant la propriété filters. ■ Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode BitmapData.applyFilter(). L'appel d'applyFilter sur un objet BitmapData utilise l'objet BitmapData d'origine ainsi que l'objet filtre pour générer une image filtrée. Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d'informations, consultez la documentation relative à la programmation. Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d'origine de cacheAsBitmap est restaurée. Ce filtre prend en charge le redimensionnement de la scène. Cependant, il ne prend pas en charge la mise à l'échelle, la rotation ni l'inclinaison. Si l'objet lui-même est redimensionné (_xscale et _yscale ne sont pas à 100%), l'effet de filtre n'est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène. Un filtre ne peut s'appliquer si l'image résultante dépasse 2 880 pixels en largeur ou en hauteur. Par exemple, si vous faites un zoom avant sur un grand clip auquel un filtre est appliqué, le filtre est désactivé si l'image résultante dépasse la limite de 2880 pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 Voir également filters (propriété MovieClip.filters), cacheAsBitmap (propriété MovieClip.cacheAsBitmap), filters (propriété Button.filters), cacheAsBitmap (propriété Button.cacheAsBitmap), filters (propriété TextField.filters), applyFilter (méthode BitmapData.applyFilter) 342 Chapitre 2: Classes ActionScript Résumé des propriétés Modificateurs Propriété Description blurX:Number Le montant de flou horizontal. blurY:Number Le montant de flou vertical. quality:Number Le nombre d'applications du flou. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Récapitulatif des constructeurs Signature Description BlurFilter([blurX:Nu Initialise le filtre avec les paramètres spécifiés. mber], [blurY:Number], [quality:Number]) Résumé de la méthode Modificateurs Signature Description clone() : BlurFilter Renvoie une copie de cet objet filtre. Méthodes héritées de la classe BitmapFilter clone (méthode BitmapFilter.clone ) Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) BlurFilter (flash.filters.BlurFilter) 343 constructeur BlurFilter() public BlurFilter([blurX:Number], [blurY:Number], [quality:Number]) Initialise le filtre avec les paramètres spécifiés. Les valeurs par défaut créent une image douce, n'ayant pas le focus. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres blurX:Number [facultatif ] - Quantité de flou à appliquer horizontalement. Les valeurs valides sont comprises entre 0 et 255 (valeur en virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. [facultatif ] - Quantité de flou à appliquer verticalement. Les valeurs valides sont comprises entre 0 et 255 (valeur en virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. blurY:Number [facultatif ] - Nombre de fois que le filtre doit s'appliquer. La valeur par défaut est 1, ce qui correspond à la qualité inférieure. Une valeur de 2 est une qualité moyenne et une valeur de 3 est la qualité supérieure s'approchant du flou gaussien. quality:Number Exemple L'exemple suivant instancie un nouveau constructeur BlurFilter et l'applique à un rectangle plat : import flash.filters.BlurFilter; var rect:MovieClip = createRectangle(100, 100, 0x003366, "BlurFilterExample"); var blurX:Number = 30; var blurY:Number = 30; var quality:Number = 3; var filter:BlurFilter = new BlurFilter(blurX, blurY, quality); var filterArray:Array = new Array(); filterArray.push(filter); rect.filters = filterArray; function createRectangle(w:Number, h:Number, bgColor:Number, name:String):MovieClip { var mc:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); mc.beginFill(bgColor); mc.lineTo(w, 0); 344 Chapitre 2: Classes ActionScript mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc._x = 20; mc._y = 20; return mc; } blurX (propriété BlurFilter.blurX) public blurX : Number Le montant de flou horizontal. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété blurX sur une occurrence de clip existant quand un utilisateur clique dessus. import flash.filters.BlurFilter; var mc:MovieClip = createBlurFilterRectangle("BlurFilterBlurX"); mc.onRelease = function() { var filter:BlurFilter = this.filters[0]; filter.blurX = 200; this.filters = new Array(filter); } function createBlurFilterRectangle(name:String):MovieClip { var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; rect.beginFill(0x003366); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BlurFilter = new BlurFilter(30, 30, 2); var filterArray:Array = new Array(); filterArray.push(filter); rect.filters = filterArray; return rect; } BlurFilter (flash.filters.BlurFilter) 345 blurY (propriété BlurFilter.blurY) public blurY : Number Le montant de flou vertical. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété blurY sur une occurrence de clip existant quand un utilisateur clique dessus. import flash.filters.BlurFilter; var mc:MovieClip = createBlurFilterRectangle("BlurFilterBlurY"); mc.onRelease = function() { var filter:BlurFilter = this.filters[0]; filter.blurY = 200; this.filters = new Array(filter); } function createBlurFilterRectangle(name:String):MovieClip { var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; rect.beginFill(0x003366); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BlurFilter = new BlurFilter(30, 30, 2); var filterArray:Array = new Array(); filterArray.push(filter); rect.filters = filterArray; return rect; } clone (méthode BitmapFilter.clone ) public clone() : BlurFilter Renvoie une copie de cet objet filtre. Disponibilité : ActionScript 1.0 ; Flash Player 8 346 Chapitre 2: Classes ActionScript Valeur renvoyée flash.filters.BlurFilter - Nouvelle occurrence BlurFilter dont toutes les propriétés sont identiques à celles de l'occurrence BlurFilter d'origine. Exemple L'exemple suivant crée trois objets BlurFilter et les compare. Vous pouvez créer l'objet à l'aide du constructeur BlurFilter. Vous pouvez créer l'objet filter_2 en lui attribuant des réglages égaux à ceux de filter_1. Vous pouvez créer l'objet clonedFilter en clonant filter_1. Veuillez noter que filter_2 est considéré comme égal à filter_1, clonedFilter ne l'est pas, même s'il contient les mêmes valeurs que filter_1. filter_1 import flash.filters.BlurFilter; var filter_1:BlurFilter = new BlurFilter(30, 30, 2); var filter_2:BlurFilter = filter_1; var clonedFilter:BlurFilter = filter_1.clone(); trace(filter_1 == filter_2); // true trace(filter_1 == clonedFilter); // false for(var i in filter_1) { trace(">> " + i + ": " + filter_1[i]); // >> clone: [type Function] // >> quality: 2 // >> blurY: 30 // >> blurX: 30 } for(var i in clonedFilter) { trace(">> " + i + ": " + clonedFilter[i]); // >> clone: [type Function] // >> quality: 2 // >> blurY: 30 // >> blurX: 30 } Pour démontrer davantage les relations entre filter_1, filter_2, et clonedFilter, l'exemple suivant modifie la propriété quality de filter_1. La modification de quality démontre que la méthode clone() crée une nouvelle occurrence basée sur les valeurs de filter_1 au lieu de faire référence à ces valeurs. import flash.filters.BlurFilter; var filter_1:BlurFilter = new BlurFilter(30, 30, 2); var filter_2:BlurFilter = filter_1; var clonedFilter:BlurFilter = filter_1.clone(); trace(filter_1.quality); // 2 BlurFilter (flash.filters.BlurFilter) 347 trace(filter_2.quality); // 2 trace(clonedFilter.quality); // 2 filter_1.quality = 1; trace(filter_1.quality); // 1 trace(filter_2.quality); // 1 trace(clonedFilter.quality); // 2 quality (propriété BlurFilter.quality) public quality : Number Le nombre d'applications du flou. Les valeurs valides sont 0 à 15. La valeur par défaut est 1, ce qui équivaut à une qualité inférieure. Une valeur de 2 est une qualité moyenne. Une valeur de 3 est une haute qualité et se rapproche d'un flou gaussien. Pour la plupart des applications, une valeur de quality de 1, 2, ou 3 est suffisante. Vous pouvez cependant utiliser les valeurs numériques jusqu'à 15 pour augmenter le nombre de fois où le flou est appliqué pour obtenir un effet de flou plus important. Mais les valeurs les plus hautes donnent un rendu plus lent. Plutôt que d'augmenter la valeur de quality, vous pouvez souvent obtenir un effet similaire avec un rendu plus rapide en augmentant simplement les valeurs de blurX et blurY. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée un rectangle et lui applique un filtre de flou avec une valeur de de 1. Lorsque vous cliquez sur le rectangle, la valeur de quality augmente à 3, et le rectangle devient plus flou. quality import flash.filters.BlurFilter; var mc:MovieClip = createBlurFilterRectangle("BlurFilterQuality"); mc.onRelease = function() { var filter:BlurFilter = this.filters[0]; filter.quality = 3; this.filters = new Array(filter); } function createBlurFilterRectangle(name:String):MovieClip { var rect:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; rect.beginFill(0x003366); rect.lineTo(w, 0); rect.lineTo(w, h); rect.lineTo(0, h); 348 Chapitre 2: Classes ActionScript rect.lineTo(0, 0); rect._x = 20; rect._y = 20; var filter:BlurFilter = new BlurFilter(30, 30, 1); var filterArray:Array = new Array(); filterArray.push(filter); rect.filters = filterArray; return rect; } Boolean Object | +-Boolean public class Boolean extends Object La classe Boolean est une enveloppe disposant des mêmes fonctionnalités que l'objet JavaScript Boolean standard. Utilisez la classe Boolean pour extraire le type de données primitif ou la représentation d'un objet booléen sous forme de chaîne. Vous devez utiliser le constructeur new Boolean() pour créer un objet Boolean avant d'appeler ses méthodes. Disponibilité : ActionScript 1.0 ; Flash Player 5 Résumé des propriétés Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des constructeurs Signature Description Boolean([value:Objec Crée un objet Boolean. t]) Boolean 349 Résumé de la méthode Modificateurs Signature Description toString() : String Renvoie la représentation de l'objet booléen sous forme de chaîne ("true" ou "false"). valueOf() : Boolean Renvoie true si le type de valeur primitif de l'objet booléen spécifié est true ; false sinon. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) constructeur Boolean() public Boolean([value:Object]) Crée un objet Boolean. Si vous omettez le paramètre value, l'objet booléen est initialisé avec une valeur false. Si vous spécifiez une valeur pour le paramètre value, la méthode l'évalue et renvoie le résultat sous forme de valeur booléenne conformément aux règles de la fonction globale Boolean(). Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres value:Object [facultatif ] - Toute expression. La valeur par défaut est false. Exemple Le code suivant crée un nouvel objet booléen vide intitulé myBoolean : var myBoolean:Boolean = new Boolean(); toString (méthode Boolean.toString) public toString() : String Renvoie la représentation de l'objet booléen sous forme de chaîne ("true" ou "false"). Disponibilité : ActionScript 1.0 ; Flash Player 5 350 Chapitre 2: Classes ActionScript Valeur renvoyée String - Chaîne; "true" ou "false". Exemple Cet exemple crée une variable de type Boolean et utilise la méthode toString() pour convertir la valeur en chaîne à utiliser dans l'instruction trace : var myBool:Boolean = true; trace("The value of the Boolean myBool is: " + myBool.toString()); myBool = false; trace("The value of the Boolean myBool is: " + myBool.toString()); valueOf (méthode Boolean.valueOf) public valueOf() : Boolean Renvoie true si le type de valeur primitif de l'objet booléen spécifié est true ; false sinon. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Boolean - Valeur booléenne. Exemple L'exemple suivant indique le mode de fonctionnement de cette méthode et montre également que le type de valeur primitif d'un nouvel objet booléen est false : var x:Boolean = new Boolean(); trace(x.valueOf()); // false x = (6==3+3); trace(x.valueOf()); // true Boolean 351 Button Object | +-Button public class Button extends Object Tous les symboles de bouton présents dans un fichier SWF sont des occurrences de l'objet Button. Vous pouvez donner un nom d'occurrence à un bouton dans l'inspecteur des propriétés, puis utiliser les méthodes et les propriétés de la classe Button pour manipuler les boutons avec ActionScript. Les noms d'occurrence de boutons s'affichent dans l'explorateur d'animations et dans la boîte de dialogue Insérer un chemin cible du panneau Actions. La classe Button hérite de la classe Object. Disponibilité : ActionScript 1.0 ; Flash Player 6 Voir également Object 352 Chapitre 2: Classes ActionScript Résumé des propriétés Modificateurs Propriété Description _alpha:Number La valeur de transparence alpha du bouton spécifié par my_btn. blendMode:Object Le mode de fondu de cet objet. cacheAsBitmap:Boolea Si défini sur true, Flash Player place en mémoire n cache une version bitmap interne du bouton. enabled:Boolean Une valeur booléenne spécifiant si un bouton est activé. filters:Array Un tableau indexé contenant tous les objets filtre associés au bouton. _focusrect:Boolean Une valeur booléenne indiquant si un bouton est entouré d'un rectangle jaune lorsqu'il a le focus clavier. _height:Number La hauteur du bouton, en pixels. _highquality:Number Déconseillédepuis Flash Player 7. Cette propriété a été déconseillée en faveur deButton._quality. Spécifie le niveau d'anti-aliasing appliqué au fichier SWF actuel. menu:ContextMenu Associe l'objet ContextMenu, contextMenu à l'objet my_button. _name:String Nom d'occurrence du bouton spécifié par my_btn. _parent:MovieClip Référence au clip ou à l'objet contenant le clip ou l'objet actuel. _quality:String Propriété (globale) ; définit ou récupère la qualité de rendu utilisée pour un fichier SWF. _rotation:Number La rotation du bouton, en degrés, à partir de son orientation d'origine. scale9Grid:Rectangle La zone rectangulaire qui définit les neuf zones de redimensionnement du bouton. _soundbuftime:Number Propriété qui spécifie le nombre de secondes pendant lequel les sons sont chargés en mémoire tampon avant d'être diffusés en continu. tabEnabled:Boolean Spécifie si my_btn est inclus dans l'ordre de tabulation automatique. tabIndex:Number Permet de personnaliser l'ordre de tabulation des objets dans un fichier SWF. Button 353 Modificateurs Propriété _target:String [lecture seule] Description Renvoie le chemin cible de l'occurrence de bouton spécifiée par my_btn. trackAsMenu:Boolean Valeur booléenne indiquant si d'autres boutons ou clips peuvent recevoir des événements de relâchement de souris. _url:String [lecture Récupère l'URL du fichier SWF qui a créé le bouton. seule] useHandCursor:Boolea Valeur booléenne qui, lorsqu'elle est définie sur true n (par défaut), indique si un curseur en forme de main s'affiche lorsque la souris survole un bouton. _visible:Boolean Une valeur booléenne indiquant si le bouton spécifié par my_btn est visible. _width:Number La largeur du bouton, en pixels. _x:Number Un entier qui définit la coordonnée x d'un bouton par rapport aux coordonnées locales du clip parent. _xmouse:Number Renvoie la coordonnée x de la position de la souris par rapport au bouton. [lecture seule] _xscale:Number Le redimensionnement horizontal du bouton tel qu'il est appliqué à partir du point d'alignement du bouton, exprimé en pourcentage. _y:Number La coordonnée y du bouton par rapport aux coordonnées locales du clip parent. _ymouse:Number Indique la coordonnée y de la position de la souris par rapport au bouton. [lecture seule] _yscale:Number Le redimensionnement vertical du bouton tel qu'il est appliqué à partir du point d'alignement du bouton, exprimé en pourcentage. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) 354 Chapitre 2: Classes ActionScript Résumé des événements Evénement Description onDragOut = Invoqué lorsque vous cliquez sur le bouton à l'aide du bouton de la souris, puis faites glisser le pointeur hors du bouton. function() {} onDragOver = function() {} onKeyDown = function() {} Invoqué lorsque l'utilisateur appuie sur le bouton de la souris, le fait glisser hors du bouton, puis sur le bouton. Invoqué lorsqu'un bouton reçoit le focus clavier et lorsque l'utilisateur appuie sur une touche. function() {} Invoqué lorsqu'un bouton reçoit le focus d'entrée et lorsque l'utilisateur relâche une touche. onKillFocus = Invoqué lorsqu'un bouton perd le focus clavier. onKeyUp = function(newFocu s:Object) {} onPress = Invoqué lorsqu'un bouton est enfoncé. function() {} onRelease = Invoqué lorsqu'un bouton est relâché. function() {} onReleaseOutside Invoqué lorsque l'utilisateur relâche la souris tandis que le pointeur se = function() {} trouve hors du bouton après avoir appuyé sur celui-ci lorsque le pointeur se trouvait à l'intérieur du bouton. onRollOut = Invoqué lorsque le pointeur se déplace hors d'une zone du bouton. function() {} onRollOver = Invoqué lorsque le pointeur se déplace sur une zone du bouton. function() {} onSetFocus = Invoqué lorsqu'un bouton reçoit le focus clavier. function(oldFocu s:Object) {} Button 355 Résumé de la méthode Modificateurs Signature getDepth() : Number Description Renvoie la profondeur d'une occurrence de bouton. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) _alpha (propriété Button._alpha) public _alpha : Number La valeur de transparence alpha du bouton spécifié par my_btn. Les valeurs possibles sont comprises entre 0 (entièrement transparent) et 100 (entièrement opaque). La valeur par défaut est 100. Les objets d'un bouton dont la propriété _alpha est définie sur 0 sont actifs, même s'ils sont invisibles. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Le code suivant définit la propriété _alpha d'un bouton intitulé myBtn_btn sur 50 % lorsque l'utilisateur clique sur le bouton : D'abord, ajoutez une occurrence de Button sur la scène. Ensuite, donnez lui un nom d'occurrence de myBtn_btn. Pour terminer, l'image 1 étant sélectionnée, placez le code suivant dans le panneau Actions : myBtn_btn.onRelease = function(){ this._alpha = 50; }; Voir également _alpha (propriété MovieClip._alpha), _alpha (propriété TextField._alpha) 356 Chapitre 2: Classes ActionScript blendMode (propriété Button.blendMode) public blendMode : Object Le mode de fondu de cet objet. Le mode fondu modifie l'apparence du bouton quand il est sur un calque au dessus d'un autre objet à l'écran. Flash Player applique la propriété blendMode à chaque pixel du bouton. Chaque pixel est composé de trois couleurs élémentaires (rouge, vert et bleu), chacune de ces couleurs ayant une valeur située entre 0x00 et 0xFF. Flash Player compare chaque couleur élémentaire d'un pixel du bouton avec la couleur correspondante du pixel de l'arrière-plan. Par exemple, si blendMode est réglé sur "lighten", Flash Player compare la valeur de rouge du bouton avec la valeur de rouge de l'arrière-plan et utilise la plus légère des deux comme valeur du composant rouge de la couleur affichée. Le tableau suivant répertorie les réglages blendMode. Pour définir la propriété blendMode, vous pouvez utiliser un entier compris entre 1 et 14 ou une chaîne. Les illustrations du tableau montrent blendMode appliqué sur un bouton (2) quand il est superposé à un autre objet à l'écran (1). Button 357 Valeur de l'entier Valeur de chaîne 1 "normal" Le bouton apparaît devant l'arrière-plan. Les valeurs de pixels du bouton écrasent celles de l'arrière-plan. Si le bouton est transparent, l'arrièreplan est visible. 2 "layer" Force la création d'un tampon temporaire pour la précomposition du bouton. Ceci se fait automatiquement s'il existe plus d'un objet enfant dans un bouton et un réglage blendMode autre que "normal" est choisi pour l'enfant. 358 Chapitre 2: Classes ActionScript Illustration Description Valeur de l'entier Valeur de chaîne 3 "multiply" Illustration Description Multiplie les valeurs des couleurs primaires du bouton par celles de la couleur d'arrièreplan, et ensuite normalise en divisant par 0xFF, ce qui donne des couleurs plus foncées. Utilisé de façon commune pour les effets d'ombre et de profondeur. Par exemple, si une couleur primaire (telle que le rouge) d'un pixel du bouton et que la couleur correspondante du pixel de l'arrière-plan ont toutes les deux la valeur 0x88, le résultat de la multiplication est 0x4840. La division par 0xFF donne une valeur de 0x48 pour cette couleur primaire, ce qui est une ombre plus foncée que celle du bouton ou de l'arrière-plan. Button 359 Valeur de l'entier Valeur de chaîne 4 "screen" Multiplie le complément (l'inverse) de la couleur du bouton par le complément de la couleur d'arrièreplan, ce qui donne un effet de blanchissement. Ce réglage est habituellement utilisé pour les surbrillances ou pour éliminer les zones noires du bouton. 5 "lighten" Choisit la plus claire des couleurs primaires du bouton et celle de l'arrière-plan (celles qui ont les plus grandes valeurs). Ce réglage est habituellement utilisé pour les superpositions. Par exemple, si le bouton a un pixel ayant une valeur RVB de 0xFFCC33, et le pixel d'arrière-plan une valeur RVB de 0xDDF800, la valeur RVB résultante pour le pixel affiché est de 0xFFF833 (parce que 0xFF > 0xDD, 0xCC < 0xF8, et 0x33 > 0x00 = 33). 360 Chapitre 2: Classes ActionScript Illustration Description Valeur de l'entier Valeur de chaîne 6 "darken" Illustration Description Choisit la plus foncée des couleurs primaires du bouton et celle de l'arrière-plan (celles qui ont les plus petites valeurs). Ce réglage est habituellement utilisé pour les superpositions. Par exemple, si le bouton a un pixel ayant une valeur RVB de 0xFFCC33, et le pixel d'arrière-plan une valeur RVB de 0xDDF800, la valeur RVB résultante pour le pixel affiché est de 0xDDCC00 (parce que 0xFF > 0xDD, 0xCC < 0xF8, et 0x33 > 0x00 = 33). Button 361 Valeur de l'entier Valeur de chaîne 7 "difference" 362 Chapitre 2: Classes ActionScript Illustration Description Compare les couleurs primaires du bouton avec celles de son arrière-plan et soustrait la plus foncée des deux couleurs de la plus claire. Ce réglage est habituellement utilisé pour obtenir des couleurs plus vibrantes. Par exemple, si le bouton a un pixel ayant une valeur RVB de 0xFFCC33, et le pixel d'arrière-plan une valeur RVB de 0xDDF800, la valeur RVB résultante pour le pixel affiché est de 0x222C33 (parce que 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C et 0x33 - 0x00 = 0x33). Valeur de l'entier Valeur de chaîne 8 "add" Illustration Description Ajoute les couleurs primaires du bouton à celles de son arrièreplan, et applique un plafond de 0xFF. Ce réglage est habituellement utilisé pour animer un fondu d'éclaircissement entre deux objets. Par exemple, si le bouton a un pixel ayant une valeur RVB de 0xAAA633, et le pixel d'arrière-plan une valeur RVB de 0xDD2200, la valeur RVB résultante pour le pixel affiché est de 0xFFC833 (parce que 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8, et 0x33 + 0x00 = 0x33). Button 363 Valeur de l'entier Valeur de chaîne 9 "subtract" Soustrait les couleurs primaires du bouton de celles de son arrièreplan, et applique un plancher de 0. Ce réglage est habituellement utilisé pour animer un fondu d'assombrissement entre deux objets. Par exemple, si le bouton a un pixel ayant une valeur RVB de 0xAA2233, et le pixel d'arrière-plan une valeur RVB de 0xDDA600, la valeur RVB résultante pour le pixel affiché est de 0x338400 (parce que 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84, et 0x00 - 0x33 < 0x00). 10 "invert" Inverse l'arrière-plan. 11 "alpha" Applique la valeur alpha de chaque pixel du bouton à l'arrièreplan. Ceci requiert que le "calque" blendMode soit appliqué à un bouton parent. Par exemple, sur l'illustration, le bouton parent, qui est un arrière-plan blanc, a la propriété blendMode = "layer". 364 Chapitre 2: Classes ActionScript Illustration Description Valeur de l'entier Valeur de chaîne 12 "erase" Illustration Description Efface l'arrière plan sur la base de la valeur alpha du bouton. Ceci requiert que le réglage "layer" blendMode soit appliqué à un bouton parent. Par exemple, sur l'illustration, le bouton parent, qui est un arrière-plan blanc, a la propriété blendMode = "layer". Button 365 Valeur de l'entier Valeur de chaîne Illustration Description 13 "overlay" Ajuste la couleur de chaque bitmap sur la base de l'obscurité de l'arrière-plan. Si l'arrière-plan est plus clair qu'un gris à 50 %, les couleurs du bouton et de l'arrière-plan sont masquées, ce qui donne une couleur plus claire. Si l'arrière-plan est plus foncé qu'un gris à 50 %, les couleurs sont multipliées, ce qui donne une couleur plus sombre. Ce réglage est habituellement utilisé pour les effets d'ombrage. 14 "hardlight" Ajuste la couleur de chaque bitmap sur la base de l'obscurité du bouton. Si le bouton est plus clair qu'un gris à 50 %, les couleurs du bouton et de l'arrière-plan sont masquées, ce qui donne une couleur plus claire. Si l'arrière-plan est plus foncé qu'un gris à 50 %, les couleurs sont multipliées, ce qui donne une couleur plus sombre. Ce réglage est habituellement utilisé pour les effets d'ombrage. Si vous tentez de définir la propriété blendModesur une autre valeur, Flash la définit sur "normal". 366 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant vous montrera que si vous définissez la propriété sur un entier, Flash convertit immédiatement cette valeur en une chaîne correspondante : my_button.blendMode = 8; trace (my_button.blendMode) // add Pour un exemple similaire, veuillez consulter la description de la propriété blendMode de la classe MovieClip. Voir également blendMode (propriété MovieClip.blendMode) cacheAsBitmap (propriété Button.cacheAsBitmap) public cacheAsBitmap : Boolean Si défini sur true, Flash Player place en mémoire cache une version bitmap interne du bouton. Cela permet d'améliorer les performances des boutons qui intègrent du contenu vectoriel complexe. Pour un bouton ayant sa propriété cacheAsBitmap sur true, Flash Player stocke une représentation de bitmap pour chacun des quatre états du bouton. Toutes les données vectorielles d'un bouton contenant une bitmap en mémoire cache sont tracées sur la bitmap et non pas sur la scène principale. Cette bitmap est ensuite copiée sur la scène principale sous forme de pixels sans étirement ou rotation et accrochés aux limites de pixels les plus proches. Les correspondances des pixels avec l'objet parent se font selon un rapport de 1 à 1. Si les limites de la bitmap changent, elle est recréée au lieu d'être étirée. Aucune bitmap interne n'est créée sauf si la propriété cacheAsBitmap est définie sur true. Après avoir défini la propriété cacheAsBitmap du bouton sur true, le rendu ne change pas, bien que le bouton procède automatiquement à l'accrochage aux pixels. La vitesse d'animation peut être beaucoup plus importante selon la complexité du contenu vectoriel. La propriété cacheAsBitmap est définie automatiquement sur true lorsque vous appliquez un filtre à un bouton (lorsque son tableau filter n'est pas vide). Lorsqu'un bouton est filtré, cacheAsBitmap renvoie la valeur true pour ce bouton, même si vous l'avez définie sur false. Si vous supprimez tous les filtres d'un bouton, le réglage cacheAsBitmap à sa position précédente. Button 367 Dans les cas suivants, les boutons n'utilisent pas de bitmap, même si la propriété cacheAsBitmap est définie sur true et procède au rendu à partir de données vectorielles : ■ Quand la bitmap est trop grande, c'est à dire supérieure à 2800 pixels dans l'un des deux sens. ■ Quand la bitmap manque de mémoire allouée (en raison d'une erreur mémoire) La propriété cacheAsBitmap est utilisée de préférence avec les boutons dont le contenu est principalement statique et qui n'est ni redimensionné, ni pivoté de façon fréquente. Avec ce genre de bouton, cacheAsBitmap peut entraîner une augmentation de performance quand le bouton est déplacé (quand ses positions x et y sont changées). Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant applique une ombre portée à une occurence de bouton existant sous le nom de myButton. Il trace ensuite la valeur de cacheAsBitmap, qui est réglée sur true lors de l'application d'un filtre. import flash.filters.DropShadowFilter; trace(myButton.cacheAsBitmap); // false var dropShadow:DropShadowFilter = new DropShadowFilter(6, 45, 0x000000, 50, 5, 5, 1, 2, false, false, false); myButton.filters = new Array(dropShadow); trace(myButton.cacheAsBitmap); // true enabled (propriété Button.enabled) public enabled : Boolean Une valeur booléenne spécifiant si un bouton est activé. Lorsqu'il est désactivé (la propriété enabled est définie sur false), le bouton est visible mais vous ne pouvez pas cliquer sur celuici. La valeur par défaut est true. Cette propriété s'avère utile si vous souhaitez désactiver certains des boutons de navigation ; par exemple, il peut être souhaitable de désactiver un bouton dans la page actuellement affichée afin d'empêcher tout clic sur celui-ci et d'empêcher de recharger la page. Disponibilité : ActionScript 1.0 ; Flash Player 6 368 Chapitre 2: Classes ActionScript Exemple L'exemple suivant démontre comment vous pouvez désactiver et activer le clic de boutons. Deux boutons, myBtn1_btn et myBtn2_btn,, se trouvent sur la scène et le code ActionScript suivant est ajouté afin que l'utilisateur ne puisse pas cliquer sur le bouton myBtn2_btn : D'abord, ajoutez deux occurence de boutons sur la scène. Ensuite, attribuez leur les noms d'occurence myBtn1_btn et myBtn2_btn. Pour finir, placez le code suivant sur l'image 1 pour activer ou désactiver les boutons. myBtn1_btn.enabled = true; myBtn2_btn.enabled = false; //button code // the following function will not get called // because myBtn2_btn.enabled was set to false myBtn1_btn.onRelease = function() { trace( "you clicked : " + this._name ); }; myBtn2_btn.onRelease = function() { trace( "you clicked : " + this._name ); }; filters (propriété Button.filters) public filters : Array Un tableau indexé contenant tous les objets filtre associés au bouton. Le package flash.filters contient plusieurs classes qui définissent des filtres spécifiques. Ces filtres peuvent s'appliquer dans l'outil de programmation de Flash pendant la phase de conception ou d'exécution du code ActionScript. Pour appliquer un filtre avec ActionScript, vous devez créer une copie temporaire de l'intégralité du tableau Button.filters, modifier le tableau temporaire, puis reporter les valeurs de ce tableau temporaire dans le tableau Button.filters. Vous ne pouvez pas appliquer directement un nouvel objet filtre au tableau Button.filters. Le code suivant n'a aucun effet sur le bouton cible, appelé myButton : myButton.filters[0].push(myDropShadow); Pour ajouter un filtre avec ActionScript, vous devez suivre les étapes ci-dessous (dans cet exemple le bouton cible est appelé myButton) : ■ Créez un objet filtre avec la fonction constructeur de la classe de filtre retenue. ■ Assignez la valeur du tableau myButton.filters à un tableau temporaire, tel que celui qui est nommé myFilters. ■ Ajoutez le nouvel objet filtre au tableau temporaire, myFilters. ■ Affectez la valeur du tableau temporaire au tableau myButton.filters. Button 369 Si le tableau filters est vide, il n'est pas nécessaire d'utiliser un tableau temporaire. Par contre, vous pouvez affecter directement un littéral de tableau contenant un ou plusieurs des objets filter que vous avez créés. Pour modifier un objet filtre existant, que ce dernier ait été créé pendant la phase de conception ou d'exécution, vous devez appliquer la technique de modification d'une copie du tableau filters : ■ Assignez la valeur du tableau myButton.filters à un tableau temporaire, tel que celui qui est nommé myFilters. ■ Modifiez la propriété avec le tableau temporaire, myFilters. Par exemple, si vous souhaitez définir la propriété quality du premier filtre du tableau, utilisez le code suivant : myList[0].quality = 1; ■ Affectez la valeur du tableau temporaire au tableau myButton.filters. Pour supprimer les filtres d'un bouton, définissez filters par un tableau vide ([]). Lors du chargement, si un bouton est associé à un filtre, ce bouton se place en mémoire cache en tant que bitmap transparent. A partir de ce stade, tant que le bouton possède une liste de filtres valide, le lecteur place le clip en mémoire cache au format bitmap. Cette bitmap source est ensuite reprise en tant qu'image source pour les effets de filtrage. Habituellement, chaque bouton a deux jeux de bitmaps : Un avec le bouton d'origine non filtré et un autre pour les images finales après filtrage (dans chacun des quatre états du bouton). L'image finale est utilisée pour le rendu. Tant que le bouton ne change pas, l'image source ne nécessite aucune mise à jour. Si vous manipulez un tableau filters contenant plusieurs filtres et devez suivre le type de filtre affecté à chaque index de tableau, vous pouvez conserver votre propre tableau filters et utiliser une structure de données distincte pour suivre le type de filtre associé à chaque index de tableau. Il n'existe aucune méthode simple permettant de déterminer le type de filtre associé à chaque index de tableau filters. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant ajoute un filtre d'ombre portée à un bouton appelé myButton. import flash.filters.DropShadowFilter; var myDropFilter:DropShadowFilter = new DropShadowFilter(6, 45, 0x000000, 50, 5, 5, 1, 2, false, false, false); var myFilters:Array = myButton.filters; myFilters.push(myDropFilter); myButton.filters = myFilters; 370 Chapitre 2: Classes ActionScript L'exemple suivant donne au paramètre quality du premier filtre du tableau la valeur 15 (cet exemple ne peut fonctionner que si au moins un objet filtre a été associé au champ texte myButton). var myList:Array = myButton.filters; myList[0].quality = 15; myButton.filters = myList; Voir également , cacheAsBitmap (propriété Button.cacheAsBitmap) _focusrect (propriété Button._focusrect) public _focusrect : Boolean Une valeur booléenne indiquant si un bouton est entouré d'un rectangle jaune lorsqu'il a le focus clavier. Cette propriété peut annuler la propriété _focusrect globale. Par défaut, la propriété _focusrect d'une occurrence de bouton est nulle, ce qui signifie que l'occurrence de bouton n'annule pas la propriété globale_focusrect. Si la propriété _focusrect d'une occurrence de bouton est définie sur true ou false, elle annule le paramètre de la propriété globale _focusrect de l'occurrence unique de bouton . Dans les fichiers SWF de Flash Player 4 ou Flash Player 5, la propriété _focusrect contrôle la propriété globale _focusrect. Il s'agit d'une valeur booléenne. Ce comportement a été modifié dans Flash Player 6 et les versions ultérieures afin de pouvoir personnaliser la propriété _focusrect sur un clip individuel. Si la propriété _focusrect est définie sur false, la navigation au clavier se limite à la touche Tab pour ce bouton. Toutes les autres touches, ce qui inclut la touche Entrée et les touches directionnelles, sont ignorées. Pour restaurer l'intégralité de l'accès clavier, vous devez définir _focusrect sur true. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Cet exemple démontre comment masquer le rectangle jaune autour d'une occurrence de bouton spécifiée d'un fichier SWF lorsqu'elle a le focus dans une fenêtre de navigateur. Créez trois boutons intitulés myBtn1_btn, myBtn2_btn et myBtn3_btn, puis ajoutez le code ActionScript suivant à l'image 1 du scénario : myBtn2_btn._focusrect = false; Button 371 Définissez les paramètres de publication sur Flash Player 6, puis testez le fichier SWF dans une fenêtre de navigateur en pointant sur Fichier > Aperçu avant publication > HTML. Attribuez le focus au fichier SWF en cliquant sur celui-ci dans la fenêtre de navigateur, puis utilisez la touche Tab pour appliquer le focus à chaque occurrence. Vous ne pourrez pas exécuter le code de ce bouton en appuyant sur la touche Entrée ou Espace lorsque la propriété _focusrect est désactivée. getDepth (méthode Button.getDepth) public getDepth() : Number Renvoie la profondeur d'une occurrence de bouton. Tout clip, bouton et champ texte est associé à une profondeur unique qui détermine l'aspect de l'objet devant ou derrière d'autres objets. Les objets dont la profondeur est la plus importante s'affichent au premier plan. Disponibilité : ActionScript 1.0 ; Flash Player 6 Valeur renvoyée Number - Profondeur d'une occurrence de bouton. Exemple Si vous créez myBtn1_btn et myBtn2_btn sur la scène, vous pouvez suivre leur profondeur à l'aide du code ActionScript suivant : trace(myBtn1_btn.getDepth()); trace(myBtn2_btn.getDepth()); Si vous chargez un fichier SWF intitulé buttonMovie.swf dans ce document, vous pouvez suivre la profondeur d'un bouton, myBtn4_btn, dans ce fichier SWF à l'aide d'un autre bouton du fichier SWF principal : this.createEmptyMovieClip("myClip_mc", 999); myClip_mc.loadMovie("buttonMovie.swf"); myBtn3_btn.onRelease = function(){ trace(myClip_mc.myBtn4_btn.getDepth()); }; 372 Chapitre 2: Classes ActionScript Vous remarquerez que deux de ces boutons ont la même valeur de profondeur, l'un dans le fichier SWF principal et l'autre dans le fichier SWF chargé. Cela peut vous induire en erreur car buttonMovie.swf a été chargé à la profondeur 999, ce qui signifie que le bouton qu'il contient aura également une profondeur de 999 par rapport aux boutons du fichier SWF principal. N'oubliez pas que chaque clip dispose de son propre ordre z interne, ce qui signifie que chaque clip possède son propre jeu de valeurs de profondeur. Les deux boutons peuvent avoir la même valeur de profondeur mais les valeurs ne sont significatives que par rapport aux autres objets du même ordre z. Dans ce cas, les boutons ont la même valeur de profondeur mais les valeurs se rapportent à des clips différents. la valeur de profondeur du bouton dans le fichier SWF principal se rapporte à l'ordre z du scénario principal, tandis que la valeur de profondeur du bouton du fichier SWF chargé se rapporte à l'ordre z interne du clip myClip_mc. Voir également getDepth (méthode MovieClip.getDepth), getDepth (méthode TextField.getDepth), _height (propriété Button._height) public _height : Number La hauteur du bouton, en pixels. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant définit la hauteur et la largeur d'un bouton intitulé my_btn sur des valeurs spécifiées. my_btn._width = 500; my_btn._height = 200; _highquality (propriété Button._highquality) public _highquality : Number Déconseillédepuis Flash Player 7. Cette propriété a été déconseillée en faveur deButton._quality. Button 373 Spécifie le niveau d'anti-aliasing appliqué au fichier SWF actuel. Spécifiez 2 (meilleure qualité) pour bénéficier de la meilleure qualité possible et activer le lissage de façon permanente. Spécifiez 1 (haute qualité) pour procéder à l'anti-aliasing ; ceci permet de lisser les bitmaps si le fichier SWF ne contient pas d'animation et constitue la valeur par défaut. Spécifiez 0 (faible qualité) pour empêcher l'anti-aliasing. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Ajoutez une occurrence de bouton sur la scène et appelez-la myBtn_btn. Tracez un ovale sur la scène à l'aide de l'outil Ovale ayant une couleur de trait et de remplissage. Sélectionnez l'image 1 et ajoutez le code ActionScript suivant via le panneau Actions : myBtn_btn.onRelease = function() { myBtn_btn._highquality = 0; }; Lorsque vous cliquez sur myBtn_btn, le trait du cercle est irrégulier. Vous pouvez ajouter le code ActionScript suivant pour affecter l'ensemble du fichier SWF : _quality = 0; Voir également _quality (propriété Button._quality), _quality, propriété menu (propriété Button.menu) public menu : ContextMenu Associe l'objet ContextMenu, contextMenu à l'objet bouton my_button. La classe ContextMenu permet de modifier le menu contextuel qui s'affiche lorsque l'utilisateur clique avec le bouton droit de la souris (Windows) ou en appuyant sur la touche Contrôle (Macintosh) dans Flash Player. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple L'exemple suivant affecte un objet ContextMenu à une occurrence de bouton intitulée L'objet ContextMenu contient un élément de menu unique (intitulé « Save... ») incluant une fonction de gestionnaire de rappel intitulée doSave. myBtn_btn. Ajoutez l'occurrence de bouton sur la scène et appelez-la myBtn_btn. var menu_cm:ContextMenu = new ContextMenu(); menu_cm.customItems.push(new ContextMenuItem("Save...", doSave)); function doSave(menu:Object, obj:Object):Void { trace( " You selected the 'Save...' menu item "); 374 Chapitre 2: Classes ActionScript } myBtn_btn.menu = menu_cm; Pointez sur Contrôle > Tester l'animation pour tester le fichier SWF. Après avoir placé le pointeur sur myBtn_btn, cliquez avec le bouton droit de la souris ou maintenez la touche Contrôle enfoncée. Le menu contextuel incluant le bouton Enregistrer apparaît dans le menu. Lorsque vous cliquez sur Enregistrer dans le menu, le panneau de sortie s'affiche. Voir également ContextMenu, ContextMenuItem, menu (propriété MovieClip.menu), menu (propriété TextField.menu) _name (propriété Button._name) public _name : String Nom d'occurrence du bouton spécifié par my_btn. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente tous les noms d'occurrence des occurrences Button dans le scénario actuel d'un fichier SWF. for (i in this) { if (this[i] instanceof Button) { trace(this[i]._name); } } onDragOut (gestionnaire Button.onDragOut) onDragOut = function() {} Invoqué lorsque vous cliquez sur le bouton à l'aide du bouton de la souris, puis faites glisser le pointeur hors du bouton. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant démontre comment vous pouvez exécuter des instructions lorsque le pointeur ne se trouve plus sur un bouton. Créez un bouton intitulé my_btn sur la scène et entrez le code ActionScript suivant dans une image du scénario : my_btn.onDragOut = function() { Button 375 trace("onDragOut: "+this._name); }; my_btn.onDragOver = function() { trace("onDragOver: "+this._name); }; onDragOver (gestionnaire Button.onDragOver) onDragOver = function() {} Invoqué lorsque l'utilisateur appuie sur le bouton de la souris, le fait glisser hors du bouton, puis sur le bouton. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant définit une fonction pour le gestionnaire onDragOver qui envoie une instruction trace() au panneau de sortie. Créez un bouton intitulé my_btn sur la scène et entrez le code ActionScript suivant sur le scénario : my_btn.onDragOut = function() { trace("onDragOut: "+this._name); }; my_btn.onDragOver = function() { trace("onDragOver: "+this._name); }; Lorsque vous testez le fichier SWF, éloignez le pointeur de l'occurrence de bouton en le faisant glisser. Ensuite, tout en maintenant le bouton de la souris enfoncé, faites-le glisser vers l'occurrence de bouton à nouveau. Vous pouvez constater que le panneau de sortie suit vos mouvements. Voir également onDragOut (gestionnaire Button.onDragOut) onKeyDown (gestionnaire Button.onKeyDown) onKeyDown = function() {} Invoqué lorsqu'un bouton reçoit le focus clavier et lorsque l'utilisateur appuie sur une touche. Le gestionnaire d'événements onKeyDown est appelé sans paramètre. Vous pouvez utiliser les méthodes Key.getAscii() et Key.getCode() afin d'identifier la touche sur laquelle l'utilisateur a appuyé. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. 376 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Dans l'exemple suivant, une fonction qui envoie du texte vers le panneau de sortie est définie pour le gestionnaire onKeyDown. Créez un bouton intitulé my_btn sur la scène et entrez le code ActionScript suivant dans une image du scénario : my_btn.onKeyDown = function() { trace("onKeyDown: "+this._name+" (Key: "+getKeyPressed()+")"); }; function getKeyPressed():String { var theKey:String; switch (Key.getAscii()) { case Key.BACKSPACE : theKey = "BACKSPACE"; break; case Key.SPACE : theKey = "SPACE"; break; default : theKey = chr(Key.getAscii()); } return theKey; } Pointez sur Contrôle > Tester l'animation pour tester le fichier SWF. Assurez-vous de sélectionner Contrôle > Désactivez les raccourcis clavier dans l'environnement de test. Ensuite, appuyez sur la touche Tab jusqu'à ce que le bouton ait le focus (un rectangle jaune entoure l'occurrence my_btn) et commencez à appuyer sur les touches de votre clavier. Lorsque vous appuyez sur les touches, elles s'affichent dans le panneau de sortie. Voir également onKeyUp (gestionnaire Button.onKeyUp), getAscii (méthode Key.getAscii), getCode (méthode Key.getCode) onKeyUp (gestionnaire Button.onKeyUp) onKeyUp = function() {} Invoqué lorsqu'un bouton reçoit le focus d'entrée et lorsque l'utilisateur relâche une touche. Le gestionnaire d'événements onKeyUp est appelé sans paramètre. Vous pouvez utiliser les méthodes Key.getAscii() et Key.getCode() afin d'identifier la touche sur laquelle l'utilisateur a appuyé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Button 377 Exemple Dans l'exemple suivant, une fonction qui envoie du texte vers le panneau de sortie est définie pour le gestionnaire onKeyDown handler. Créez un bouton intitulé my_btn sur la scène et entrez le code ActionScript suivant dans une image du scénario : my_btn.onKeyDown = function() { trace("onKeyDown: "+this._name+" (Key: "+getKeyPressed()+")"); }; my_btn.onKeyUp = function() { trace("onKeyUp: "+this._name+" (Key: "+getKeyPressed()+")"); }; function getKeyPressed():String { var theKey:String; switch (Key.getAscii()) { case Key.BACKSPACE : theKey = "BACKSPACE"; break; case Key.SPACE : theKey = "SPACE"; break; default : theKey = chr(Key.getAscii()); } return theKey; } Appuyez sur Ctrl+Entrée pour tester le fichier SWF. Assurez-vous de sélectionner Contrôle > Désactivez les raccourcis clavier dans l'environnement de test. Ensuite, appuyez sur la touche Tab jusqu'à ce que le bouton ait le focus (un rectangle jaune entoure l'occurrence my_btn) et commencez à appuyer sur les touches de votre clavier. Lorsque vous appuyez sur les touches, elles s'affichent dans le panneau de sortie. Voir également onKeyDown (gestionnaire Button.onKeyDown), getAscii (méthode Key.getAscii), getCode (méthode Key.getCode) onKillFocus (gestionnaire Button.onKillFocus) onKillFocus = function(newFocus:Object) {} Invoqué lorsqu'un bouton perd le focus clavier. La gestionnaire onKillFocus reçoit un paramètre, newFocus : il s'agit d'un objet représentant le nouvel objet recevant le focus. Si aucun objet ne reçoit le focus, newFocus contient la valeur null. Disponibilité : ActionScript 1.0 ; Flash Player 6 378 Chapitre 2: Classes ActionScript Paramètres newFocus:Object - Objet recevant le focus. Exemple L'exemple suivant démontre comment exécuter des instructions lorsqu'un bouton perd le focus. Créez une occurrence de bouton intitulée my_btn sur la scène et ajoutez le code ActionScript suivant à l'image 1 du scénario : this.createTextField("output_txt", this.getNextHighestDepth(), 0, 0, 300, 200); output_txt.wordWrap = true; output_txt.multiline = true; output_txt.border = true; my_btn.onKillFocus = function() { output_txt.text = "onKillFocus: "+this._name+newline+output_txt.text; }; Testez le fichier SWF dans une fenêtre de navigateur et essayez d'utiliser la touche Tab pour faire défiler les éléments dans la fenêtre. Lorsque l'occurrence de bouton perd le focus, le texte est envoyé vers le champ de texte output_txt. La méthode MovieClip.getNextHighestDepth() utilisée dans cet exemple requiert Flash Player 7 ou version ultérieure. Si votre fichier SWF comprend un composant de version 2, utilisez la classe DepthManager avec composants version 2 plutôt que la méthode MovieClip.getNextHighestDepth() onPress (gestionnaire Button.onPress) onPress = function() {} Invoqué lorsqu'un bouton est enfoncé. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Dans l'exemple suivant, une fonction envoyant une instruction trace() vers le panneau de sortie est définie pour le gestionnaire onPress : my_btn.onPress = function () { trace ("onPress called"); }; Button 379 onRelease (gestionnaire Button.onRelease) onRelease = function() {} Invoqué lorsqu'un bouton est relâché. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Dans l'exemple suivant, une fonction envoyant une instruction trace() vers le panneau de sortie est définie pour le gestionnaire onRelease : my_btn.onRelease = function () { trace ("onRelease called"); }; onReleaseOutside (gestionnaire Button.onReleaseOutside) onReleaseOutside = function() {} Invoqué lorsque l'utilisateur relâche la souris tandis que le pointeur se trouve hors du bouton après avoir appuyé sur celui-ci lorsque le pointeur se trouvait à l'intérieur du bouton. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Dans l'exemple suivant, une fonction envoyant une instruction trace() vers le panneau de sortie est définie pour le gestionnaire onReleaseOutside : my_btn.onReleaseOutside = function () { trace ("onReleaseOutside called"); }; onRollOut (gestionnaire Button.onRollOut) onRollOut = function() {} Invoqué lorsque le pointeur se déplace hors d'une zone du bouton. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. Disponibilité : ActionScript 1.0 ; Flash Player 6 380 Chapitre 2: Classes ActionScript Exemple Dans l'exemple suivant, une fonction envoyant une instruction trace() vers le panneau de sortie est définie pour le gestionnaire onRollOut : my_btn.onRollOut = function () { trace ("onRollOut called"); }; onRollOver (gestionnaire Button.onRollOver) onRollOver = function() {} Invoqué lorsque le pointeur se déplace sur une zone du bouton. Vous devez définir une fonction qui s'exécute lorsque le gestionnaire d'événements est appelé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Dans l'exemple suivant, une fonction envoyant une instruction trace() vers le panneau de sortie est définie pour le gestionnaire onRollOver : my_btn.onRollOver = function () { trace ("onRollOver called"); }; onSetFocus (gestionnaire Button.onSetFocus) onSetFocus = function(oldFocus:Object) {} Invoqué lorsqu'un bouton reçoit le focus clavier. Le paramètre oldFocus est l'objet qui perd le focus. Par exemple, si l'utilisateur appuie sur la touche Tab pour déplacer le focus d'entrée d'un champ de texte vers un bouton, le paramètre oldFocus contient l'occurrence de champ de texte. Si aucun objet n'avait précédemment reçu le focus, le paramètre oldFocus contient une valeur null. Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres oldFocus:Object - Objet perdant le focus du clavier. Button 381 Exemple L'exemple suivant démontre comment vous pouvez exécuter des instructions lorsque l'utilisateur d'un fichier SWF déplace le focus d'un bouton vers un autre. Créez deux boutons, btn1_btn et btn2_btn, puis entrez le code ActionScript suivant dans l'image 1 du scénario : Selection.setFocus(btn1_btn); trace(Selection.getFocus()); btn2_btn.onSetFocus = function(oldFocus) { trace(oldFocus._name + "lost focus"); }; Testez le fichier SWF en appuyant sur Ctrl+Entrée. Assurez-vous de sélectionner Contrôle > Désactivez les raccourcis clavier si vous ne l'avez pas déjà fait. Le focus est défini sur btn1_btn. Lorsque btn1_btn perd le focus au détriment de btn2_btn, les informations s'affichent dans le panneau de sortie. _parent (propriété Button._parent) public _parent : MovieClip Référence au clip ou à l'objet contenant le clip ou l'objet actuel. L'objet actuel est l'objet qui contient le code ActionScript faisant référence à _parent. Utilisez _parent pour spécifier un chemin relatif vers les clips ou les objets situés au-dessus du clip ou de l'objet actuel. Vous pouvez utiliser _parent pour remonter de plusieurs niveaux dans l'arborescence de la liste d'affichage, comme dans l'exemple suivant : this._parent._parent._alpha = 20; Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Dans l'exemple suivant, un bouton intitulé my_btn est placé dans un clip intitulé my_mc. Le code suivant montre comment utiliser la propriété _parent pour obtenir une référence au clip my_mc : trace(my_mc.my_btn._parent); Le panneau de sortie affiche le code suivant : _level0.my_mc Voir également _parent (propriété MovieClip._parent), _target (propriété MovieClip._target), _root, propriété 382 Chapitre 2: Classes ActionScript _quality (propriété Button._quality) public _quality : String Propriété (globale) ; définit ou récupère la qualité de rendu utilisée pour un fichier SWF. Les polices de périphérique sont toujours aliasées, ce qui implique qu'elles ne sont pas affectées par la propriété _quality. La propriété _quality peut être définie sur les valeurs suivantes : ■ "LOW Qualité de rendu inférieure. Les images ne sont pas anti-aliasées et les bitmaps ne sont pas lissées. ■ "MEDIUM Qualité de rendu moyenne. Les images sont anti-aliasées selon une grille de 2 x 2 pixels, mais les bitmaps ne sont pas lissées. Ce niveau de qualité convient aux animations qui ne contiennent pas de texte. ■ "HIGH Qualité de rendu supérieure. Les images sont anti-aliasées en appliquant une grille de 4 x 4 pixels et les bitmaps sont lissées lorsque l'animation est statique. Il s'agit du paramètre de qualité de rendu par défaut de Flash. ■ "BEST Très haute qualité de rendu. Les graphiques sont anti-aliasés selon une grille de 4 x 4 pixels et les bitmaps sont toujours lissés. Remarque : Bien que vous puissiez spécifier cette propriété pour un objet Button, il s'agit en fait d'une propriété globale : il vous suffit donc de définir sa valeur sur _quality. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Cet exemple définit la qualité de rendu d'un bouton intitulé my_btn sur LOW : my_btn._quality = "LOW"; _rotation (propriété Button._rotation) public _rotation : Number La rotation du bouton, en degrés, à partir de son orientation d'origine. Les valeurs comprises entre 0 et 180 représentent la rotation en sens horaire ; les valeurs comprises entre 0 et -180 représentent la rotation en sens anti-horaire. Les valeurs hors de cette plage sont ajoutées ou soustraites de 360 pour obtenir une valeur comprise dans la plage. Par exemple, l'instruction my_btn._rotation = 450 est identique à my_btn._rotation = 90. Disponibilité : ActionScript 1.0 ; Flash Player 6 Button 383 Exemple L'exemple suivant fait pivoter deux boutons sur la scène. Créez deux boutons intitulés control_btn et my_btn sur la scène. Assurez-vous que my_btn n'est pas parfaitement arrondi afin que vous puissiez le voir pivoter. Entrez ensuite le code ActionScript suivant dans l'image 1 du scénario : var control_btn:Button; var my_btn:Button; control_btn.onRelease = function() { my_btn._rotation += 10; }; Créez maintenant un autre bouton intitulé myOther_btn sur la scène, en veillant à ce qu'il ne soit pas parfaitement arrondi (afin que vous puissiez le voir pivoter). Entrez le code ActionScript suivant dans l'image 1 du scénario. var myOther_btn:Button; this.createEmptyMovieClip("rotater_mc", this.getNextHighestDepth()); rotater_mc.onEnterFrame = function() { myOther_btn._rotation += 2; }; La méthode MovieClip.getNextHighestDepth() utilisée dans cet exemple requiert Flash Player 7 ou version ultérieure. Si votre fichier SWF comprend un composant de version 2, utilisez la classe DepthManager avec composants version 2 plutôt que la méthode MovieClip.getNextHighestDepth() Voir également _rotation (propriété MovieClip._rotation), _rotation (propriété TextField._rotation) scale9Grid (propriété Button.scale9Grid) public scale9Grid : Rectangle La zone rectangulaire qui définit les neuf zones de redimensionnement du bouton. Si la valeur est définie sur null, le bouton tout entier est alors dimensionné normalement lorsqu'une transformation par redimensionnement est appliquée. Lorsque vous définissez une propriété scale9Grid pour un bouton, le bouton est divisé dans une grille comportant neuf zones, en fonction du rectangle scale9Grid, qui définit le centre de la grille. La grille est constituée des huit autres zones suivantes : ■ La zone située dans le coin supérieur gauche, en dehors du rectangle. ■ La zone située au-dessus du rectangle ■ La zone située dans le coin supérieur droit, en dehors du rectangle. 384 Chapitre 2: Classes ActionScript ■ La zone située à gauche du rectangle ■ La zone située à droite du rectangle ■ La zone située dans le coin inférieur gauche, en dehors du rectangle. ■ La zone située en dessous du rectangle ■ La zone située dans le coin inférieur droit, en dehors du rectangle. Les huit zones entourant la partie centrale (définie par le rectangle) peuvent être conçues comme un cadre qui bénéficie de règles spécifiques de redimensionnement. Lorsque la propriété scale9Grid est définie et qu'un bouton est redimensionné, la totalité du texte et les dégradés sont dimensionnés normalement ; toutefois, les règles suivantes s'appliquent pour les autres types d'objets : ■ Le contenu de la zone centrale est redimensionné normalement. ■ Le contenu apparaissant dans les coins n'est pas redimensionné. ■ Le contenu apparaissant dans les zones supérieures et inférieures est redimensionné horizontalement uniquement. Le contenu apparaissant dans les zones de gauche et de droite est redimensionné verticalement uniquement. Si vous faites pivoter un bouton, tout redimensionnement effectué ultérieurement est normal et la propriété scale9Grid est ignorée. L'un des modes d'utilisation de la propriété scale9Grid le plus répandu consiste à configurer un bouton dont les contours conservent la même largeur lorsque celui-ci est redimensionné. Vous obtiendrez davantage d'informations, y compris des illustrations et un exemple s'y rapportant en consultant MovieClip.scale9Grid. Disponibilité : ActionScript 1.0 ; Flash Player 8 Voir également Rectangle (flash.geom.Rectangle), scale9Grid (propriété MovieClip.scale9Grid) _soundbuftime (propriété Button._soundbuftime) public _soundbuftime : Number Propriété qui spécifie le nombre de secondes pendant lequel les sons sont chargés en mémoire tampon avant d'être diffusés en continu. Remarque : Bien que vous puissiez spécifier cette propriété pour un objet Button, il s'agit en fait d'une propriété globale qui s'applique à tous les sons chargés : il vous suffit donc de définir sa valeur sur _soundbuftime. La définition de cette propriété pour un objet Button permet de définir la propriété globale. Button 385 Pour plus d'informations et un exemple, consultez la propriété globale _soundbuftime. Disponibilité : ActionScript 1.0 ; Flash Player 6 Voir également _soundbuftime, propriété tabEnabled (propriété Button.tabEnabled) public tabEnabled : Boolean Spécifie si my_btn est inclus dans l'ordre de tabulation automatique. La valeur par défaut est undefined. Si la propriété tabEnabled est définie sur undefined ou true, l'objet est inclus dans l'ordre de tabulation automatique. Si la propriété tabIndex est également définie sur une valeur, l'objet est également inclus dans l'ordre de tabulation personnalisé. Si la propriété tabEnabled est définie sur false, l'objet n'est pas inclus dans l'ordre de tabulation automatique ou personnalisé, même si la propriété tabIndex est définie. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Le code ActionScript suivant est utilisé pour définir la propriété tabEnabled sur false pour l'un des quatre boutons. Cependant, les quatre boutons (one_btn, two_btn, three_btn, et four_btn) sont placés dans un ordre de tabulation personnalisé à l'aide de tabIndex. Bien que la propriété tabIndex soit définie pour le bouton three_btn, ce dernier n'est pas inclus dans un ordre de tabulation personnalisé ou automatique car la propriété tabEnabled est définie sur false pour cette occurrence. Pour définir l'ordre de tabulation des quatre boutons, ajoutez le code ActionScript suivant à l'image 1 du scénario : three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4; Veillez à désactiver les raccourcis clavier lorsque vous testez le fichier SWF. Pour ce faire, il vous suffit de pointer sur Contrôle > Désactiver les raccourcis clavier dans l'environnement de test. Voir également tabIndex (propriété Button.tabIndex), tabEnabled (propriété MovieClip.tabEnabled), tabEnabled (propriété TextField.tabEnabled) 386 Chapitre 2: Classes ActionScript tabIndex (propriété Button.tabIndex) public tabIndex : Number Permet de personnaliser l'ordre de tabulation des objets dans un fichier SWF. Vous pouvez définir la propriété tabIndex sur un bouton, un clip ou une occurrence de champ texte ; sa valeur par défaut est undefined. Si un objet actuellement affiché dans le fichier SWF contient une propriété tabIndex, l'ordre de tabulation automatique est désactivé : l'ordre de tabulation est alors calculé à partir des propriétés tabIndex des objets contenus dans le fichier SWF. L'ordre de tabulation personnalisé inclut uniquement des objets dotés de propriétés tabIndex. La propriété tabIndex peut être un entier non négatif. Les objets sont triés selon leurs propriétés tabIndex, par ordre croissant. Un objet possédant une valeur tabIndex de 1 précède un objet ayant une valeur tabIndex de 2. Si deux objets ont la même valeur tabIndex, celui qui précède l'autre dans l'ordre de tabulation est undefined (non défini). L'ordre de tabulation personnalisé défini par la propriété tabIndex est plat. Cela signifie qu'on ne prête aucune attention aux relations hiérarchiques des objets contenus dans le fichier SWF. Tous les objets du fichier SWF dotés de propriétés tabIndex sont placés dans l'ordre de tabulation, qui est déterminé par l'ordre des valeurs tabIndex. Si deux objets ont la même valeur tabIndex, celui qui apparaît en premier est undefined(non défini). Il est recommandé de ne pas affecter la même valeur tabIndex à plusieurs objets. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Le code ActionScript suivant est utilisé pour définir la propriété tabEnabled sur false pour l'un des quatre boutons. Cependant, les quatre boutons (one_btn, two_btn, three_btn, et four_btn) sont placés dans un ordre de tabulation personnalisé à l'aide de tabIndex. Bien que la propriété tabIndex soit définie pour le bouton three_btn, ce dernier n'est pas inclus dans un ordre de tabulation personnalisé ou automatique car la propriété tabEnabled est définie sur false pour cette occurrence. Pour définir l'ordre de tabulation des quatre boutons, ajoutez le code ActionScript suivant à l'image 1 du scénario : three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4; Veillez à désactiver les raccourcis clavier lorsque vous testez le fichier SWF. Pour ce faire, il vous suffit de pointer sur Contrôle > Désactiver les raccourcis clavier dans l'environnement de test. Button 387 Voir également tabEnabled (propriété Button.tabEnabled), tabChildren (propriété MovieClip.tabChildren), tabEnabled (propriété MovieClip.tabEnabled), tabIndex (propriété MovieClip.tabIndex), tabIndex (propriété TextField.tabIndex) _target (propriété Button._target) public _target : String [lecture seule] Renvoie le chemin cible de l'occurrence de bouton spécifiée par my_btn. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Ajoutez une occurrence de bouton intitulée my_btn sur la scène, puis ajoutez le code suivant à l'image 1 du scénario : trace(my_btn._target); //displays /my_btn Sélectionnez my_btn et convertissez-le en clip. Attribuez au nouveau clip un nom d'occurrence my_mc. Supprimez le code ActionScript existant dans l'image 1 du scénario et remplacez-le par le code suivant : my_mc.my_btn.onRelease = function(){ trace(this._target); //displays /my_mc/my_btn }; Pour convertir la notation avec barre oblique en notation avec point, modifiez l'exemple de code précédent comme suit : my_mc.my_btn.onRelease = function(){ trace(eval(this._target)); //displays _level0.my_mc.my_btn }; Ceci vous permet d'accéder aux méthodes et paramètres de l'objet cible, tels que : my_mc.my_btn.onRelease = function(){ var target_btn:Button = eval(this._target); trace(target_btn._name); //displays my_btn }; Voir également _target (propriété MovieClip._target) 388 Chapitre 2: Classes ActionScript trackAsMenu (propriété Button.trackAsMenu) public trackAsMenu : Boolean Valeur booléenne indiquant si d'autres boutons ou clips peuvent recevoir des événements de relâchement de souris. Si vous faites glisser un bouton, puis relâchez un deuxième bouton, l'événement onRelease est enregistré pour le deuxième bouton. Cette opération vous permet de créer des menus. Vous pouvez définir la propriété trackAsMenu sur n'importe quel bouton ou objet de clip. Si la propriété trackAsMenu n'a pas été définie, la valeur du comportement par défaut est false. Vous pouvez modifier la propriété trackAsMenu à tout moment ; le bouton modifié accepte immédiatement le nouveau comportement. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant démontre comment identifier deux boutons en tant que menu. Placez deux occurrences de bouton intitulées one_btn et two_btn sur la scène. Entrez le code ActionScript suivant dans le scénario : var one_btn:Button; var two_btn:Button; one_btn.trackAsMenu = true; two_btn.trackAsMenu = true one_btn.onRelease = function() { trace("clicked one_btn"); }; two_btn.onRelease = function() { trace("clicked two_btn"); }; Testez le fichier SWF. Pour ce faire, il vous suffit de cliquer sur one_btn dans la scène, en maintenant le bouton de la souris enfoncé, puis de le relâcher sur two_btn. Essayez ensuite de commenter les deux lignes du code ActionScript contenant trackAsMenu et testez à nouveau le fichier SWF pour voir la différence de comportement du bouton. Voir également trackAsMenu (propriété MovieClip.trackAsMenu) _url (propriété Button._url) public _url : String [lecture seule] Récupère l'URL du fichier SWF qui a créé le bouton. Disponibilité : ActionScript 1.0 ; Flash Player 6 Button 389 Exemple Créez deux occurrences de bouton intitulées one_btn et two_btn sur la scène. Entrez le code ActionScript suivant dans l'image 1 du scénario : var one_btn:Button; var two_btn:Button; this.createTextField("output_txt", 999, 0, 0, 100, 22); output_txt.autoSize = true; one_btn.onRelease = function() { trace("clicked one_btn"); trace(this._url); }; two_btn.onRelease = function() { trace("clicked "+this._name); var url_array:Array = this._url.split("/"); var my_str:String = String(url_array.pop()); output_txt.text = unescape(my_str); }; Lorsque vous cliquez sur chaque bouton, le nom du fichier SWF contenant les boutons s'affiche dans le panneau de sortie. useHandCursor (propriété Button.useHandCursor) public useHandCursor : Boolean Valeur booléenne qui, lorsqu'elle est définie sur true (par défaut), indique si un curseur en forme de main s'affiche lorsque la souris survole un bouton. Si cette propriété est définie sur false, le pointeur flèche est utilisé. Vous pouvez modifier la propriété useHandCursor à tout moment ; le bouton modifié accepte immédiatement le nouveau comportement du curseur. La propriété useHandCursor peut être extraite d'un objet prototype. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Créez deux boutons portant les noms d'occurrence myBtn1_btn et myBtn2_btn sur la scène. Entrez le code ActionScript suivant dans l'image 1 du scénario : myBtn1_btn.useHandCursor = false; myBtn1_btn.onRelease = buttonClick; myBtn2_btn.onRelease = buttonClick; function buttonClick() { trace(this._name); } 390 Chapitre 2: Classes ActionScript Lorsque le curseur de la souris survole myBtn1_btn et clique sur celui-ci, aucun curseur en forme de main n'apparaît. En revanche, le curseur en forme de main apparaît lorsque le bouton survole myBtn2_btn et clique sur celui-ci. _visible (propriété Button._visible) public _visible : Boolean Une valeur booléenne indiquant si le bouton spécifié par my_btn est visible. Les boutons qui ne sont pas visibles (propriété _visible définie sur false) sont désactivés. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Créez deux boutons portant les noms d'occurrence myBtn1_btn et myBtn2_btn sur la scène. Entrez le code ActionScript suivant dans l'image 1 du scénario : myBtn1_btn.onRelease = function() { this._visible = false; trace("clicked "+this._name); }; myBtn2_btn.onRelease = function() { this._alpha = 0; trace("clicked "+this._name); }; Vous remarquez que vous pouvez toujours cliquer sur myBtn2_btn lorsque la valeur alpha est définie sur 0. Voir également _visible (propriété MovieClip._visible), _visible (propriété TextField._visible) _width (propriété Button._width) public _width : Number La largeur du bouton, en pixels. Disponibilité : ActionScript 1.0 ; Flash Player 6 Button 391 Exemple L'exemple suivant augmente la valeur de la propriété width d'un bouton intitulé my_btn et affiche la largeur dans le panneau de sortie. Entrez le code ActionScript suivant dans l'image 1 du scénario : my_btn.onRelease = function() { trace(this._width); this._width ~= 1.1; }; Voir également _width (propriété MovieClip._width) _x (propriété Button._x) public _x : Number Un entier qui définit la coordonnée x d'un bouton par rapport aux coordonnées locales du clip parent. Si un bouton se trouve sur le scénario principal, son système de coordonnées se réfère alors au coin supérieur gauche de la scène : (0, 0). Si le bouton est imbriqué dans un clip subissant des transformations, le bouton se trouve dans le système de coordonnées local du clip qui l'encadre. Ainsi, dans le cas d'un clip qui a effectué une rotation à 90 degrés en sens anti-horaire, le bouton imbriqué hérite d'un système de coordonnées ayant effectué une rotation à 90 degrés en sens anti-horaire. Les coordonnées du bouton renvoient à la position du point d'alignement. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant définit les coordonnées de my_btn sur 0 sur la scène. Créez un bouton intitulé my_btn et entrez le code ActionScript suivant dans l'image 1 du scénario : my_btn._x = 0; my_btn._y = 0; Voir également _xscale (propriété Button._xscale), _y (propriété Button._y), _yscale (propriété Button._yscale) 392 Chapitre 2: Classes ActionScript _xmouse (propriété Button._xmouse) public _xmouse : Number [lecture seule] Renvoie la coordonnée x de la position de la souris par rapport au bouton. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant affiche la position xmouse pour la scène et un bouton intitulé my_btn placé sur celle-ci. Entrez le code ActionScript suivant dans l'image 1 du scénario : this.createTextField("mouse_txt", 999, 5, 5, 150, 40); mouse_txt.html = true; mouse_txt.wordWrap = true; mouse_txt.border = true; mouse_txt.autoSize = true; mouse_txt.selectable = false; // var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var table_str:String = "<textformat tabstops='[50,100]'>"; table_str += "<b>Stage</b>\t"+"x:"+_xmouse+"\t"+"y:"+_ymouse+newline; table_str += "<b>Button</ b>\t"+"x:"+my_btn._xmouse+"\t"+"y:"+my_btn._ymouse+newline; table_str += "</textformat>"; mouse_txt.htmlText = table_str; }; Mouse.addListener(mouseListener); Voir également _ymouse (propriété Button._ymouse) _xscale (propriété Button._xscale) public _xscale : Number Le redimensionnement horizontal du bouton tel qu'il est appliqué à partir du point d'alignement du bouton, exprimé en pourcentage. Le point d'alignement par défaut est (0,0). Le redimensionnement du système de coordonnées local affecte les paramètres des propriétés _x et _y, définis en pixels. Par exemple, si le clip parent est redimensionné à 50 %, le paramètrage de la propriété _x déplace un objet sur le bouton selon un nombre de pixels réduit de moitié par rapport à celui qui serait appliqué si le fichier SWF était défini sur 100 %. Disponibilité : ActionScript 1.0 ; Flash Player 6 Button 393 Exemple L'exemple suivant redemandions un bouton intitulé m_btn. Lorsque vous cliquez sur le bouton et le relâchez, sa taille augmente de 10 % sur l'axe x et y. Entrez le code ActionScript suivant dans l'image 1 du scénario : my_btn.onRelease = function(){ this._xscale ~= 1.1; this._yscale ~= 1.1; }; Voir également _x (propriété Button._x), _y (propriété Button._y), _yscale (propriété Button._yscale) _y (propriété Button._y) public _y : Number La coordonnée y du bouton par rapport aux coordonnées locales du clip parent. Si un bouton se trouve dans le scénario principal, son système de coordonnées se réfère au coin supérieur gauche de la scène : (0, 0). Si le bouton est imbriqué dans un autre clip subissant des transformations, le bouton se trouve dans le système de coordonnées local du clip qui l'encadre. Ainsi, dans le cas d'un clip qui a effectué une rotation à 90 degrés en sens antihoraire, le bouton imbriqué hérite d'un système de coordonnées ayant effectué une rotation à 90 degrés en sens anti-horaire. Les coordonnées du bouton renvoient à la position du point d'alignement. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant définit les coordonnées de my_btn sur 0 sur la scène. Créez un bouton intitulé my_btn et entrez le code ActionScript suivant dans l'image 1 du scénario : my_btn._x = 0; my_btn._y = 0; Voir également _x (propriété Button._x), _xscale (propriété Button._xscale), _yscale (propriété Button._yscale) 394 Chapitre 2: Classes ActionScript _ymouse (propriété Button._ymouse) public _ymouse : Number [lecture seule] Indique la coordonnée y de la position de la souris par rapport au bouton. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant affiche la position ymouse pour la scène et un bouton intitulé my_btn placé sur celle-ci. Entrez le code ActionScript suivant dans l'image 1 du scénario : this.createTextField("mouse_txt", 999, 5, 5, 150, 40); mouse_txt.html = true; mouse_txt.wordWrap = true; mouse_txt.border = true; mouse_txt.autoSize = true; mouse_txt.selectable = false; // var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var table_str:String = "<textformat tabstops='[50,100]'>"; table_str += "<b>Stage</b>\t"+"x:"+_xmouse+"\t"+"y:"+_ymouse+newline; table_str += "<b>Button</ b>\t"+"x:"+my_btn._xmouse+"\t"+"y:"+my_btn._ymouse+newline; table_str += "</textformat>"; mouse_txt.htmlText = table_str; }; Mouse.addListener(mouseListener); Voir également _xmouse (propriété Button._xmouse) _yscale (propriété Button._yscale) public _yscale : Number Le redimensionnement vertical du bouton tel qu'il est appliqué à partir du point d'alignement du bouton, exprimé en pourcentage. Le point d'alignement par défaut est (0,0). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant redimensionne un bouton intitulé my_btn. Lorsque vous cliquez sur le bouton et le relâchez, sa taille augmente de 10 % sur l'axe x et y. Entrez le code ActionScript suivant dans l'image 1 du scénario : my_btn.onRelease = function(){ Button 395 this._xscale ~= 1.1; this._yscale ~ 1.1; }; Voir également _y (propriété Button._y), _x (propriété Button._x), _xscale (propriété Button._xscale) Camera Object | +-Camera public class Camera extends Object La classe Camera est principalement dédiée à Macromedia Flash Communication Server, mais peut être utilisée de façon restreinte sans le serveur. La classe Camera vous permet de capturer de la vidéo à partir d'une caméra vidéo reliée à l'ordinateur qui exécute Macromedia Flash Player, par exemple, pour surveiller une vidéo à partir d'une caméra Web reliée à votre système local. (Flash est doté de fonctionnalités audio similaires ; pour plus d'informations, consultez l'entrée de la classe Microphone.) Avertissement : Lorsqu'un fichier SWF tente d'accéder à la caméra renvoyée par Camera.get(), Flash Player affiche une boîte de dialogue Confidentialité permettant à l'utilisateur d'autoriser ou de refuser l'accès à la caméra. (Assurez-vous que la taille de votre scène est d'au moins 215 x 138 pixels pour les exemples de la classe Camera ; il s'agit de la taille minimale requise par Flash pour afficher la boîte de dialogue.) Les utilisateurs finaux et administratifs peuvent également désactiver l'accès à la caméra emplacement par emplacement ou de manière globale. Pour créer ou référencer un objet Camera, utilisez la méthode Camera.get(). Disponibilité : ActionScript 1.0 ; Flash Player 6 396 Chapitre 2: Classes ActionScript Résumé des propriétés Modificateurs Propriété Description activityLevel:Number Une valeur numérique spécifiant la quantité de [lecture seule] mouvement détectée par la caméra. bandwidth:Number Un entier spécifiant la quantité maximale de bande passante pouvant être utilisée par la vidéo sortante actuelle, en octets. [lecture seule] currentFps:Number [lecture seule] fps:Number [lecture Cadence à laquelle la caméra capture des données, en images par seconde. seule] Cadence maximale à laquelle vous voulez que la caméra capture des données, en images par seconde. height:Number La hauteur de capture actuelle, en pixels. [lecture seule] index:Number [lecture seule] motionLevel:Number [lecture seule] Entier de base zéro spécifiant l'indice de la caméra, tel qu'indiqué dans le tableau renvoyé par Camera.names. Valeur numérique spécifiant l'intensité de mouvement requise pour appeler Camera.onActivity(true). motionTimeOut:Number Nombre de millisecondes entre le moment où la [lecture seule] caméra arrête la détection du mouvement et le moment où Camera.onActivity (false) est appelé. muted:Boolean Valeur booléenne spécifiant si l'utilisateur a refusé l'accès à la caméra (true) ou autorisé l'accès (false) dans le panneau Paramètres de contrôle de Flash Player. [lecture seule] name:String [lecture seule] static names:Array [lecture seule] Chaîne spécifiant le nom de la caméra actuelle, tel que renvoyé par le matériel. Récupère un tableau de chaînes reflétant les noms de toutes les caméras disponibles sans afficher le panneau Paramètres de contrôle de Flash Player. [lecture seule] Entier spécifiant le niveau de qualité d'image requis, tel que déterminé par le taux de compression appliqué à chaque image vidéo. width:Number [lecture La largeur de capture actuelle, en pixels. quality:Number seule] Camera 397 Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des événements Evénement Description onActivity = Gestionnaire d'événements : invoqué lorsque la caméra commence ou function(active: arrête la détection du mouvement. Boolean) {} onStatus = Gestionnaire d'événements : invoqué lorsque l'utilisateur autorise ou function(infoObj refuse l'accès à la caméra. ect:Object) {} Résumé de la méthode Modificateurs Signature Description static Renvoie une référence à un objet Camera pour capturer de la vidéo. get([index:Number]) : Camera setMode([width:Numbe Définit le mode de capture de la caméra sur le mode r], [height:Number], natif qui remplit le mieux les conditions requises. [fps:Number], [favorArea:Boolean]) : Void setMotionLevel([moti Spécifie la quantité de mouvement requise pour onLevel:Number], appeler Camera.onActivity(true). [timeOut:Number]) : Void setQuality([bandwidt Définit le montant maximum de bande passante par h:Number], [quality:Number]) : Void 398 Chapitre 2: Classes ActionScript seconde ou la qualité d'image requise des données vidéo sortantes actuelles. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) activityLevel (propriété Camera.activityLevel) public activityLevel : Number [lecture seule] Une valeur numérique spécifiant la quantité de mouvement détectée par la caméra. Les valeurs sont comprises entre 0 (aucun mouvement n'est détecté) et 100 (une grande intensité de mouvement est détectée). La valeur de cette propriété peut vous aider à déterminer s'il est nécessaire de transmettre un paramètre à Camera.setMotionLevel(). Si la caméra est disponible mais n'est pas encore utilisée car Video.attachVideo() n'a pas été appelé, cette propriété est définie sur -1. Si vous effectuez uniquement l'émission d'une vidéo non compressée en local, cette propriété est définie uniquement si vous avez affecté une fonction au gestionnaire d'événements Camera.onActivity. Dans le cas contraire, elle est non définie. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Cet exemple indique la quantité de mouvement détectée par la caméra à l'aide de la propriété et d'une occurrence ProgressBar. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence de composant ProgressBar intitulée activity_pb à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : activityLevel // video instance on the Stage. var my_video:Video; var activity_pb:mx.controls.ProgressBar; var my_cam:Camera = Camera.get(); my_video.attachVideo(my_cam); activity_pb.mode = "manual"; activity_pb.label = "Activity %3%%"; this.onEnterFrame = function() { activity_pb.setProgress(my_cam.activityLevel, 100); }; Camera 399 my_cam.onActivity = function(isActive:Boolean) { var themeColor:String = (isActive) ? "haloGreen" : "haloOrange"; activity_pb.setStyle("themeColor", themeColor); }; Voir également motionLevel (propriété Camera.motionLevel), setMotionLevel (méthode Camera.setMotionLevel ) bandwidth (propriété Camera.bandwidth) public bandwidth : Number [lecture seule] Un entier spécifiant la quantité maximale de bande passante pouvant être utilisée par la vidéo sortante actuelle, en octets. Une valeur de 0 signifie que la vidéo Flash peut utiliser autant de bande passante que nécessaire pour conserver la qualité d'image voulue. Pour configurer cette propriété, appelez Camera.setQuality(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant modifie la quantité maximale de bande passante utilisée par la caméra. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence de composant NumericStepper intitulée bandwidth_nstep à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var bandwidth_nstep:mx.controls.NumericStepper; var my_video:Video; var my_cam:Camera = Camera.get(); my_video.attachVideo(my_cam); this.createTextField("bandwidth_txt", this.getNextHighestDepth(), 0, 0, 100, 22); bandwidth_txt.autoSize = true; this.onEnterFrame = function() { bandwidth_txt.text = "Camera is currently using "+my_cam.bandwidth+" bytes ("+Math.round(my_cam.bandwidth/1024)+" KB) bandwidth."; }; // bandwidth_nstep.minimum = 0; bandwidth_nstep.maximum = 128; bandwidth_nstep.stepSize = 16; bandwidth_nstep.value = my_cam.bandwidth/1024; function changeBandwidth(evt:Object) { my_cam.setQuality(evt.target.value 1024, 0); } 400 Chapitre 2: Classes ActionScript bandwidth_nstep.addEventListener("change", changeBandwidth); La méthode MovieClip.getNextHighestDepth() utilisée dans cet exemple requiert Flash Player 7 ou version ultérieure. Si votre fichier SWF comprend un composant de version 2, utilisez la classe DepthManager avec composants version 2 plutôt que la méthode MovieClip.getNextHighestDepth() Voir également setQuality (méthode Camera.setQuality) currentFps (propriété Camera.currentFps) public currentFps : Number [lecture seule] Cadence à laquelle la caméra capture des données, en images par seconde. Cette propriété ne peut pas être définie ; toutefois, vous pouvez utiliser la méthode Camera.setMode() pour définir une propriété connexe, Camera.fps, spécifiant la cadence maximale à laquelle vous souhaitez que la caméra capture les données. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant détecte la cadence, en images par seconde, à laquelle la caméra capture des données à l'aide de la propriété currentFps et d'une occurrence ProgressBar. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence de composant ProgressBar intitulée fps_pb à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_video:Video; var fps_pb:mx.controls.ProgressBar; var my_cam:Camera = Camera.get(); my_video.attachVideo(my_cam); this.onEnterFrame = function() { fps_pb.setProgress(my_cam.fps-my_cam.currentFps, my_cam.fps); }; fps_pb.setStyle("fontSize", 10); fps_pb.setStyle("themeColor", "haloOrange"); fps_pb.labelPlacement = "top"; fps_pb.mode = "manual"; fps_pb.label = "FPS: %2 (%3%% dropped)"; Voir également setMode (méthode Camera.setMode), fps (propriété Camera.fps) Camera 401 fps (propriété Camera.fps) public fps : Number [lecture seule] Cadence maximale à laquelle vous voulez que la caméra capture des données, en images par seconde. La cadence maximale possible dépend des fonctionnalités de la caméra : si la caméra ne prend pas en charge la valeur définie ici, cette cadence ne sera pas atteinte. ■ Pour définir une valeur souhaitée pour cette propriété, utilisez Camera.setMode(). ■ Pour déterminer la cadence à laquelle la caméra capture actuellement les données, utilisez la propriété Camera.currentFps. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant détecte la cadence, en images par seconde, à laquelle la caméra capture des données à l'aide de la propriété currentFps et d'une occurrence ProgressBar. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence de composant ProgressBar intitulée fps_pb à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_video:Video; var fps_pb:mx.controls.ProgressBar; var my_cam:Camera = Camera.get(); my_video.attachVideo(my_cam); this.onEnterFrame = function() { fps_pb.setProgress(my_cam.fps-my_cam.currentFps, my_cam.fps); }; fps_pb.setStyle("fontSize", 10); fps_pb.setStyle("themeColor", "haloOrange"); fps_pb.labelPlacement = "top"; fps_pb.mode = "manual"; fps_pb.label = "FPS: %2 (%3%% dropped)"; Remarque : La fonction setMode() ne garantit pas de fournir le paramètre fps requis ; elle définit la propriété fps que vous avez demandée ou la plus rapide parmi celles disponibles. Voir également currentFps (propriété Camera.currentFps), setMode (méthode Camera.setMode) 402 Chapitre 2: Classes ActionScript get (méthode Camera.get) public static get([index:Number]) : Caméra Renvoie une référence à un objet Camera pour capturer de la vidéo. Pour commencer la capture de la vidéo, vous devez relier l'objet Camera à un objet vidéo (consultez Video.attachVideo()). Contrairement aux objets que vous pouvez créer à l'aide du constructeur new, plusieurs appels de Camera.get() font référence à la même caméra. Ainsi, si votre script contient les lignes first_cam = Camera.get() et second_cam = Camera.get(), à la fois first_cam et second_cam font référence à la même caméra (par défaut). En général, évitez de transmettre une valeur pour index ; contentez-vous d'utiliser Camera.get() pour renvoyer une référence à la caméra par défaut. Via le panneau Paramètres de la caméra (comme indiqué plus bas dans cette section), l'utilisateur peut spécifier la caméra que Flash doit utiliser par défaut. Si vous transmettez une valeur pour index, vous pouvez essayer de référencer une caméra autre que celle que l'utilisateur préfère utiliser. Vous pouvez utiliser index en de rares occasions, par exemple si votre application capture de la vidéo à partir de deux caméras simultanément. Lorsqu'un fichier SWF tente d'accéder à la caméra renvoyée par Camera.get(), Flash Player affiche une boîte de dialogue Confidentialité permettant à l'utilisateur d'autoriser ou de refuser l'accès à la caméra. (Assurez-vous que la taille de votre scène est d'au moins 215 x 138 pixels ; il s'agit de la taille minimale requise par Flash pour afficher la boîte de dialogue.) Lorsque l'utilisateur répond à cette boîte de dialogue, le gestionnaire d'événements Camera.onStatus renvoie un objet d'informations qui indique la réponse de l'utilisateur. Pour déterminer si l'utilisateur a refusé ou autorisé l'accès à la caméra sans traiter ce gestionnaire d'événements, utilisez la propriété Camera.muted. L'utilisateur peut également spécifier des paramètres de confidentialité permanents pour un domaine spécifique. Pour ce faire, il lui suffit de cliquer avec le bouton droit (Windows) ou d'appuyer sur la touche Contrôle (Macintosh) lors de la lecture d'un fichier SWF, de pointer sur Paramètres, d'ouvrir le panneau Contrôle de l'accès, puis de sélectionner Mémoriser. Vous ne pouvez pas utiliser ActionScript pour définir la valeur Autoriser ou Refuser d'un utilisateur, mais vous pouvez afficher le panneau Confidentialité pour l'utilisateur via System.showSettings(0). Si l'utilisateur sélectionne Mémoriser, Flash Player n'affiche plus la boîte de dialogue Confidentialité pour les fichiers SWF de ce domaine. Camera 403 Si Camera.get renvoie la valeur null, cela signifie que la caméra est utilisée par une autre application ou qu'aucune caméra n'est installée sur le système. Pour déterminer si une caméra est installée, utilisez Camera.names.length. Pour afficher le panneau de paramètres Flash Player Camera, qui permet à l'utilisateur de choisir la caméra à référencer par Camera.get(), utilisez System.showSettings(3). L'analyse du matériel des caméras nécessite un certain temps. Lorsque Flash détecte au moins une caméra, le matériel n'est plus analysé pendant la durée de vie de l'occurrence du lecteur. Cependant, si Flash ne détecte aucune caméra, il effectuera une analyse à chaque fois que Camera.get est appelé. Cela est particulièrement utile si un utilisateur a oublié de connecter la caméra ; si votre fichier SWF contient un bouton Réessayer permettant d'appeler Camera.get, Flash peut rechercher la caméra sans que l'utilisateur ne doive redémarrer le fichier SWF. Remarque : La syntaxe correcte est Camera.get(). Pour affecter l'objet Camera à une variable, utilisez une syntaxe comme active_cam = Camera.get() : Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres [facultatif ] - Entier de base zéro spécifiant la caméra à sélectionner, comme déterminé dans le tableau renvoyé par la propriété Camera.names. Pour obtenir la caméra par défaut (ce qui est recommandé pour la plupart des applications), omettez ce paramètre. index:Number Valeur renvoyée - Si index n'est pas spécifié, cette méthode renvoie une référence à la caméra par défaut ou, si elle est utilisée par une autre application, à la première caméra disponible. (Si plusieurs caméras sont installées, l'utilisateur peut spécifier la caméra par défaut dans le panneau Paramètres de la caméra de Flash Player.) Si aucune caméra n'est disponible ou installée, la méthode renvoie null. Si index est spécifié, cette méthode renvoie une référence à la caméra demandée ou null si elle n'est pas disponible. Camera Exemple L'exemple suivant vous permet de sélectionner une caméra active à utiliser à partir d'une occurrence ComboBox. La caméra actuellement active s'affiche dans une occurrence du composant Label. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence du composant Label intitulée camera_lbl à la scène, ainsi qu'une occurrence du composant ComboBox intitulée cameras_cb. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_cam:Camera = Camera.get(); 404 Chapitre 2: Classes ActionScript var my_video:Video; my_video.attachVideo(my_cam); var camera_lbl:mx.controls.Label; var cameras_cb:mx.controls.ComboBox; camera_lbl.text = my_cam.name; cameras_cb.dataProvider = Camera.names; function changeCamera():Void { my_cam = Camera.get(cameras_cb.selectedIndex); my_video.attachVideo(my_cam); camera_lbl.text = my_cam.name; } cameras_cb.addEventListener("change", changeCamera); camera_lbl.setStyle("fontSize", 9); cameras_cb.setStyle("fontSize", 9); Voir également index (propriété Camera.index), muted (propriété Camera.muted), names (propriété Camera.names), onStatus (gestionnaire Camera.onStatus), setMode (méthode Camera.setMode), showSettings (méthode System.showSettings), attachVideo (méthode Video.attachVideo) height (propriété Camera.height) public height : Number [lecture seule] La hauteur de capture actuelle, en pixels. Pour définir une valeur souhaitée pour cette propriété, utilisez Camera.setMode(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Le code suivant affiche la largeur, la hauteur et la valeur FPS actuelles d'une occurrence vidéo dans une occurrence du composant Label sur la scène. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence du composant Label intitulée dimensions_lbl à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); var dimensions_lbl:mx.controls.Label; dimensions_lbl.setStyle("fontSize", 9); dimensions_lbl.setStyle("fontWeight", "bold"); dimensions_lbl.setStyle("textAlign", "center"); Camera 405 dimensions_lbl.text = "width: "+my_cam.width+", height: "+my_cam.height+", FPS: "+my_cam.fps; Consultez également l'exemple relatif à Camera.setMode(). Voir également largeur (propriété Camera.width), setMode (méthode Camera.setMode) index (propriété Camera.index) public index : Number [lecture seule] Entier de base zéro spécifiant l'indice de la caméra, tel qu'indiqué dans le tableau renvoyé par Camera.names. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant affiche un tableau de caméras dans un champ de texte créé lors de l'exécution et vous indique quelle caméra vous utilisez actuellement. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence du composant Label intitulée camera_lbl à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var camera_lbl:mx.controls.Label; var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); camera_lbl.text = my_cam.index+". "+my_cam.name; this.createTextField("cameras_txt", this.getNextHighestDepth(), 25, 160, 160, 80); cameras_txt.html = true; cameras_txt.border = true; cameras_txt.wordWrap = true; cameras_txt.multiline = true; for (var i = 0; i<Camera.names.length; i++) { cameras_txt.htmlText += "<li><u><a href=\"asfunction:changeCamera,"+i+"\">"+Camera.names[i]+"</a></u></ li>"; } function changeCamera(index:Number) { my_cam = Camera.get(index); my_video.attachVideo(my_cam); camera_lbl.text = my_cam.index+". "+my_cam.name; } 406 Chapitre 2: Classes ActionScript La méthode MovieClip.getNextHighestDepth() utilisée dans cet exemple requiert Flash Player 7 ou version ultérieure. Si votre fichier SWF comprend un composant de version 2, utilisez la classe DepthManager avec composants version 2 plutôt que la méthode MovieClip.getNextHighestDepth() Voir également names (propriété Camera.names), get (méthode Camera.get) motionLevel (propriété Camera.motionLevel) public motionLevel : Number [lecture seule] Valeur numérique spécifiant l'intensité de mouvement requise pour appeler Camera.onActivity(true). Les valeurs acceptables sont comprises entre 0 et 100. La valeur par défaut est 50. La vidéo peut être affichée quelle que soit la valeur de la propriété motionLevel. Pour plus d'informations, reportez-vous à Camera.setMotionLevel(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant détecte continuellement le niveau de mouvement d'une caméra. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence du composant Label intitulée motionLevel_lbl, une occurrence du composant NumericStepper intitulée motionLevel_nstep et une occurrence du composant ProgressBar intitulée motion_pb à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); // configure the ProgressBar component instance var motion_pb:mx.controls.ProgressBar; motion_pb.mode = "manual"; motion_pb.label = "Motion: %3%%"; var motionLevel_lbl:mx.controls.Label; // configure the NumericStepper component instance var motionLevel_nstep:mx.controls.NumericStepper; motionLevel_nstep.minimum = 0; motionLevel_nstep.maximum = 100; motionLevel_nstep.stepSize = 5; Camera 407 motionLevel_nstep.value = my_cam.motionLevel; // Continuously update the progress of the ProgressBar component instance to the activityLevel // of the current Camera instance, which is defined in my_cam this.onEnterFrame = function() { motion_pb.setProgress(my_cam.activityLevel, 100); }; // When the level of activity goes above or below the number defined in Camera.motionLevel, // trigger the onActivity event handler. my_cam.onActivity = function(isActive:Boolean) { // If isActive equals true, set the themeColor variable to "haloGreen". // Otherwise set the themeColor to "haloOrange". var themeColor:String = (isActive) ? "haloGreen" : "haloOrange"; motion_pb.setStyle("themeColor", themeColor); }; function changeMotionLevel() { // Set the motionLevel property for my_cam Camera instance to the value of the NumericStepper // component instance. Maintain the current motionTimeOut value of the my_cam Camera instance. my_cam.setMotionLevel(motionLevel_nstep.value, my_cam.motionTimeOut); } motionLevel_nstep.addEventListener("change", changeMotionLevel); Voir également onActivity (gestionnaire Camera.onActivity), onStatus (gestionnaire Camera.onStatus), setMotionLevel (méthode Camera.setMotionLevel ), activityLevel (propriété Camera.activityLevel) motionTimeOut (propriété Camera.motionTimeOut) public motionTimeOut : Number [lecture seule] Nombre de millisecondes entre le moment où la caméra arrête la détection du mouvement et le moment où Camera.onActivity (false) est appelé. La valeur par défaut est 2 000 (2 secondes). Pour configurer cette propriété, appelez Camera.setMotionLevel(). Disponibilité : ActionScript 1.0 ; Flash Player 6 408 Chapitre 2: Classes ActionScript Exemple Dans l'exemple suivant, l'occurrence ProgressBar change sa couleur de thème Halo lorsque le niveau de l'activité est inférieur au niveau de mouvement. Vous pouvez définir le nombre de secondes pour la propriété motionTimeout à l'aide d'une occurrence NumericStepper. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence du composant Label intitulée motionLevel_lbl, une occurrence du composant NumericStepper intitulée motionTimeOut_nstep et une occurrence du composant ProgressBar intitulée motion_pb à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var motionLevel_lbl:mx.controls.Label; var motion_pb:mx.controls.ProgressBar; var motionTimeOut_nstep:mx.controls.NumericStepper; var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); this.onEnterFrame = function() { motionLevel_lbl.text = "activityLevel: "+my_cam.activityLevel; }; motion_pb.indeterminate = true; my_cam.onActivity = function(isActive:Boolean) { if (isActive) { motion_pb.setStyle("themeColor", "haloGreen"); motion_pb.label = "Motion is above "+my_cam.motionLevel; } else { motion_pb.setStyle("themeColor", "haloOrange"); motion_pb.label = "Motion is below "+my_cam.motionLevel; } }; function changeMotionTimeOut() { my_cam.setMotionLevel(my_cam.motionLevel, motionTimeOut_nstep.value 1000); } motionTimeOut_nstep.addEventListener("change", changeMotionTimeOut); motionTimeOut_nstep.value = my_cam.motionTimeOut/1000; Voir également setMotionLevel (méthode Camera.setMotionLevel ), onActivity (gestionnaire Camera.onActivity) Camera 409 muted (propriété Camera.muted) public muted : Boolean [lecture seule] Valeur booléenne spécifiant si l'utilisateur a refusé l'accès à la caméra (true) ou autorisé l'accès (false) dans le panneau Paramètres de contrôle de Flash Player. Lorsque cette valeur change, Camera.onStatus est appelé. Pour plus d'informations, reportez-vous à Camera.get(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Dans l'exemple suivant, un message d'erreur peut s'afficher si my_cam.muted renvoie true. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); my_cam.onStatus = function(infoObj:Object) { if (my_cam.muted) { // If user is denied access to their Camera, you can display an error message here. You can display the user's Camera/Privacy settings again using System.showSettings(0); trace("User denied access to Camera"); System.showSettings(0); } }; Voir également get (méthode Camera.get), onStatus (gestionnaire Camera.onStatus) name (propriété Camera.name) public name : String [lecture seule] Chaîne spécifiant le nom de la caméra actuelle, tel que renvoyé par le matériel. Disponibilité : ActionScript 1.0 ; Flash Player 6 410 Chapitre 2: Classes ActionScript Exemple L'exemple suivant affiche le nom de la caméra par défaut dans un champ de texte. Sous Windows, ce nom est identique à celui du périphérique répertorié dans le panneau de configuration Scanneurs et appareils photo. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); this.createTextField("name_txt", this.getNextHighestDepth(), 0, 0, 100, 22); name_txt.autoSize = true; name_txt.text = my_cam.name; La méthode MovieClip.getNextHighestDepth() utilisée dans cet exemple requiert Flash Player 7 ou version ultérieure. Si votre fichier SWF comprend un composant de version 2, utilisez la classe DepthManager avec composants version 2 plutôt que la méthode MovieClip.getNextHighestDepth() Voir également get (méthode Camera.get), names (propriété Camera.names) names (propriété Camera.names) public static names : Array [lecture seule] Récupère un tableau de chaînes reflétant les noms de toutes les caméras disponibles sans afficher le panneau Paramètres de contrôle de Flash Player. Ce tableau se comporte de la même manière que tout autre tableau ActionScript, fournissant de façon implicite l'index basé sur zéro de chaque caméra et le nombre de caméras présentes sur le système (via Camera.names.length). Pour plus d'informations, consultez l'entrée de classe Array de Camera.names. L'appel de la propriété Camera.names nécessite un examen minutieux du matériel et plusieurs secondes peuvent être nécessaires pour créer le tableau. Dans la plupart des cas, vous pouvez utiliser la caméra par défaut. Remarque : La syntaxe correcte est Camera.names. Pour affecter la valeur renvoyée à une variable, utilisez une syntaxe comme cam_array = Camera.names: Pour déterminer le nom de la caméra en cours, utilisez active_cam .name. Disponibilité : ActionScript 1.0 ; Flash Player 6 Camera 411 Exemple L'exemple suivant utilise la caméra par défaut sauf si plusieurs caméras sont disponibles. Dans ce cas, l'utilisateur peut sélectionner la caméra qu'il souhaite définir par défaut. Si une seule caméra est disponible, alors la caméra par défaut est utilisée. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_video:Video; var cam_array:Array = Camera.names; if (cam_array.length>1) { System.showSettings(3); } var my_cam:Camera = Camera.get(); my_video.attachVideo(my_cam); Voir également get (méthode Camera.get), index (propriété Camera.index), name (propriété Camera.name) onActivity (gestionnaire Camera.onActivity) onActivity = function(active:Boolean) {} Gestionnaire d'événements : invoqué lorsque la caméra commence ou arrête la détection du mouvement. Si vous souhaitez répondre à ce gestionnaire d'événements, vous devez créer une fonction pour traiter sa valeur d'activité. Pour spécifier l'intensité de mouvement requise pour appeler Camera.onActivity(true) et la durée qui doit s'écouler sans activité avant d'appeler Camera.on(false), utilisez Camera.setMotionLevel(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres active:Boolean - Valeur booléenne définie sur true quand la caméra commence à détecter du mouvement, sur false quand le mouvement s'arrête. Exemple L'exemple suivant affiche la valeur true ou false dans le panneau de sortie selon que la caméra commence ou cesse la détection du mouvement : // Assumes a Video object named "myVideoObject" is on the Stage active_cam = Camera.get(); 412 Chapitre 2: Classes ActionScript myVideoObject.attachVideo(active_cam); active_cam.setMotionLevel(10, 500); active_cam.onActivity = function(mode) { trace(mode); } Voir également setMotionLevel (méthode Camera.setMotionLevel ) onStatus (gestionnaire Camera.onStatus) onStatus = function(infoObject:Object) {} Gestionnaire d'événements : invoqué lorsque l'utilisateur autorise ou refuse l'accès à la caméra. Si vous souhaitez répondre à ce gestionnaire d'événements, vous devez créer une fonction pour traiter l'objet d'informations généré par la caméra. Lorsqu'un fichier SWF tente d'accéder à la caméra, Flash Player affiche une boîte de dialogue Confidentialité permettant à l'utilisateur d'autoriser ou de refuser l'accès. ■ Si l'utilisateur autorise l'accès, la propriété Camera.muted est définie sur false, et ce gestionnaire est appelé avec un objet d'informations dont la propriété de code est « Camera.Unmuted » et la propriété de niveau « Status ». ■ Si l'utilisateur refuse l'accès, la propriété Camera.muted est définie sur true, et ce gestionnaire est appelé avec un objet d'informations dont la propriété de code est « Camera.Muted » et la propriété de niveau « Status ». Pour déterminer si l'utilisateur a refusé ou autorisé l'accès à la caméra sans traiter ce gestionnaire d'événements, utilisez la propriété Camera.muted. Remarque : Si l'utilisateur choisit d'autoriser ou de refuser définitivement l'accès à tous les fichiers SWF d'un domaine spécifié, ce gestionnaire n'est pas appelé pour les fichiers SWF de ce domaine sauf si l'utilisateur modifie ultérieurement le paramètre de confidentialité. Pour plus d'informations, reportez-vous à Camera.get(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres infoObject:Object - Paramètre défini selon le message de statut. Camera 413 Exemple Le code ActionScript suivant est utilisé pour afficher un message à chaque fois que l'utilisateur autorise ou refuse l'accès à la caméra : var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); my_cam.onStatus = function(infoObj:Object) { switch (infoObj.code) { case 'Camera.Muted' : trace("Camera access is denied"); break; case 'Camera.Unmuted' : trace("Camera access granted"); break; } } Voir également get (méthode Camera.get), muted (propriété Camera.muted), showSettings (méthode System.showSettings), onStatus (gestionnaire System.onStatus) qualité (propriété Camera.quality) public quality : Number [lecture seule] Entier spécifiant le niveau de qualité requis pour l'image, tel que déterminé par le taux de compression appliqué à chaque image vidéo. Les valeurs de qualité acceptables sont comprises entre 1 (qualité la plus médiocre, compression maximale) et 100 (qualité optimale, pas de compression). La valeur par défaut est 0, ce qui signifie que la qualité de l'image peut varier si nécessaire pour éviter de dépasser la bande passante disponible. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant utilise une occurrence NumericStepper pour spécifier le taux de compression appliqué à la caméra. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence NumericStepper intitulée quality_nstep. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var quality_nstep:mx.controls.NumericStepper; var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); 414 Chapitre 2: Classes ActionScript quality_nstep.minimum = 0; quality_nstep.maximum = 100; quality_nstep.stepSize = 5; quality_nstep.value = my_cam.quality; function changeQuality() { my_cam.setQuality(my_cam.bandwidth, quality_nstep.value); } quality_nstep.addEventListener("change", changeQuality); Voir également setQuality (méthode Camera.setQuality) setMode (méthode Camera.setMode) public setMode([width:Number], [height:Number], [fps:Number], [favorArea:Boolean]) : Void Définit le mode de capture de la caméra sur le mode natif qui remplit le mieux les conditions requises. Si la caméra ne dispose pas d'un mode natif correspondant à tous les paramètres que vous transmettez, Flash sélectionne un mode de capture qui synthétise le mieux le mode demandé. Cette manipulation peut nécessiter le découpage de l'image et l'omission d'images. Par défaut, Flash omet des images si nécessaire pour conserver la taille de l'image. Pour réduire le nombre d'images omises, même si cela passe par une réduction de la taille de l'image, définissez le paramètre favorArea sur false. Lorsqu'il choisit un mode natif, Flash essaie de conserver les proportions demandées dans la mesure du possible. Par exemple, si vous appelez la commande active_cam.setMode(400, 400, 30), et si les valeurs de largeur et de hauteur maximales disponibles sur la caméra sont 320 et 288, Flash définit la largeur et la hauteur sur 288 ; en attribuant la même valeur à ces propriétés, Flash conserve la proportion 1:1 que vous avez demandée. Pour déterminer les valeurs affectées à ces propriétés une fois la sélection du mode qui correspond le mieux aux valeurs que vous avez demandées par Flash, utilisez Camera.width, Camera.height, et Camera.fps. Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres width:Number [facultatif ] - Largeur de capture demandée, en pixels. La valeur par défaut est 160. height:Number [facultatif ] - Hauteur de capture demandée, en pixels. La valeur par défaut est 120. Camera 415 [facultatif ] - Cadence à laquelle la caméra doit capturer des données, en images par seconde. La valeur par défaut est 15. fps:Number [facultatif ] - Valeur booléenne indiquant comment manipuler la largeur, la hauteur et la cadence si la caméra n'est pas dotée d'un mode natif qui remplit les conditions requises. La valeur par défaut est true, ce qui signifie que le maintien de la taille de capture est favorisé ; l'utilisation de ce paramètre permet de sélectionner le mode qui correspond le mieux aux valeurs width et height , même si cela affecte les performances en réduisant la cadence. Pour optimiser la cadence au détriment de la hauteur et de la largeur de la caméra, définissez le paramètre favorArea sur false. favorArea:Boolean Exemple L'exemple suivant définit le mode de capture de la caméra. Vous pouvez entrer une cadence dans une occurrence TextInput et appuyer sur Entrée ou sur Retour pour l'appliquer. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence du composant TextInput intitulée fps_ti. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); fps_ti.maxChars = 2; fps_ti.restrict = [0-9]; fps_lbl.text = "Current: "+my_cam.fps+" fps"; function changeFps():Void { my_cam.setMode(my_cam.width, my_cam.height, fps_ti.text); fps_lbl.text = "Current: "+my_cam.fps+" fps"; fps_ti.text = my_cam.fps; Selection.setSelection(0,2); } fps_ti.addEventListener("enter", changeFps); Voir également fps (propriété Camera.fps), height (propriété Camera.height), largeur (propriété Camera.width), currentFps (propriété Camera.currentFps) 416 Chapitre 2: Classes ActionScript setMotionLevel (méthode Camera.setMotionLevel ) public setMotionLevel([motionLevel:Number], [timeOut:Number]) : Void Spécifie la quantité de mouvement requise pour appeler Camera.onActivity(true). Peut éventuellement définir le nombre de millisecondes qui doit s'écouler sans activité avant que Flash considère que le mouvement a cessé et puisse appeler Camera.onActivity(false). Remarque : La vidéo peut être affichée quelle que soit la valeur du paramètre sensitivity. Ce paramètre détermine uniquement à quel moment et dans quelles circonstances Camera.onActivity est appelé (ce n'est pas le cas lorsque la vidéo est capturée ou affichée). ■ Pour empêcher la caméra de détecter le mouvement, définissez le paramètre sensitivity sur la valeur 100 ; Camera.onActivity n'est jamais appelé. (Vous utiliserez probablement cette valeur à des fins de tests uniquement : par exemple, pour désactiver temporairement des actions qui doivent se produire lorsque Camera.onActivity est appelé.) ■ Pour déterminer l'intensité de mouvement actuellement détectée par la caméra, utilisez la propriété Camera.activityLevel. ■ Les valeurs de sensibilité de mouvement correspondent directement aux valeurs d'activité. La valeur d'activité d'une absence de mouvement totale est 0. La valeur d'activité d'un mouvement constant est 100. Votre valeur d'activité est inférieure à votre valeur de sensibilité de mouvement lorsque vous n'effectuez pas de déplacement ; lorsque vous effectuez un déplacement, les valeurs d'activité dépassent fréquemment votre valeur de sensibilité de mouvement. ■ L'objectif de cette méthode est similaire à celui de Microphone.setSilenceLevel() ; les deux méthodes sont utilisées pour spécifier à quel moment il convient d'appeler le gestionnaire d'événements onActivity. Toutefois, l'impact de ces méthodes sur la publication des flux continus diffère de manière significative : ■ Microphone.setSilenceLevel() est conçu pour optimiser la bande passante. Lorsqu'un flux continu est considéré comme étant silencieux, aucune donnée audio n'est envoyée. En revanche, un message unique est envoyé, indiquant le début du silence. ■ est conçu pour détecter le mouvement et n'a aucune incidence sur l'utilisation de la bande passante. Même si un flux vidéo ne détecte pas le mouvement, la vidéo est toujours envoyée. Camera.setMotionLevel() Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres [facultatif ] - Valeur numérique spécifiant l'intensité de mouvement requise pour appeler Camera.onActivity(true). Les valeurs acceptables sont comprises entre 0 et 100. La valeur par défaut est 50. motionLevel:Number Camera 417 [facultatif ] - Paramètre numérique spécifiant le nombre de millisecondes qui doit s'écouler sans activité avant que Flash considère que l'activité a cessé et puisse appeler le gestionnaire d'événement Camera.onActivity(false). La valeur par défaut est 2 000 (2 secondes). timeOut:Number Exemple L'exemple suivant envoie des messages au panneau de Sortie lorsque l'activité vidéo commence ou s'arrête. La valeur de sensibilité de mouvement étant de 30, augmentez-la ou diminuez-la pour voir comment différentes valeurs affectent la détection de mouvement. // Assumes a Video object named "myVideoObject" is on the Stage active_cam = Camera.get(); x = 0; function motion(mode) { trace(x + ": " + mode); x++; } active_cam.onActivity = function(mode) { motion(mode); } active_cam.setMotionLevel(30, 500); myVideoObject.attachVideo(active_cam); Voir également motionLevel (propriété Camera.motionLevel), motionTimeOut (propriété Camera.motionTimeOut), onActivity (gestionnaire Camera.onActivity), activityLevel (propriété Camera.activityLevel) setQuality (méthode Camera.setQuality) public setQuality([bandwidth:Number], [quality:Number]) : Void Définit le montant maximum de bande passante par seconde ou la qualité d'image requise des données vidéo sortantes actuelles. Cette méthode ne peut être généralement appliquée que si vous transmettez la vidéo via Flash Communication Server. Utilisez cette méthode pour spécifier l'élément de la vidéo sortante le plus important pour votre application, utilisation de bande passante ou qualité de l'image. ■ 418 Pour indiquer que l'utilisation de la bande passante est prioritaire, transmettez une valeur à bandwidth et attribuez la valeur 0 à frameQuality. Flash transmet une vidéo de qualité optimale dans la bande passante spécifiée. Si nécessaire, Flash réduit la qualité de l'image afin d'éviter de dépasser la bande passante spécifiée. En général, plus le mouvement augmente, plus la qualité diminue. Chapitre 2: Classes ActionScript ■ Pour indiquer que la qualité est prioritaire, transmettez la valeur 0 à bandwidth et une valeur numérique à frameQuality. Flash utilise autant de bande passante que nécessaire pour conserver la qualité spécifiée. Si nécessaire, Flash réduit la cadence pour conserver la qualité de l'image. En général, plus le mouvement augmente, plus l'utilisation de la bande passante augmente également. ■ Pour spécifier que la bande passante et la qualité sont aussi importantes l'une que l'autre, transmettez des valeurs numériques aux deux paramètres. Flash transmet alors de la vidéo permettant de respecter la qualité requise et ne dépassant pas la bande passante spécifiée. Si nécessaire, Flash réduit la cadence pour conserver la qualité de l'image sans dépasser la bande passante spécifiée. Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres [facultatif ] - Entier spécifiant la quantité maximale de bande passante pouvant être utilisée par la vidéo sortante actuelle, en octets par seconde. Pour spécifier que la vidéo Flash peut utiliser autant de bande passante que nécessaire pour conserver la valeur de frameQuality, attribuez la valeur 0 à bandwidth. La valeur par défaut est 16 384. bandwidth:Number quality:Number [facultatif ] - Entier spécifiant le niveau de qualité d'image requis, tel que déterminé par le taux de compression appliqué à chaque image vidéo. Les valeurs acceptables sont comprises entre 1 (qualité la plus médiocre, compression maximale) et 100 (qualité optimale, pas de compression). Pour spécifier que la qualité d'image peut varier autant que nécessaire afin d'éviter de dépasser la quantité de bande passante disponible, attribuez la valeur 0 à quality. La valeur par défaut est 0. Exemple Les exemples suivants indiquent comment utiliser cette méthode afin de contrôler l'utilisation de la bande passante et la qualité d'image. // Ensure that no more than 8192 (8K/second) is used to send video active_cam.setQuality(8192,0); // Ensure that no more than 8192 (8K/second) is used to send video // with a minimum quality of 50 active_cam.setQuality(8192,50); // Ensure a minimum quality of 50, no matter how much bandwidth it takes active_cam.setQuality(0,50); Voir également get (méthode Camera.get), qualité (propriété Camera.quality), bandwidth (propriété Camera.bandwidth) Camera 419 largeur (propriété Camera.width) public quality : Number [lecture seule] La largeur de capture actuelle, en pixels. Pour définir une valeur souhaitée pour cette propriété, utilisez Camera.setMode(). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple Le code suivant affiche la largeur, la hauteur et la valeur IPS (FPS) actuelles d'une occurrence vidéo dans une occurrence du composant Label sur la scène. Créez une nouvelle occurrence vidéo en sélectionnant Nouvelle vidéo dans le menu d'options de la bibliothèque. Ajoutez une occurrence intitulée my_video à la scène. Ajoutez une occurrence du composant Label intitulée dimensions_lbl à la scène. Ajoutez ensuite le code ActionScript suivant à l'image 1 du scénario : var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); var dimensions_lbl:mx.controls.Label; dimensions_lbl.setStyle("fontSize", 9); dimensions_lbl.setStyle("fontWeight", "bold"); dimensions_lbl.setStyle("textAlign", "center"); dimensions_lbl.text = "width: "+my_cam.width+", height: "+my_cam.height+", FPS: "+my_cam.fps; Consultez aussi l'exemple relatif à Camera.setMode(). Voir également height (propriété Camera.height), setMode (méthode Camera.setMode) capabilities (System.capabilities) Object | +-System.capabilities public class capabilities extends Object 420 Chapitre 2: Classes ActionScript La classe Capabilities permet de déterminer les fonctionnalités du système et le lecteur hébergeant un fichier SWF, vous permettant d'adapter le contenu à différents formats. Par exemple, l'écran d'un téléphone portable (noir et blanc, 100 pixels carrés) diffère de l'écran couleurs de 1 000 pixels carrés d'un PC. Pour fournir le contenu approprié au plus grand nombre d'utilisateurs possible, vous pouvez utiliser l'objet System.capabilities afin de déterminer le type de périphérique dont dispose un utilisateur. Vous pouvez ensuite demander au serveur d'envoyer différents fichiers SWF en fonction des fonctionnalités propres à chaque périphérique ou indiquer au fichier SWF de modifier sa présentation en fonction des fonctionnalités du périphérique. Vous pouvez envoyer les informations relatives aux fonctionnalités à l'aide de la méthode HTTP GET ou POST. L'exemple suivant montre une chaîne de serveur pour un ordinateur prenant en charge les fichiers MP3, doté d'une résolution de 1 600 x 1 200 pixels, exécutant Windows XP et Flash Player 8 (8.0.0.0) : A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t& SB=f&DEB=t&V=WIN%208%2C0%2C0%2C0&M=Macromedia%20Windows& R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP& L=en&PT=External&AVD=f&LFD=f&WD=f" Toutes les propriétés de l'objet System.capabilities sont en lecture seule. Disponibilité : ActionScript 1.0 ; Flash Player 6 capabilities (System.capabilities) 421 Résumé des propriétés Modificateurs Propriété static avHardwareDisable:Bo Valeur booléenne spécifiant si l'accès à la caméra et olean [lecture seule] static static lean [lecture seule] s'exécute dans un environnement qui prend en charge la communication entre Flash Player et les options d'accessibilité ; sinon définie sur false. hasAudio:Boolean Spécifie si le système est doté de fonctionnalités audio. hasAudioEncoder:Bool Spécifie si Flash Player peut coder un flux audio ean [lecture seule] static static static au microphone de l'utilisateur est interdit administrativement (true) ou autorisé (false). hasAccessibility:Boo Valeur booléenne définie sur true si le lecteur [lecture seule] static Description continu. hasEmbeddedVideo:Boo Valeur booléenne définie sur true si le lecteur lean [lecture seule] s'exécute sur un système qui prend en charge la vidéo intégrée ; sinon définie sur false. hasIME:Boolean [lecture seule] Indique si le système est doté d'un IME, (éditeur de méthode d'entrée). hasMP3:Boolean Spécifie si le système est doté d'un décodeur MP3. [lecture seule] static hasPrinting:Boolean [lecture seule] static hasScreenBroadcast:B Valeur booléenne définie sur true si le lecteur prend oolean [lecture seule] static les vidéos en flux continu ; sinon définie sur false. hasVideoEncoder:Bool Spécifie si Flash Player peut coder un flux vidéo. ean [lecture seule] 422 les sons en flux continu ; définie sur false sinon. hasStreamingVideo:Bo Valeur booléenne définie sur true si le lecteur peut lire olean [lecture seule] static en charge la lecture des applications de diffusion sur écran exécutées via Flash Communication Server ; définie sur false sinon. hasStreamingAudio:Bo Valeur booléenne définie sur true si le lecteur peut lire olean [lecture seule] static en charge le développement des applications de diffusion sur écran devant être exécutées via Flash Communication Server ; définie sur false sinon. hasScreenPlayback:Bo Valeur booléenne définie sur true si le lecteur prend olean [lecture seule] static Valeur booléenne définie sur true si le lecteur s'exécute sur un système qui prend en charge l'impression ; définie sur false sinon. Chapitre 2: Classes ActionScript Modificateurs Propriété Description static Valeur booléenne indiquant si le lecteur est une version officielle (false) ou une version de débogage spéciale (true). isDebugger:Boolean [lecture seule] static language:String [lecture seule] static localFileReadDisable Valeur booléenne indiquant si l'accès en lecture au :Boolean [lecture seule] static manufacturer:String [lecture seule] static Indique la langue du système sur lequel s'exécute le lecteur. os:String [lecture disque dur de l'utilisateur est interdit administrativement (true) ou autorisé (false). Chaîne indiquant le fabricant de Flash Player, au format "Macromedia OSName" (OSName peut être "Windows", "Macintosh", "Linux", ou "Other OS Name"). Chaîne indiquant le système d'exploitation actuel. seule] static pixelAspectRatio:Num Entier indiquant les proportions de l'écran, en pixels. ber [lecture seule] static playerType:String Chaîne indiquant le type de lecteur. [lecture seule] static screenColor:String Chaîne indiquant la couleur d'écran. [lecture seule] static screenDPI:Number [lecture seule] static screenResolutionX:Nu Entier indiquant la résolution horizontale maximale de mber [lecture seule] static static l'écran. screenResolutionY:Nu Entier indiquant la résolution verticale maximale de mber [lecture seule] l'écran. serverString:String Chaîne de code URL spécifiant les valeurs de chaque propriété System.capabilities. [lecture seule] static Nombre indiquant la résolution en points par pouce (ppp) de l'écran, en pixels. version:String [lecture seule] Chaîne contenant la plate-forme Flash Player et les informations sur la version (par exemple, "WIN 8,0,0,0"). Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) capabilities (System.capabilities) 423 Résumé de la méthode Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) avHardwareDisable (propriété capabilities.avHardwareDisable) public static avHardwareDisable : Boolean [lecture seule] Valeur booléenne spécifiant si l'accès à la caméra et au microphone de l'utilisateur est interdit administrativement (true) ou autorisé (false). La chaîne de serveur est AVD. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.avHardwareDisable); Voir également get (méthode Camera.get), obtenir (méthode Microphone.get), showSettings (méthode System.showSettings) hasAccessibility (propriété capabilities.hasAccessibility) public static hasAccessibility : Boolean [lecture seule] Valeur booléenne définie sur true si le lecteur s'exécute dans un environnement qui prend en charge la communication entre Flash Player et les options d'accessibilité ; sinon définie sur false. La chaîne de serveur est ACC. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasAccessibility); 424 Chapitre 2: Classes ActionScript Voir également isActive (méthode Accessibility.isActive), updateProperties (méthode Accessibility.updateProperties), hasAudio (propriété capabilities.hasAudio) public static hasAudio : Boolean [lecture seule] Spécifie si le système est doté de fonctionnalités audio. Valeur booléenne définie sur true si le lecteur s'exécute sur un système doté de fonctionnalités audio ; sinon définie sur false. La chaîne de serveur est A. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasAudio); hasAudioEncoder (propriété capabilities.hasAudioEncoder) public static hasAudioEncoder : Boolean [lecture seule] Spécifie si Flash Player peut coder un flux continu. Valeur booléenne définie sur true si le lecteur peut coder un flux continu, tel que celui provenant d'un microphone ; sinon définie sur false. La chaîne de serveur est AE. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasAudioEncoder); hasEmbeddedVideo (propriété capabilities.hasEmbeddedVideo) public static hasEmbeddedVideo : Boolean [lecture seule] Valeur booléenne définie sur true si le lecteur s'exécute sur un système qui prend en charge la vidéo intégrée ; sinon définie sur false. La chaîne de serveur est EV. Disponibilité : ActionScript 1.0 ; Flash Player 6,0,65,0 capabilities (System.capabilities) 425 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasEmbeddedVideo); hasIME (propriété capabilities.hasIME) public static hasIME : Boolean [lecture seule] Indique si le système est doté d'un IME (éditeur de méthode d'entrée). Une valeur true indique que le lecteur s'exécute sur un système doté d'un IME ; une valeur false indique qu'aucun IME n'est installé. La chaîne de serveur est IME. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant positionne l'IME sur ALPHANUMERIC_FULL si le lecteur utilise un système sur lequel un IME est installé. if(System.capabilities.hasIME) { trace(System.IME.getConversionMode()); System.IME.setConversionMode(System.IME.ALPHANUMERIC_FULL); trace(System.IME.getConversionMode()); } hasMP3 (propriété capabilities.hasMP3) public static hasMP3 : Boolean [lecture seule] Spécifie si le système est doté d'un décodeur MP3. Valeur booléenne définie sur true si le lecteur s'exécute sur un système doté d'un décodeur MP3 ; sinon définie sur false. La chaîne de serveur est MP3. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasMP3); hasPrinting (propriété capabilities.hasPrinting) public static hasPrinting : Boolean [lecture seule] Valeur booléenne définie sur true si le lecteur s'exécute sur un système qui prend en charge l'impression ; définie sur false sinon. La chaîne de serveur est PR. Disponibilité : ActionScript 1.0 ; Flash Player 6,0,65,0 426 Chapitre 2: Classes ActionScript Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasPrinting); hasScreenBroadcast (propriété capabilities.hasScreenBroadcast) public static hasScreenBroadcast : Boolean [lecture seule] Valeur booléenne définie sur true si le lecteur prend en charge le développement des applications de diffusion sur écran devant être exécutées via Flash Communication Server ; définie sur false sinon. La chaîne de serveur est SB. Disponibilité : ActionScript 1.0 ; Flash Player 6,0,79,0 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasScreenBroadcast); hasScreenPlayback (propriété capabilities.hasScreenPlayback) public static hasScreenPlayback : Boolean [lecture seule] Valeur booléenne définie sur true si le lecteur prend en charge la lecture des applications de diffusion sur écran exécutées via Flash Communication Server ; définie sur false sinon. La chaîne de serveur est SP. Disponibilité : ActionScript 1.0 ; Flash Player 6,0,79,0 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasScreenPlayback); hasStreamingAudio (propriété capabilities.hasStreamingAudio) public static hasStreamingAudio : Boolean [lecture seule] Valeur booléenne définie sur true si le lecteur peut lire les sons en flux continu ; sinon définie sur false. La chaîne de serveur est SA. Disponibilité : ActionScript 1.0 ; Flash Player 6,0,65,0 capabilities (System.capabilities) 427 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasStreamingAudio); hasStreamingVideo (propriété capabilities.hasStreamingVideo) public static hasStreamingVideo : Boolean [lecture seule] Valeur booléenne définie sur true si le lecteur peut lire les vidéos en flux continu ; sinon définie sur false. La chaîne de serveur est SV. Disponibilité : ActionScript 1.0 ; Flash Player 6,0,65,0 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasStreamingVideo); hasVideoEncoder (propriété capabilities.hasVideoEncoder) public static hasVideoEncoder : Boolean [lecture seule] Spécifie si Flash Player peut coder un flux vidéo. Valeur booléenne définie sur true si le lecteur peut coder un flux vidéo, tel que celui provenant d'une caméra Web ; définie sur false sinon. La chaîne de serveur est VE. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.hasVideoEncoder); isDebugger (propriété capabilities.isDebugger) public static isDebugger : Boolean [lecture seule] Valeur booléenne indiquant si le lecteur est une version officielle (false) ou une version de débogage spéciale (true). La chaîne de serveur est DEB. Disponibilité : ActionScript 1.0 ; Flash Player 6 428 Chapitre 2: Classes ActionScript Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.isDebugger); langage (propriété capabilities.language) public static language : String [lecture seule] Indique la langue du système sur lequel s'exécute le lecteur. Cette propriété est spécifiée sous forme de code de langue à deux lettres en minuscules selon ISO 639-1. Pour le chinois, une balise secondaire de code pays à deux lettres en majuscules supplémentaire selon ISO 3166 permet de faire la distinction entre le chinois simplifié et traditionnel. Les langues, ellesmêmes, sont nommées avec des balises en anglais. Par exemple, fr signifie Français. Cette propriété a été modifiée en deux points pour Flash Player 7. Premièrement, le code de langue des systèmes en anglais n'inclut plus le code pays. Dans Flash Player 6, tous les systèmes en anglais renvoyaient le code de langue et la balise secondaire de code pays à deux lettres (en-US). Dans Flash Player 7, les systèmes en anglais renvoient uniquement le code de langue (en). Deuxièmement, sur les systèmes Microsoft Windows, cette propriété renvoie désormais la langue de l'interface utilisateur (IU). Dans Flash Player 6 sur la plate-forme Microsoft Windows, System.capabilities.language renvoie les paramètres régionaux utilisateur, permettant de sélectionner les paramètres de mise en forme des dates, heures, symboles monétaires et nombres élevés. Dans Flash Player 7 sur la plate-forme Microsoft Windows, cette propriété renvoie désormais la langue de l'interface utilisateur, qui se réfère à la langue utilisée pour tous les menus, boîtes de dialogue, messages d'erreur et fichiers d'aide. Le tableau suivant répertorie les valeurs possibles : Langue Balise Tchèque cs Danois da Néerlandais nl Anglais en Finnois fi Français fr Allemand de Hongrois hu Italien it Japonais ja capabilities (System.capabilities) 429 Langue Balise Coréen ko Norvégien no Autre/inconnu xu Polonais pl Portugais pt Russe ru Chinois simplifié zh-CN Espagnol es Suédois sv Chinois traditionnel zh-TW Turc tr Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.language); localFileReadDisable (propriété capabilities.localFileReadDisable) public static localFileReadDisable : Boolean [lecture seule] Valeur booléenne indiquant si l'accès en lecture au disque dur de l'utilisateur est interdit administrativement (true) ou autorisé (false). Si la propriété est définie sur true,, Flash Player ne peut pas lire de fichiers (y compris le premier fichier SWF de démarrage de Flash Player) sur le disque dur de l'utilisateur. Par exemple, toute tentative de lecture d'un fichier sur le disque dur de l'utilisateur à l'aide de XML.load(), LoadMovie(), ou LoadVars.load() échouera si cette propriété est définie sur true. La lecture de bibliothèques partagées à l'exécution sera également bloquée si cette propriété est définie sur true ; en revanche, la lecture d'objets partagés localement est autorisée, indépendamment de la valeur de cette propriété. La chaîne de serveur est LFD. Disponibilité : ActionScript 1.0 ; Flash Player 7 430 Chapitre 2: Classes ActionScript Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.localFileReadDisable); manufacturer (propriété capabilities.manufacturer) public static manufacturer : String [lecture seule] Chaîne indiquant le fabricant de Flash Player, au format "Macromedia OSName" (OSName peut être "Windows", "Macintosh", "Linux", ou "Other OS Name"). La chaîne de serveur est M. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.manufacturer); os (propriété capabilities.os) public static os : String [lecture seule] Chaîne indiquant le système d'exploitation actuel. La propriété os peut renvoyer les chaînes suivantes : "Windows XP", "Windows 2000", "Windows NT", "Windows 98/ME", "Windows 95", "Windows CE" (disponible seulement en version Flash Player SDK, et pas en version de bureau), "Linux", et "MacOS". La chaîne de serveur est OS. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.os); pixelAspectRatio (propriété capabilities.pixelAspectRatio) public static pixelAspectRatio : Number [lecture seule] Entier indiquant les proportions de l'écran, en pixels. La chaîne de serveur est AR. Disponibilité : ActionScript 1.0 ; Flash Player 6 capabilities (System.capabilities) 431 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.pixelAspectRatio); playerType (propriété capabilities.playerType) public static playerType : String [lecture seule] Chaîne indiquant le type de lecteur. Cette propriété peut avoir l'une des valeurs suivantes : ■ ■ "StandAlone" "External" pour le Flash StandAlone Player pour la version Flash Player utilisée par le lecteur externe, ou en mode Tester l'animation.. pour le module externe du navigateur Flash Player ■ "PlugIn" ■ "ActiveX" pour le contrôle ActiveX de Flash Player utilisé par Microsoft Internet Explorer La chaîne de serveur est PT. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.playerType); screenColor (propriété capabilities.screenColor) public static screenColor : String [lecture seule] Chaîne indiquant la couleur d'écran. Cette propriété peut avoir la valeur "color", "gray" ou "bw", représentant respectivement la couleur, les niveaux de gris, et le noir et blanc. La chaîne de serveur est COL. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.screenColor); 432 Chapitre 2: Classes ActionScript screenDPI (propriété capabilities.screenDPI) public static screenDPI : Number [lecture seule] Nombre indiquant la résolution en points par pouce (ppp) de l'écran, en pixels. La chaîne de serveur est DP. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.screenDPI); screenResolutionX (propriété capabilities.screenResolutionX) public static screenResolutionX : Number [lecture seule] Entier indiquant la résolution horizontale maximale de l'écran. La chaîne de serveur est R (qui renvoie la largeur et la hauteur de l'écran). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.screenResolutionX); screenResolutionX (propriété capabilities.screenResolutionX) public static screenResolutionY : Number [lecture seule] Entier indiquant la résolution verticale maximale de l'écran. La chaîne de serveur est R (qui renvoie la largeur et la hauteur de l'écran). Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.screenResolutionY); capabilities (System.capabilities) 433 serverString (propriété capabilities.serverString) public static serverString : String [lecture seule] Chaîne de code URL spécifiant les valeurs de chaque propriété System.capabilities. L'exemple suivant illustre une chaîne de code URL : A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t& SB=f&DEB=t&V=WIN%208%2C0%2C0%2C0&M=Macromedia%20Windows& R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP& L=en&PT=External&AVD=f&LFD=f&WD=f Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.serverString); version (propriété capabilities.version) public static version : String [lecture seule] Chaîne contenant la plate-forme Flash Player et les informations sur la version (par exemple, "WIN 8,0,0,0"). La chaîne de serveur est V. Disponibilité : ActionScript 1.0 ; Flash Player 6 Exemple L'exemple suivant présente la valeur de cette propriété en lecture seule : trace(System.capabilities.version); Color Object | +-Color public class Color extends Object Déconseillé depuis Flash Player 8. La classe Color a été déconseillée en faveur de la classe flash.geom.ColorTransform. 434 Chapitre 2: Classes ActionScript La classe Color vous permet de définir la valeur d'une couleur RVB et la transformation de couleurs des clips, puis de récupérer ces valeurs une fois définies. Vous devez utiliser le constructeur new Color() pour créer un objet Color avant d'appeler ses méthodes. Disponibilité : ActionScript 1.0 ; Flash Player 5 Résumé des propriétés Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des constructeurs Signature Description Color(target:Object) Classe déconseillée. Crée un objet Color pour le clip spécifié par le paramètre target_mc. Résumé de la méthode Modificateurs Signature Description getRGB() : Number Classe déconseillée. Renvoie la combinaison R+V+B actuellement utilisée par l'objet Color. getTransform() : Classe déconseillée. Renvoie la valeur de transformation définie par le dernier appel Color.setTransform(). Object setRGB(offset:Number Classe déconseillée. ) : Void Spécifie une couleur RVB pour un objet Color. setTransform(transfo Classe déconseillée. rmObject:Object) : Void Définit les informations relatives à la transformation de couleurs pour un objet Color. Color 435 Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) constructeur Color public Color(target:Object) La classe Color est déconseillée depuis Flash Player 8. Crée un objet Color pour le clip spécifié par le paramètre target_mc. Vous pouvez alors utiliser les méthodes de cet objet Color pour modifier la couleur du clip cible entier. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres target:Object - Nom d'occurrence d'un clip. Exemple L'exemple suivant crée un objet Color intitulé my_color pour le clip my_mc et définit sa valeur RVB sur orange : var my_color:Color = new Color(my_mc); my_color.setRGB(0xff9933); getRGB (méthode Color.getRGB) public getRGB() : Number La classe Color est déconseillée depuis Flash Player 8. Renvoie la combinaison R+V+B actuellement utilisée par l'objet Color. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number 436 - Nombre représentant la valeur numérique RVB de la couleur spécifiée. Chapitre 2: Classes ActionScript Exemple Le code suivant récupère la valeur RVB de l'objet Color intitulé my_color, convertit la valeur en chaîne hexadécimale et l'affecte à la variable myValue Pour voir ce code fonctionner, ajoutez une occurrence de clip intitulée my_mc à la scène : var my_color:Color = new Color(my_mc); // set the color my_color.setRGB(0xff9933); var myValue:String = my_color.getRGB().toString(16); // trace the color value trace(myValue); // traces ff9933 Voir également setRGB (méthode Color.setRGB) getTransform (méthode Color.getTransform) public getTransform() : Object La classe Color est déconseillée depuis Flash Player 8. Renvoie la valeur de transformation définie par le dernier appel Color.setTransform(). Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Object - Objet dont les propriétés contiennent les valeurs actuelles de décalage et de pourcentage de la couleur spécifiée. Exemple L'exemple suivant lit l'objet Transform et définit les nouveaux pourcentages de couleurs et la valeur alpha de my_mc par rapport à leurs valeurs actuelles. Pour voir ce code fonctionner, placez un clip multicolore portant le nom d'occurrence my_mc sur la scène. Ensuite, insérez le code suivant sur l'image 1 du scénario principal et sélectionnez Contrôle > Tester l'animation : var my_color:Color = new Color(my_mc); var myTransform:Object = my_color.getTransform(); myTransform = { ra: 50, ba: 50, aa: 30}; my_color.setTransform(myTransform); Pour obtenir une description des paramètres relatifs à l'objet de transformation de couleurs, consultez Color.setTransform(). Color 437 Voir également setTransform (méthode Color.setTransform) setRGB (méthode Color.setRGB) public setRGB(offset:Number) : Void La classe Color est déconseillée depuis Flash Player 8. Spécifie une couleur RVB pour un objet Color. L'appel de cette méthode remplace tout paramètre Color.setTransform() précédent. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres - 0x RRGGBB La valeur hexadécimale ou la couleur RVB à définir. Les valeurs et BB se composent chacune de deux chiffres hexadécimaux qui spécifient le décalage de chaque composant de couleur. La valeur 0x indique au compilateur ActionScript que le nombre est une valeur hexadécimale. offset:Number RR, GG, Exemple Cet exemple définit la valeur de couleur RVB pour le clip my_mc. Pour voir ce code fonctionner, placez sur la scène un clip portant le nom d'occurrence my_mc. Ensuite, insérez le code suivant sur l'image 1 du scénario principal et sélectionnez Contrôle > Tester l'animation : var my_color:Color = new Color(my_mc); my_color.setRGB(0xFF0000); // my_mc turns red Voir également setTransform (méthode Color.setTransform) setTransform (méthode Color.setTransform) public setTransform(transformObject:Object) : Void La classe Color est déconseillée depuis Flash Player 8. Définit les informations relatives à la transformation de couleurs pour un objet Color. Le paramètre colorTransformObject est un objet générique que vous créez à partir du constructeur new Object. Il dispose de paramètres spécifiant les valeurs de pourcentage et de décalage des composants rouge, vert, bleu et alpha (transparence) d'une couleur, saisies au format 0xRRGGBBAA. 438 Chapitre 2: Classes ActionScript Les paramètres d'un objet de transformation de couleurs correspondent à ceux de la boîte de dialogue Effet avancé et sont définis comme suit : ■ ra est le pourcentage du composant rouge (-100 à 100). ■ rb est le décalage du composant rouge (-255 à 255). ■ ga est le pourcentage du composant vert (-100 à 100). ■ gb est le décalage du composant vert (-255 à 255). ■ ba est le pourcentage du composant bleu (-100 à 100). ■ bb est le décalage du composant bleu (-255 à 255). ■ aa est le pourcentage pour alpha (-100 à 100). ■ ab est le décalage pour alpha (-255 à 255). Pour créer un paramètre colorTransformObject, procédez comme suit : var myColorTransform:Object = new Object(); myColorTransform.ra = 50; myColorTransform.rb = 244; myColorTransform.ga = 40; myColorTransform.gb = 112; myColorTransform.ba = 12; myColorTransform.bb = 90; myColorTransform.aa = 40; myColorTransform.ab = 70; Vous pouvez également utiliser la syntaxe suivante pour créer un paramètre colorTransformObject: var myColorTransform:Object = { ra: 50, rb: 244, ga: 40, gb: 112, ba: 12, bb: 90, aa: 40, ab: 70} Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres - Objet créé à partir du constructeur new Object. Les propriétés de cette occurrence de la classe Object permettant de spécifier les valeurs de transformation de couleurs doivent être les suivantes : ra, rb, ga, gb, ba, bb, aa, ab. Ces propriétés sont expliquées ci-dessous. transformObject:Object Color 439 Exemple Cet exemple crée un nouvel objet Color pour un fichier SWF cible, un objet générique intitulé myColorTransform doté des propriétés définies ci-dessus et utilise la méthode setTransform() pour transmettre la valeur colorTransformObject à un objet Color. Pour utiliser ce code dans un document Flash (FLA), insérez-le sur l'image 1 du scénario principal, puis placez un clip portant le nom d'occurrence my_mc sur la scène, de la manière suivante : // Create a color object called my_color for the target my_mc var my_color:Color = new Color(my_mc); // Create a color transform object called myColorTransform using // Set the values for myColorTransform var myColorTransform:Object = { ra: 50, rb: 244, ga: 40, gb: 112, ba: 12, bb: 90, aa: 40, ab: 70}; // Associate the color transform object with the Color object // created for my_mc my_color.setTransform(myColorTransform); Voir également Object ColorMatrixFilter (flash.filters.ColorMatrixFilter) Object | +-flash.filters.BitmapFilter | +-flash.filters.ColorMatrixFilter public class ColorMatrixFilter extends BitmapFilter La classe ColorMatrixFilter vous permet d'appliquer une transformation de matrice 4 x 5 aux valeurs de couleur RVBA et alpha de chaque pixel de l'image d'entrée afin d'obtenir un résultat intégrant un nouvel ensemble de valeurs de couleur RVBA et alpha. Elle permet d'effectuer des modifications de saturation, des rotations de teinte, de définir la luminance de l'alpha et de produire d'autres effets. Vous pouvez appliquer ce filtre aux bitmaps et aux occurrences MovieClip. L'utilisation de filtres dépend de l'objet auquel vous appliquez le filtre. ■ Pour appliquer les filtres lors de l'exécution du clip, utilisez la propriété filters. Lorsque vous définissez la propriété filters d'un objet, celui-ci n'est pas modifié. En outre, vous pouvez l'annuler en supprimant la propriété filters. 440 Chapitre 2: Classes ActionScript Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode BitmapData.applyFilter() . L'appel applyFilter() sur un objet BitmapData, utilise l'objet BitmapData d'origine ainsi que l'objet filtre pour générer une image filtrée. ■ Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d'informations, consultez la documentation relative à la programmation. Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d'origine de cacheAsBitmap est restaurée. Les formules suivantes sont utilisées où a[0] à a[19] correspondent aux entrées 0 à 19 dans la matrice de propriété de tableau du vingtième élément : redResult = a[0] * srcR + a[1] * srcG + a[2] * srcB + a[3] * srcA + a[4] greenResult = a[5] * srcR + a[6] * srcG + a[7] * srcB + a[8] * srcA + a[9] blueResult = a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] * srcA + a[14] alphaResult = a[15] * srcR + a[16] * srcG + a[17] * srcB + a[18] * srcA + a[19] Ce filtre sépare chaque pixel d'origine en composants rouge, vert, bleu et alpha comme suit : srcR, srcG, srcB, srcA. Pour finir, il associe de nouveau chaque composant de couleur pour former un pixel unique et renvoie le résultat. Les calculs sont effectués sur des valeurs de couleur non multipliées. Si le graphique d'entrée est constitué de valeurs de couleur prémultipliées, celles-ci sont automatiquement converties en valeurs de couleur non multipliées en vue de cette opération. Les deux modes optimisés suivants sont disponibles. Alpha uniquement. Quand vous passez au filtre une matrice qui ajuste uniquement le composant alpha, comme indiqué ici, le filtre optimise ses performances : 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 N 0 0 0 0 (where N is between 0.0 and 1.0) Version plus rapide. Disponible uniquement sur les processeurs dotés d'un accélérateur SSE/ Altivec (tels que Pentium 3 et version ultérieure, Apple G4 et version ultérieure). L'accélérateur est utilisé quand les termes de multiplicateur se trouvent dans la plage comprise entre -15,99 et 15,99 et les termes d'additionneur a[4], a[9], a[14] et a[19] se trouvent dans la plage comprise entre -8 000 et 8 000. ColorMatrixFilter (flash.filters.ColorMatrixFilter) 441 Un filtre ne peut s' appliquer si l'image résultante dépasse 2 880 pixels en largeur ou en hauteur. Par exemple, si vous faites un zoom avant sur un grand clip auquel le filtre est appliqué, le filtre est désactivé si l'image résultante atteint la limite de 2 880 pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant utilise BitmapFilter pour manipuler la saturation en couleur d'une image située à l'emplacement du pointeur de la souris. Si vous positionnez le pointeur dans le coin supérieur gauche (0,0), l'image ne doit pas être modifiée. Quand vous déplacez le pointeur vers la droite, les canaux vert et bleu sont enlevés en même temps de l'image. Quand vous déplacez le pointeur vers le bas, le canal rouge est enlevé. Si le pointeur est placé à l'angle inférieur droit de la scène, l'image doit être entièrement noire. Cet exemple suppose que vous ayez dans votre librairie une image avec son Linkage Identifier réglé sur « YourImageLinkage ». import flash.filters.BitmapFilter; import flash.filters.ColorMatrixFilter; var image:MovieClip = this.attachMovie("YourImageLinkage", "YourImage", this.getNextHighestDepth()); image.cacheAsBitmap = true; var listener:Object = new Object(); listener.image = image; listener.onMouseMove = function() { var xPercent:Number = 1 - (_xmouse/Stage.width); var yPercent:Number = 1 - (_ymouse/Stage.height); var matrix:Array = new Array(); matrix = matrix.concat([yPercent, 0, 0, 0, 0]); // red matrix = matrix.concat([0, xPercent, 0, 0, 0]); // green matrix = matrix.concat([0, 0, xPercent, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha var filter:BitmapFilter = new ColorMatrixFilter(matrix); image.filters = new Array(filter); } Mouse.addListener(listener); listener.onMouseMove(); Voir également getPixel (méthode BitmapData.getPixel), applyFilter (méthode BitmapData.applyFilter), filters (propriété MovieClip.filters), cacheAsBitmap (propriété MovieClip.cacheAsBitmap) 442 Chapitre 2: Classes ActionScript Résumé des propriétés Modificateurs Propriété matrix:Array Description Un tableau de 20 éléments pour la transformation de couleurs 4 x 5. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des constructeurs Signature Description ColorMatrixFilter(ma Initialise une nouvelle occurrence ColorMatrixFilter avec les paramètres trix:Array) spécifiés. Résumé de la méthode Modificateurs Signature clone() : Description Renvoie une copie de cet objet filtre. ColorMatrixFilter Méthodes héritées de la classe BitmapFilter clone (méthode BitmapFilter.clone ) Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) ColorMatrixFilter (flash.filters.ColorMatrixFilter) 443 clone (méthode ColorMatrixFilter.clone) public clone() : ColorMatrixFilter Renvoie une copie de cet objet filtre. Disponibilité : ActionScript 1.0 ; Flash Player 8 Valeur renvoyée - Nouvelle occurrence ColorMatrixFilter dont les propriétés sont toutes identiques à celles de l'occurrence d'origine. flash.filters.ColorMatrixFilter Exemple L'exemple suivant crée une nouvelle occurrence de ColorMatrixFilter et ensuite la clone en utilisant la méthode clone. La propriété matrix ne peut pas être changée directement (par exemple, clonedFilter.matrix[2] = 1;). Vous devez plutôt donner une référence au tableau, effectuer le changement, et restaurer la valeur en utilisant clonedFilter.matrix = changedMatrix. import flash.filters.ColorMatrixFilter; var matrix:Array = new Array(); matrix = matrix.concat([1, 0, 0, matrix = matrix.concat([0, 1, 0, matrix = matrix.concat([0, 0, 1, matrix = matrix.concat([0, 0, 0, 0, 0, 0, 1, 0]); 0]); 0]); 0]); // // // // red green blue alpha var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix); trace("filter: " + filter.matrix); var clonedFilter:ColorMatrixFilter = filter.clone(); matrix = clonedFilter.matrix; matrix[2] = 1; clonedFilter.matrix = matrix; trace("clonedFilter: " + clonedFilter.matrix); constructeur ColorMatrixFilter() public ColorMatrixFilter(matrix:Array) Initialise une nouvelle occurrence ColorMatrixFilter avec les paramètres spécifiés. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres matrix:Array 444 - Tableau de 20 éléments organisés en matrice de 4 x 5. Chapitre 2: Classes ActionScript matrix (propriété ColorMatrixFilter.matrix) public matrix : Array Un tableau de 20 éléments pour la transformation de couleurs 4 x 5. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée une nouvelle occurrence de ColorMatrixFilter et ensuite change sa propriété matrix. La propriété matrix ne peut pas être changée directement en modifiant sa valeur (par exemple, clonedFilter.matrix[2] = 1;). Vous devez plutôt donner une référence au tableau, effectuer le changement de la référence, et restaurer la valeur en utilisant clonedFilter.matrix = changedMatrix. import flash.filters.ColorMatrixFilter; var matrix:Array = new Array(); matrix = matrix.concat([1, 0, 0, matrix = matrix.concat([0, 1, 0, matrix = matrix.concat([0, 0, 1, matrix = matrix.concat([0, 0, 0, 0, 0, 0, 1, 0]); 0]); 0]); 0]); // // // // red green blue alpha var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix); trace("filter: " + filter.matrix); var changedMatrix:Array = filter.matrix; changedMatrix[2] = 1; filter.matrix = changedMatrix; trace("filter: " + filter.matrix); ColorTransform (flash.geom.ColorTransform) Object | +-flash.geom.ColorTransform public class ColorTransform extends Object La classe ColorTransform vous permet de régler de façon mathématique l'ensemble des valeurs de couleur dans un clip. La fonction de réglage des couleurs ou transformation de couleur peut être appliquée aux quatre canaux : rouge, vert, bleu et transparence alpha. ColorTransform (flash.geom.ColorTransform) 445 Lorsqu'un objet ColorTransform est appliqué à un clip, une nouvelle valeur est calculée pour chaque canal de couleur de la manière suivante : ■ Nouvelle valeur de rouge = (ancienne valeur de rouge * redMultiplier)) + redOffset ■ Nouvelle valeur de vert = (ancienne valeur de vert * greenMultiplier)) + greenOffset ■ Nouvelle valeur de bleu = (ancienne valeur de bleu * blueMultiplier)) + blueOffset ■ Nouvelle valeur alpha = (ancienne valeur alpha * alphaMultiplier)) + alphaOffset Si l'une des valeurs de canal de couleur est supérieure à 255 une fois le calcul effectué, elle est définie sur 255. Si elle est inférieure à zéro, elle est définie sur zéro. Vous devez utiliser le constructeur new ColorTransform() pour créer un objet ColorTransform afin de pouvoir appeler les méthodes de l'objet ColorTransform. Les transformations de couleurs ne s'appliquent pas à la couleur d'arrière-plan d'un clip (tel qu'un objet SWF chargé). Elles s'appliquent uniquement aux graphiques et symboles associés au clip. Disponibilité : ActionScript 1.0 ; Flash Player 8 Voir également getTransform (méthode Color.getTransform), setTransform (méthode Color.setTransform), Transform (flash.geom.Transform) 446 Chapitre 2: Classes ActionScript Résumé des propriétés Modificateurs Propriété Description alphaMultiplier:Numb Une valeur décimale multipliée par la valeur du canal er de transparence alpha. alphaOffset:Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de transparence alpha après avoir été multiplié par la valeur alphaMultiplier. blueMultiplier:Numbe Une valeur décimale multipliée par la valeur du canal r de bleu. blueOffset:Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de bleu après avoir été multiplié par la valeur blueMultiplier. greenMultiplier:Numb Une valeur décimale multipliée par la valeur du canal er de vert. greenOffset:Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de vert après avoir été multiplié par la valeur greenMultiplier. redMultiplier:Number Une valeur décimale multipliée par la valeur du canal de rouge. redOffset:Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de rouge après avoir été multiplié par la valeur redMultiplier. rgb:Number La valeur de couleur RVB d'un objet ColorTransform. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) ColorTransform (flash.geom.ColorTransform) 447 Résumé des constructeurs Signature Description ColorTransform([redM Crée un objet ColorTransform pour un objet d'affichage avec les ultiplier:Number], paramètres RVB et alpha spécifiés. [greenMultiplier:Num ber], [blueMultiplier:Numb er], [alphaMultiplier:Num ber], [redOffset:Number], [greenOffset:Number] , [blueOffset:Number], [alphaOffset:Number] ) Résumé de la méthode Modificateurs Signature Description concat(second:ColorT Applique au clip une deuxième transformation additive ransform) : Void de couleur. toString() : String Formate et renvoie une chaîne qui décrit l'ensemble des propriétés de l'objet ColorTransform. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) 448 Chapitre 2: Classes ActionScript alphaMultiplier (propriété ColorTransform.alphaMultiplier) public alphaMultiplier : Number Une valeur décimale multipliée par la valeur du canal de transparence alpha. Si vous définissez la valeur de transparence alpha d'un clip directement à l'aide de la propriété MovieClip._alpha, celle-ci affecte la valeur de la propriété alphaMultiplier de l'objet ColorTransform de ce clip. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur alphaMultiplier de 1 à 0,5. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.alphaMultiplier); // 1 colorTrans.alphaMultiplier = .5; trace(colorTrans.alphaMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } Voir également _alpha (propriété MovieClip._alpha) ColorTransform (flash.geom.ColorTransform) 449 alphaOffset (propriété ColorTransform.alphaOffset) public alphaOffset : Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de transparence alpha après avoir été multiplié par la valeur alphaMultiplier. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur alphaOffset de 0 à -128. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.alphaOffset); // 0 colorTrans.alphaOffset = -128; trace(colorTrans.alphaOffset); // -128 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } blueMultiplier (propriété ColorTransform.blueMultiplier) public blueMultiplier : Number Une valeur décimale multipliée par la valeur du canal de bleu. Disponibilité : ActionScript 1.0 ; Flash Player 8 450 Chapitre 2: Classes ActionScript Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur blueMultiplier de 1 à 0,5. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.blueMultiplier); // 1 colorTrans.blueMultiplier = .5; trace(colorTrans.blueMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0x0000FF); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } blueOffset (propriété ColorTransform.blueOffset) public blueOffset : Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de bleu après avoir été multiplié par la valeur blueMultiplier. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur blueOffset de 0 à 255. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.blueOffset); // 0 ColorTransform (flash.geom.ColorTransform) 451 colorTrans.blueOffset = 255; trace(colorTrans.blueOffset); // 255 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } constructeur ColorTransform public ColorTransform([redMultiplier:Number], [greenMultiplier:Number], [blueMultiplier:Number], [alphaMultiplier:Number], [redOffset:Number], [greenOffset:Number], [blueOffset:Number], [alphaOffset:Number]) Crée un objet ColorTransform pour un objet d'affichage avec les paramètres RVB et alpha spécifiés. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres redMultiplier:Number [facultatif ] - Valeur du multiplicateur de rouge, comprise entre 0 et 1. La valeur par défaut est 1. greenMultiplier:Number [facultatif ] - Valeur du multiplicateur de vert, comprise entre 0 et 1. La valeur par défaut est 1. blueMultiplier:Number [facultatif ] - Valeur du multiplicateur de bleu, comprise entre 0 et 1. La valeur par défaut est 1. [facultatif ] - Valeur du multiplicateur de transparence alpha, comprise entre 0 et 1. La valeur par défaut est 1. alphaMultiplier:Number [facultatif ] - Décalage de la valeur du canal de couleur rouge (-255 à 255). La valeur par défaut est 0. redOffset:Number greenOffset:Number [facultatif ] - Décalage de la valeur du canal de couleur vert (-255 à 255). La valeur par défaut est 0. 452 Chapitre 2: Classes ActionScript [facultatif ] - Décalage de la valeur du canal de couleur bleu (-255 à 255). La valeur par défaut est 0. blueOffset:Number [facultatif ] - Décalage de la valeur du canal de transparence alpha (255 à 255). La valeur par défaut est 0. alphaOffset:Number Exemple L'exemple suivant crée un objet ColorTransform intitulé greenTransform : var greenTransform:flash.geom.ColorTransform = new flash.geom.ColorTransform(0.5, 1.0, 0.5, 0.5, 10, 10, 10, 0); L'exemple suivant crée l'objet ColorTransform intitulé colorTrans_1 possédant les valeurs de constructeur par défaut. Le fait que colorTrans_1 et colorTrans_2 possèdent les mêmes valeurs est la preuve que les valeurs de constructeur par défaut sont utilisées. import flash.geom.ColorTransform; var colorTrans_1:ColorTransform = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0); trace(colorTrans_1); //(redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) var colorTrans_2:ColorTransform = new ColorTransform(); trace(colorTrans_2); //(redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) concat (méthode ColorTransform.concat) public concat(second:ColorTransform) : Void Applique au clip une deuxième transformation additive de couleur. Le deuxième ensemble de paramètres de transformation est appliqué aux couleurs du clip une fois la première transformation terminée. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres second:flash.geom.ColorTransform - Deuxième objet ColorTransform devant être combiné avec l'objet ColorTransform actuel. ColorTransform (flash.geom.ColorTransform) 453 Exemple L'exemple suivant concatène l'objet ColorTransform colorTrans_2 à colorTrans_1, ce qui donne un décalage complet de rouge combiné avec un multiplicateur alpha de 0,5. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans_1:ColorTransform = new ColorTransform(1, 1, 1, 1, 255, 0, 0, 0); trace(colorTrans_1); // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=255, greenOffset=0, blueOffset=0, alphaOffset=0) var colorTrans_2:ColorTransform = new ColorTransform(1, 1, 1, .5, 0, 0, 0, 0); trace(colorTrans_2); // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=0.5, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) colorTrans_1.concat(colorTrans_2); trace(colorTrans_1); // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=0.5, redOffset=255, greenOffset=0, blueOffset=0, alphaOffset=0) var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans_1; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } 454 Chapitre 2: Classes ActionScript greenMultiplier (propriété ColorTransform.greenMultiplier) public greenMultiplier : Number Une valeur décimale multipliée par la valeur du canal de vert. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur greenMultiplier de 1 à 0,5. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.greenMultiplier); // 1 colorTrans.greenMultiplier = .5; trace(colorTrans.greenMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0x00FF00); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } greenOffset (propriété ColorTransform.greenOffset) public greenOffset : Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de vert après avoir été multiplié par la valeur greenMultiplier. Disponibilité : ActionScript 1.0 ; Flash Player 8 ColorTransform (flash.geom.ColorTransform) 455 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur greenOffset de 0 à 255. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.greenOffset); // 0 colorTrans.greenOffset = 255; trace(colorTrans.greenOffset); // 255 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } redMultiplier (propriété ColorTransform.redMultiplier) public redMultiplier : Number Une valeur décimale multipliée par la valeur du canal de rouge. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur redMultiplier de 1 à 0,5. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.redMultiplier); // 1 colorTrans.redMultiplier = .5; 456 Chapitre 2: Classes ActionScript trace(colorTrans.redMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0xFF0000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } redOffset (propriété ColorTransform.redOffset) public redOffset : Number Un nombre, compris entre -255 et 255, qui est ajouté à la valeur du canal de rouge après avoir été multiplié par la valeur redMultiplier. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur redOffset de 0 à 255. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.redOffset); // 0 colorTrans.redOffset = 255; trace(colorTrans.redOffset); // 255 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); ColorTransform (flash.geom.ColorTransform) 457 var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } rgb (propriété ColorTransform.rgb) public rgb : Number La valeur de couleur RVB d'un objet ColorTransform. Quand vous définissez cette propriété, vous obtenez par conséquent un changement des trois valeurs de couleur (redOffset, greenOffset, et blueOffset) et une définition des trois valeurs de multiplicateurs de couleurs (redMultiplier, greenMultiplier, et blueMultiplier) sur zéro. Le multiplicateur de transparence alpha et les valeurs de décalage ne changent pas. Transmettez une valeur à cette propriété au format : 0xRRGGBB. Les valeurs RR, GG et BB se composent chacune de deux chiffres hexadécimaux qui spécifient le décalage de chaque composant de couleur. La valeur 0x indique au compilateur ActionScript que le nombre est une valeur hexadécimale. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et ajuste sa valeur rgb à 0xFF0000. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.rgb); // 0 colorTrans.rgb = 0xFF0000; trace(colorTrans.rgb); // 16711680 trace("0x" + colorTrans.rgb.toString(16)); // 0xff0000 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { 458 Chapitre 2: Classes ActionScript scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } Voir également setRGB (méthode Color.setRGB), getRGB (méthode Color.getRGB) toString (méthode ColorTransform.toString) public toString() : String Formate et renvoie une chaîne qui décrit l'ensemble des propriétés de l'objet ColorTransform. Disponibilité : ActionScript 1.0 ; Flash Player 8 Valeur renvoyée String - Chaîne répertoriant toutes les propriétés de l'objet ColorTransform. Exemple L'exemple suivant crée l'objet ColorTransform colorTrans et appelle sa méthode Cette méthode donne une chaîne au format suivant : (redMultiplier=RM, greenMultiplier=GM, blueMultiplier=BM, alphaMultiplier=AM, redOffset=RO, greenOffset=GO, blueOffset=BO, alphaOffset=AO). toSting(). import flash.geom.ColorTransform; var colorTrans:ColorTransform = new ColorTransform(1, 2, 3, 4, -255, -128, 128, 255); trace(colorTrans.toString()); // (redMultiplier=1, greenMultiplier=2, blueMultiplier=3, alphaMultiplier=4, redOffset=-255, greenOffset=-128, blueOffset=128, alphaOffset=255) ColorTransform (flash.geom.ColorTransform) 459 ContextMenu Object | +-ContextMenu public dynamic class extends Object ContextMenu La classe ContextMenu permet de contrôler à l'exécution les éléments du menu contextuel de Flash Player qui s'affichent lorsqu'un utilisateur clique avec le bouton droit (Windows) ou en appuyant sur la touche Contrôle (Macintosh) dans Flash Player. Vous pouvez utiliser les méthodes et les propriétés de la classe ContextMenu pour ajouter des éléments de menu personnalisés, contrôler l'affichage des éléments du menu contextuel intégrés (par exemple, Zoom avant et Imprimer) ou créer des copies de menus. Vous pouvez lier un objet ContextMenu à un bouton, clip ou objet de champ de texte spécifique, ou à un niveau d'animation entier. Pour ce faire, il vous suffit d'utiliser la propriété menu des classes Button, MovieClip ou TextField. Pour plus d'informations sur la propriété menu, consultez Button.menu, MovieClip.menu et TextField.menu. Pour ajouter de nouveaux articles à un objet ContextMenu, vous créez un objet ContextMenuItem et vous ajoutez ensuite cet objet au tableau ContextMenu.customItems. Pour plus d'informations sur la création d'éléments de menu contextuel, consultez l'entrée de la classe ContextMenuItem. Flash Player est doté de trois types de menus contextuels : le menu standard (qui s'affiche lorsque vous cliquez avec le bouton droit de la souris dans Flash Player), le menu Edition (qui s'affiche lorsque vous cliquez avec le bouton droit de la souris sur un champ de texte sélectionnable ou modifiable), et un menu d'erreur (qui s'affiche lorsque le chargement d'un fichier SWF dans Flash Player a échoué.) Seuls les menus standard et Edition peuvent être modifiés avec la classe ContextMenu. Les éléments de menu personnalisés s'affichent toujours dans la partie supérieure du menu contextuel de Flash Player, au-dessus des éléments de menu intégrés visibles ; une barre de séparation permet de faire la distinction entre les éléments de menu intégrés et personnalisés. Vous ne pouvez pas ajouter plus de 15 éléments personnalisés à un menu contextuel. Vous ne pouvez pas supprimer l'élément de menu Paramètres dans le menu contextuel. L'élément de menu Paramètres est requis dans Flash de manière à ce que les utilisateurs puissent accéder aux paramètres relatifs à la confidentialité et à l'enregistrement des données sur leurs ordinateurs. De même, vous ne pouvez pas supprimer l'élément de menu A propos de dans le menu contextuel : celui-ci est requis de manière à ce que les utilisateurs puissent connaître la version de Flash Player qu'ils utilisent. 460 Chapitre 2: Classes ActionScript Vous devez utiliser le constructeur new ContextMenu() pour créer un objet ContextMenu avant d'appeler ses méthodes. Disponibilité : ActionScript 1.0 ; Flash Player 7 Voir également ContextMenuItem, menu (propriété Button.menu), menu (propriété MovieClip.menu), menu (propriété TextField.menu) Résumé des propriétés Modificateurs Propriété Description builtInItems:Object Un objet ayant les propriétés booléennes suivantes : zoom, quality, play, loop, rewind, forward_back, et print. customItems:Array Un tableau d'objets ContextMenuItem. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des événements Evénement Description onSelect = Appelé lorsqu'un utilisateur invoque le menu contextuel de Flash Player, function(item:Ob mais avant que le menu ne s'affiche. ject, item_menu:Object ) {} Résumé des constructeurs Signature Description ContextMenu([callbac Crée un nouvel objet ContextMenu. kFunction:Function]) ContextMenu 461 Résumé de la méthode Modificateurs Signature Description copy() : ContextMenu Crée une copie de l'objet ContextMenu spécifié. hideBuiltInItems() : Masque tous les éléments de menu intégrés (à Void l'exception de Paramètres) dans l'objet ContextMenu spécifié. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) builtInItems (propriété ContextMenu.builtInItems) public builtInItems : Object Un objet ayant les propriétés booléennes suivantes : zoom, quality, play, loop, rewind, forward_back, et print. La définition de ces variables sur false supprime les éléments de menu correspondants sur l'objet ContextMenu spécifié. Ces propriétés sont énumérables et définies sur true par défaut. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple Dans cet exemple, les éléments de menu intégrés Qualité et Imprimer sont désactivés pour l'objet ContextMenu intitulé my_cm, associé au scénario actuel du fichier SWF. var my_cm:ContextMenu = new ContextMenu (); my_cm.builtInItems.quality=false; my_cm.builtInItems.print=false; this.menu = my_cm; Remarque : Vous ne pouvez pas désactiver les éléments de menu Paramètres ou A propos de dans le menu contextuel. Dans l'exemple suivant, une boucle for..in énumère tous les noms et toutes les valeurs des éléments de menu intégrés de l'objet ContextMenu, my_cm. var my_cm:ContextMenu = new ContextMenu(); for(eachProp in my_cm.builtInItems) { var propName = eachProp; var propValue = my_cm.builtInItems[propName]; 462 Chapitre 2: Classes ActionScript trace(propName + ": " + propValue); } constructeur ContextMenu public ContextMenu([callbackFunction:Function]) Crée un nouvel objet ContextMenu. Vous pouvez également spécifier un identifiant pour un gestionnaire d'événements lorsque vous créez l'objet. La fonction spécifiée est appelée lorsque l'utilisateur invoque le menu contextuel, mais avant que le menu ne s'affiche. Cette fonction s'avère utile pour personnaliser le contenu du menu en fonction de l'état de l'application ou du type d'objet (clip, champ de texte ou bouton) ou du scénario sur lequel l'utilisateur a cliqué avec le bouton droit de la souris ou avec la touche Contrôle. (Voir ContextMenu.onSelect pour un exemple de création de gestionnaire d'événements.) Disponibilité : ActionScript 1.0 ; Flash Player 7 Paramètres [facultatif ] - Référence à une fonction qui est appelée lorsque l'utilisateur clique avec le bouton droit de la souris ou maintient la touche Contrôle enfoncée, avant que le menu s'affiche. callbackFunction:Function Exemple L'exemple suivant masque tous les objets intégrés dans le menu contextuel. (Toutefois, les éléments Paramètres et A propos de s'affichent toujours car ils ne peuvent pas être désactivés.) var newMenu:ContextMenu = new ContextMenu(); newMenu.hideBuiltInItems(); this.menu = newMenu; Dans cet exemple, le gestionnaire d'événements spécifié, menuHandler, active ou désactive un élément de menu personnalisé (à l'aide du tableau ContextMenu.customItems) selon la valeur d'une variable booléenne intitulée showItem. Si la valeur est false, l'élément de menu personnalisé est désactivé ; dans le cas contraire, il est activé. var showItem = true; // Change this to false to remove var my_cm:ContextMenu = new ContextMenu(menuHandler); my_cm.customItems.push(new ContextMenuItem("Hello", itemHandler)); function menuHandler(obj, menuObj) { if (showItem == false) { menuObj.customItems[0].enabled = false; } else { menuObj.customItems[0].enabled = true; } } function itemHandler(obj, item) { ContextMenu 463 //...put code here... trace("selected!"); } this.menu = my_cm; Lorsque l'utilisateur clique avec le bouton droit de la souris ou maintient la touche Contrôle enfoncée dans la scène, le menu personnalisé s'affiche. Voir également menu (propriété Button.menu), onSelect (gestionnaire ContextMenu.onSelect), customItems (propriété ContextMenu.customItems), hideBuiltInItems (méthode ContextMenu.hideBuiltInItems), menu (propriété MovieClip.menu), menu (propriété TextField.menu) copy (méthode ContextMenu.copy) public copy() : ContextMenu Crée une copie de l'objet ContextMenu spécifié. La copie hérite de toutes les propriétés de l'objet de menu original. Disponibilité : ActionScript 1.0 ; Flash Player 7 Valeur renvoyée ContextMenu - Objet ContextMenu. Exemple Cet exemple crée une copie de l'objet ContextMenu intitulé my_cm, dont les éléments de menu intégrés sont masqués, puis ajoute un élément de menu avec le texte « Enregistrer... ». Il crée ensuite une copie de my_cm et l'affecte à la variable clone_cm qui hérite de toutes les propriétés du menu d'origine. var my_cm:ContextMenu = new ContextMenu(); my_cm.hideBuiltInItems(); var menuItem_cmi:ContextMenuItem = new ContextMenuItem("Save...", saveHandler); my_cm.customItems.push(menuItem_cmi); function saveHandler(obj, menuItem) { // saveDocument(); // custom function (not shown) trace("something"); } clone_cm = my_cm.copy(); this.menu = my_cm; for (var i in clone_cm.customItems) { trace("clone_cm-> "+clone_cm.customItems[i].caption); 464 Chapitre 2: Classes ActionScript } for (var i in my_cm.customItems) { trace("my_cm-> "+my_cm.customItems[i].caption); } customItems (propriété ContextMenu.customItems) public customItems : Array Un tableau d'objets ContextMenuItem. Chaque objet du tableau représente un élément de menu contextuel que vous avez défini. Utilisez cette propriété pour ajouter, supprimer ou modifier ces éléments de menu personnalisés. Pour ajouter de nouveaux éléments de menu, commencez par créer un nouvel objet ContextMenuItem, puis ajoutez-le dans le tableau menu_mc .customItems (par exemple, via Array.push()). Pour plus d'informations sur la création de nouveaux éléments de menu, consultez l'entrée de la classe ContextMenuItem. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple L'exemple suivant crée un nouvel élément de menu personnalisé intitulé menuItem_cmi ayant pour titre « Send e-mail » et un gestionnaire de rappel intitulé emailHandler. Le nouvel élément de menu est ensuite ajouté à l'objet ContextMenu my_cm à l'aide du tableau customItems. Enfin, le nouveau menu est associé à un clip intitulé email_mc. Pour faire fonctionner cet exemple, créez une occurrence de clip sur votre scène et utilisez l'inspecteur des propriétés pour nommer l'occurrence email_mc. En mode Tester l'animation, le nouvel élément de menu contextuel s'affiche si vous ouvrez le menu contextuel lorsque votre pointeur survole le clip email_mc. var my_cm:ContextMenu = new ContextMenu(); var menuItem_cmi:ContextMenuItem = new ContextMenuItem("Send e-mail", emailHandler); my_cm.customItems.push(menuItem_cmi); email_mc.menu = my_cm; function emailHandler() { trace("sending email"); } Voir également menu (propriété Button.menu), menu (propriété MovieClip.menu), menu (propriété TextField.menu), push (méthode Array.push) ContextMenu 465 hideBuiltInItems (méthode ContextMenu.hideBuiltInItems) public hideBuiltInItems() : Void Masque tous les éléments de menu intégrés (à l'exception de Paramètres) dans l'objet ContextMenu spécifié. Si le débogueur de Flash Player s'exécute, l'élément de menu Débogage apparaît, bien qu'il soit grisé pour les fichiers SWF sur lesquels le débogage à distance n'est pas activé. Cette méthode masque uniquement les éléments de menu qui s'affichent dans le menu contextuel standard ; elle n'affecte pas les éléments qui s'affichent dans les menus Edition ou d'erreur. Cette méthode fonctionne en définissant tous les membres booléens de my_cm .builtInItems sur false. Vous pouvez rendre visible un élément intégré de façon sélective en définissant son membre correspondant dans my_cm .builtInItems sur true (comme illustré dans l'exemple suivant). Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple L'exemple suivant crée un nouvel objet ContextMenu, intitulé my_cm dont les éléments de menu intégrés sont masqués, à l'exception de Imprimer. L'objet Menu est associé au scénario actuel. var my_cm:ContextMenu = new ContextMenu(); my_cm.hideBuiltInItems(); my_cm.builtInItems.print = true; this.menu = my_cm; onSelect (gestionnaire ContextMenu.onSelect) onSelect = function(item:Object, item_menu:Object) {} Appelé lorsqu'un utilisateur invoque le menu contextuel de Flash Player, mais avant que le menu ne s'affiche. Ce gestionnaire d'événements permet de personnaliser le contenu du menu contextuel en fonction de l'état de l'application actuelle. Il est également possible de spécifier le gestionnaire de rappel d'un objet ContextMenu lors de la construction d'un nouvel objet ContextMenu. Pour plus d'informations, consultez l'entrée onSelect de ContextMenuItem. Disponibilité : ActionScript 1.0 ; Flash Player 7 466 Chapitre 2: Classes ActionScript Paramètres item:Object - Référence à l'objet (clip, bouton ou champ de texte sélectionnable) qui était sous le pointeur de la souris quand le menu contextuel Flash Player a été invoqué et dont la propriété menu est définie sur un objet ContextMenu valide. item_menu:Object - Référence à l'objet ContextMenu affecté à la propriété menu de object. Exemple L'exemple suivant détermine le type d'objet à l'origine de l'appel du menu contextuel. my_cm:ContextMenu = new ContextMenu(); function menuHandler(obj:Object, menu:ContextMenu) { if(obj instanceof MovieClip) { trace("Movie clip: " + obj); } if(obj instanceof TextField) { trace("Text field: " + obj); } if(obj instanceof Button) { trace("Button: " + obj); } } my_cm.onSelect = menuHandler; my_mc.menu = my_cm; my_btn.menu = my_cm; ContextMenuItem Object | +-ContextMenuItem public dynamic class extends Object ContextMenuItem La classe ContextMenuItem vous permet de créer des éléments de menu personnalisés afin qu'ils s'affichent dans le menu contextuel de Flash Player. Chaque objet ContextMenuItem est doté d'une légende (texte) qui s'affiche dans le menu contextuel, et d'un gestionnaire de rappel (une fonction) qui est appelé lorsque l'élément de menu est sélectionné. Pour ajouter un nouvel élément de menu contextuel dans un menu contextuel, il vous suffit de l'ajouter dans le tableau customItems d'un objet ContextMenu. Vous pouvez activer ou désactiver des éléments de menu spécifiques, rendre des éléments visibles ou invisibles, ou encore modifier la légende ou le gestionnaire de rappel associé(e) à un élément de menu. ContextMenuItem 467 Les éléments de menu personnalisés s'affichent dans la partie supérieure du menu contextuel, au-dessus des éléments intégrés. Une barre de séparation sépare toujours les éléments de menu personnalisés des éléments intégrés. Vous ne pouvez pas ajouter plus de 15 éléments personnalisés à un menu contextuel. Chaque élément doit contenir au moins un caractère visible ; les caractères de contrôle, de nouvelle ligne et autres espaces blancs sont ignorés. Aucun élément ne peut contenir plus de 100 caractères. Les éléments identiques à un élément de menu intégré, ou à un autre élément personnalisé, sont ignorés, indépendamment du fait que l'élément correspondant soit visible ou non. Les éléments de menu sont comparés sans respecter la casse, la ponctuation ou les espaces blancs. Les mots suivants ne peuvent pas apparaître dans un élément personnalisé : Macromedia, Flash Player et Paramètres. Disponibilité : ActionScript 1.0 ; Flash Player 7 Résumé des propriétés Modificateurs Propriété Description caption:String Chaîne spécifiant la légende (texte) de l'élément de menu qui s'affiche dans le menu contextuel. enabled:Boolean Valeur booléenne indiquant si l'élément de menu spécifié est activé ou désactivé. separatorBefore:Bool Valeur booléenne indiquant si une barre de séparation ean doit apparaître au-dessus de l'élément de menu spécifié. visible:Boolean Valeur booléenne indiquant si l'élément de menu spécifié est visible lorsque le menu contextuel de Flash Player s'affiche. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) 468 Chapitre 2: Classes ActionScript Résumé des événements Evénement Description onSelect = Appelé lorsque l'élément de menu spécifié est sélectionné dans le menu function(obj:Obj contextuel de Flash Player. ect, menuItem:Object) {} Résumé des constructeurs Signature Description ContextMenuItem(capt Crée un nouvel objet ContextMenuItem pouvant être ajouté dans le tableau ContextMenu.customItems. ion:String, callbackFunction:Fun ction, [separatorBefore:Boo lean], [enabled:Boolean], [visible:Boolean]) Résumé de la méthode Modificateurs Signature copy() : ContextMenuItem Description Crée et renvoie une copie de l'objet ContextMenuItem spécifié. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) caption (propriété ContextMenuItem.caption) public caption : String Chaîne spécifiant la légende (texte) de l'élément de menu qui s'affiche dans le menu contextuel. Disponibilité : ActionScript 1.0 ; Flash Player 7 ContextMenuItem 469 Exemple L'exemple suivant affiche la légende de l'élément de menu sélectionné (Pause jeu) dans le panneau de sortie : var my_cm:ContextMenu = new ContextMenu(); var menuItem_cmi:ContextMenuItem = new ContextMenuItem("Pause Game", onPause); my_cm.customItems.push(menuItem_cmi); function onPause(obj, menuItem) { trace("You chose: " + menuItem.caption); } this.menu = my_cm; constructeur ContextMenuItem public ContextMenuItem(caption:String, callbackFunction:Function, [separatorBefore:Boolean], [enabled:Boolean], [visible:Boolean]) Crée un nouvel objet ContextMenuItem pouvant être ajouté dans le tableau ContextMenu.customItems. Disponibilité : ActionScript 1.0 ; Flash Player 7 Paramètres caption:String - Chaîne spécifiant le texte associé à l'élément de menu. callbackFunction:Function - Fonction que vous définissez, appelée lorsque l'élément de menu est sélectionné. [facultatif ] - Valeur booléenne indiquant si une barre de séparation doit apparaître au-dessus de l'élément de menu du menu contextuel. La valeur par défaut est false. separatorBefore:Boolean [facultatif ] - Valeur booléenne indiquant si l'élément de menu est activé ou désactivé dans le menu contextuel. La valeur par défaut est true. enabled:Boolean visible:Boolean [facultatif ] - Valeur booléenne indiquant si l'élément de menu est visible ou invisible. La valeur par défaut est true. Exemple Cet exemple ajoute les éléments de menu Démarrer et Arrêter, séparés par une barre, à l'objet ContextMenu my_cm. La fonction startHandler() est appelée quand Démarrer est sélectionné dans le menu contextuel ; stopHandler() est appelé quand Arrêter est sélectionné. L'objet ContextMenu est appliqué au scénario actuel. var my_cm:ContextMenu = new ContextMenu(); my_cm.customItems.push(new ContextMenuItem("Start", startHandler)); 470 Chapitre 2: Classes ActionScript my_cm.customItems.push(new ContextMenuItem("Stop", stopHandler, true)); function stopHandler(obj, item) { trace("Stopping..."); } function startHandler(obj, item) { trace("Starting..."); } this.menu = my_cm; copy (méthode ContextMenuItem.copy) public copy() : ContextMenuItem Crée et renvoie une copie de l'objet ContextMenuItem spécifié. La copie inclut toutes les propriétés de l'objet original. Disponibilité : ActionScript 1.0 ; Flash Player 7 Valeur renvoyée ContextMenuItem - Objet ContextMenuItem. Exemple Cet exemple crée un nouvel objet ContextMenuItem intitulé original_cmi incluant la légende Pause et un gestionnaire de rappel défini sur la fonction onPause. L'exemple crée ensuite une copie de l'objet ContextMenuItem et l'affecte à la variable copy_cmi. var original_cmi:ContextMenuItem = new ContextMenuItem("Pause", onPause); function onPause(obj:Object, menu:ContextMenu) { trace("pause me"); } var copy_cmi:ContextMenuItem = original_cmi.copy(); var my_cm:ContextMenu = new ContextMenu(); my_cm.customItems.push(original_cmi); my_cm.customItems.push(copy_cmi); my_mc.menu = my_cm; enabled (propriété ContextMenuItem.enabled) public enabled : Boolean Valeur booléenne indiquant si l'élément de menu spécifié est activé ou désactivé. Par défaut, cette propriété est définie sur true. Disponibilité : ActionScript 1.0 ; Flash Player 7 ContextMenuItem 471 Exemple L'exemple suivant crée deux nouveaux éléments de menu contextuel : Start et Stop. Lorsque l'utilisateur sélectionne Start, le nombre de millisecondes écoulées depuis l'ouverture du fichier SWF est analysé. L'élément Start est ensuite désactivé dans le menu. Lorsque Stop est sélectionné, le nombre de millisecondes écoulées depuis l'ouverture du fichier SWF est analysé. L'élément de menu Start est de nouveau activé et l'élément de menu Stop est désactivé. var my_cm:ContextMenu = new ContextMenu(); var startMenuItem:ContextMenuItem = new ContextMenuItem("Start", startHandler); startMenuItem.enabled = true; my_cm.customItems.push(startMenuItem); var stopMenuItem:ContextMenuItem = new ContextMenuItem("Stop", stopHandler, true); stopMenuItem.enabled = false; my_cm.customItems.push(stopMenuItem); function stopHandler(obj, item) { trace("Stopping... "+getTimer()+"ms"); startMenuItem.enabled = true; stopMenuItem.enabled = false; } function startHandler(obj, item) { trace("Starting... "+getTimer()+"ms"); startMenuItem.enabled = false; stopMenuItem.enabled = true; } this.menu = my_cm; onSelect (gestionnaire ContextMenuItem.onSelect) onSelect = function(obj:Object, menuItem:Object) {} Appelé lorsque l'élément de menu spécifié est sélectionné dans le menu contextuel de Flash Player. Le gestionnaire de rappel spécifié reçoit deux paramètres : obj, une référence à l'objet affiché sous la souris lorsque l'utilisateur a appelé le menu contextuel de Flash Player, et item, une référence à l'objet ContextMenuItem qui représente l'élément de menu sélectionné. Disponibilité : ActionScript 1.0 ; Flash Player 7 Paramètres obj:Object - Référence à l'objet (clip, scénario, bouton ou champ de texte sélectionnable) sur lequel l'utilisateur fait un clic droit ou Contrôle+clic. menuItem:Object 472 - Référence à l'objet ContextMenuItem sélectionné. Chapitre 2: Classes ActionScript Exemple L'exemple suivant détermine le type d'objet à l'origine de l'appel du menu contextuel. var my_cmi:ContextMenu = new ContextMenu(); var start_cmi:ContextMenuItem = new ContextMenuItem("Start"); start_cmi.onSelect = function(obj, item) { trace("You chose: "+item.caption); }; my_cmi.customItems.push(start_cmi); my_cmi.customItems.push(new ContextMenuItem("Stop", stopHandler, true)); function stopHandler(obj, item) { trace("Stopping..."); } this.menu = my_cmi; Voir également onSelect (gestionnaire ContextMenu.onSelect) separatorBefore (propriété ContextMenuItem.separatorBefore) public separatorBefore : Boolean Valeur booléenne indiquant si une barre de séparation doit apparaître au-dessus de l'élément de menu spécifié. Par défaut, cette propriété est définie sur false. Remarque : Une barre de séparation apparaît toujours entre les éléments de menu personnalisés et les éléments de menu intégrés. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple Cet exemple crée trois éléments de menu, intitulés Open, Save et Print. Une barre de séparation sépare les éléments Save et Print. Les éléments de menu sont ensuite ajoutés au tableau customItems de l'objet ContextMenu. Enfin, le menu est associé au scénario actuel du fichier SWF. var my_cm:ContextMenu = new ContextMenu(); var open_cmi:ContextMenuItem = new ContextMenuItem("Open", itemHandler); var save_cmi:ContextMenuItem = new ContextMenuItem("Save", itemHandler); var print_cmi:ContextMenuItem = new ContextMenuItem("Print", itemHandler); print_cmi.separatorBefore = true; my_cm.customItems.push(open_cmi, save_cmi, print_cmi); function itemHandler(obj, menuItem) { trace("You chose: " + menuItem.caption); }; this.menu = my_cm; ContextMenuItem 473 Voir également onSelect (gestionnaire ContextMenu.onSelect) visible (propriété ContextMenuItem.visible) public visible : Boolean Valeur booléenne indiquant si l'élément de menu spécifié est visible lorsque le menu contextuel de Flash Player s'affiche. Par défaut, cette propriété est définie sur true. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple L'exemple suivant crée deux nouveaux éléments de menu contextuel : Start et Stop. Lorsque l'utilisateur sélectionne Start, le nombre de millisecondes écoulées depuis l'ouverture du fichier SWF s'affiche. L'élément Start est ensuite rendu invisible dans le menu. Lorsque Stop est sélectionné, le nombre de millisecondes écoulées depuis l'ouverture du fichier SWF s'affiche. L'élément de menu Start devient visible et l'élément de menu Stop est rendu invisible. var my_cm:ContextMenu = new ContextMenu(); var startMenuItem:ContextMenuItem = new ContextMenuItem("Start", startHandler); startMenuItem.visible = true; my_cm.customItems.push(startMenuItem); var stopMenuItem:ContextMenuItem = new ContextMenuItem("Stop", stopHandler, true); stopMenuItem.visible = false; my_cm.customItems.push(stopMenuItem); function stopHandler(obj, item) { trace("Stopping... "+getTimer()+"ms"); startMenuItem.visible = true; stopMenuItem.visible = false; } function startHandler(obj, item) { trace("Starting... "+getTimer()+"ms"); startMenuItem.visible = false; stopMenuItem.visible = true; } this.menu = my_cm; 474 Chapitre 2: Classes ActionScript ConvolutionFilter (flash.filters.ConvolutionFilter) Object | +-flash.filters.BitmapFilter | +-flash.filters.ConvolutionFilter public class ConvolutionFilter extends BitmapFilter La classe ConvolutionFilter applique un effet de filtre de convolution de matrice. Une convolution associe les pixels de l'image d'entrée aux pixels environnants pour produire une image. Les convolutions permettent d'effectuer de nombreuses opérations de traitement de l'image, notamment la définition du flou, la détection de contour, l'accentuation, l'estampage et le biseautage. Vous pouvez appliquer cet effet aux bitmaps et aux occurrences MovieClip. L'utilisation de filtres dépend de l'objet auquel vous appliquez le filtre. ■ Pour appliquer les filtres lors de l'exécution du clip, utilisez la propriété filters. Lorsque vous définissez la propriété filters d'un objet, celui-ci n'est pas modifié. En outre, vous pouvez l'annuler en supprimant la propriété filters. ■ Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode BitmapData.applyFilter() . L'appel applyFilter() sur un objet BitmapData, utilise l'objet BitmapData d'origine ainsi que l'objet filtre pour générer une image filtrée. Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d'informations, consultez la documentation relative à la programmation. Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d'origine de cacheAsBitmap est restaurée. Une convolution de matrice s'articule autour d'une matrice n par m, qui décrit la façon dont une valeur de pixels donnée dans l'image d'entrée est associée aux valeurs des pixels environnants pour obtenir une nouvelle valeur de pixels. Chaque pixel obtenu est déterminé par l'application de la matrice au pixel source correspondant et à ses pixels environnants. Pour une convolution de matrice 3 par 3, la formule suivante est utilisée pour chaque canal de couleur indépendant : dst (x, y) = ((src (x-1, y-1) * a0 + src(x, y-1) * a1.... src(x, y+1) * a7 + src (x+1,y+1) * a8) / divisor) + bias ConvolutionFilter (flash.filters.ConvolutionFilter) 475 Lorsque le processeur utilisé pour l'exécution des spécifications de filtre est doté d'extensions Streaming SIMD (SSE), certaines d'entre-elles s'exécutent plus rapidement. ■ Le filtre doit être un filtre 3 par 3. ■ Tous les termes du filtre doivent être des entiers compris entre -127 et +127. ■ La valeur absolue correspondant à la somme de tous les termes du filtre ne doit pas être supérieure à 127. ■ Si un terme de filtre est négatif, le diviseur doit être compris entre 2,00001 et 256. ■ Si tous les termes de filtre sont positifs, le diviseur doit être compris entre 1,1 et 256. ■ L'écart doit être un entier. Un filtre ne peut s'appliquer si l'image résultante dépasse 2 880 pixels en largeur ou en hauteur. Par exemple, si vous faites un zoom avant sur un grand clip auquel le filtre est appliqué, le filtre est désactivé si l'image résultante atteint la limite de 2 880 pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 Voir également applyFilter (méthode BitmapData.applyFilter), filters (propriété MovieClip.filters), cacheAsBitmap (propriété MovieClip.cacheAsBitmap) 476 Chapitre 2: Classes ActionScript Résumé des propriétés Modificateurs Propriété Description alpha:Number La valeur de transparence alpha de la couleur de substitution. bias:Number Écart à ajouter au résultat de la transformation de matrice. clamp:Boolean Indique si l'image doit être corrigée. color:Number La couleur hexadécimale à substituer aux pixels provenant de l'image source. divisor:Number Le diviseur utilisé pendant la transformation de matrice. matrix:Array Le tableau de valeurs utilisé pour la transformation de matrice ; renvoie une copie. matrixX:Number La dimension x de la matrice (le nombre de colonnes de la matrice). matrixY:Number La dimension y de la matrice (le nombre de lignes de la matrice). preserveAlpha:Boolea Indique ce à quoi la convolution s'applique. n Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des constructeurs Signature Description ConvolutionFilter(ma Initialise une occurrence ConvolutionFilter avec les paramètres spécifiés. trixX:Number, matrixY:Number, matrix:Array, [divisor:Number], [bias:Number], [preserveAlpha:Boole an], [clamp:Boolean], [color:Number], [alpha:Number]) ConvolutionFilter (flash.filters.ConvolutionFilter) 477 Résumé de la méthode Modificateurs Signature clone() : Description Renvoie une copie de cet objet filtre. ConvolutionFilter Méthodes héritées de la classe BitmapFilter clone (méthode BitmapFilter.clone ) Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) alpha (propriété ConvolutionFilter.alpha) public alpha : Number La valeur de transparence alpha de la couleur de substitution. Les valeurs valides sont comprises entre 0 et 1,0. La valeur par défaut est zéro. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1,0. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété alpha de filter de sa valeur par défaut (1) à 0,35. import import import import flash.filters.ConvolutionFilter; flash.display.BitmapData; flash.geom.Rectangle; flash.geom.Point; var alpha:Number = .35; var filter:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, 0, true, false, 0x0000FF, alpha); var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xCCFF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); 478 Chapitre 2: Classes ActionScript myBitmapData.noise(128, 0, 255, 1 | 2 | 4 | 8, false); mc.onPress = function() { myBitmapData.applyFilter(myBitmapData, new Rectangle(0, 0, 98, 78), new Point(2, 2), filter); } bias (propriété ConvolutionFilter.bias) public bias : Number Écart à ajouter au résultat de la transformation de matrice. La valeur par défaut est 0. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété bias de filter de sa valeur par défaut (0) à 50. import flash.filters.ConvolutionFilter; import flash.display.BitmapData; var bias:Number = 50; var filter:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, bias); var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.noise(128); mc.onPress = function() { myBitmapData.applyFilter(myBitmapData, myBitmapData.rectangle, new Point(0, 0), filter); } clamp (propriété ConvolutionFilter.clamp) public clamp : Boolean Indique si l'image doit être corrigée. Pour les pixels provenant de l'image source, la valeur true indique que l'image d'entrée est agrandie autant que nécessaire au niveau de ses bordures en dupliquant les valeurs de couleur sur le bord spécifié de l'image d'entrée. Une valeur false indique qu'il faut utiliser une autre couleur, comme spécifié dans les propriétés color et alpha. La valeur par défaut est true. Disponibilité : ActionScript 1.0 ; Flash Player 8 ConvolutionFilter (flash.filters.ConvolutionFilter) 479 Exemple L'exemple suivant change la propriété clamp de filter de sa valeur par défaut true à false. import import import import flash.filters.ConvolutionFilter; flash.display.BitmapData; flash.geom.Rectangle; flash.geom.Point; var clamp:Boolean = false; var filter:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, 0, true, clamp, 0x00FF00, 1); var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xCCFF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.noise(128, 0, 255, 1 | 2 | 4 | 8, false); mc.onPress = function() { myBitmapData.applyFilter(myBitmapData, new Rectangle(0, 0, 98, 78), new Point(2, -2), filter); } clone (méthode ConvolutionFilter.clone) public clone() : ConvolutionFilter Renvoie une copie de cet objet filtre. Disponibilité : ActionScript 1.0 ; Flash Player 8 Valeur renvoyée - Nouvelle occurrence ConvolutionFilter dont les propriétés sont toutes identiques à celles de l'occurrence d'origine. flash.filters.ConvolutionFilter Exemple L'exemple suivant crée trois objets ConvolutionFilter et les compare : filter_1 est créé en utilisant le constructeur ConvolutionFilter ; filter_2 est créé en le définissant comme égal à filter_1; et clonedFilter est créé en clonant filter_1. Veuillez noter que filter_2 est considéré comme égal à filter_1, clonedFilter ne l'est pas, même s'il contient les mêmes valeurs que filter_1. import flash.filters.ConvolutionFilter; var filter_1:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9); 480 Chapitre 2: Classes ActionScript var filter_2:ConvolutionFilter = filter_1; var clonedFilter:ConvolutionFilter = filter_1.clone(); trace(filter_1 == filter_2); // true trace(filter_1 == clonedFilter); // false for(var i in filter_1) { trace(">> " + i + ": " + filter_1[i]); // >> clone: [type Function] // >> alpha: 0 // >> color: 0 // >> clamp: true // >> preserveAlpha: true // >> bias: 0 // >> divisor: 9 // >> matrix: 1,1,1,1,1,1,1,1,1 // >> matrixY: 3 // >> matrixX: 3 } for(var i in clonedFilter) { trace(">> " + i + ": " + clonedFilter[i]); // >> clone: [type Function] // >> alpha: 0 // >> color: 0 // >> clamp: true // >> preserveAlpha: true // >> bias: 0 // >> divisor: 9 // >> matrix: 1,1,1,1,1,1,1,1,1 // >> matrixY: 3 // >> matrixX: 3 } Pour démontrer davantage les relations entre filter_1, filter_2, et clonedFilter, l'exemple suivant modifie la propriété bias de filter_1. La modification de bias démontre que la méthode clone() crée une nouvelle occurrence basée sur les valeurs de filter_1 au lieu de faire référence à ces valeurs. import flash.filters.ConvolutionFilter; var filter_1:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9); var filter_2:ConvolutionFilter = filter_1; var clonedFilter:ConvolutionFilter = filter_1.clone(); trace(filter_1.bias); // 0 trace(filter_2.bias); // 0 trace(clonedFilter.bias); // 0 filter_1.bias = 20; ConvolutionFilter (flash.filters.ConvolutionFilter) 481 trace(filter_1.bias); // 20 trace(filter_2.bias); // 20 trace(clonedFilter.bias); // 0 color (propriété ConvolutionFilter.color) public color : Number La couleur hexadécimale à substituer aux pixels provenant de l'image source. C'est une valeur RVB sans composant alpha. La valeur par défaut est 0. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété color de filter de sa valeur par défaut (0) à 0xFF0000. import import import import flash.filters.ConvolutionFilter; flash.display.BitmapData; flash.geom.Rectangle; flash.geom.Point; var color:Number = 0x0000FF; var filter:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, 0, true, false, color, 1); var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xCCFF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.noise(128, 0, 255, 1 | 2 | 4 | 8, false); var height:Number = 100; var width:Number = 80; mc.onPress = function() { height -= 2; width -= 2; myBitmapData.applyFilter(myBitmapData, new Rectangle(0, 0, height, width), new Point(2, 2), filter); } 482 Chapitre 2: Classes ActionScript constructeur ConvolutionFilter() public ConvolutionFilter(matrixX:Number, matrixY:Number, matrix:Array, [divisor:Number], [bias:Number], [preserveAlpha:Boolean], [clamp:Boolean], [color:Number], [alpha:Number]) Initialise une occurrence ConvolutionFilter avec les paramètres spécifiés. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres - Dimension x de la matrice (le nombre de colonnes de la matrice). La valeur par défaut est 0. matrixX:Number matrixY:Number - Dimension y de la matrice (le nombre de lignes de la matrice). La valeur par défaut est 0. - Tableau de valeurs utilisé pour la transformation de matrice ; renvoie une copie. Le nombre d'éléments contenus dans le tableau doit être égal à matrixX*matrixY. matrix:Array [facultatif ] - Diviseur utilisé pendant la transformation de matrice. La valeur par défaut est 1. Le diviseur correspondant à la somme de toutes les valeurs de matrice égalise l'intensité de couleurs globale du résultat. La valeur 0 est ignorée ; elle est remplacée par la valeur par défaut. divisor:Number bias:Number [facultatif ] - Ecart à ajouter au résultat de la transformation de matrice. La valeur par défaut est 0. [facultatif ] - La valeur false indique que la convolution s'applique à tous les canaux, y compris le canal alpha. La valeur true indique que la convolution s'applique uniquement aux canaux de couleur. La valeur par défaut est true. preserveAlpha:Boolean clamp:Boolean [facultatif ] - Pour les pixels provenant de l'image source, la valeur true indique que l'image d'entrée est agrandie autant que nécessaire au niveau de ses bordures en dupliquant les valeurs de couleur sur le bord spécifié de l'image d'entrée. Une valeur false indique qu'il faut utiliser une autre couleur, comme spécifié dans les propriétés color et alpha. La valeur par défaut est true. color:Number [facultatif ] - Couleur hexadécimale à substituer aux pixels provenant de l'image source. alpha:Number [facultatif ] - Valeur Alpha de la couleur de substitution. ConvolutionFilter (flash.filters.ConvolutionFilter) 483 Exemple Le code suivant crée un filtre de convolution 3 x 3 avec un diviseur de 9. Le filtre produit une image floue : var myArray:Array = [1, 1, 1, 1, 1, 1, 1, 1, 1]; var myFilter:ConvolutionFilter = new flash.filters.ConvolutionFilter (3, 3, myArray, 9); L'exemple suivant crée un objet ConvolutionFilter ayant les quatre paramètres requis matrixX, matrixY, matrix, et divisor. import flash.filters.ConvolutionFilter; import flash.display.BitmapData; var var var var matrixX:Number matrixY:Number matrix:Array = divisor:Number = 3; = 3; [1, 1, 1, 1, 1, 1, 1, 1, 1]; = 9; var filter:ConvolutionFilter = new ConvolutionFilter(matrixX, matrixY, matrix, divisor); var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.noise(128); mc.onPress = function() { myBitmapData.applyFilter(myBitmapData, myBitmapData.rectangle, new Point(0, 0), filter); } divisor (propriété ConvolutionFilter.divisor) public divisor : Number Le diviseur utilisé pendant la transformation de matrice. La valeur par défaut est 1. Le diviseur correspondant à la somme de toutes les valeurs de matrice égalise l'intensité de couleurs globale du résultat. La valeur 0 est ignorée ; elle est remplacée par la valeur par défaut. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété divisor de filter à 6. import flash.filters.ConvolutionFilter; import flash.display.BitmapData; 484 Chapitre 2: Classes ActionScript var filter:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9); var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.noise(128); mc.onPress = function() { var newDivisor:Number = 6; filter.divisor = newDivisor; myBitmapData.applyFilter(myBitmapData, myBitmapData.rectangle, new Point(0, 0), filter); } matrix (propriété ConvolutionFilter.matrix) public matrix : Array Le tableau de valeurs utilisé pour la transformation de matrice ; renvoie une copie. Le nombre d'éléments contenus dans le tableau doit être égal à matrixX*matrixY. La propriété matrix ne peut pas être changée directement en modifiant les valeurs (par exemple, myFilter.matrix[2] = 1;). Vous devez plutôt, comme l'illustre l'exemple suivant, donner une référence au tableau, effectuer le changement de la référence, et restaurer la valeur en utilisant filter.matrix = newMatrix;. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété matrix de filter d'une valeur qui estompe une bitmap en une valeur qui lui donne plus de contraste. import flash.filters.ConvolutionFilter; import flash.display.BitmapData; var filter:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9); var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.noise(128); ConvolutionFilter (flash.filters.ConvolutionFilter) 485 mc.onPress = function() { var newMatrix:Array = [0, -1, 0, -1, 8, -1, 0, -1, 0]; filter.matrix = newMatrix; myBitmapData.applyFilter(myBitmapData, myBitmapData.rectangle, new Point(0, 0), filter); } matrixX (propriété ConvolutionFilter.matrixX) public matrixX : Number La dimension x de la matrice (le nombre de colonnes de la matrice). La valeur par défaut est 0. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant affiche la propriété matrixX de filter. import flash.filters.ConvolutionFilter; var filter:ConvolutionFilter = new ConvolutionFilter(2, 3, [1, 0, 0, 1, 0, 0], 6); trace(filter.matrixX); // 2 matrixY (propriété ConvolutionFilter.matrixY) public matrixY : Number La dimension y de la matrice (le nombre de lignes de la matrice). La valeur par défaut est 0. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant affiche la propriété matrixY de filter. import flash.filters.ConvolutionFilter; var filter:ConvolutionFilter = new ConvolutionFilter(2, 3, [1, 0, 0, 1, 0, 0], 6); trace(filter.matrixY); // 3 486 Chapitre 2: Classes ActionScript preserveAlpha (propriété ConvolutionFilter.preserveAlpha) public preserveAlpha : Boolean Indique ce à quoi la convolution s'applique. La valeur false indique que la convolution s'applique à tous les canaux, y compris le canal alpha. La valeur true indique que la convolution s'applique uniquement aux canaux de couleur. La valeur par défaut est true. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété preserveAlpha de filter de sa valeur par défaut true à false. import flash.filters.ConvolutionFilter; import flash.display.BitmapData; var preserveAlpha:Boolean = false; var filter:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, 0, preserveAlpha); var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xCCFF0000); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.noise(128, 0, 255, 1 | 2 | 4 | 8, false); mc.onPress = function() { myBitmapData.applyFilter(myBitmapData, myBitmapData.rectangle, new Point(0, 0), filter); } CustomActions Object | +-CustomActions public class CustomActions extends Object CustomActions 487 Les méthodes de la classe CustomActions permettent de lire un fichier SWF dans l'outil de programmation Flash pour gérer des actions personnalisées enregistrées via l'outil de programmation. Un fichier SWF peut installer et désinstaller des actions personnalisées, récupérer la définition XML d'une action personnalisée, et récupérer la liste des actions personnalisées enregistrées. Vous pouvez utiliser ces méthodes pour créer des fichiers SWF qui sont des extensions de l'outil de programmation Flash. Cette extension, pourrait par exemple utiliser le protocole d'application Flash pour naviguer dans un référentiel UDDI et télécharger des services Web dans la boîte à outils Actions. Disponibilité : ActionScript 1.0 ; Flash Player 6 Résumé des propriétés Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé de la méthode Modificateurs Signature Description static Lit le contenu du fichier de définition XML des actions personnalisées nommé name. get(name:String) : String static install(name:String, Installe un nouveau fichier de définition XML des data:String) : actions personnalisées indiqué par le paramètre name. Boolean Renvoie un objet Array contenant les noms de toutes les actions personnalisées enregistrées via l'outil de programmation Flash. static list() : Array static uninstall(name:Strin Supprime le fichier de définition XML des actions g) : Boolean personnalisées nommé name. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) 488 Chapitre 2: Classes ActionScript get (méthode CustomActions.get) public static get(name:String) : String Lit le contenu du fichier de définition XML des actions personnalisées nommé name. Le nom du fichier de définition doit être simple, dépourvu de l'extension de fichier .xml et des caractères de séparation de répertoire (« : », « / » ou « \ »). Si le fichier de définition spécifié par le paramètre name est introuvable, une valeur undefined est renvoyée. Si la définition XML des actions personnalisées spécifiée par le paramètre name est localisée, elle est lue intégralement et renvoyée sous forme de chaîne. Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres name:String - Nom de la définition des actions personnalisées à récupérer. Valeur renvoyée - Si la définition XML des actions personnalisées est localisée, renvoie une chaîne ; sinon, renvoie une valeur undefined. String Exemple L'exemple suivant répertorie les actions personnalisées dans une occurrence ComboBox et obtient l'action personnalisée lorsque l'utilisateur clique sur une occurrence Button. Faites glisser une occurrence de ComboBox, Button et TextArea vers la scène. Attribuez à la ComboBox le nom d'occurrence customActionName_cb, à la TextArea le nom d'occurrencecustomActionXml_ta et au Button le nom d'occurrence view_button. Entrez le code ActionScript suivant sur l'image 1 du scénario : import mx.controls.*; var customActionName_cb:ComboBox; var customActionXml_ta:TextArea; var view_button:Button; customActionName_cb.dataProvider = CustomActions.list(); customActionXml_ta.editable = false; var viewListener:Object = new Object(); viewListener.click = function(evt:Object) { var caName:String = String(customActionName_cb.selectedItem); customActionXml_ta.text = CustomActions.get(caName); }; view_button.addEventListener("click", viewListener); CustomActions 489 install (méthode CustomActions.install) public static install(name:String, data:String) : Boolean Installe un nouveau fichier de définition XML des actions personnalisées indiqué par le paramètre name. Le contenu du fichier est spécifié par la chaîne customXML. Le nom du fichier de définition doit être simple, dépourvu de l'extension de fichier .xml et des caractères de séparation de répertoire (« : », « / » ou « \ »). Si un fichier d'actions personnalisées portant le nom name existe déjà, il est remplacé. Si le répertoire Configuration/ActionsPanel/CustomActions n'existe pas lorsque cette méthode est appelée, il est créé. Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres name:String - Nom de la définition des actions personnalisées à installer. data:String - Texte de la définition XML à installer. Valeur renvoyée - La valeur booléenne false est renvoyée si une erreur se produit au cours de l'installation ; sinon, la valeur true est renvoyée pour indiquer que l'action personnalisée a été installée avec succès. Boolean Exemple L'exemple suivant installe des informations dans le panneau Actions à partir d'un fichier XML. Ouvrez un éditeur de texte et enregistrez un nouveau document intitulé dogclass.xml. Entrez le code suivant : <?xml version="1.0"?> <customactions> <actionspanel> <folder version="7" id="DogClass" index="true" name="Dog" tiptext="Dog Class"> <string version="7" id="getFleas" name="getFleas" tiptext="gets number of fleas" text=".getFleas(% fleas %)" /> </folder> </actionspanel> <colorsyntax> <identifier text=".getFleas" /> </colorsyntax> <codehints> <typeinfo pattern=" _dog" object="Dog"/> </codehints> </customactions> 490 Chapitre 2: Classes ActionScript Ouvrez ensuite un nouveau fichier FLA dans le même répertoire et sélectionnez l'image 1 du scénario. Entrez le code suivant dans le panneau Actions : var my_xml:XML = new XML(); my_xml.ignoreWhite = true; my_xml.onLoad = function(success:Boolean) { trace(success); CustomActions.install("dogclass", this.firstChild); trace(CustomActions.list()); }; my_xml.load("dogclass.xml"); Pointez sur Contrôle > Tester l'animation : si le code XML se charge correctement, la valeur true apparaît et un tableau contenant les noms de toutes les actions personnalisées enregistrées via l'outil de programmation Flash s'affiche dans le panneau de sortie. Fermez le fichier SWF et ouvrez le panneau Actions. Un nouvel élément intitulé Dog s'affiche dans la boîte à outils Actions ; ce dossier inclut également getFleas. list (méthode CustomActions.list) public static list() : Array Renvoie un objet Array contenant les noms de toutes les actions personnalisées enregistrées via l'outil de programmation Flash. Les éléments du tableau portent des noms simples, dépourvus de l'extension de fichier .xml et des caractères de séparation de répertoire (par exemple, « : », « / » ou « \ »). Si aucune action personnalisée n'est enregistrée, list() renvoie un tableau de longueur zéro. Si une erreur se produit, list() renvoie la valeur undefined. Disponibilité : ActionScript 1.0 ; Flash Player 6 Valeur renvoyée Array - Tableau. Exemple L'exemple suivant répertorie les actions personnalisées dans une occurrence ComboBox et obtient l'action personnalisée lorsque l'utilisateur clique sur une occurrence Button. Faites glisser une occurrence de ComboBox, Button et TextArea vers la scène. Attribuez à la ComboBox le nom d'occurrence customActionName_cb, à la TextArea le nom d'occurrencecustomActionXml_ta et au Button le nom d'occurrence view_button. Entrez le code ActionScript suivant sur l'image 1 du scénario : import mx.controls.*; var customActionName_cb:ComboBox; var customActionXml_ta:TextArea; CustomActions 491 var view_button:Button; customActionName_cb.dataProvider = CustomActions.list(); customActionXml_ta.editable = false; var viewListener:Object = new Object(); viewListener.click = function(evt:Object) { var caName:String = String(customActionName_cb.selectedItem); customActionXml_ta.text = CustomActions.get(caName); }; view_button.addEventListener("click", viewListener); uninstall (méthode CustomActions.uninstall) public static uninstall(name:String) : Boolean Supprime le fichier de définition XML des actions personnalisées nommé name. Le nom du fichier de définition doit être simple, dépourvu de l'extension de fichier .xml et des caractères de séparation de répertoire (« : », « / » ou « \ »). Disponibilité : ActionScript 1.0 ; Flash Player 6 Paramètres name:String - Nom de la définition des actions personnalisées à désinstaller. Valeur renvoyée Boolean - Valeur booléenne false si aucune action personnalisée portant le nom name n'a été trouvée. Si les actions personnalisées ont été supprimées avec succès, une valeur true est renvoyée. Exemple L'exemple suivant installe une nouvelle action personnalisée et affiche un tableau contenant les noms de toutes les actions personnalisées enregistrées via l'outil de programmation Flash dans le panneau de sortie. Lorsque l'utilisateur clique sur le bouton uninstall_btn, l'action personnalisée est désinstallée. Un tableau contenant les noms des actions personnalisées installées s'affiche ; dogclass doit être alors supprimé du tableau. Créez un bouton intitulé uninstall_btn et entrez le code ActionScript suivant dans l'image 1 du scénario : var my_xml:XML = new XML(); my_xml.ignoreWhite = true; my_xml.onLoad = function(success:Boolean) { trace(success); CustomActions.install("dogclass", this.firstChild); trace(CustomActions.list()); 492 Chapitre 2: Classes ActionScript }; my_xml.load("dogclass.xml"); uninstall_btn.onRelease = function() { CustomActions.uninstall("dogclass"); trace(CustomActions.list()); }; Pour plus d'informations sur la création de dogclass.xml, consultez CustomActions.install(). Voir également install (méthode CustomActions.install) Date Object | +-Date public class Date extends Object La classe Date vous permet de récupérer des valeurs de date et d'heure relatives à l'heure universelle (GMT, désormais appelée heure universelle ou UTC) ou au système d'exploitation sur lequel Flash Player s'exécute. Les méthodes de la classe Date ne sont pas statiques mais s'appliquent uniquement au seul objet Date spécifié lorsque la méthode est appelée. La méthode Date.UTC() est une exception ; il s'agit d'une méthode statique. La classe Date gère l'heure d'été différemment, en fonction du système d'exploitation et de la version de Flash Player. Flash Player 6 et les versions ultérieures gèrent l'heure d'été sur les systèmes d'exploitation suivants comme suit : ■ Windows : l'objet Date ajuste automatiquement sa sortie pour l'heure d'été. L'objet Date détecte si l'heure d'été est définie selon les paramètres régionaux actuels, et si tel est le cas, détecte la date et les heures de transition de l'heure d'été standard. Toutefois, les dates de transition actuellement en vigueur sont appliquées aux dates passées et à venir : par conséquent, le décalage de l'heure d'été peut être calculé de manière incorrecte pour les dates passées lorsque les paramètres régionaux étaient définis sur différentes dates de transition. ■ Mac OS X : l'objet Date ajuste automatiquement sa sortie pour l'heure d'été. La base de données d'informations sur le fuseau horaire dans Mac OS X est utilisée pour déterminer si un décalage d'heure d'été doit être appliqué à une date ou heure actuelle ou passée. Date 493 ■ Mac OS 9 : le système d'exploitation fournit uniquement les informations suffisantes pour déterminer s'il convient d'appliquer un décalage d'heure d'été à la date et l'heure actuelles. En conséquence, l'objet de date suppose que le décalage d'heure d'été actuel s'applique à toutes les dates et heures passées ou à venir. Flash Player 5 gère l'heure d'été sur les systèmes d'exploitation suivants comme suit : ■ Windows : les règles en vigueur aux Etats-Unis concernant l'heure d'été sont toujours appliquées, ce qui entraîne des transitions incorrectes en Europe et dans les autres zones qui adoptent l'heure d'été, mais ayant des heures de transition différentes de celles en vigueur aux Etats-Unis. Flash détecte correctement si l'heure d'été est utilisée dans les paramètres régionaux actuels. Pour appeler les méthodes de la classe Date, vous devez d'abord créer un objet Date à l'aide du constructeur de la classe Date, décrit plus loin dans cette section. Disponibilité : ActionScript 1.0 ; Flash Player 5 Résumé des propriétés Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des constructeurs Signature Description Date([yearOrTimevalu Construit un nouvel objet Date qui contient la date et l'heure spécifiées. e:Number], [month:Number], [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number] ) 494 Chapitre 2: Classes ActionScript Résumé de la méthode Modificateurs Signature Description getDate() : Number Renvoie le jour du mois (entier de 1 à 31) de l'objet Date spécifié, conformément à l'heure locale. getDay() : Number Renvoie le jour de la semaine (0 pour dimanche, 1 pour lundi, etc.) de l'objet Date spécifié conformément à l'heure locale. getFullYear() : Renvoie l'année entière (un nombre à quatre chiffres, tel que 2000) de l'objet Date spécifié, conformément à l'heure locale. Number getHours() : Number Renvoie l'heure (un entier de 0 à 23) de l'objet Date spécifié, conformément à l'heure locale. getMilliseconds() : Renvoie les millisecondes (entier de 0 à 999) de l'objet Date spécifié, conformément à l'heure locale. Number getMinutes() : Number Renvoie les minutes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure locale. getMonth() : Number Renvoie le mois (0 pour janvier, 1 pour février, etc.) de l'objet Date spécifié conformément à l'heure locale. getSeconds() : Renvoie les secondes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure locale. Number getTime() : Number Renvoie le nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit, heure universelle, pour l'objet Date spécifié. getTimezoneOffset() Renvoie la différence, en minutes, entre l'heure locale de l'ordinateur et l'heure universelle. : Number getUTCDate() : Number Renvoie le jour du mois (entier de 1 à 31) de l'objet Date spécifié, conformément à l'heure universelle. getUTCDay() : Number Renvoie le jour de la semaine (0 pour dimanche, 1 pour lundi, etc.) de l'objet Date spécifié, conformément à l'heure universelle. getUTCFullYear() : Number getUTCHours() : Number Renvoie l'année à quatre chiffres de l'objet Date spécifié, conformément à l'heure universelle. Renvoie l'heure (entier de 0 à 23) de l'objet Date spécifié, conformément à l'heure universelle. getUTCMilliseconds() Renvoie les millisecondes (entier de 0 à 999) de : Number l'objet Date spécifié, conformément à l'heure universelle. Date 495 Modificateurs Signature getUTCMinutes() : Number getUTCMonth() : Number getUTCSeconds() : Number getUTCYear() : Number getYear() : Number Description Renvoie les minutes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure universelle. Renvoie le mois (0 [janvier] à 11 [décembre]) de l'objet Date spécifié, conformément à l'heure universelle. Renvoie les secondes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure universelle. Renvoie l'année de cette Date conformément à l'heure universelle. Renvoie l'année de l'objet Date spécifié, conformément à l'heure locale. setDate(date:Number) Définit le jour du mois de l'objet Date spécifié, : Number conformément à l'heure locale, et renvoie la nouvelle heure en millisecondes. setFullYear(year:Num Définit l'année de l'objet Date spécifié, conformément ber, [month:Number], à l'heure locale, et renvoie la nouvelle heure en [date:Number]) : millisecondes. Number setHours(hour:Number Définit les heures de l'objet Date spécifié ) : Number conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. setMilliseconds(mill Définit les millisecondes de l'objet Date spécifié isecond:Number) : Number conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. setMinutes(minute:Nu Définit les minutes de l'objet Date spécifié mber) : Number conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. setMonth(month:Numbe Définit le mois de l'objet Date spécifié conformément à r, [date:Number]) : Number l'heure locale et renvoie la nouvelle heure en millisecondes. setSeconds(second:Nu Définit les secondes de l'objet Date spécifié mber) : Number conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. setTime(millisecond: Définit la date de l'objet Date spécifié en millisecondes Number) : Number 496 Chapitre 2: Classes ActionScript écoulées depuis le premier janvier 1970 à minuit et renvoie la nouvelle heure en millisecondes. Modificateurs Signature Description setUTCDate(date:Numb Définit la date de l'objet Date spécifié conformément à er) : Number l'heure universelle et renvoie la nouvelle heure en millisecondes. setUTCFullYear(year: Définit l'année de l'objet Date spécifié (my_date) Number, [month:Number], conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. [date:Number]) : Number setUTCHours(hour:Num Définit l'heure de l'objet Date spécifié conformément à ber, [minute:Number], l'heure universelle et renvoie la nouvelle heure en millisecondes. [second:Number], [millisecond:Number] ) : Number setUTCMilliseconds(m Définit les millisecondes de l'objet Date spécifié illisecond:Number) : conformément à l'heure universelle et renvoie la Number nouvelle heure en millisecondes. setUTCMinutes(minute Définit les minutes de l'objet Date spécifié :Number, [second:Number], conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. [millisecond:Number] ) : Number setUTCMonth(month:Nu Définit le mois, et éventuellement le jour, de l'objet mber, [date:Number]) : Date spécifié conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. Number setUTCSeconds(second Définit les secondes de l'objet Date spécifié :Number, conformément à l'heure universelle et renvoie la [millisecond:Number] nouvelle heure en millisecondes. ) : Number setYear(year:Number) Définit l'année de l'objet Date spécifié conformément : Number toString() : String à l'heure locale et renvoie la nouvelle heure en millisecondes. Renvoie une valeur de chaîne pour l'objet de date spécifié dans un format lisible. Date 497 Modificateurs Signature Description static Renvoie le nombre de millisecondes écoulées entre le premier janvier 1970 à minuit, heure universelle, et l'heure spécifiée dans les paramètres. UTC(year:Number, month:Number, [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number] ) : Number valueOf() : Number Renvoie le nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit, heure universelle, pour cette Date. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) constructeur Date public Date([yearOrTimevalue:Number], [month:Number], [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number]) Construit un nouvel objet Date qui contient la date et l'heure spécifiées. Le constructeur Date() accepte jusqu'à sept paramètres (year, month, ..., millisecond) pour spécifier une date et une heure en millisecondes. Vous pouvez également transmettre une valeur unique au constructeur Date(), indiquant la valeur de l'heure en fonction du nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit GMT. Vous pouvez encore omettre les paramètres ; dans ce cas, la date et l'heure actuelles sont affectées à l'objet Date(). Par exemple, ce code illustre différentes manières de créer un objet Date : var var var var d1:Date d3:Date d4:Date d5:Date = = = = new new new new Date(); Date(2000, 0, 1); Date(65, 2, 6, 9, 30, 15, 0); Date(-14159025000); Dans la première ligne de code, un objet Date est défini sur l'heure à laquelle l'instruction d'affectation est exécutée. 498 Chapitre 2: Classes ActionScript Dans la deuxième ligne, un objet Date incluant les paramètres year, month et date est créé, soit le premier janvier 2000 à minuit GMT. Dans la troisième ligne, un objet Date incluant les paramètres year, month et date est créé, soit le six mars 1965 à 09:30:15 GMT (+ 0 milliseconde). Remarque : étant donné que le paramètre year est spécifié en tant que nombre entier à deux chiffres, il est interprété comme 1965. Dans la quatrième ligne, un seul paramètre est transmis : il s'agit d'une valeur de temps représentant le nombre de millisecondes écoulées avant ou après le premier janvier 1970 à minuit GMT ; étant donné que la valeur est négative, elle représente une heure avant le premier janvier 1970 à minuit GMT, soit le 21 juillet 1969 à 02:56:15 GMT. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres yearOrTimevalue:Number [facultatif ] - Si d'autres paramètres sont spécifiés, ce nombre représente une année (telle que 1965) ; sinon, il représente une valeur de temps. Si le nombre représente une année, une valeur comprise entre 0 et 99 renvoie à une année comprise entre 1900 et 1999 ; sinon les quatre chiffres de l'année doivent être spécifiés. Si le nombre représente une valeur de temps (aucun paramètre supplémentaire n'est spécifié), il s'agit du nombre de millisecondes écoulées avant ou après le premier janvier 1970 à minuit GMT ; une valeur négative représente une heure avant le premier janvier 1970 à minuit GMT ; une valeur positive représente une heure postérieure à cette date. month:Number [facultatif ] - Entier compris entre 0 (janvier) et 11 (décembre). date:Number [facultatif ] - Entier compris entre 1 et 31. hour:Number [facultatif ] - Entier compris entre 0 (minuit) et 23 (23h00). minute:Number [facultatif ] - Entier compris entre 0 et 59. second:Number [facultatif ] - Entier compris entre 0 et 59. millisecond:Number - Entier compris entre 0 et 999 millisecondes. Exemple L'exemple suivant récupère la date et l'heure actuelles : var now_date:Date = new Date(); L'exemple suivant crée un nouvel objet Date pour le jour de naissance de Marie, le 12 août 1974 (étant donné que le paramètre month est basé sur zéro, cet exemple utilise le chiffre 7 pour le mois, et non le chiffre 8) : var maryBirthday:Date = new Date (74, 7, 12); Date 499 L'exemple suivant crée un nouvel objet Date et concatène les valeurs renvoyées de Date.getMonth(), Date.getDate() et Date.getFullYear() : var today_date:Date = new Date(); var date_str:String = ((today_date.getMonth()+1)+"/ "+today_date.getDate()+"/"+today_date.getFullYear()); trace(date_str); // displays current date in United States date format Voir également getMinutes (méthode Date.getMinutes), getDate (méthode Date.getDate), getFullYear (méthode Date.getFullYear) getDate (méthode Date.getDate) public getDate() : Number Renvoie le jour du mois (entier de 1 à 31) de l'objet Date spécifié, conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et concatène les valeurs renvoyées de Date.getMonth(), Date.getDate() et Date.getFullYear() : var today_date:Date = new Date(); var date_str:String = (today_date.getDate()+"/ "+(today_date.getMonth()+1)+"/"+today_date.getFullYear()); trace(date_str); // displays current date in United States date format Voir également getMinutes (méthode Date.getMinutes), getFullYear (méthode Date.getFullYear) getDay (méthode Date.getDay) public getDay() : Number Renvoie le jour de la semaine (0 pour dimanche, 1 pour lundi, etc.) de l'objet Date spécifié conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. 500 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier représentant le jour de la semaine. Exemple L'exemple suivant crée un nouvel objet Date et utilise la méthode getDay() afin de déterminer le jour actuel de la semaine : var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var today_date:Date = new Date(); var day_str:String = dayOfWeek_array[today_date.getDay()]; trace("Today is "+day_str); getFullYear (méthode Date.getFullYear) public getFullYear() : Number Renvoie l'année entière (un nombre à quatre chiffres, tel que 2000) de l'objet Date spécifié, conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier représentant l'année. Exemple L'exemple suivant utilise le constructeur pour créer un objet Date. L'instruction trace affiche la valeur renvoyée par la méthode getFullYear() var my_date:Date = new Date(); trace(my_date.getYear()); // displays 104 trace(my_date.getFullYear()); // displays current year getHours (méthode Date.getHours) public getHours() : Number Renvoie l'heure (un entier de 0 à 23) de l'objet Date spécifié, conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Date 501 Valeur renvoyée Number - Entier. Exemple L'exemple suivant utilise le constructeur pour créer un objet Date en fonction de l'heure actuelle et utilise la méthode getHours() pour afficher les valeurs d'heure de cet objet : var my_date:Date = new Date(); trace(my_date.getHours()); var my_date:Date = new Date(); var hourObj:Object = getHoursAmPm(my_date.getHours()); trace(hourObj.hours); trace(hourObj.ampm); function getHoursAmPm(hour24:Number):Object { var returnObj:Object = new Object(); returnObj.ampm = (hour24<12) ? "AM" : "PM"; var hour12:Number = hour24%12; if (hour12 == 0) { hour12 = 12; } returnObj.hours = hour12; return returnObj; } getMilliseconds (méthode Date.getMilliseconds) public getMilliseconds() : Number Renvoie les millisecondes (entier de 0 à 999) de l'objet Date spécifié, conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant utilise le constructeur pour créer un objet Date en fonction de l'heure actuelle et utilise la méthode getMilliseconds() pour renvoyer la valeur en millisecondes de cet objet : var my_date:Date = new Date(); trace(my_date.getMilliseconds()); 502 Chapitre 2: Classes ActionScript getMinutes (méthode Date.getMinutes) public getMinutes() : Number Renvoie les minutes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant utilise le constructeur pour créer un objet Date en fonction de l'heure actuelle et utilise la méthode getMinutes() pour renvoyer la valeur de minutes de cet objet : var my_date:Date = new Date(); trace(my_date.getMinutes()); getMinutes (méthode Date.getMinutes) public getMonth() : Number Renvoie le mois (0 pour janvier, 1 pour février, etc.) de l'objet Date spécifié conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant utilise le constructeur pour créer un objet Date en fonction de l'heure actuelle et utilise la méthode getMonth() pour renvoyer la valeur en mois de cet objet : var my_date:Date = new Date(); trace(my_date.getMonth()); L'exemple suivant utilise le constructeur pour créer un objet Date en fonction de l'heure actuelle et utilise la méthode getMonth() pour afficher le mois en cours en tant que valeur numérique, puis le nom du mois. var my_date:Date = new Date(); trace(my_date.getMonth()); trace(getMonthAsString(my_date.getMonth())); function getMonthAsString(month:Number):String { Date 503 var monthNames_array:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); return monthNames_array[month]; } getSeconds (méthode Date.getSeconds) public getSeconds() : Number Renvoie les secondes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant utilise le constructeur pour créer un objet Date en fonction de l'heure actuelle et utilise la méthode getSeconds() pour renvoyer la valeur en mois de cet objet : var my_date:Date = new Date(); trace(my_date.getSeconds()); getTime (méthode Date.getTime) public getTime() : Number Renvoie le nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit, heure universelle, pour l'objet Date spécifié. Utilisez cette méthode pour représenter un instant spécifique dans le temps lorsque vous comparez deux ou plusieurs objets Date. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant utilise le constructeur pour créer un objet Date en fonction de l'heure actuelle et utilise la méthode getTime() pour renvoyer le nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit : var my_date:Date = new Date(); trace(my_date.getTime()); 504 Chapitre 2: Classes ActionScript getTimezoneOffset (méthode Date.getTimezoneOffset) public getTimezoneOffset() : Number Renvoie la différence, en minutes, entre l'heure locale de l'ordinateur et l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant renvoie la différence entre l'heure d'été locale à San Francisco et l'heure universelle. L'heure d'été est factorisée dans le résultat renvoyé uniquement si la date définie dans l'objet Date se trouve dans la plage de l'heure d'été. Le résultat dans cet exemple est 420 minutes, il est affiché dans le panneau de sortie (7 heures * 60 minutes/heure = 420 minutes). Cet exemple est l'heure d'été de la côte Ouest des Etats-Unis (PDT) qui est égale à GMT moins 7 heures. Le résultat varie en fonction du lieu et de l'époque de l'année. var my_date:Date = new Date(); trace(my_date.getTimezoneOffset()); getUTCDate (méthode Date.getUTCDate) public getUTCDate() : Number Renvoie le jour du mois (entier de 1 à 31) de l'objet Date spécifié, conformément à l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise Date.getUTCDate() et Date.getDate(). La valeur renvoyée par Date.getUTCDate() peut différer de celle renvoyée par Date.getDate(),, en fonction de la relation qui existe entre votre fuseau horaire local et l'heure universelle. var my_date:Date = new Date(2004,8,25); trace(my_date.getUTCDate()); // output: 25 Date 505 Voir également getDate (méthode Date.getDate) getUTCDay (méthode Date.getUTCDay) public getUTCDay() : Number Renvoie le jour de la semaine (0 pour dimanche, 1 pour lundi, etc.) de l'objet Date spécifié, conformément à l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise Date.getUTCDay() et Date.getDay(). La valeur renvoyée par Date.getUTCDay() peut différer de celle renvoyée par Date.getDay(),, en fonction de la relation qui existe entre votre fuseau horaire local et l'heure universelle. var today_date:Date = new Date(); trace(today_date.getDay()); // output will be based on local timezone trace(today_date.getUTCDay()); // output will equal getDay() plus or minus one Voir également getDay (méthode Date.getDay) getUTCFullYear (méthode Date.getUTCFullYear) public getUTCFullYear() : Number Renvoie l'année à quatre chiffres de l'objet Date spécifié, conformément à l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number 506 - Entier. Chapitre 2: Classes ActionScript Exemple L'exemple suivant crée un nouvel objet Date object et utilise Date.getUTCFullYear() et Date.getFullYear(). La valeur renvoyée par Date.getUTCFullYear() peut différer de celle renvoyée par Date.getFullYear() si la date du jour est le 31 décembre ou le 1 janvier, en fonction de la relation qui existe entre votre fuseau horaire local et l'heure universelle. var today_date:Date = new Date(); trace(today_date.getFullYear()); // display based on local timezone trace(today_date.getUTCFullYear()); // displays getYear() plus or minus 1 Voir également getFullYear (méthode Date.getFullYear) getUTCHours (méthode Date.getUTCHours) public getUTCHours() : Number Renvoie l'heure (entier de 0 à 23) de l'objet Date spécifié, conformément à l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise Date.getUTCHours() et Date.getHours(). La valeur renvoyée par Date.getUTCHours() peut différer de celle renvoyée par Date.getHours(),, en fonction de la relation qui existe entre votre fuseau horaire local et l'heure universelle. var today_date:Date = new Date(); trace(today_date.getHours()); // display based on local timezone trace(today_date.getUTCHours()); // display equals getHours() plus or minus 12 Voir également getHours (méthode Date.getHours) Date 507 getUTCMilliseconds (méthode Date.getUTCMilliseconds) public getUTCMilliseconds() : Number Renvoie les millisecondes (entier de 0 à 999) de l'objet Date spécifié, conformément à l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise la méthode getUTCMilliseconds() pour renvoyer la valeur de millisecondes de l'objet Date. var today_date:Date = new Date(); trace(today_date.getUTCMilliseconds()); getUTCMinutes (méthode Date.getUTCMinutes) public getUTCMinutes() : Number Renvoie les minutes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise la méthode getUTCMinutes() pour renvoyer la valeur en minutes de l'objet Date. var today_date:Date = new Date(); trace(today_date.getUTCMinutes()); getUTCMonth (méthode Date.getUTCMonth) public getUTCMonth() : Number Renvoie le mois (0 [janvier] à 11 [décembre]) de l'objet Date spécifié, conformément à l'heure universelle. 508 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise Date.getUTCMonth() et Date.getMonth(). La valeur renvoyée par Date.getUTCMonth() peut différer de celle renvoyée par Date.getMonth() si la date du jour est le premier ou le dernier jour du mois, en fonction de la relation qui existe entre votre fuseau horaire local et l'heure universelle. var today_date:Date = new Date(); trace(today_date.getMonth()); // output based on local timezone trace(today_date.getUTCMonth()); // output equals getMonth() plus or minus 1 Voir également getMinutes (méthode Date.getMinutes) getUTCSeconds (méthode Date.getUTCSeconds) public getUTCSeconds() : Number Renvoie les secondes (entier de 0 à 59) de l'objet Date spécifié, conformément à l'heure universelle. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise la méthode getUTCSeconds() pour renvoyer la valeur en secondes de l'objet Date. var today_date:Date = new Date(); trace(today_date.getUTCSeconds()); getUTCYear (méthode Date.getUTCYear) public getUTCYear() : Number Renvoie l'année de cette Date conformément à l'heure universelle. L'année est l'année entière moins 1900. Par exemple, l'année 2000 est représentée comme 100. Date 509 Disponibilité : ActionScript 1.0 ; Flash Player 8 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date et utilise Date.getUTCFullYear() et Date.getFullYear(). La valeur renvoyée par Date.getUTCFullYear() peut différer de celle renvoyée par Date.getFullYear() si la date du jour est le 31 décembre ou le 1 janvier, en fonction de la relation qui existe entre votre fuseau horaire local et l'heure universelle. var today_date:Date = new Date(); trace(today_date.getFullYear()); // display based on local timezone trace(today_date.getUTCFullYear()); // displays getYear() plus or minus 1 getYear (méthode Date.getYear) public getYear() : Number Renvoie l'année de l'objet Date spécifié, conformément à l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. L'année est l'année entière moins 1900. Par exemple, l'année 2000 est représentée comme 100. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un objet Date dont le mois et l'année sont définis sur Mai 2004. La méthode Date.getYear() renvoie 104 et Date.getFullYear() renvoie 2004 : var today_date:Date = new Date(2004,4); trace(today_date.getYear()); // output: 104 trace(today_date.getFullYear()); // output: 2004 Voir également getFullYear (méthode Date.getFullYear) 510 Chapitre 2: Classes ActionScript setDate (méthode Date.setDate) public setDate(date:Number) : Number Définit le jour du mois de l'objet Date spécifié, conformément à l'heure locale, et renvoie la nouvelle heure en millisecondes. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres date:Number - Entier compris entre 1 et 31. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont la date est définie sur 15 mai 2004, puis utilise la méthode Date.setDate() pour modifier la date et la définir sur 25 mai 2004 : var today_date:Date = new Date(2004,4,15); trace(today_date.getDate()); //displays 15 today_date.setDate(25); trace(today_date.getDate()); //displays 25 setFullYear (méthode Date.setFullYear) public setFullYear(year:Number, [month:Number], [date:Number]) : Number Définit l'année de l'objet Date spécifié, conformément à l'heure locale, et renvoie la nouvelle heure en millisecondes. Si les paramètres month et date sont spécifiés, ils sont définis sur l'heure locale. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. L'appel de cette méthode ne modifie pas les autres champs de l'objet Date spécifié mais Date.getUTCDay() et Date.getDay() peuvent signaler une nouvelle valeur si le jour de la semaine change suite à l'appel de cette méthode. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres year:Number - Nombre à quatre chiffres spécifiant une année. Les nombres à deux chiffres ne représentent pas les années à quatre chiffres ; par exemple, 99 ne représente pas l'année 1999 mais l'an 99. Date 511 [facultatif ] - Entier compris entre 0 (janvier) et 11 (décembre). Si vous omettez ce paramètre, le champ Mois de l'objet Date spécifié ne sera pas modifié. month:Number [facultatif ] - Nombre compris entre 1 et 31. Si vous omettez ce paramètre, le champ Date de l'objet Date spécifié ne sera pas modifié. date:Number Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont la date est définie sur 15 mai 2004, puis utilise la méthode Date.setFullYear() pour modifier la date et la définir sur 15 mai 2002 : var my_date:Date = new Date(2004,4,15); trace(my_date.getFullYear()); //output: 2004 my_date.setFullYear(2002); trace(my_date.getFullYear()); //output: 2002 Voir également getUTCDay (méthode Date.getUTCDay), getDay (méthode Date.getDay) setHours (méthode Date.setHours) public setHours(hour:Number) : Number Définit les heures de l'objet Date spécifié conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres hour:Number - Entier compris entre 0 (minuit) et 23 (23h00). Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont l'heure et la date sont définies sur 15 mai 2004 à 8:00, puis utilise la méthode Date.setHours() pour modifier l'heure et la définir sur 16:00 : 512 Chapitre 2: Classes ActionScript var my_date:Date = new Date(2004,4,15,8); trace(my_date.getHours()); // output: 8 my_date.setHours(16); trace(my_date.getHours()); // output: 16 setMilliseconds (méthode Date.setMilliseconds) public setMilliseconds(millisecond:Number) : Number Définit les millisecondes de l'objet Date spécifié conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres millisecond:Number - Entier compris entre 0 et 999. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont la date est définie sur 15 mai 2004 à 8:30 (valeur de millisecondes définie sur 250), puis utilise la méthode Date.setMilliseconds() pour modifier la valeur de millisecondes et la définir sur 575 : var my_date:Date = new Date(2004,4,15,8,30,0,250); trace(my_date.getMilliseconds()); // output: 250 my_date.setMilliseconds(575); trace(my_date.getMilliseconds()); // output: 575 setMinutes (méthode Date.setMinutes) public setMinutes(minute:Number) : Number Définit les minutes de l'objet Date spécifié conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres minute:Number - Entier compris entre 0 et 59. Date 513 Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont l'heure et la date sont définies sur 15 mai 2004 à 8:00, puis utilise la méthode Date.setMinutes() pour modifier l'heure et la définir sur 8:30 : var my_date:Date = new Date(2004,4,15,8,0); trace(my_date.getMinutes()); // output: 0 my_date.setMinutes(30); trace(my_date.getMinutes()); // output: 30 setMonth (méthode Date.setMonth) public setMonth(month:Number, [date:Number]) : Number Définit le mois de l'objet Date spécifié conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres month:Number - Entier compris entre 0 (janvier) et 11 (décembre). date:Number [facultatif ] - Entier compris entre 1 et 31. Si vous omettez ce paramètre, le champ Date de l'objet Date spécifié ne sera pas modifié. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont la date est définie sur 15 mai 2004, puis utilise la méthode Date.setMonth() pour modifier la date et la définir sur 15.06.04 : var my_date:Date = new Date(2004,4,15); trace(my_date.getMonth()); //output: 4 my_date.setMonth(5); trace(my_date.getMonth()); //output: 5 514 Chapitre 2: Classes ActionScript setSeconds (méthode Date.setSeconds) public setSeconds(second:Number) : Number Définit les secondes de l'objet Date spécifié conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres second:Number - Entier compris entre 0 et 59. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont l'heure et la date sont définies sur 15 mai 2004 à 8:00:00, puis utilise la méthode Date.setSeconds() pour modifier l'heure et la définir sur 8:00:45 : var my_date:Date = new Date(2004,4,15,8,0,0); trace(my_date.getSeconds()); // output: 0 my_date.setSeconds(45); trace(my_date.getSeconds()); // output: 45 setTime (méthode Date.setTime) public setMilliseconds(millisecond:Number) : Number Définit la date de l'objet Date spécifié en millisecondes écoulées depuis le premier janvier 1970 à minuit et renvoie la nouvelle heure en millisecondes. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres millisecond:Number - Nombre ; valeur entière où 0 représente minuit le premier janvier, heure universelle. Valeur renvoyée Number - Entier. Date 515 Exemple L'exemple suivant crée initialement un nouvel objet Date dont l'heure et la date sont définies sur 15 mai 2004 à 08:00:00, puis utilise la méthode Date.setTime() pour modifier l'heure et la définir sur 08:30:00 : var my_date:Date = new Date(2004,4,15,8,0,0); var myDate_num:Number = my_date.getTime(); // convert my_date to milliseconds myDate_num += 30 * 60 * 1000; // add 30 minutes in milliseconds my_date.setTime(myDate_num); // set my_date Date object 30 minutes forward trace(my_date.getFullYear()); // output: 2004 trace(my_date.getMonth()); // output: 4 trace(my_date.getDate()); // output: 15 trace(my_date.getHours()); // output: 8 trace(my_date.getMinutes()); // output: 30 setUTCDate (méthode Date.setUTCDate) public setUTCDate(date:Number) : Number Définit la date de l'objet Date spécifié conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. L'appel de cette méthode ne modifie pas les autres champs de l'objet Date spécifié mais Date.getUTCDay() et Date.getDay() peuvent signaler une nouvelle valeur si le jour de la semaine change suite à l'appel de cette méthode. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres date:Number - Nombre ; entier compris entre 1 et 31. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date à la date du jour, utilise la méthode Date.setUTCDate() pour modifier la valeur de date et la définir sur 10, puis la définir de nouveau sur 25 : var my_date:Date = new Date(); my_date.setUTCDate(10); trace(my_date.getUTCDate()); // output: 10 my_date.setUTCDate(25); trace(my_date.getUTCDate()); // output: 25 516 Chapitre 2: Classes ActionScript Voir également getUTCDay (méthode Date.getUTCDay), getDay (méthode Date.getDay) setUTCFullYear (méthode Date.setUTCFullYear) public setUTCFullYear(year:Number, [month:Number], [date:Number]) : Number Définit l'année de l'objet Date spécifié (my_date) conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. Cette méthode peut également définir le mois et la date représentés par l'objet Date spécifié. L'appel de cette méthode ne modifie pas les autres champs de l'objet Date spécifié mais Date.getUTCDay() et Date.getDay() peuvent signaler une nouvelle valeur si le jour de la semaine change suite à l'appel de cette méthode. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres year:Number - Entier représentant l'année spécifiée en tant qu'année entière à quatre chiffres, telle que 2000. [facultatif ] - Entier compris entre 0 (janvier) et 11 (décembre). Si vous omettez ce paramètre, le champ Mois de l'objet Date spécifié ne sera pas modifié. month:Number [facultatif ] - Entier compris entre 1 et 31. Si vous omettez ce paramètre, le champ Date de l'objet Date spécifié ne sera pas modifié. date:Number Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date à la date du jour, utilise la méthode Date.setUTCFullYear() pour modifier la valeur de l'année et la définir sur 2001, puis définir la date sur 25 mai 1995 : var my_date:Date = new Date(); my_date.setUTCFullYear(2001); trace(my_date.getUTCFullYear()); // output: 2001 my_date.setUTCFullYear(1995, 4, 25); trace(my_date.getUTCFullYear()); // output: 1995 trace(my_date.getUTCMonth()); // output: 4 trace(my_date.getUTCDate()); // output: 25 Voir également getUTCDay (méthode Date.getUTCDay), getDay (méthode Date.getDay) Date 517 setUTCHours (méthode Date.setUTCHours) public setUTCHours(hour:Number, [minute:Number], [second:Number], [millisecond:Number]) : Number Définit l'heure de l'objet Date spécifié conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres hour:Number - Nombre ; entier compris entre 0 (minuit) et 23 (23h00). [facultatif ] - Nombre ; entier compris entre 0 et 59. Si vous omettez ce paramètre, le champ Minutes de l'objet Date spécifié ne sera pas modifié. minute:Number [facultatif ] - Nombre ; entier compris entre 0 et 59. Si vous omettez ce paramètre, le champ Secondes de l'objet Date spécifié ne sera pas modifié. second:Number millisecond:Number [facultatif ] - Nombre ; entier compris entre 0 et 999. Si vous omettez ce paramètre, le champ Millisecondes de l'objet Date spécifié ne sera pas modifié. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date à la date du jour, utilise la méthode Date.setUTCHours() pour modifier l'heure et la définir sur 8:30, puis la définir de nouveau sur 17:30:47 : var my_date:Date = new Date(); my_date.setUTCHours(8,30); trace(my_date.getUTCHours()); // output: 8 trace(my_date.getUTCMinutes()); // output: 30 my_date.setUTCHours(17,30,47); trace(my_date.getUTCHours()); // output: 17 trace(my_date.getUTCMinutes()); // output: 30 trace(my_date.getUTCSeconds()); // output: 47 setUTCMilliseconds (méthode Date.setUTCMilliseconds) public setUTCMilliseconds(millisecond:Number) : Number Définit les millisecondes de l'objet Date spécifié conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. 518 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres millisecond:Number - Entier compris entre 0 et 999. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont la date est définie sur 15 mai 2004 à 8:30 (valeur de millisecondes définie sur 250), puis utilise la méthode Date.setUTCMilliseconds() pour modifier la valeur de millisecondes et la définir sur 575 : var my_date:Date = new Date(2004,4,15,8,30,0,250); trace(my_date.getUTCMilliseconds()); // output: 250 my_date.setUTCMilliseconds(575); trace(my_date.getUTCMilliseconds()); // output: 575 setUTCMinutes (méthode Date.setUTCMinutes) public setUTCMinutes(minute:Number, [second:Number], [millisecond:Number]) : Number Définit les minutes de l'objet Date spécifié conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres minute:Number - Entier compris entre 0 et 59. second:Number [facultatif ] - Entier compris entre 0 et 59. Si vous omettez ce paramètre, le champ Secondes de l'objet Date spécifié ne sera pas modifié. [facultatif ] - Entier compris entre 0 et 999. Si vous omettez ce paramètre, le champ Millisecondes de l'objet Date spécifié ne sera pas modifié. millisecond:Number Valeur renvoyée Number - Entier. Date 519 Exemple L'exemple suivant crée initialement un nouvel objet Date dont l'heure et la date sont définies sur 15 mai 2004 à 08:00:00, puis utilise la méthode Date.setUTCMinutes() pour modifier l'heure et la définir sur 08:30:00 : var my_date:Date = new Date(2004,4,15,8,0); trace(my_date.getUTCMinutes()); // output: 0 my_date.setUTCMinutes(30); trace(my_date.getUTCMinutes()); // output: 30 setUTCMonth (méthode Date.setUTCMonth) public setUTCMonth(month:Number, [date:Number]) : Number Définit le mois, et éventuellement le jour, de l'objet Date spécifié conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. L'appel de cette méthode ne modifie pas les autres champs de l'objet Date spécifié, mais Date.getUTCDay() et Date.getDay() peuvent signaler une nouvelle valeur si le jour de la semaine change suite à la spécification d'une valeur pour le paramètre date. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres month:Number - Entier compris entre 0 (janvier) et 11 (décembre). date:Number [facultatif ] - Entier compris entre 1 et 31. Si vous omettez ce paramètre, le champ Date de l'objet Date spécifié ne sera pas modifié. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont la date est définie sur 15 mai 2004, puis utilise la méthode Date.setMonth() pour modifier la date et la définir sur 15 juin 2004 : var today_date:Date = new Date(2004,4,15); trace(today_date.getUTCMonth()); // output: 4 today_date.setUTCMonth(5); trace(today_date.getUTCMonth()); // output: 5 Voir également getUTCDay (méthode Date.getUTCDay), getDay (méthode Date.getDay) 520 Chapitre 2: Classes ActionScript setUTCSeconds (méthode Date.setUTCSeconds) public setUTCSeconds(second:Number, [millisecond:Number]) : Number Définit les secondes de l'objet Date spécifié conformément à l'heure universelle et renvoie la nouvelle heure en millisecondes. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres second:Number - Entier compris entre 0 et 59. millisecond:Number [facultatif ] - Entier compris entre 0 et 999. Si vous omettez ce paramètre, le champ Millisecondes de l'objet Date spécifié ne sera pas modifié. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée initialement un nouvel objet Date dont l'heure et la date sont définies sur 15 mai 2004 à 8:00:00, puis utilise la méthode Date.setSeconds() pour modifier l'heure et la définir sur 08:30:45 : var my_date:Date = new Date(2004,4,15,8,0,0); trace(my_date.getUTCSeconds()); // output: 0 my_date.setUTCSeconds(45); trace(my_date.getUTCSeconds()); // output: 45 setYear (méthode Date.setYear) public setYear(year:Number) : Number Définit l'année de l'objet Date spécifié conformément à l'heure locale et renvoie la nouvelle heure en millisecondes. L'heure locale est déterminée par le système d'exploitation sur lequel Flash Player s'exécute. Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres - Nombre représentant l'année. Si year est un entier compris entre 0 et 99, définit l'année sur 1900 + year ; sinon, l'année correspond à la valeur du paramètre year:Number setYear year. Valeur renvoyée Number - Entier. Date 521 Exemple L'exemple suivant crée un nouvel objet Date dont la date est définie sur 25 mai 2004, utilise la méthode setYear() pour modifier la valeur de l'année et la définir sur 1999, puis définir l'année sur 2003 : var my_date:Date = new Date(2004,4,25); trace(my_date.getYear()); // output: 104 trace(my_date.getFullYear()); // output: 2004 my_date.setYear(99); trace(my_date.getYear()); // output: 99 trace(my_date.getFullYear()); // output: 1999 my_date.setYear(2003); trace(my_date.getYear()); // output: 103 trace(my_date.getFullYear()); // output: 2003 toString (méthode Date.toString) public toString() : String Renvoie une valeur de chaîne pour l'objet de date spécifié dans un format lisible. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée String - Chaîne. Exemple L'exemple suivant renvoie les informations dans l'objet Date dateOfBirth_date sous forme de chaîne : La sortie des instructions trace est en heure locale et varie en fonction de : Pour l'heure d'été de la côte Ouest des Etats-Unis (PDT), la sortie est l'heure universelle moins 7 heures : lundi 12 août 1974 à 18:15:00, GMT - 7h00. var dateOfBirth_date:Date = new Date(74, 7, 12, 18, 15); trace (dateOfBirth_date); trace (dateOfBirth_date.toString()); UTC (méthode Date.UTC) public static UTC(year:Number, month:Number, [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number]) : Number Renvoie le nombre de millisecondes écoulées entre le premier janvier 1970 à minuit, heure universelle, et l'heure spécifiée dans les paramètres. Il s'agit d'une méthode statique appelée via le constructeur de l'objet Date, et non pas via un objet Date spécifique. Cette méthode vous permet de créer un objet Date qui adopte l'heure universelle, tandis que le constructeur Date adopte l'heure locale. 522 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 5 Paramètres year:Number - Entier à quatre chiffres qui représente l'année (par exemple, 2000). month:Number - Entier compris entre 0 (janvier) et 11 (décembre). date:Number [facultatif ] - Entier compris entre 1 et 31. hour:Number [facultatif ] - Entier compris entre 0 (minuit) et 23 (23h00). minute:Number [facultatif ] - Entier compris entre 0 et 59. second:Number [facultatif ] - Entier compris entre 0 et 59. millisecond:Number [facultatif ] - Entier compris entre 0 et 999. Valeur renvoyée Number - Entier. Exemple L'exemple suivant crée un nouvel objet Date maryBirthday_date défini conformément à l'heure universelle. Cet exemple reprend l'exemple utilisé pour la nouvelle méthode du constructeur new Date, en se basant sur l'heure universelle. La sortie est en heure locale et varie en fonction de : Pour l'heure d'été de la côte Ouest des Etats-Unis (PDT), la sortie est l'heure universelle moins 7 heures : dimanche 11 août 1974 à 17:00:00, GMT - 7h00. var maryBirthday_date:Date = new Date(Date.UTC(1974, 7, 12)); trace(maryBirthday_date); valueOf (méthode Date.valueOf) public valueOf() : Number Renvoie le nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit, heure universelle, pour cette Date. Disponibilité : ActionScript 1.0 ; Flash Player 5 Valeur renvoyée Number - Nombre de millisecondes. Date 523 DisplacementMapFilter (flash.filters.DisplacementMapFilter) Object | +-flash.filters.BitmapFilter | +-flash.filters.DisplacementMapFilter public class DisplacementMapFilter extends BitmapFilter La classe DisplacementMapFilter utilise les valeurs de pixels de l'objet BitmapData spécifié (intitulé image de mappage du déplacement) pour déplacer un objet situé sur la scène, telle qu'une occurrence MovieClip. Vous pouvez utiliser ce filtre pour obtenir un effet voilé ou de tacheté sur une occurrence BitmapData ou MovieClip. L'utilisation de filtres dépend de l'objet auquel vous appliquez le filtre. Pour appliquer des filtres aux clips lors de l'exécution, utilisez la propriété filters. Lorsque vous définissez la propriété filters d'un objet, celui-ci n'est pas modifié. En outre, vous pouvez l'annuler en supprimant la propriété filters. Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode L'appel applyFilter() sur un objet BitmapData modifie ce dernier et ne peut pas être annulé. BitmapData.applyFilter(). Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d'informations, consultez la documentation relative à la programmation. Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d'origine de cacheAsBitmap est restaurée. Le filtre utilise la formule suivante : dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) * scaleY) / 256] où componentX(x, y) attribue la valeur de couleur componentX de la propriété mapBitmap à (x - mapPoint.x ,y - mapPoint.y). L'image de mappage utilisée par le filtre est redimensionnée afin de correspondre au redimensionnement de la scène. Elle n'est en aucun cas redimensionnée lorsque l'objet l'est. 524 Chapitre 2: Classes ActionScript Ce filtre prend en charge le redimensionnement de la scène, mais pas le redimensionnement général, la rotation ni l'inclinaison. Si l'objet lui-même est redimensionné (si l'échelle x et l'échelle yne sont pas à 100 %), l'effet du filtre n'est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène. Voici comment fonctionne la classe DisplacementMapFilter. Pour chaque pixel (x,y) dans la bitmap de destination, la classe DisplacementMapFilter effectue ce qui suit : ■ Elle acquiert la couleur de (x,y) dans le mappage de la bitmap ■ Elle calcule un décalage sur la base de cette couleur ■ Elle recherche cet emplacement de décalage (x+dx,y+dy) dans la bitmap source ■ Elle inscrit ce pixel à la destination (x,y), si les conditions de limites le permettent. Un filtre ne peut s'appliquer si l'image résultante dépasse 2 880 pixels en largeur ou en hauteur. Par exemple, si vous faites un zoom avant sur un grand clip auquel un filtre est appliqué, le filtre est désactivé si l'image résultante dépasse la limite de 2 880 pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 Voir également applyFilter (méthode BitmapData.applyFilter), filters (propriété MovieClip.filters), cacheAsBitmap (propriété MovieClip.cacheAsBitmap) DisplacementMapFilter (flash.filters.DisplacementMapFilter) 525 Résumé des propriétés Modificateurs Propriété Description alpha:Number Spécifie la transparence alpha à utiliser pour les déplacements en dehors des limites. color:Number Spécifie la couleur à utiliser pour les déplacements en dehors des limites. componentX:Number Décrit le canal de couleur à utiliser dans l'image de mappage pour déplacer le résultat x. componentY:Number Décrit le canal de couleur à utiliser dans l'image de mappage pour déplacer le résultat y. mapBitmap:BitmapData Un objet BitmapData contenant les données de mappage du déplacement. mapPoint:Point Une valeur flash.geom.Point représentant le décalage du coin supérieur gauche du clip cible par rapport au coin supérieur gauche de l'image de mappage. mode:String Le mode du filtre. scaleX:Number Le multiplicateur à utiliser pour mettre à l'échelle le résultat du déplacement x à partir du calcul de mappage. scaleY:Number Le multiplicateur à utiliser pour mettre à l'échelle le résultat du déplacement y à partir du calcul de mappage. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) 526 Chapitre 2: Classes ActionScript Récapitulatif des constructeurs Signature Description DisplacementMapFilte Initialise une occurrence DisplacementMapFilter avec les paramètres r(mapBitmap:BitmapDa spécifiés. ta, mapPoint:Point, componentX:Number, componentY:Number, scaleX:Number, scaleY:Number, [mode:String], [color:Number], [alpha:Number]) Résumé de la méthode Modificateurs Signature Description Renvoie une copie de cet objet filtre. clone() : DisplacementMapFilte r Méthodes héritées de la classe BitmapFilter clone (méthode BitmapFilter.clone ) Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) alpha (propriété DisplacementMapFilter.alpha) public alpha : Number Spécifie la transparence alpha à utiliser pour les déplacements en dehors des limites. Elle est spécifiée en tant que valeur normalisée comprise entre 0,0 et 1,0. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 0. Utilisez cette propriété si la propriété mode est définie sur 3, COLOR. Disponibilité : ActionScript 1.0 ; Flash Player 8 DisplacementMapFilter (flash.filters.DisplacementMapFilter) 527 Exemple L'exemple suivant modifie la propriété hors limites alpha pour la mettre à 0x00FF00 sur le clip existant filteredMc quand un utilisateur clique sur celui-ci. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.scaleY = 25; filter.mode = "color"; filter.alpha = .25; this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; 528 Chapitre 2: Classes ActionScript var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } clone (méthode DisplacementMapFilter.clone) public clone() : DisplacementMapFilter Renvoie une copie de cet objet filtre. Disponibilité : ActionScript 1.0 ; Flash Player 8 Valeur renvoyée - Nouvelle occurrence DisplacementMapFilter dont les propriétés sont toutes identiques à celles de l'occurrence d'origine. flash.filters.DisplacementMapFilter Exemple L'exemple suivant crée trois objets DisplacementMapFilter et les compare : filter_1 est créé en utilisant le constructeur DisplacementMapFilter ; filter_2 est créé en le définissant comme égal à filter_1; et clonedFilter est créé en clonant filter_1. Veuillez noter que filter_2 est considéré comme égal à filter_1, clonedFilter ne l'est pas, même s'il contient les mêmes valeurs que filter_1. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial", true); var filter_1:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); DisplacementMapFilter (flash.filters.DisplacementMapFilter) 529 var filter_2:DisplacementMapFilter = filter_1; var clonedFilter:DisplacementMapFilter = filter_1.clone(); trace(filter_1 == filter_2); // true trace(filter_1 == clonedFilter); // false for(var i in filter_1) { trace(">> " + i + ": " + filter_1[i]); // >> clone: [type Function] // >> alpha: 0 // >> color: 0 // >> mode: wrap // >> scaleY: 10 // >> scaleX: 10 // >> componentY: 1 // >> componentX: 1 // >> mapPoint: (-30, -30) // >> mapBitmap: [object Object] } for(var i in clonedFilter) { trace(">> " + i + ": " + clonedFilter[i]); // >> clone: [type Function] // >> alpha: 0 // >> color: 0 // >> mode: wrap // >> scaleY: 10 // >> scaleX: 10 // >> componentY: 1 // >> componentX: 1 // >> mapPoint: (-30, -30) // >> mapBitmap: [object Object] } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; var bmp:BitmapData = new BitmapData(w, h, true, bgColor); 530 Chapitre 2: Classes ActionScript bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } Pour démontrer davantage les relations entre filter_1, filter_2, et clonedFilter, l'exemple suivant modifie la propriété mode de filter_1. La modification de mode démontre que la méthode clone() crée une nouvelle occurrence basée sur les valeurs de filter_1 au lieu de faire référence à ces valeurs. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial", true); var filter_1:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var filter_2:DisplacementMapFilter = filter_1; var clonedFilter:DisplacementMapFilter = filter_1.clone(); trace(filter_1.mode); // wrap trace(filter_2.mode); // wrap trace(clonedFilter.mode); // wrap filter_1.mode = "ignore"; trace(filter_1.mode); // ignore trace(filter_2.mode); // ignore trace(clonedFilter.mode); // wrap function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; DisplacementMapFilter (flash.filters.DisplacementMapFilter) 531 var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } color (propriété DisplacementMapFilter.color) public color : Number Spécifie la couleur à utiliser pour les déplacements en dehors des limites. La plage valide de déplacements est comprise entre 0,0 et 1,0. Les valeurs sont au format hexadécimal. La valeur par défaut de color est 0. Utilisez cette propriété si la propriété mode est définie sur 3, COLOR. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie la propriété hors limites color pour la mettre à 0x00FF00 sur le clip existant filteredMc quand un utilisateur clique sur celui-ci. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.scaleY = 25; filter.mode = "color"; filter.alpha = .25; filter.color = 0x00FF00; this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; 532 Chapitre 2: Classes ActionScript txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } componentX (propriété DisplacementMapFilter.componentX) public componentX : Number Décrit le canal de couleur à utiliser dans l'image de mappage pour déplacer le résultat x. Les valeurs possibles sont 1 (rouge), 2 (vert), 4 (bleu) et 8 (alpha). Disponibilité : ActionScript 1.0 ; Flash Player 8 DisplacementMapFilter (flash.filters.DisplacementMapFilter) 533 Exemple L'exemple suivant change la propriété componentX sur le clip existant filteredMc quand un utilisateur clique dessus. La valeur passe de 1 à 4, ce qui change le canal de couleur de rouge à bleu. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.componentX = 4; this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; 534 Chapitre 2: Classes ActionScript var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } Voir également BitmapData (flash.display.BitmapData) componentY (propriété DisplacementMapFilter.componentY) public componentY : Number Décrit le canal de couleur à utiliser dans l'image de mappage pour déplacer le résultat y. Les valeurs possibles sont 1 (rouge), 2 (vert), 4 (bleu) et 8 (alpha). Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété componentY sur le clip existant filteredMc quand un utilisateur clique dessus. La valeur passe de 1 à 4, ce qui change le canal de couleur de rouge à bleu. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.componentY = 4; DisplacementMapFilter (flash.filters.DisplacementMapFilter) 535 this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } 536 Chapitre 2: Classes ActionScript Voir également BitmapData (flash.display.BitmapData) constructeur DisplacementMapFilter public DisplacementMapFilter(mapBitmap:BitmapData, mapPoint:Point, componentX:Number, componentY:Number, scaleX:Number, scaleY:Number, [mode:String], [color:Number], [alpha:Number]) Initialise une occurrence DisplacementMapFilter avec les paramètres spécifiés. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres mapBitmap:flash.display.BitmapData - Objet BitmapData contenant les données de mappage du déplacement. - Valeur flash.geom.Point représentant le décalage du coin supérieur gauche du clip cible par rapport au coin supérieur gauche de l'image de mappage. mapPoint:flash.geom.Point - Décrit le canal de couleur à utiliser dans l'image de mappage pour déplacer le résultat x. Les valeurs possibles sont les suivantes : componentX:Number ■ 1 (rouge) ■ 2 (vert) ■ 4(bleu) ■ 8 (alpha) - Décrit le canal de couleur à utiliser dans l'image de mappage pour déplacer le résultat y. Les valeurs possibles sont les suivantes : componentY:Number ■ 1 (rouge) ■ 2 (vert) ■ 4(bleu) ■ 8 (alpha) scaleX:Number - Multiplicateur à utiliser pour mettre à l'échelle le résultat du déplacement x à partir du calcul de mappage. - Multiplicateur à utiliser pour mettre à l'échelle le résultat du déplacement y à partir du calcul de mappage. scaleY:Number mode:String [facultatif ] - Mode du filtre. Les valeurs possibles sont les suivantes : - Ramène la valeur de déplacement à l'autre côté de l'image source. ■ "wrap" ■ "clamp" - Corrige la valeur de déplacement en fonction du bord de l'image source. DisplacementMapFilter (flash.filters.DisplacementMapFilter) 537 - Si la valeur de déplacement est hors limites, ignore le déplacement et utilise le pixel source. ■ "ignore" ■ "color" - Si la valeur de déplacement est en dehors de l'image, remplace une valeur de pixel composée des propriétés alpha et color du filtre. [facultatif ] - Spécifie la couleur à utiliser pour les déplacements en dehors des limites. La plage valide de déplacements est comprise entre 0,0 et 1,0. Utilisez ce paramètre si le mode est défini sur "color". color:Number alpha:Number [facultatif ] - Spécifie la valeur alpha à utiliser pour les déplacements en dehors des limites. Elle est spécifiée en tant que valeur normalisée comprise entre 0,0 et 1,0. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1,0. Utilisez ce paramètre si le mode est défini sur "color". Exemple La fonction constructeur suivante crée une nouvelle occurrence du filtre : myFilter = new flash.filters.DisplacementMapFilter (mapBitmap, mapPoint, componentX, componentY, scale, [mode], [color], [alpha]) L'exemple suivant instancie un nouveau DisplacementMapFilter ayant une bitmap avec dégradé radial et l'applique au texte contenant l'objet MovieClip, txtBlock. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var var var var var var var var mapPoint:Point = new Point(-30, -30); componentX:Number = 1; componentY:Number = 1; scaleX:Number = 10; scaleY:Number = 10; mode:String = "wrap"; color:Number = 0x000000; alpha:Number = 0x000000; var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, mapPoint, componentX, componentY, scaleX, scaleY, mode, color, alpha); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); 538 Chapitre 2: Classes ActionScript function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } mapBitmap (propriété DisplacementMapFilter.mapBitmap) public mapBitmap : BitmapData Un objet BitmapData contenant les données de mappage du déplacement. La propriété mapBitmap ne peut pas être changée en modifiant directement sa valeur. Vous devez plutôt acquérir une référence à mapBitmap, effectuer le changement de référence et ensuite définir mapBitmap par rapport à la référence. Disponibilité : ActionScript 1.0 ; Flash Player 8 DisplacementMapFilter (flash.filters.DisplacementMapFilter) 539 Exemple L'exemple suivant change la propriété mapBitmap sur le clip existant filteredMc quand un utilisateur clique dessus. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); var scope:Object = this; filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.mapBitmap = scope.createGradientBitmap(300, 80, 0xFF000000, "linear"); this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; 540 Chapitre 2: Classes ActionScript var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } Voir également BitmapData (flash.display.BitmapData) mapPoint (propriété DisplacementMapFilter.mapPoint) public mapPoint : Point Une valeur flash.geom.Point représentant le décalage du coin supérieur gauche du clip cible par rapport au coin supérieur gauche de l'image de mappage. La propriété mapPoint ne peut pas être changée en modifiant directement sa valeur. Vous devez plutôt acquérir une référence à mapPoint, effectuer le changement de référence et ensuite définir mapPoint par rapport à la référence. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété mapPoint sur le clip existant filteredMc quand un utilisateur clique dessus. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { DisplacementMapFilter (flash.filters.DisplacementMapFilter) 541 var filter:DisplacementMapFilter = this.filters[0]; filter.mapPoint = new Point(-30, -40); this.filters = new Array(filter); this._x = 30; this._y = 40; } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); 542 Chapitre 2: Classes ActionScript txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } Voir également Point (flash.geom.Point) mode (propriété DisplacementMapFilter.mode) public mode : String Le mode du filtre. Les valeurs possibles sont les suivantes : ■ - Ramène la valeur de déplacement à l'autre côté de l'image source. Il s'agit de la valeur par défaut. ■ "clamp" ■ "ignore" ■ "color" - Si la valeur de déplacement est en dehors de l'image, remplace une valeur de pixel composée des propriétés alpha et color du filtre. "wrap" - Corrige la valeur de déplacement en fonction du bord de l'image source. - Si la valeur de déplacement est hors limites, ignore le déplacement et utilise le pixel source. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant modifie scaleY pour créer une valeur de déplacement hors limites et ensuite change la propriété mode sur le clip existant filteredMc pour la définir à ignore quand un utilisateur clique sur celui-ci. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.scaleY = 25; filter.mode = "ignore"; this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); DisplacementMapFilter (flash.filters.DisplacementMapFilter) 543 var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } scaleX (propriété DisplacementMapFilter.scaleX) public scaleX : Number Le multiplicateur à utiliser pour mettre à l'échelle le résultat du déplacement x à partir du calcul de mappage. 544 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété scaleX sur le clip existant filteredMc quand un utilisateur clique dessus. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.scaleX = 5; this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; DisplacementMapFilter (flash.filters.DisplacementMapFilter) 545 var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } scaleY (propriété DisplacementMapFilter.scaleY) public scaleY : Number Le multiplicateur à utiliser pour mettre à l'échelle le résultat du déplacement y à partir du calcul de mappage. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété scaleY sur le clip existant filteredMc quand un utilisateur clique dessus. import import import import import flash.filters.DisplacementMapFilter; flash.display.BitmapData; flash.geom.Point; flash.geom.Matrix; flash.geom.ColorTransform; var filteredMc:MovieClip = createDisplacementMapRectangle(); filteredMc.onPress = function() { var filter:DisplacementMapFilter = this.filters[0]; filter.scaleY = 5; this.filters = new Array(filter); } function createDisplacementMapRectangle():MovieClip { var mapBitmap:BitmapData = createGradientBitmap(300, 80, 0xFF000000, "radial"); 546 Chapitre 2: Classes ActionScript var filter:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, new Point(-30, -30), 1, 1, 10, 10, "wrap", 0x000000, 0x000000); var txtBlock:MovieClip = createTextBlock(); txtBlock._x = 30; txtBlock._y = 30; txtBlock.filters = new Array(filter); return txtBlock; } function createGradientBitmap(w:Number, h:Number, bgColor:Number, type:String, hide:Boolean):BitmapData { var mc:MovieClip = this.createEmptyMovieClip("mc", 1); var matrix:Matrix = new Matrix(); matrix.createGradientBox(w, h, 0, 0, 0); mc.beginGradientFill(type, [0xFF0000, 0x0000FF], [100, 100], [0x55, 0x99], matrix, "pad"); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); (hide == true) ? mc._alpha = 0 : mc._alpha = 100; var bmp:BitmapData = new BitmapData(w, h, true, bgColor); bmp.draw(mc, new Matrix(), new ColorTransform(), "normal", bmp.rectangle, true); mc.attachBitmap(bmp, this.getNextHighestDepth()); return bmp; } function createTextBlock():MovieClip { var txtBlock:MovieClip = this.createEmptyMovieClip("txtBlock", this.getNextHighestDepth()); txtBlock.createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 80); txtBlock.txt.text = "watch the text bend with the displacement map"; return txtBlock; } DisplacementMapFilter (flash.filters.DisplacementMapFilter) 547 DropShadowFilter (flash.filters.DropShadowFilter) Object | +-flash.filters.BitmapFilter | +-flash.filters.DropShadowFilter public class DropShadowFilter extends BitmapFilter La classe DropShadowFilter vous permet d'ajouter une ombre portée à divers objets dans Flash. Vous disposez de plusieurs options pour définir le style de l'ombre portée, notamment l'ombre intérieure ou extérieure et le mode de masquage. L'utilisation de filtres dépend de l'objet auquel vous appliquez le filtre. ■ Pour appliquer des filtres aux clips, champs de texte et boutons lors de l'exécution, utilisez la propriété filters. Lorsque vous définissez la propriété filters d'un objet, celui-ci n'est pas modifié. En outre, vous pouvez l'annuler en supprimant la propriété filters. ■ Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode BitmapData.applyFilter(). L'appel d'applyFilter() sur un objet BitmapData utilise l'objet BitmapData source ainsi que l'objet filtre pour générer une image filtrée. Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d'informations, consultez la documentation relative à la programmation. Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d'origine de cacheAsBitmap est restaurée. Ce filtre prend en charge le redimensionnement de la scène. Mais le redimensionnement général, la rotation et l'inclinaison ne sont pas gérés. Si l'objet lui-même est redimensionné (si _xscale et _yscale ne sont pas à 100%), l'effet de filtre n'est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène. Un filtre ne peut s'appliquer si l'image résultante dépasse 2 880 pixels en largeur ou en hauteur. Par exemple, si vous faites un zoom avant sur un grand clip auquel un filtre est appliqué, le filtre est désactivé si l'image résultante dépasse la limite de 2 880 pixels. Disponibilité : ActionScript 1.0 ; Flash Player 8 548 Chapitre 2: Classes ActionScript Voir également filters (propriété MovieClip.filters), cacheAsBitmap (propriété MovieClip.cacheAsBitmap), filters (propriété Button.filters), cacheAsBitmap (propriété Button.cacheAsBitmap), filters (propriété TextField.filters), applyFilter (méthode BitmapData.applyFilter) Résumé des propriétés Modificateurs Propriété Description alpha:Number La valeur de transparence alpha de la couleur d'ombre. angle:Number L'angle de l'ombre. blurX:Number Le montant de flou horizontal. blurY:Number Le montant de flou vertical. color:Number La couleur de l'ombre. distance:Number La distance de décalage de l'ombre en pixels. hideObject:Boolean Indique si l'objet est masqué ou non. inner:Boolean Indique si l'ombre est intérieure ou non. knockout:Boolean Applique un effet de poinçonnage (true) qui rend le remplissage de l'objet effectivement transparent et révèle la couleur d'arrière-plan du document. quality:Number Le nombre de fois où le filtre doit s'appliquer. strength:Number L'intensité de l'impression ou du recouvrement. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) DropShadowFilter (flash.filters.DropShadowFilter) 549 Récapitulatif des constructeurs Signature Description DropShadowFilter([di Crée une nouvelle occurrence DropShadowFilter avec les paramètres spécifiés. stance:Number], [angle:Number], [color:Number], [alpha:Number], [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [inner:Boolean], [knockout:Boolean], [hideObject:Boolean] ) Résumé de la méthode Modificateurs Signature clone() : Description Renvoie une copie de cet objet filtre. DropShadowFilter Méthodes héritées de la classe BitmapFilter clone (méthode BitmapFilter.clone ) Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) alpha (propriété DropShadowFilter.alpha) public alpha : Number La valeur de transparence alpha de la couleur d'ombre. Les valeurs valides vont de 0 à 1. Par exemple, 0,25 définit la valeur de transparence à 25 %. La valeur par défaut est 1. Disponibilité : ActionScript 1.0 ; Flash Player 8 550 Chapitre 2: Classes ActionScript Exemple L'exemple suivant change la propriété alpha sur un clip quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowAlpha"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.alpha = .4; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } angle (propriété DropShadowFilter.angle) public angle : Number L'angle de l'ombre. Les valeurs valides sont comprises entre 0 et 360° (virgule flottante). La valeur par défaut est 45. La valeur de l'angle représente l'angle de la source de lumière théorique projetée sur l'objet et détermine le placement de l'effet relatif à l'objet. Si la distance est définie à 0, l'effet n'est pas décalé de l'objet, et donc la propriété angle n'a aucun effet. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété angle sur une occurrence de clip existant quand un utilisateur clique dessus. DropShadowFilter (flash.filters.DropShadowFilter) 551 import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowAngle"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.angle = 135; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } blurX (propriété DropShadowFilter.blurX) public blurX : Number Le montant de flou horizontal. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété blurX sur une occurrence de clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowBlurX"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.blurX = 40; this.filters = new Array(filter); 552 Chapitre 2: Classes ActionScript } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } blurY (propriété DropShadowFilter.blurY) public blurY : Number Le montant de flou vertical. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété blurY sur une occurrence de clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowBlurY"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.blurY = 40; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; DropShadowFilter (flash.filters.DropShadowFilter) 553 var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } clone (méthode DropShadowFilter.clone) public clone() : DropShadowFilter Renvoie une copie de cet objet filtre. Disponibilité : ActionScript 1.0 ; Flash Player 8 Valeur renvoyée - Nouvelle occurrence DropShadowFilter dont les propriétés sont toutes identiques à celles de l'occurrence d'origine. flash.filters.DropShadowFilter Exemple L'exemple suivant crée trois objets DropShadowFilter et les compare; filter_1 est créé par le constructeur DropShadowFilter ; filter_2 est créé en le définissant comme égal à filter_1 ; et clonedFilter est créé en clonant filter_1. Veuillez noter que filter_2 est considéré comme égal à filter_1, clonedFilter ne l'est pas, même s'il contient les mêmes valeurs que filter_1. import flash.filters.DropShadowFilter; var filter_1:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filter_2:DropShadowFilter = filter_1; var clonedFilter:DropShadowFilter = filter_1.clone(); trace(filter_1 == filter_2); // true trace(filter_1 == clonedFilter); // false for(var i in filter_1) { 554 Chapitre 2: Classes ActionScript trace(">> " + i + ": " + filter_1[i]); // >> clone: [type Function] // >> hideObject: false // >> strength: 1 // >> blurY: 16 // >> blurX: 16 // >> knockout: false // >> inner: false // >> quality: 3 // >> alpha: 0.8 // >> color: 0 // >> angle: 45 // >> distance: 15 } for(var i in clonedFilter) { trace(">> " + i + ": " + clonedFilter[i]); // >> clone: [type Function] // >> hideObject: false // >> strength: 1 // >> blurY: 16 // >> blurX: 16 // >> knockout: false // >> inner: false // >> quality: 3 // >> alpha: 0.8 // >> color: 0 // >> angle: 45 // >> distance: 15 } Pour démontrer davantage les relations entre filter_1, filter_2, et clonedFilter, l'exemple suivant modifie la propriété knockout de filter_1. La modification de knockout démontre que la méthode clone() crée une nouvelle occurrence basée sur les valeurs de filter_1 au lieu de faire référence à ces valeurs. import flash.filters.DropShadowFilter; var filter_1:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filter_2:DropShadowFilter = filter_1; var clonedFilter:DropShadowFilter = filter_1.clone(); trace(filter_1.knockout); // false trace(filter_2.knockout); // false trace(clonedFilter.knockout); // false filter_1.knockout = true; trace(filter_1.knockout); // true DropShadowFilter (flash.filters.DropShadowFilter) 555 trace(filter_2.knockout); // true trace(clonedFilter.knockout); // false color (propriété DropShadowFilter.color) public color : Number La couleur de l'ombre. Les valeurs valides sont au format hexadécimal 0xRRGGBB. La valeur par défaut est 0x000000. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété color sur une occurrence de clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowColor"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.color = 0xFF0000; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } 556 Chapitre 2: Classes ActionScript distance (propriété DropShadowFilter.distance) public distance : Number La distance de décalage de l'ombre en pixels. La valeur par défaut est 4 (virgule flottante). Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété distance sur une occurrence de clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowDistance"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.distance = 40; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } constructeur DropShadowFilter public DropShadowFilter([distance:Number], [angle:Number], [color:Number], [alpha:Number], [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [inner:Boolean], [knockout:Boolean], [hideObject:Boolean]) Crée une nouvelle occurrence DropShadowFilter avec les paramètres spécifiés. DropShadowFilter (flash.filters.DropShadowFilter) 557 Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres distance:Number [facultatif ] - Distance de décalage de l'ombre en pixels. La valeur par défaut est 4 (virgule flottante). angle:Number [facultatif ] - Angle de l'ombre, de 0 à 360° (virgule flottante). La valeur par défaut est 45. [facultatif ] - Couleur de l'ombre, au format hexadécimal 0xRRGGBB. La valeur par défaut est 0x000000. color:Number [facultatif ] - Valeur de transparence alpha de la couleur d'ombre. Les valeurs valides vont de 0 à 1. Par exemple, 0,25 définit la valeur de transparence à 25 %. La valeur par défaut est 1. alpha:Number blurX:Number [facultatif ] - Quantité de flou à appliquer horizontalement. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. [facultatif ] - Quantité de flou à appliquer verticalement. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs multiples de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour donner un rendu plus rapide que les autres valeurs. blurY:Number strength:Number [facultatif ] - Intensité de l'impression ou du recouvrement. Plus la valeur est élevée, plus l'intensité des couleurs apparaît à l'impression et plus le contraste est important entre l'ombre et l'arrière-plan. Les valeurs valides sont comprises entre 0 et 255. La valeur par défaut est 1. quality:Number [facultatif ] - Nombre de fois que le filtre doit s'appliquer. Les valeurs valides sont 0 à 15. La valeur par défaut est 1, ce qui équivaut à une qualité inférieure. Une valeur de 2 est une qualité moyenne et une valeur de 3 est la qualité supérieure. [facultatif ] - Indique si l'ombre est intérieure ou non. Une valeur true spécifie une ombre intérieure. La valeur par défaut est false, renvoyant une ombre extérieure au niveau des bords extérieurs de l'objet. inner:Boolean [facultatif ] - Applique un effet de poinçonnage (true) qui rend le remplissage de l'objet effectivement transparent et révèle la couleur d'arrière-plan du document. La valeur par défaut est false soit pas de poinçonnage. knockout:Boolean [facultatif ] - Indique si l'objet est masqué ou non. Une valeur true indique que l'objet n'est pas tracé et que seule l'ombre est visible. La valeur par défaut est false, soit montrer l'objet. hideObject:Boolean 558 Chapitre 2: Classes ActionScript Exemple L'exemple suivant instancie une nouvelle occurrence DropShadowFilter et l'applique à un rectangle plat. import flash.filters.DropShadowFilter; var art:MovieClip = createRectangle(100, 100, 0x003366, "gradientGlowFilterExample"); var distance:Number = 20; var angleInDegrees:Number = 45; var color:Number = 0x000000; var alpha:Number = .8; var blurX:Number = 16; var blurY:Number = 16; var strength:Number = 1; var quality:Number = 3; var inner:Boolean = false; var knockout:Boolean = false; var hideObject:Boolean = false; var filter:DropShadowFilter = new DropShadowFilter(distance, angleInDegrees, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; function createRectangle(w:Number, h:Number, bgColor:Number, name:String):MovieClip { var mc:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); mc.beginFill(bgColor); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc._x = 20; mc._y = 20; return mc; } DropShadowFilter (flash.filters.DropShadowFilter) 559 hideObject (propriété DropShadowFilter.hideObject) public hideObject : Boolean Indique si l'objet est masqué ou non. Une valeur true indique que l'objet n'est pas tracé et que seule l'ombre est visible. La valeur par défaut est false, soit montrer l'objet. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété hideObject sur un clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowHideObject"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.hideObject = true; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } inner (propriété DropShadowFilter.inner) public inner : Boolean Indique si l'ombre est intérieure ou non. La valeur true indique une ombre intérieure. La valeur par défaut est false, renvoyant une ombre extérieure au niveau des bords extérieurs de l'objet. 560 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété inner sur un clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowInner"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.inner = true; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } knockout (propriété DropShadowFilter.knockout) public knockout : Boolean Applique un effet de poinçonnage (true) qui rend le remplissage de l'objet effectivement transparent et révèle la couleur d'arrière-plan du document. La valeur par défaut est false soit pas de poinçonnage. Disponibilité : ActionScript 1.0 ; Flash Player 8 DropShadowFilter (flash.filters.DropShadowFilter) 561 Exemple L'exemple suivant change la propriété knockout sur un clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowKnockout"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.knockout = true; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } quality (propriété DropShadowFilter.quality) public quality : Number Le nombre de fois où le filtre doit s'appliquer. Les valeurs valides sont 0 à 15. La valeur par défaut est 1, ce qui équivaut à une qualité inférieure. Une valeur de 2 est une qualité moyenne et une valeur de 3 est la qualité supérieure. Les rendus des filtres de valeurs inférieures sont obtenus plus rapidement. Pour la plupart des applications, une valeur de quality de 1, 2, ou 3 est suffisante. Bien que vous puissiez utiliser les valeurs numériques supplémentaires jusqu'à 15 pour appliquer les différents effets, les valeurs les plus hautes donnent un rendu plus lent. Plutôt que d'augmenter la valeur de quality, vous pouvez souvent obtenir un effet similaire avec un rendu plus rapide en augmentant simplement les valeurs de blurX et blurY. 562 Chapitre 2: Classes ActionScript Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant change la propriété quality sur un clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowQuality"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.quality = 0; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } strength (propriété DropShadowFilter.strength) public strength : Number L'intensité de l'impression ou du recouvrement. Plus la valeur est élevée, plus l'intensité des couleurs apparaît à l'impression et plus le contraste est important entre l'ombre et l'arrièreplan. Les valeurs valides sont comprises entre 0 et 255. La valeur par défaut est 1. Disponibilité : ActionScript 1.0 ; Flash Player 8 DropShadowFilter (flash.filters.DropShadowFilter) 563 Exemple L'exemple suivant change la propriété strength sur un clip existant quand un utilisateur clique dessus. import flash.filters.DropShadowFilter; var mc:MovieClip = createDropShadowRectangle("DropShadowStrength"); mc.onRelease = function() { var filter:DropShadowFilter = this.filters[0]; filter.strength = .6; this.filters = new Array(filter); } function createDropShadowRectangle(name:String):MovieClip { var art:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth()); var w:Number = 100; var h:Number = 100; art.beginFill(0x003366); art.lineTo(w, 0); art.lineTo(w, h); art.lineTo(0, h); art.lineTo(0, 0); art._x = 20; art._y = 20; var filter:DropShadowFilter = new DropShadowFilter(15, 45, 0x000000, .8, 16, 16, 1, 3, false, false, false); var filterArray:Array = new Array(); filterArray.push(filter); art.filters = filterArray; return art; } Erreur Object | +-Error public class Error extends Object Contient des informations sur une erreur qui s'est produite dans un script. Vous pouvez créer un objet Error à l'aide de la fonction constructeur Error. En général, vous générez (throw) un nouvel objet Error à partir d'un bloc de code try, qui est ensuite détecté par un bloc de code catch ou finally. 564 Chapitre 2: Classes ActionScript Vous pouvez également créer une sous-classe de la classe Error et générer des occurrences de cette sous-classe. Disponibilité : ActionScript 1.0 ; Flash Player 7 Résumé des propriétés Modificateurs Propriété Description message:String Contient le message associé à l'objet Error. name:String Contient le nom de l'objet Error. Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Récapitulatif des constructeurs Signature Description Error([message:Strin Crée un nouvel objet Error. g]) Résumé de la méthode Modificateurs Signature toString() : String Description Renvoie la chaîne "Error" par défaut ou la valeur contenue dans Error.message, s'il est défini. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) constructeur Error public Error([message:String]) Crée un nouvel objet Error. Si message est spécifié, sa valeur est affectée à la propriété Error.message de l'objet. Erreur 565 Disponibilité : ActionScript 1.0 ; Flash Player 7 Paramètres message:String [facultatif ] - Chaîne associée à l'objet Error. Exemple Dans l'exemple suivant, une fonction renvoie une erreur (avec un message spécifié) si les deux chaînes qui lui sont transmises ne sont pas identiques : function compareStrings(str1_str:String, str2_str:String):Void { if (str1_str != str2_str) { throw new Error("Strings do not match."); } } try { compareStrings("Dog", "dog"); // output: Strings do not match. } catch (e_err:Error) { trace(e_err.toString()); } Voir également Instruction throw, Instruction try..catch..finally message (propriété Error.message) public Message : String Contient le message associé à l'objet Error. Par défaut, la valeur de cette propriété est "Error". Vous pouvez spécifier une propriété message lorsque vous créez un objet Error en transmettant la chaîne d'erreur à la fonction constructeur Error. Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple Dans l'exemple suivant, une fonction renvoie un message spécifié en fonction des paramètres entrés dans theNum. Si les deux nombres peuvent être divisés, la valeur SUCCESS et le nombre s'affichent. Des erreurs spécifiques s'affichent si vous essayez de diviser par 0 ou si vous entrez un seul paramètre : function divideNum(num1:Number, num2:Number):Number { if (isNaN(num1) || isNaN(num2)) { throw new Error("divideNum function requires two numeric parameters."); } else if (num2 == 0) { throw new Error("cannot divide by zero."); 566 Chapitre 2: Classes ActionScript } return num1/num2; } try { var theNum:Number = divideNum(1, 0); trace("SUCCESS! "+theNum); } catch (e_err:Error) { trace("ERROR! "+e_err.message); trace("\t"+e_err.name); } Si vous testez ce code ActionScript sans modifier les nombres que vous divisez, une erreur s'affiche dans le panneau de sortie car vous essayez de diviser par 0. Voir également Instruction throw, Instruction try..catch..finally name (propriété Error.name) public name : String Contient le nom de l'objet Error. Par défaut, la valeur de cette propriété est "Error". Disponibilité : ActionScript 1.0 ; Flash Player 7 Exemple Dans l'exemple suivant, une fonction renvoie une erreur spécifiée en fonction des deux nombres que vous essayez de diviser. Ajoutez le code ActionScript suivant à l'image 1 du scénario : function divideNumber(numerator:Number, denominator:Number):Number { if (isNaN(numerator) || isNaN(denominator)) { throw new Error("divideNum function requires two numeric parameters."); } else if (denominator == 0) { throw new DivideByZeroError(); } return numerator/denominator; } try { var theNum:Number = divideNumber(1, 0); trace("SUCCESS! "+theNum); // output: DivideByZeroError -> Unable to divide by zero. } catch (e_err:DivideByZeroError) { // divide by zero error occurred trace(e_err.name+" -> "+e_err.toString()); } catch (e_err:Error) { // generic error occurred trace(e_err.name+" -> "+e_err.toString()); Erreur 567 } Pour ajouter une erreur personnalisée, insérez le code suivant dans un fichier .AS intitulé DivideByZeroError.as et enregistrez le fichier de classe dans le même répertoire que votre document FLA. class DivideByZeroError extends Error { var name:String = "DivideByZeroError"; var message:String = "Unable to divide by zero."; } Voir également Instruction throw, Instruction try..catch..finally toString (méthode Error.toString) public toString() : String Renvoie la chaîne "Error" par défaut ou la valeur contenue dans Error.message, s'il est défini. Disponibilité : ActionScript 1.0 ; Flash Player 7 Valeur renvoyée String - Chaîne Exemple Dans l'exemple suivant, une fonction renvoie une erreur (avec un message spécifié) si les deux chaînes qui lui sont transmises ne sont pas identiques : function compareStrings(str1_str:String, str2_str:String):Void { if (str1_str != str2_str) { throw new Error("Strings do not match."); } } try { compareStrings("Dog", "dog"); // output: Strings do not match. } catch (e_err:Error) { trace(e_err.toString()); } Voir également message (propriété Error.message), Instruction throw, Instruction try..catch..finally 568 Chapitre 2: Classes ActionScript ExternalInterface (flash.external.ExternalInterface) Object | +-flash.external.ExternalInterface public class ExternalInterface extends Object La classe ExternalInterface est l'API External, une interface de programmation d'application qui autorise les communications simples entre ActionScript et le conteneur de Flash Player ; par exemple, une page HTML utilisant JavaScript ou une application de bureau intégrant Flash Player. ExternalInterface a les mêmes fonctionnalités que les méthodes fscommand(), CallFrame() et CallLabel(), mais possède plus de flexibilité et peut s'appliquer plus généralement. L'utilisation de ExternalInterface est recommandée pour les communications entre JavaScript et ActionScript. A partir d'ActionScript, vous pouvez appeler toutes les fonctions JavaScript sur une page HTML, passer tous les arguments de tout type de données et recevoir une valeur de retour pour un appel. Depuis JavaScript sur la page HTML, vous pouvez appeler une fonction ActionScript dans Flash Player. La fonction ActionScript peut renvoyer une valeur que JavaScript reçoit immédiatement comme valeur de retour de l'appel. ExternalInterface est pris en charge par les combinaisons suivantes de navigateurs et de systèmes d'exploitation : Navigateur Système d'exploitation Internet Explorer 5.0 et Windows versions ultérieures Netscape 8.0 et versions ultérieures Windows Macintosh Mozilla 1.7.5 et versions ultérieures Windows Macintosh Firefox 1.0 et versions ultérieures Windows Macintosh Safari 1.3 et versions ultérieures Macintosh ExternalInterface (flash.external.ExternalInterface) 569 ExternalInterface requiert que le navigateur Web de l'utilisateur prenne en charge soit ActiveX soit l'API NPRuntime qui est proposée par certains navigateurs pour les scripts de plug-ins. Voir http://www.mozilla.org/projects/plugins/npruntime.html. Disponibilité : ActionScript 1.0 ; Flash Player 8 Résumé des propriétés Modificateurs Propriété Description static Indique si ce lecteur se trouve dans un conteneur doté d'une interface externe. available:Boolean [lecture seule] Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé de la méthode Modificateurs Signature static Description addCallback(methodNa Enregistre une méthode ActionScript comme pouvant me:String, être appelée à partir du conteneur. instance:Object, method:Function) : Boolean static call(methodName:Stri Appelle une fonction présentée par le conteneur Flash ng, Player, en transmettant la valeur zéro ou d'autres [parameter1:Object]) arguments. : Object Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) 570 Chapitre 2: Classes ActionScript addCallback (méthode ExternalInterface.addCallback) public static addCallback(methodName:String, instance:Object, method:Function) : Boolean Enregistre une méthode ActionScript comme pouvant être appelée à partir du conteneur. Lorsque l'invocation de addCallBack() a réussi, la fonction enregistrée dans Flash Player peut être appelée par le code JavaScript ou ActiveX dans le conteneur. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres - Nom utilisé pour appeler la fonction ActionScript à partir de JavaScript. Il n'est pas nécessaire que ce nom corresponde au nom actuel de la méthode ActionScript. methodName:String - Objet que this convertit dans la méthode. Ce n'est pas nécessairement l'objet sur lequel la méthode se trouve : vous pouvez spécifier n'importe quel objet (ou null). instance:Object method:Function - Méthode ActionScript à appeler à partir de JavaScript. Valeur renvoyée Boolean - Renvoie true si l'appel a réussi. falseest renvoyé s'il a échoué parce que l'occurrence n'était pas disponible, en raison d'une restriction de sécurité, parce qu'aucun objet fonction de ce type n'existait, en raison d'une erreur de récursivité, ou s'y apparentant. Une valeur false renvoyée peut également signifier que l'environnement conteneur appartient à un Sandbox de sécurité auquel le code effectuant l'appel n'a pas accès. Vous pouvez contourner ce problème en définissant une valeur appropriée pour la balise allowScriptAccess OBJECT ou EMBED du HTML de l'environnement conteneur. Exemple L'exemple suivant enregistre la fonction goToMacromedia() comme pouvant être appelée à partir du conteneur du nom de goHome. import flash.external.*; var methodName:String = "goHome"; var instance:Object = null; var method:Function = goToMacromedia; var wasSuccessful:Boolean = ExternalInterface.addCallback(methodName, instance, method); var txtField:TextField = this.createTextField("txtField", this.getNextHighestDepth(), 0, 0, 200, 50); ExternalInterface (flash.external.ExternalInterface) 571 txtField.border = true; txtField.text = wasSuccessful.toString(); function goToMacromedia() { txtField.text = "http://www.macromedia.com"; getURL("http://www.macromedia.com", "_self"); } Pour que l'exemple ci-dessus fonctionne correctement, vous devez copier et coller le code suivant dans la page HTML conteneur. Ce code est basé sur le fait que l'attribut id de la balise OBJECT et l'attribut name de la balise EMBED doivent avoir la valeur externalInterfaceExample. La fonction thisMovie renvoie la syntaxe appropriée selon le navigateur, vu que Internet Explorer et Netscape font référence à l'objet movie différemment. A moins que la page HTML ne soit hébergée sur un serveur, votre navigateur peut vous alerter par un message de sécurité. Remarque : Evitez d'utiliser d'autres méthodes d'accès à l'objet plug-in, telles que document.getElementById("pluginName") ou document.all.pluginName, parce que ces autres méthodes ne fonctionnent pas régulièrement sur tous les navigateurs. <form> <input type="button" onclick="callExternalInterface()" value="Call ExternalInterface" /> </form> <script> function callExternalInterface() { thisMovie("externalInterfaceExample").goHome(); } function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName] } else { return document[movieName] } } </script> available (propriété ExternalInterface.available) public static available : Boolean [lecture seule] Indique si ce lecteur se trouve dans un conteneur doté d'une interface externe. Si l'interface externe est disponible, cette propriété est true ; sinon, elle est false. Disponibilité : ActionScript 1.0 ; Flash Player 8 572 Chapitre 2: Classes ActionScript Exemple L'exemple suivant utilise ExternalInterface.available pour déterminer si le lecteur est dans un conteneur doté d'une interface externe. import flash.external.*; var isAvailable:Boolean = ExternalInterface.available; trace(isAvailable); call (méthode ExternalInterface.call) public static call(methodName:String, [parameter1:Object]) : Object Appelle une fonction présentée par le conteneur Flash Player, en transmettant la valeur zéro ou d'autres arguments. Si la fonction voulue n'est pas disponible, l'appel renvoie null ; sinon, elle renvoie la valeur fournie par la fonction. La récursivité n'est pas autorisée; un appel récursif entraîne une réponse null. Si le conteneur correspond à une page HTML, cette méthode appelle une fonction JavaScript dans un élément <script>. Si le conteneur est un autre conteneur de type ActiveX, cette méthode émet un événement ayant le nom spécifié ; le conteneur traite alors l'événement. Si le conteneur renferme le plug-in Netscape, vous pouvez soit écrire la prise en charge personnalisé de la nouvelle interface NPRuntime, soit intégrer un contrôle HTML et intégrer Flash Player dans le contrôle HTML. Si vous intégrez un contrôle HTML, vous pouvez communiquer avec Flash Player via une interface JavaScript qui dialogue avec l'application conteneur native. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres methodName:String - Nom de la fonction à appeler dans le conteneur. Si la fonction accepte les paramètres, ils doivent apparaître après le paramètre methodName. [facultatif ] - Tout paramètre à passer à la fonction. Vous pouvez ne spécifier aucun paramètre ou en spécifier plusieurs en les séparant par des virgules. Ces paramètres peuvent être de tout type de donnée ActionScript. Si vous faites appel à une fonction JavaScript, les types ActionScript sont automatiquement rentrés en ordre dans les types JavaScript. Si vous faites appel à un autre conteneur ActiveX, les paramètres sont encodés dans le message de requête. parameter1:Object ExternalInterface (flash.external.ExternalInterface) 573 Valeur renvoyée Object - Réponse émanant du conteneur. Si l'appel a échoué parce que cette fonction ne se trouvait pas dans le conteneur, l'interface n'était pas disponible, une erreur de récursivité s'est produite ou en raison d'un problème de sécurité, la valeur null est renvoyée. Exemple L'exemple suivant appelle la fonction JavaScript sayHello() dans la page HTML contenant le fichier SWF. L'appel est effectué en utilisant la méthode ExternalInterface.call(). import flash.external.*; var greeting:String; var btn:MovieClip = createButton(100, 30, 0xCCCCCC); btn.onPress = function() { greeting = String(ExternalInterface.call("sayHello", "browser")); this.mcTxt.text = greeting; // >> Hi Flash. } function createButton(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); var mcFmt:TextFormat; mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); mcFmt = new TextFormat(); mcFmt.align = "center"; mcFmt.bold = true; mc.createTextField("mcTxt", depth, 0, 0, width, height); mc.mcTxt.text = "Call JS Function"; mc.mcTxt.setTextFormat(mcFmt); return mc; } Pour que l'exemple ci-dessus fonctionne correctement, vous devez copier et coller le code suivant dans la page HTML conteneur. A moins que la page HTML ne soit hébergée sur un serveur, votre navigateur peut vous alerter par un message de sécurité. <script> function sayHello(name) { alert(">> Hello " + name + "."); return ">> Hi Flash."; 574 Chapitre 2: Classes ActionScript } </script> FileReference (flash.net.FileReference) Object | +-flash.net.FileReference public class FileReference extends Object La classe FileReference permet de charger et télécharger des fichiers entre l'ordinateur d'un utilisateur et le serveur. Une boîte de dialogue d'un système d'exploitation invite l'utilisateur à sélectionner un fichier pour le charger ou à choisir un emplacement pour le télécharger. Chaque objet FileReference fait référence à un fichier unique sur le disque dur de l'utilisateur et inclut des propriétés contenant des informations sur la taille, le type, le nom, la date de création, la date de modification et le type de créateur du fichier (Macintosh uniquement). Les occurrences FileReference sont créées de deux façons : ■ En utilisant l'opérateur new avec le constructeur FileReference : var myFileReference = new FileReference(); ■ En appelant FileReferenceList.browse(), ce qui crée un tableau d'objets FileReference Pendant une opération de chargement, toutes les propriétés d'un objet FileReference sont complétées d'appels à FileReference.browse() ou FileReferenceList.browse(). Pendant une opération de téléchargement, la propriété name est complétée quand onSelect a été invoqué ; toutes les autres propriétés sont complétées quand onComplete a été invoqué. La méthode browse() ouvre une boîte de dialogue d'un système d'exploitation qui invite l'utilisateur à sélectionner un fichier local pour le télécharger. La méthode FileReference.browse() permet à l'utilisateur de choisir un seul fichier ; la méthode FileReferenceList.browse() lui permet d'en sélectionner plusieurs. Lorsque l'appel de la méthode browse() a réussi, appelez la méthode FileReference.upload() pour charger un fichier à la fois. La méthode FileReference.download() invite l'utilisateur à sélectionner un emplacement pour enregistrer le fichier et initie le téléchargement à partir d'une URL distante. FileReference (flash.net.FileReference) 575 les classes FileReference et FileReferenceList ne vous permettent pas de définir un emplacement de fichier par défaut pour la boîte de dialogue générée par les appelsbrowse() et download(). L'emplacement par défaut sélectionné dans les boîtes de dialogue est le dernier dossier parcouru, dans la mesure où il est possible de déterminer cet emplacement, ou le bureau. Les classes ne vous permettent la lecture ou l'écriture sur les fichiers transférés. Elles ne permettent pas au fichier SWF qui a initié le téléchargement d'accéder au fichier téléchargé ou à l'emplacement du fichier sur le disque de l'utilisateur. Les classes FileReference et FileReferenceList ne fournissent pas de méthode d'authentification. Pour les serveurs ayant besoin d'une authentification, vous pouvez télécharger des fichiers avec le plug-in navigateur Flash Player , mais le chargement (sur tous les lecteurs) et le téléchargement (sur les lecteurs autonomes ou externes) échouent. Utilisez les écouteurs d'événements FileReference afin de déterminer si les opérations ont réussi, ou non, et pour traiter les erreurs. Pour les opérations de téléchargement (montantes ou descendantes), un fichier SWF peut accéder aux fichiers uniquement à l'intérieur de son propre domaine, ce qui comprend tous les domaines spécifiés par un fichier de régulation inter-domaines. Si le SWF qui initialise le téléchargement n'appartient pas au même domaine que le serveur de fichiers, vous devez placer un fichier de régulation sur le serveur de fichiers. Pendant que les appels aux méthodes FileReference.browse(), FileReferenceList.browse(), ou FileReference.download() s'exécutent, la lecture du fichier SWF s'arrête sur les plate-formes suivantes : le plug-in Flash Player pour Mac OS X, le Flash Player externe pour Macintosh et le lecteur autonome pour Mac OS X 10.1 et versions ultérieures. Le fichier SWF continue à s'exécuter sur tous les lecteurs pour Windows et sur le lecteur autonome pour Macintosh sur Mac OS X 10.2 et versions ultérieures Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée un objet FileReference qui invite l'utilisateur à sélectionner une image ou un fichier texte à télécharger. Il écoute également les événements possibles. import flash.net.FileReference; var allTypes:Array = new Array(); var imageTypes:Object = new Object(); imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)"; imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png"; allTypes.push(imageTypes); var textTypes:Object = new Object(); textTypes.description = "Text Files (*.txt, *.rtf)"; textTypes.extension = "*.txt;*.rtf"; 576 Chapitre 2: Classes ActionScript allTypes.push(textTypes); var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("onSelect: " + file.name); if(!file.upload("http://www.yourdomain.com/ yourUploadHandlerScript.cfm")) { trace("Upload dialog failed to open."); } } listener.onCancel = function(file:FileReference):Void { trace("onCancel"); } listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name); } listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal); } listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name); } listener.onHTTPError = function(file:FileReference):Void { trace("onHTTPError: " + file.name); } listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name); } listener.onSecurityError = function(file:FileReference, errorString:String):Void { trace("onSecurityError: " + file.name + " errorString: " + errorString); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(allTypes); Voir également FileReferenceList (flash.net.FileReferenceList) FileReference (flash.net.FileReference) 577 Résumé des propriétés Modificateurs Propriété creationDate:Date Description Date de création du fichier sur le disque local. [lecture seule] creator:String Type de créateur Macintosh du fichier. [lecture seule] modificationDate:Dat Date de la dernière modification du fichier sur le disque e [lecture seule] local. name:String [lecture Nom du fichier sur le disque local. seule] size:Number [lecture Taille du fichier sur le disque local en octets. seule] type:String [lecture Type de fichier. seule] Propriétés héritées de la classe Object constructeur (propriété Object.constructor), __proto__ (Object.__proto__ property), prototype (Object.prototype, propriété), __resolve (Object.__resolve, propriété) Résumé des événements Evénement Description onCancel = Appelé lorsque l'utilisateur ferme la boîte de dialogue de recherche de function(fileRef fichier. :FileReference) {} onComplete = Appelé en cas de réussite de l'opération d'envoi ou de téléchargement. function(fileRef :FileReference) {} onHTTPError = Appelé lorsqu'un envoi échoue en raison d'une erreur HTTP. function(fileRef :FileReference, httpError:Number ) {} 578 Chapitre 2: Classes ActionScript Evénement Description onIOError = Appelé lorsqu'une erreur d'entrée/sortie se produit. function(fileRef :FileReference) {} onOpen = Appelé au début d'une opération d'envoi ou de téléchargement. function(fileRef :FileReference) {} onProgress = Appelé régulièrement pendant l'opération d'envoi ou de téléchargement. function(fileRef :FileReference, bytesLoaded:Numb er, bytesTotal:Numbe r) {} onSecurityError = Appelé lorsqu'un envoi ou un téléchargement échoue en raison d'une erreur de sécurité. function(fileRef :FileReference, errorString:Stri ng) {} onSelect = Appelé lorsque l'utilisateur sélectionne un fichier à envoyer ou télécharger function(fileRef dans la boîte de dialogue de recherche de fichiers. :FileReference) {} Récapitulatif des constructeurs Signature Description FileReference() Crée un nouvel objet FileReference. FileReference (flash.net.FileReference) 579 Résumé de la méthode Modificateurs Signature Description addListener(listener Enregistre un objet pour recevoir une notification :Object) : Void lorsqu'un écouteur d'événements FileReference est invoqué. browse([typelist:Arr Affiche une boîte de dialogue de recherche de fichier ay]) : Boolean dans laquelle l'utilisateur peut sélectionner un fichier local à envoyer. cancel() : Void Annule une opération de chargement ou de téléchargement en cours sur cet objet FileReference. download(url:String, Affiche une boîte de dialogue permettant à l'utilisateur [defaultFileName:Str de télécharger un fichier à partir d'un serveur distant. ing]) : Boolean removeListener(liste Supprime un objet de la liste d'objets recevant des ner:Object) : messages de notification d'événement. Boolean upload(url:String) : Procède au chargement d'un fichier sélectionné par un Boolean utilisateur sur un serveur distant. Méthodes héritées de la classe Object addProperty (méthode Object.addProperty), hasOwnProperty (méthode Object.hasOwnProperty), isPropertyEnumerable (méthode Object.isPropertyEnumerable), isPrototypeOf (méthode Object.isPrototypeOf), registerClass (méthode Object.registerClass), toString (méthode Object.toString), unwatch (méthode Object.unwatch), valueOf (méthode Object.valueOf), watch (méthode Object.watch) addListener (méthode FileReference.addListener) public addListener(listener:Object) : Void Enregistre un objet pour recevoir une notification lorsqu'un écouteur d'événements FileReference est invoqué. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres listener:Object - Objet qui écoute une notification de rappel venant des écouteurs d'événements FileReference. 580 Chapitre 2: Classes ActionScript Exemple L'exemple suivant ajoute un écouteur à une occurrence de FileReference. import flash.net.FileReference; var listener:Object = new Object(); listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal); } listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; fileRef.download(url, "FlashPlatform.pdf"); browse (méthode FileReference.browse) public browse([typelist:Array]) : Boolean Affiche une boîte de dialogue de recherche de fichier dans laquelle l'utilisateur peut sélectionner un fichier local à envoyer. La boîte de dialogue est spécifique au système d'exploitation de l'utilisateur. Lorsque vous appelez cette méthode et que l'utilisateur réussit à sélectionner un fichier, les propriétés de cet objet FileReference sont renseignées par les propriétés de ce fichier. Toutes les fois suivantes où FileReference.browse() est appelé, les propriétés de l'objet FileReference sont restaurées pour le fichier choisi par l'utilisateur dans la boîte de dialogue. Une seule session browse() ou download() peut être effectuée à la fois (car une seule boîte de dialogue peut être appelée à la fois). Vous pouvez remplir un tableau des types de fichiers pour déterminer lesquels seront affichés par la boîte de dialogue. Disponibilité : ActionScript 1.0 ; Flash Player 8 FileReference (flash.net.FileReference) 581 Paramètres typelist:Array [facultatif ] - Tableau de types de fichiers utilisés pour filtrer les fichiers qui s'affichent dans la boîte de dialogue. Si vous omettez ce paramètre, tous les fichiers s'affichent. Si vous incluez ce paramètre, le tableau doit contenir un ou plusieurs éléments placés entre accolades { }. Vous pouvez appliquer l'un des deux formats au tableau : ■ Une liste de types de fichiers suivis de leur extension Windows uniquement. Chaque élément du tableau doit contenir une chaîne décrivant le type de fichier et une liste, séparée par des points-virgules, des extensions de fichiers Windows, chaque extension étant précédée d'un caractère joker (*). La syntaxe de chaque élément se présente comme suit : [{description: "string describing the first set of file types", extension: "semicolon-delimited list of file extensions"}] Exemple : [{description: "Images", extension: "*.jpg;*.gif;*.png"}, {description: "Flash Movies", extension: "*.swf"}, {description: "Documents", extension: "*.doc;*.pdf"}] ■ Une liste de types de fichiers suivis de leur extension Windows et de leur type de fichier Macintosh. Chaque élément du tableau doit contenir une chaîne décrivant le type de fichier ; une liste, séparée par des points-virgules, des extensions de fichiers Windows, chaque extension étant précédée d'un caractère joker (*) et une liste, séparée par des points-virgules, des types de fichiers Macintosh, chaque type étant précédé d'un caractère joker (*). La syntaxe de chaque élément se présente comme suit : [{description: "string describing the first set of file types", extension: "semicolon-delimited list of Windows file extensions", macType: "semicolon-delimited list of Macintosh file types"}] Exemple : [{description: "Image files", extension: "*.jpg;*.gif;*.png", macType: "JPEG;jp2_;GIFF"}, {description: "Flash Movies", extension: "*.swf", macType: "SWFL"}] Les deux formats ne sont pas interchangeables dans un appel browse() unique. Vous devez utiliser l'un ou l'autre. La liste des extensions est utilisée pour filtrer les fichiers sous Windows, selon le type de fichier sélectionné. Elle n'est pas réellement affichée dans la boîte de dialogue. Pour afficher les types de fichiers aux utilisateurs, vous devez lister les types de fichiers dans la chaîne descriptive ainsi que dans la liste d'extensions. Sous Windows, la chaîne descriptive est affichée dans la boîte de dialogue. (Elle n'est pas utilisée sous Macintosh.) Sous Macintosh, une liste de types de fichier Macintosh est utilisée pour filtrer les fichiers, si elle est fournie. Si vous ne fournissez pas de liste de types de fichiers Macintosh, c'est la liste d'extensions Windows qui est utilisée. 582 Chapitre 2: Classes ActionScript Valeur renvoyée Boolean - Renvoie true si les paramètres sont valides et que la boîte de dialogue est affichée. Renvoie false si la boîte de dialogue ne s'affiche pas, si une autre session browse est déjà en cours ou si vous utilisez le paramètre typelist sans fournir une description ou une chaîne d'extension concernant un élément du tableau. Evénements onCancel Invoqué quand l'utilisateur ferme la boîte de dialogue en cliquant sur Annuler ou en la fermant. onSelect Invoqué quand l'utilisateur réussit à choisir un élément à télécharger dans la boîte de dialogue. Exemple L'exemple suivant affiche une boîte de dialogue dans laquelle l'utilisateur peut choisir un fichier image à télécharger. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("Opened " + file.name); } listener.onCancel = function(file:FileReference):Void { trace("User cancelled"); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); Voir également onSelect (écouteur d'événement FileReferenceList.onSelect), onCancel (écouteur d'événement FileReference.onCancel), download (méthode FileReference.download), browse (méthode FileReferenceList.browse) FileReference (flash.net.FileReference) 583 cancel (méthode FileReference.cancel) public cancel() : Void Annule une opération de chargement ou de téléchargement en cours sur cet objet FileReference. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant télécharge environ la moitié du fichier demandé et annule ensuite le téléchargement. Ce n'est évidemment pas une utilisation classique. Vous pourriez plus souvent utiliser cette méthode pour permettre aux utilisateurs de cliquer sur Annuler dans une boîte de dialogue de statut de téléchargement. import flash.net.FileReference; var listener:Object = new Object(); listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal); if(bytesLoaded >= (bytesTotal / 2)) { file.cancel(); } } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; fileRef.download(url, "FlashPlatform.pdf"); creationDate (propriété FileReference.creationDate) public creationDate : Date [lecture seule] Date de création du fichier sur le disque local. Si l'objet FileReference n'a pas été renseigné, l'appel effectué pour obtenir la valeur de cette propriété renvoie null. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant récupère la date de création d'un fichier choisi par l'utilisateur. import flash.net.FileReference; var listener:Object = new Object(); 584 Chapitre 2: Classes ActionScript listener.onSelect = function(file:FileReference):Void { trace("creationDate: " + file.creationDate); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); Voir également browse (méthode FileReference.browse) creator (propriété FileReference.creator) public creator : String [lecture seule] Type de créateur Macintosh du fichier. Sous Windows, cette propriété est null. Si l'objet FileReference n'a pas été renseigné, l'appel effectué pour obtenir la valeur de cette propriété renvoie null. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant récupère le type de créateur Macintosh d'un fichier choisi par l'utilisateur. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("creator: " + file.creator); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); Voir également browse (méthode FileReference.browse) download (méthode FileReference.download) public download(url:String, [defaultFileName:String]) : Boolean Affiche une boîte de dialogue permettant à l'utilisateur de télécharger un fichier à partir d'un serveur distant. Flash Player peut télécharger des fichiers jusqu'à 100 Mo. FileReference (flash.net.FileReference) 585 Cette méthode ouvre d'abord une boîte de dialogue d'un système d'exploitation demandant à l'utilisateur d'entrer un nom de fichier et de sélectionner un emplacement sur l'ordinateur local pour enregistrer le fichier. Quand l'utilisateur choisit un emplacement et confirme le téléchargement (par ex. en cliquant sur Enregistrer), celui-ci commence sur le serveur distant. Les écouteurs reçoivent des événements permettant d'indiquer la progression du téléchargement, s'il a réussi ou échoué. Pour déterminer le statut de la boîte de dialogue et l'opération de téléchargement après avoir appelé la méthode download(), votre code ActionScript doit écouter les événements tels que onCancel, onOpen, onProgress, et onComplete. Une fois le fichier téléchargé, les propriétés de l'objet FileReference sont renseignées par les propriétés du fichier local et l'écouteur onComplete est invoqué. Une seule session browse() ou download() peut être effectuée à la fois (car une seule boîte de dialogue peut être appelée à la fois). Cette méthode prend en charge le téléchargement de tout type de fichier, via HTTP ou HTTPS. Vous pouvez également envoyer des données au serveur avec l'appel de download() en ajoutant des paramètres à l'URL pour que le script serveur les analyse. Remarque : Si votre serveur requiert une authentification d'utilisateur, seuls les fichiers SWF s'exécutant dans un navigateur, (c'est-à-dire utilisant le plug-in du navigateur ou le contrôle ActiveX), peuvent fournir une boîte de dialogue pour demander à l'utilisateur un nom et un mot de passe d'authentification, ceci uniquement pour les téléchargements. Concernant les chargements effectués via le plug-in ou le contrôle ActiveX et le chargement/téléchargement via les lecteurs autonomes ou externes, le transfert de fichiers échoue. Pour utiliser cette méthode, tenez compte du modèle de sécurité de Flash Player : ■ Interdit si le fichier SWF appelant est dans une Sandbox locale non sûre. ■ Par défaut, l'accès est refusé entre Sandboxes. Un site web peut autoriser l'accès à une ressource en ajoutant un fichier de régulation inter-domaines. Pour plus d'informations, consultez les sections suivantes : ■ Chapitre 17, « Compréhension de la sécurité » dans Apprentissage d' ActionScript 2.0 dans Flash ■ Le livre blanc sur la sécurité dans Flash Player 8 ■ Le livre blanc sur la sécurité dans Flash Player 8 en liaison avec les API Disponibilité : ActionScript 1.0 ; Flash Player 8 586 Chapitre 2: Classes ActionScript Paramètres url:String - URL du fichier à télécharger sur l'ordinateur local. Vous pouvez également envoyer des données au serveur avec l'appel de download() en ajoutant des paramètres à l'URL pour que le script serveur les analyse. Voici un exemple d'utilisation : http:// www.myserver.com/picture.jpg?userID=jdoe Sur certains navigateurs, les chaînes d'URL ont une longueur limitée. Une longueur supérieure à 256 caractères peut échouer sur certains navigateurs ou serveurs. defaultFileName:String [facultatif ] - Nom de fichier par défaut affiché dans la boîte de dialogue du fichier à télécharger. Les caractères suivants sont interdits dans cette chaîne : / \ : * ?"<>|% Si vous omettez ce paramètre, le nom de fichier de l'URL distante est analysé et utilisé par défaut. Valeur renvoyée Boolean - Valeur true si la boîte de dialogue permettant à l'utilisateur de choisir un fichier est affichée. Si la boîte de dialogue ne s'affiche pas, la méthode renvoie false. La boîte de dialogue peut ne pas s'afficher pour l'une des raisons suivantes : ■ Vous n'avez pas passé de valeur pour le paramètre url. ■ Le type ou le format des paramètres transmis n'est pas correct. ■ Le paramètre url a une longueur zéro. ■ Une violation de sécurité s'est produite; c'est-à-dire que votre fichier SWF a essayé d'accéder à un fichier sur un serveur hors de la Sandbox de sécurité de votre fichier SWF. ■ Une autre session browse est déjà en cours. Une session browse peut commencer par FileReference.browse(), FileReferenceList.browse(), ou FileReference.download(). ■ Le protocole utilisé n'est pas le protocole HTTP ou HTTPS. Evénements onCancel Invoqué lorsque l'utilisateur ferme la boîte de dialogue. onComplete Appelé en cas de réussite de l'opération de téléchargement. onIOError FileReference (flash.net.FileReference) 587 Invoqué pour l'une des raisons suivantes : ■ Une erreur d'entrée/sortie se produit lors de la lecture ou de la transmission du fichier. ■ Le fichier SWF tente de télécharger un fichier à partir d'un serveur nécessitant une authentification, dans le lecteur autonome ou externe. Au cours du téléchargement, les lecteurs autonomes et externes ne permettent pas aux utilisateurs d'entrer des mots de passe. Si un fichier SWF présent dans ces lecteurs tente de télécharger un fichier à partir d'un serveur nécessitant une authentification, le téléchargement échoue. Le téléchargement de fichiers peut réussir uniquement via les lecteurs avec contrôle ActiveX et plug-in navigateur. onOpen Invoqué lors du démarrage d'un téléchargement. onProgress Appelé régulièrement pendant le téléchargement du fichier. onSecurityError Appelé lorsqu'un téléchargement échoue en raison d'une erreur de sécurité. onSelect Invoqué quand l'utilisateur choisit un fichier à partir de la boîte de dialogue de téléchargement. Exemple L'exemple suivant tente de télécharger un fichier par la méthode download. Veuillez noter qu'il y a des écouteurs pour tous les événements. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("onSelect: " + file.name); } listener.onCancel = function(file:FileReference):Void { trace("onCancel"); } listener.onOpen = function(file:FileReference):Void { 588 Chapitre 2: Classes ActionScript trace("onOpen: " + file.name); } listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal); } listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name); } listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; if(!fileRef.download(url, "FlashPlatform.pdf")) { trace("dialog box failed to open."); } Voir également browse (méthode FileReference.browse), browse (méthode FileReferenceList.browse), upload (méthode FileReference.upload) constructeur FileReference public FileReference() Crée un nouvel objet FileReference. Quand il est complété, un objet FileReference représente un fichier sur le disque local de l'utilisateur. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant crée un nouvel objet FileReference et initie le téléchargement d'un fichier PDF. import flash.net.FileReference; var listener:Object = new Object(); listener.onComplete = function(file:FileReference) { trace("onComplete : " + file.name); FileReference (flash.net.FileReference) 589 } var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.download(url, "FlashPlatform.pdf"); Voir également browse (méthode FileReference.browse) modificationDate (propriété FileReference.modificationDate) public modificationDate : Date [lecture seule] Date de la dernière modification du fichier sur le disque local. Si l'objet FileReference n'a pas été renseigné, l'appel effectué pour obtenir la valeur de cette propriété renvoie null. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant récupère la propriété modificationDate d'un fichier choisi par l'utilisateur. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("modificationDate: " + file.modificationDate); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); Voir également browse (méthode FileReference.browse) name (propriété FileReference.name) public name : String [lecture seule] Nom du fichier sur le disque local. Si l'objet FileReference n'a pas été renseigné, l'appel effectué pour obtenir la valeur de cette propriété renvoie null. 590 Chapitre 2: Classes ActionScript Toutes les propriétés d'un objet FileReference sont complétées en appelant browse(). A la différence des autres propriétés FileReference, si vous appelez download(), la propriété name est renseignée quand onSelect est invoqué. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant récupère le nom d'un fichier choisi par l'utilisateur. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("name: " + file.name); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); Voir également browse (méthode FileReference.browse) onCancel (écouteur d'événement FileReference.onCancel) onCancel = function(fileRef:FileReference) {} Appelé lorsque l'utilisateur ferme la boîte de dialogue de recherche de fichier. Cette boîte de dialogue est affichée quand vous appelez FileReference.browse(), FileReferenceList.browse(), ou FileReference.download(). Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres fileRef:flash.net.FileReference - Objet FileReference qui a initié l'opération. Exemple L'exemple suivant trace un message si l'utilisateur ferme la boîte de dialogue de recherche de fichier. Cette méthode est déclenchée uniquement si l'utilisateur clique sur Annuler ou appuie sur la touche Echap après l'affichage de la boîte de dialogue. import flash.net.FileReference; var listener:Object = new Object(); FileReference (flash.net.FileReference) 591 listener.onCancel = function(file:FileReference):Void { trace("onCancel"); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; if(!fileRef.download(url, "FlashPlatform.pdf")) { trace("dialog box failed to open."); } onCancel (écouteur d'événement FileReference.onComplete) onCancel = function(fileRef:FileReference) {} Appelé en cas de réussite de l'opération d'envoi ou de téléchargement. L'exécution réussie signifie que la totalité du fichier a été téléchargée (reçue ou envoyée). Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres fileRef:flash.net.FileReference - Objet FileReference qui a initié l'opération. Exemple L'exemple suivant trace un message quand l'événement onComplete est déclenché. import flash.net.FileReference; var listener:Object = new Object(); listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; fileRef.download(url, "FlashPlatform.pdf"); 592 Chapitre 2: Classes ActionScript onHTTPError (écouteur d'événement FileReference.onHTTPError) onHTTPError = function(fileRef:FileReference, httpError:Number) {} Appelé lorsqu'un envoi échoue en raison d'une erreur HTTP. Compte tenu de la façon dont Flash Player s'appuie sur l'ordre d'empilement du navigateur au cours du téléchargement de fichiers, cette erreur n'est pas applicable aux échecs de téléchargement. Si un téléchargement échoue en raison d'une erreur HTTP, l'erreur est signalée en tant qu'erreur d'E/S. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres fileRef:flash.net.FileReference - Objet FileReference qui a initié l'opération. httpError:Number - Erreur HTTP à l'origine de l'échec de ce chargement. Par exemple, une erreur httpError 404 indique qu'une page n'a pas été trouvée. Les valeurs d'erreur HTTP sont répertoriées dans les sections 10.4 et 10.5 de la spécification HTTP à l'adresse ftp:// ftp.isi.edu/in-notes/rfc2616.txt. Exemple L'exemple suivant crée un objet FileReference comprenant un écouteur pour chaque événement possible, y compris onHttpError. Cet écouteur est déclenché uniquement en cas d'échec du chargement dû à une erreur HTTP. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("onSelect: " + file.name); if(!file.upload("http://www.yourdomain.com/ yourUploadHandlerScript.cfm")) { trace("Upload dialog failed to open."); } } listener.onCancel = function(file:FileReference):Void { trace("onCancel"); } listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name); } FileReference (flash.net.FileReference) 593 listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal); } listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name); } listener.onHTTPError = function(file:FileReference):Void { trace("onHTTPError: " + file.name); } listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name); } listener.onSecurityError = function(file:FileReference, errorString:String):Void { trace("onSecurityError: " + file.name + " errorString: " + errorString); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); onIOError (écouteur d'événement FileReference.onIOError) onCancel = function(fileRef:FileReference) {} Appelé lorsqu'une erreur d'entrée/sortie se produit. Cet écouteur est invoqué lorsque le chargement ou téléchargement échoue pour l'une des raisons suivantes : ■ Une erreur d'entrée/sortie se produit lors de la lecture, l'écriture ou la transmission du fichier. ■ Le fichier SWF tente de charger un fichier sur un serveur nécessitant une authentification (comme un nom d'utilisateur et un mot de passe). Au cours du chargement, Flash Player ne permet pas aux utilisateurs d'entrer des mots de passe. Si un fichier SWF tente de charger un fichier sur un serveur nécessitant une authentification, le chargement échoue. 594 Chapitre 2: Classes ActionScript ■ Le fichier SWF tente de télécharger un fichier à partir d'un serveur nécessitant une authentification, dans le lecteur autonome ou externe. Au cours du téléchargement, les lecteurs autonomes et externes ne permettent pas aux utilisateurs d'entrer des mots de passe. Si un fichier SWF présent dans ces lecteurs tente de télécharger un fichier à partir d'un serveur nécessitant une authentification, le téléchargement échoue. Le téléchargement de fichiers peut réussir uniquement via les lecteurs avec contrôle ActiveX et plug-in navigateur. ■ La valeur passée au paramètre url dans upload() contient un protocole invalide. Les protocoles valides sont HTTP et HTTPS. Important : Seules les applications Flash s'exécutant dans un navigateur, via le plug-in du navigateur ou le contrôle ActiveX, peuvent fournir une boîte de dialogue pour inviter l'utilisateur à entrer un nom d'utilisateur et un mot de passe en vue de l'authentification, et ceci uniquement pour les téléchargements. Concernant les chargements effectués via le plugin ou le contrôle ActiveX, ou le chargement/téléchargement via les lecteurs autonomes ou externes, le transfert de fichiers échoue. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres fileRef:flash.net.FileReference - Objet FileReference qui a initié l'opération. Exemple L'exemple suivant trace un message quand l'événement onIOError est déclenché. Pour simplifier, aucun des autres écouteurs d'événements n'est inclus dans cet exemple. import flash.net.FileReference; var listener:Object = new Object(); listener.onIOError = function(file:FileReference):Void { trace("onIOError"); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.download("http://www.macromedia.com/NonExistentFile.pdf", "NonExistentFile.pdf"); FileReference (flash.net.FileReference) 595 onOpen (écouteur d'événement FileReference.onOpen) onOpen = function(fileRef:FileReference) {} Appelé au début d'une opération d'envoi ou de téléchargement. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres fileRef:flash.net.FileReference - Objet FileReference qui a initié l'opération. Exemple L'exemple suivant trace un message quand l'événement onOpen est déclenché. import flash.net.FileReference; var listener:Object = new Object(); listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; fileRef.download(url, "FlashPlatform.pdf"); onProgress (écouteur d'événement FileReference.onProgress) onProgress = function(fileRef:FileReference, bytesLoaded:Number, bytesTotal:Number) {} Appelé régulièrement pendant l'opération d'envoi ou de téléchargement. L'écouteur onProgress est invoqué pendant que Flash Player transmet des octets à un serveur, il est appelé régulièrement pendant la transmission, même si elle ne réussit pas au final. Pour déterminer si la transmission du fichier est entièrement terminée, et à quel moment, utilisez onComplete. Dans certains cas, les écouteurs onProgress ne sont pas invoqués, par exemple lorsque le fichier transmis est de très petite taille ou lorsque le chargement ou le téléchargement s'effectuent très rapidement. 596 Chapitre 2: Classes ActionScript La progression du chargement d'un fichier ne peut pas être déterminée sur les plate-formes Macintosh avec version antérieure à OS X 10.3. L'événement onProgress est appelé au cours du chargement, mais la valeur du paramètre bytesLoaded à -1 indique que la progression ne peut pas être déterminée. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres fileRef:flash.net.FileReference bytesLoaded:Number - Objet FileReference qui a initié l'opération. - Nombre d'octets transmis jusque là. - Taille totale du fichier à transmettre, en octets. Si la taille ne peut pas être déterminée, la valeur est -1. bytesTotal:Number Exemple L'exemple suivant trace la progression d'un téléchargement utilisant l'écouteur d'événement onProgress. import flash.net.FileReference; var listener:Object = new Object(); listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress: " + file.name + " with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; fileRef.download(url, "FlashPlatform.pdf"); Voir également FileReference (flash.net.FileReference) 597 onSecurityError (écouteur d'événement FileReference.onSecurityError) onSecurityError = function(fileRef:FileReference, errorString:String) Appelé lorsqu'un envoi ou un téléchargement échoue en raison d'une erreur de sécurité. Le fichier SWF effectuant l'appel a peut-être essayé d'accéder à un fichier SWF hors de son domaine et ne dispose pas de l'autorisation requise à cet effet. Vous pouvez tenter de remédier à cette erreur via un fichier de régulation inter-domaines. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres fileRef:flash.net.FileReference - Objet FileReference qui a initié l'opération. - Décrit l'erreur à l'origine de l'appel d'onSecurityError. La valeur est « securitySandboxError ». errorString:String Exemple L'exemple suivant crée un objet FileReference comprenant un écouteur pour chaque événement possible, y compris onSecurityError. L'écouteur onSecurityError est déclenché uniquement en cas d'échec du chargement dû à une erreur de sécurité. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("onSelect: " + file.name); if(!file.upload("http://www.yourdomain.com/ yourUploadHandlerScript.cfm")) { trace("Upload dialog failed to open."); } } listener.onCancel = function(file:FileReference):Void { trace("onCancel"); } listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name); } listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal); 598 Chapitre 2: Classes ActionScript } listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name); } listener.onHTTPError = function(file:FileReference):Void { trace("onHTTPError: " + file.name); } listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name); } listener.onSecurityError = function(file:FileReference, errorString:String):Void { trace("onSecurityError: " + file.name + " errorString: " + errorString); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); onSelect (écouteur d'événement FileReference.onSelect) onSelect = function(fileRef:FileReference) {} Appelé lorsque l'utilisateur sélectionne un fichier à envoyer ou télécharger dans la boîte de dialogue de recherche de fichiers. (Cette boîte de dialogue est affichée quand vous appelez FileReference.browse(), FileReferenceList.browse(), ou FileReference.download().) Lorsque l'utilisateur sélectionne un fichier et confirme l'opération (par exemple, en cliquant sur OK), les propriétés de l'objet FileReference sont renseignées. L'écouteur onSelect fonctionne un peu différemment selon la méthode qui l'invoque. Quand onSelect est invoqué après un appel browse(), Flash Player peut lire toutes les propriétés d'un objet FileReference, parce que le fichier choisi est dans le système local de fichiers. Quand onSelect est invoqué après un appel download(), Flash Player peut lire uniquement la propriété name, parce que le fichier n'a pas encore été téléchargé dans le système local de fichiers au moment où onSelect est invoqué. Quand le fichier a été téléchargé et onComplete invoqué, alors Flash Player peut lire toutes les autres propriétés de l'objet FileReference. Disponibilité : ActionScript 1.0 ; Flash Player 8 FileReference (flash.net.FileReference) 599 Paramètres fileRef:flash.net.FileReference - Objet FileReference qui a initié l'opération. Exemple L'exemple suivant trace un message dans l'écouteur d'événement onSelect. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("onSelect: " + file.name); if(!file.upload("http://www.yourdomain.com/ yourUploadHandlerScript.cfm")) { trace("Upload dialog failed to open."); } } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); removeListener (méthodeFileReference.removeListener) public removeListener(listener:Object) : Boolean Supprime un objet de la liste d'objets recevant des messages de notification d'événement. Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres listener:Object - Objet qui écoute une notification de rappel venant des écouteurs d'événements FileReference. Valeur renvoyée Boolean - Renvoie true si l'objet spécifié dans le paramètre listener a été enlevé avec succès. Autrement, cette méthode renvoie false. Exemple L'exemple suivant enlève un écouteur d'événement par la méthode removeListener. Si un utilisateur annule le téléchargement, l'écouteur est enlevé pour qu'il ne continue pas à recevoir les événements de l'objet FileReference. import flash.net.FileReference; 600 Chapitre 2: Classes ActionScript var listener:Object = new Object(); listener.onCancel = function(file:FileReference):Void { trace(file.removeListener(this)); // true } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); var url:String = "http://www.macromedia.com/platform/whitepapers/ platform_overview.pdf"; fileRef.download(url, "FlashPlatform.pdf"); size (propriété FileReference.size) public size : Number [lecture seule] Taille du fichier sur le disque local en octets. Si l'objet FileReference n'a pas été renseigné, l'appel effectué pour obtenir la valeur de cette propriété renvoie null. Disponibilité : ActionScript 1.0 ; Flash Player 8 Exemple L'exemple suivant récupère la taille d'un fichier choisi par l'utilisateur. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("size: " + file.size + " bytes"); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); Voir également browse (méthode FileReference.browse) type (propriété FileReference.type) public type : String [lecture seule] Type de fichier. Sous Windows, cette propriété est l'extension de fichier. Sous Macintosh, cette propriété est le type de fichier à quatre caractères. Si l'objet FileReference n'a pas été renseigné, l'appel effectué pour obtenir la valeur de cette propriété renvoie null. Disponibilité : ActionScript 1.0 ; Flash Player 8 FileReference (flash.net.FileReference) 601 Exemple L'exemple suivant récupère le type d'un fichier choisi par l'utilisateur. import flash.net.FileReference; var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("type: " + file.type); } var fileRef:FileReference = new FileReference(); fileRef.addListener(listener); fileRef.browse(); Voir également browse (méthode FileReference.browse) upload (méthode FileReference.upload) public upload(url:String) : Boolean Procède au chargement d'un fichier sélectionné par un utilisateur sur un serveur distant. Flash Player peut télécharger des fichiers jusqu'à 100 Mo. Il est nécessaire d'appeler FileReference.browse() ou FileReferenceList.browse() avant d'appeler cette méthode. Les écouteurs reçoivent des événements permettant d'indiquer la progression du chargement, s'il a réussi ou échoué. Bien que vous puissiez utiliser l'objet FileReferenceList permettant aux utilisateurs un choix multiple de fichiers à charger, vous devez charger les fichiers un par un. Pour cela, faites une itération dans le tableau FileReferenceList.fileList des objets FileReference. Le fichier est chargé vers l'URL passée dans le paramètre url. L'URL doit être un script serveur configuré pour accepter les téléchargements montants. Flash Player télécharge les fichiers en utilisant la méthode HTTP POST. Le script serveur qui gère le chargement doit attendre une requête POST comportant les éléments suivants : ■ Un élément Content-Type de multipart/form-data ■ Un élément Content-Disposition avec l'attribut name défini sur "Filedata" et un attribut filename défini sur le nom du fichier d'origine. ■ Le contenu binaire actuel du fichier Voici un exemple de requête POST : Content-Type: multipart/form-data; boundary=AaB03x --AaB03x Content-Disposition: form-data; name="Filedata"; filename="example.jpg" 602 Chapitre 2: Classes ActionScript Content-Type: application/octet-stream ... contents of example.jpg ... --AaB03x-- Vous pouvez envoyer des données au serveur avec l'appel upload() en ajoutant les paramètres de l'URL. Remarque : Si votre serveur requiert une authentification d'utilisateur, seuls les fichiers SWF s'exécutant dans un navigateur, (c'est-à-dire utilisant le plug-in du navigateur ou le contrôle ActiveX), peuvent fournir une boîte de dialogue pour demander à l'utilisateur un nom et un mot de passe d'authentification, ceci uniquement pour les téléchargements. Concernant les chargements effectués via le plug-in ou le contrôle ActiveX et le chargement/téléchargement via les lecteurs autonomes ou externes, le transfert de fichiers échoue. Pour utiliser cette méthode, tenez compte du modèle de sécurité de Flash Player : ■ Interdit si le fichier SWF appelant est dans une Sandbox locale non sûre. ■ Par défaut, l'accès est refusé entre Sandboxes. Un site web peut autoriser l'accès à une ressource en ajoutant un fichier de régulation inter-domaines. Pour plus d'informations, consultez les sections suivantes : ■ Chapitre 17, « Compréhension de la sécurité » dans Apprentissage d' ActionScript 2.0 dans Flash ■ Le livre blanc sur la sécurité dans Flash Player 8 ■ Le livre blanc sur la sécurité dans Flash Player 8 en liaison avec les API Disponibilité : ActionScript 1.0 ; Flash Player 8 Paramètres - URL du script serveur configuré pour gérer le chargement par appels HTTP L'URL peut être de type HTTP ou de type HTTPS pour les chargements sécurisés. url:String POST. Vous pouvez envoyer des données au serveur avec l'appel upload() en ajoutant les paramètres de l'URL ; par ex.http://www.myserver.com/upload.cgi?userID=jdoe. Sur certains navigateurs, les chaînes d'URL ont une longueur limitée. Une longueur supérieure à 256 caractères peut échouer sur certains navigateurs ou serveurs. Valeur renvoyée Boolean ■ : une valeur false dans l'un des cas suivants : FileReference.browse() n'a pas été appelé avec succès sur cet objet, ou n'a pas été appelé avec succès avec cet objet dans son FileReferenceList.browse() tableau filelist. FileReference (flash.net.FileReference) 603 ■ Le protocole utilisé n'est pas le protocole HTTP ou HTTPS. ■ Une violation de sécurité se produit, c'est-à-dire : si votre fichier SWF essaye d'accéder à un fichier sur un serveur hors de la Sandbox de sécurité de votre fichier SWF. ■ Le type ou le format du paramètre url n'est pas correct. ■ L'appel ne comporte pas le nombre requis de paramètres. Evénements onCancel Invoqué lorsque l'utilisateur ferme la boîte de dialogue. onComplete Appelé en cas de réussite de l'opération de téléchargement montant. onHTTPError Appelé lorsqu'un envoi échoue en raison d'une erreur HTTP. onIOError Invoqué dans l'un des cas suivants : ■ Le chargement échoue en raison d'une erreur d'entrée/sortie lors de la lecture, l'écriture ou la transmission du fichier par Flash Player. ■ Le fichier SWF tente de charger un fichier sur un serveur nécessitant une authentification (comme un nom d'utilisateur et un mot de passe). Au cours du chargement, Flash Player ne permet pas aux utilisateurs d'entrer des mots de passe. ■ Le chargement échoue parce que le paramètre url renferme un protocole invalide. FileReference.upload() doit utiliser HTTP ou HTTPS. onOpen Invoqué lors du démarrage d'un téléchargement montant. onProgress Appelé régulièrement pendant le téléchargement du fichier. onSecurityError 604 Chapitre 2: Classes ActionScript Appelé lorsqu'un envoi ou un téléchargement échoue en raison d'une erreur de sécurité. Exemple L'exemple suivant montre l'implémentation de la méthode upload() en informant d'abord l'utilisateur de choisir un fichier à télécharger, puis en gérant les écouteurs onSelect et onCancel, pour finalement gérer les résultats du téléchargement en cours. import flash.net.FileReference; var allTypes:Array = new Array(); var imageTypes:Object = new Object(); imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)"; imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png"; allTypes.push(imageTypes); var listener:Object = new Object(); listener.onSelect = function(file:FileReferenc