Sei sulla pagina 1di 1424

Guida di riferimento di ActionScript 2.

Marchi 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 e WebHelp sono marchi registrati o marchi di Macromedia, Inc. e possono essere registrati negli Stati Uniti o presso altre giurisdizioni, anche a livello internazionale. Altri nomi di prodotti, logo, disegni, titoli, parole o frasi citati in questa pubblicazione possono essere marchi registrati, marchi di servizio o nomi commerciali di Macromedia, Inc. o di altre societ e possono essere registrati in alcune giurisdizioni, anche a livello internazionale. Informazioni su terze parti Questo manuale contiene collegamenti a siti Web di terze parti che non sono sotto il controllo di Macromedia. Macromedia non potr quindi essere ritenuta responsabile per il contenuto di qualsiasi sito collegato. Qualora si decida di accedere a un sito Web di terze parti menzionato nel presente documento, lo si far sotto la propria completa responsabilit e a proprio rischio. Macromedia fornisce questi collegamenti solo per comodit dell'utente e l'inclusione del collegamento non implica che Macromedia sottoscriva o accetti qualsiasi responsabilit per il contenuto di tali siti di terze parti. Tecnologia per la compressione e la decompressione vocale concessa in licenza da Nellymoser, Inc. (www.nellymoser.com). Tecnologia per la compressione e la decompressione video Sorenson Spark, concessa in licenza da Sorenson Media, Inc. Browser Opera Copyright 1995-2002 di Opera Software ASA e dei suoi fornitori. Tutti i diritti riservati. Il video Macromedia Flash 8 basato sulla tecnologia video On2 TrueMotion. 1992-2005 On2 Technologies, Inc. Tutti i diritti riservati. http://www.on2.com. Mitsubishi Electric Research Laboratory: questo prodotto include software protetto da copyright 2005 di Mitsubishi Electric Research Laboratory Inc. Tutti i diritti riservati. http://www.merl.com. Copyright 2004-2005 Macromedia, Inc. Tutti i diritti riservati. Nessuna parte del presente manuale pu essere copiata, fotocopiata, riprodotta, tradotta o convertita in qualsiasi formato elettronico o meccanico senza la previa autorizzazione scritta di Macromedia, Inc. Nonostante quanto sopra specificato, il proprietario o l'utente autorizzato del software con cui questo manuale stato fornito autorizzato a stampare una copia di questo manuale da una versione elettronica dello stesso con il solo scopo di apprendere l'utilizzo del suddetto software, a condizione che nessuna porzione di questo manuale venga stampata, riprodotta, distribuita, rivenduta o trasmessa per qualsiasi altro scopo, compresi a titolo esemplificativo i fini commerciali quali la vendita di copie di questa documentazione o la fornitura di servizi di assistenza a pagamento. Riconoscimenti Responsabile progetto: JuLee Burdekin Autori principali: Francis Cheng, Robert Dixon, Shimul Rahim Altri autori: Jen deHaan, Thais Derich, Guy Haas, David Jacowitz, Jeff Swartz Sviluppatori degli esempi: Luke Bayes, Francis Cheng, Robert Dixon, Ali Mills, Jeff Swartz Redazione: Linda Adler, Geta Carlson, Evelyn Eldridge, John Hammett, Noreen Maher, Mark Nigara, Lisa Stanziano, Anne Szabla, Jessie Wood Responsabile produzione: Patrice ONeill Produzione e progetto multimediale: Adam Barnett, John Francis, Brett Jarvis, Mario Reynoso Un ringraziamento speciale a: Peter deHaan, Gary Grossman, Lee Thomason e il Flash Player Core Team Prima edizione: Settembre 2005 Macromedia, Inc. 601 Townsend St. San Francisco, CA 94103

Indice

Capitolo 1: Elementi del linguaggio ActionScript. . . . . . . . . . . . . . 31 Direttive per il compilatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Direttiva #endinitclip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Direttiva #include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Direttiva #initclip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Costanti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Costante false . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Costante Infinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 -Costante Infinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Costante NaN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Costante newline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Costante null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Costante true . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Costante undefined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Funzioni globali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Funzione Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Protocollo asfunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 Funzione Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Funzione call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Funzione chr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Funzione clearInterval. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Funzione duplicateMovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Funzione escape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Funzione eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Funzione fscommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Funzione getProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Funzione getTimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Funzione getURL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Funzione getVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Funzione gotoAndPlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Funzione gotoAndStop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Funzione ifFrameLoaded. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Funzione int. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Funzione isFinite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Funzione isNaN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Funzione length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Funzione loadMovie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Funzione loadMovieNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 Funzione loadVariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Funzione loadVariablesNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Funzione mbchr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Funzione mblength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Funzione mbord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Funzione mbsubstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Funzione MMExecute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Funzione nextFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Funzione nextScene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Funzione Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Funzione Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Gestore on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Gestore onClipEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Funzione ord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Funzione parseFloat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Funzione parseInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Funzione play. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Funzione prevFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Funzione prevScene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Funzione print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Funzione printAsBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Funzione printAsBitmapNum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Funzione printNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Funzione random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Funzione removeMovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Funzione setInterval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Funzione setProperty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Funzione showRedrawRegions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Funzione startDrag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Funzione stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Funzione stopAllSounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Funzione stopDrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Funzione String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Funzione substring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Funzione targetPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 Funzione tellTarget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Funzione toggleHighQuality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 Funzione trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113 Funzione unescape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 Funzione unloadMovie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 Funzione unloadMovieNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 Funzione updateAfterEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 Propriet globali. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 _accProps, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Indice

_focusrect, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 _global, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123 _highquality, propriet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 _level, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 maxscroll, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 _parent, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 _quality, propriet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 _root, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 scroll, propriet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 _soundbuftime, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 this, propriet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130 Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132 + (addizione), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 += assegnazione addizione, operatore . . . . . . . . . . . . . . . . . . . . . . . .138 [] (accesso array), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 = (assegnazione), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 & (AND bit a bit), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143 &= (assegnazione AND bit a bit), operatore. . . . . . . . . . . . . . . . . . . .144 << (spostamento a sinistra bit a bit), operatore . . . . . . . . . . . . . . . . . .145 <<= (spostamento a sinistra bit a bit e assegnazione), operatore . .146 ~ (NOT bit a bit), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 | (OR bit a bit), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149 |= (assegnazione OR bit a bit), operatore . . . . . . . . . . . . . . . . . . . . . .150 >> (spostamento a destra bit a bit), operatore . . . . . . . . . . . . . . . . . . . 151 >>= (spostamento a destra bit a bit e assegnazione), operatore . . .152 >>> (spostamento a destra bit a bit senza segno), operatore . . . . . .153 >>>= (spostamento a destra bit a bit senza segno e assegnazione), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155 ^ (XOR bit a bit), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155 ^= (assegnazione XOR bit a bit), operatore . . . . . . . . . . . . . . . . . . . . 157 /*..*/ (delimitatore commenti), operatore . . . . . . . . . . . . . . . . . . . . . .158 , (virgola), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159 add (concatenazione) (stringhe), operatore. . . . . . . . . . . . . . . . . . . .160 ?: operatore condizionale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 -- (decremento), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162 / (divisione), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163 /= (assegnazione divisione), operatore . . . . . . . . . . . . . . . . . . . . . . . .163 . (punto), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164 == (uguaglianza), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 eq (uguaglianza) (stringhe), operatore . . . . . . . . . . . . . . . . . . . . . . . . 167 > (maggiore di), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 gt (maggiore di) (stringhe), operatore . . . . . . . . . . . . . . . . . . . . . . . . .168 >= (maggiore o uguale a), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . .169 ge (maggiore o uguale a) (stringhe), operatore . . . . . . . . . . . . . . . . .169 ++ (incremento), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

Indice

!= (diseguaglianza), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 <> (diseguaglianza), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 istanza di, operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 < (minore di), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 lt (minore di) (stringhe), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 <= (minore o uguale a), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 le (minore o uguale a) (stringhe), operatore . . . . . . . . . . . . . . . . . . . 177 // (delimitatore commenti), operatore. . . . . . . . . . . . . . . . . . . . . . . . . 178 && (AND logico), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 and (AND logico), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 ! (NOT logico), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 not (NOT logico), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 || (OR logico), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 or (OR logico), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 % (modulo), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 %= (assegnazione modulo), operatore . . . . . . . . . . . . . . . . . . . . . . . 184 * (moltiplicazione), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 *= (assegnazione moltiplicazione), operatore. . . . . . . . . . . . . . . . . . 186 new, operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 ne (non uguale) (stringhe), operator . . . . . . . . . . . . . . . . . . . . . . . . . . 188 {} (inizializzatore di oggetto), operatore . . . . . . . . . . . . . . . . . . . . . . . 188 () (parentesi), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 === (uguaglianza rigorosa), operatore . . . . . . . . . . . . . . . . . . . . . . . . . .191 !== (diseguaglianza rigorosa), operatore . . . . . . . . . . . . . . . . . . . . . . 193 " (delimitatore di stringa), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . 194 - (sottrazione), operatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 -= (assegnazione sottrazione), operatore . . . . . . . . . . . . . . . . . . . . . 195 : (tipo), operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 typeof, operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 void, operatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 break, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 case, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 classe, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 continue, istruzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 default, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207 delete, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 do..while, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 dynamic, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 else, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 else if, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 extends, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 for, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 for..in, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 function, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

Indice

get, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 if, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 implements, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 istruzione di importazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 interface, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 intrinsic, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 private, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 public, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 return (istruzione) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 set, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231 set variable, istruzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 static, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 super, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 switch (istruzione) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 throw, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 try..catch..finally, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 var, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 while, istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 with (istruzione) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Capitolo 2: Classi ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 isActive (metodo Accessibility.isActive) . . . . . . . . . . . . . . . . . . . . . . 248 updateProperties (metodo Accessibility.updateProperties) . . . . 249 argomenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 callee (propriet arguments.callee) . . . . . . . . . . . . . . . . . . . . . . . . . . .251 caller (propriet arguments.caller) . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 length (propriet arguments.length) . . . . . . . . . . . . . . . . . . . . . . . . . .251 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Funzione di costruzione Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 CASEINSENSITIVE (propriet Array.CASEINSENSITIVE) . . . . 257 concat( metodo Array.concat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 DESCENDING (propriet Array.DESCENDING). . . . . . . . . . . . . . 258 join (metodo Array.join) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 length (propriet Array.length) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 NUMERIC (propriet Array.NUMERIC) . . . . . . . . . . . . . . . . . . . . . . 260 pop (metodo Array.pop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 push (metodo Array.push) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 RETURNINDEXEDARRAY (propriet Array.RETURNINDEXEDARRAY) . . . . . . . . . . . . . . . . . . . . . . . . 262 reverse (metodo Array.reverse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 shift (metodo Array.shift) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 slice (metodo Array.slice). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 sort (metodo Array.sort) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 sortOn (metodo Array.sortOn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

Indice

splice (metodo Array.splice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 toString (metodo Array.toString). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 UNIQUESORT (propriet Array.UNIQUESORT) . . . . . . . . . . . . . . 273 Classe Accessibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 unshift (metodo Array.unshift) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 AsBroadcaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274 addListener (metodo AsBroadcaster.addListener) . . . . . . . . . . . . 276 broadcastMessage (metodo AsBroadcaster.broadcastMessage) . . . 277 initialize (metodo AsBroadcaster.initialize) . . . . . . . . . . . . . . . . . . . . 278 _listeners (propriet AsBroadcaster._listeners) . . . . . . . . . . . . . . . .279 removeListener (metodo AsBroadcaster.removeListener). . . . . . 281 BevelFilter (flash.filters.BevelFilter) . . . . . . . . . . . . . . . . . . . . . . . . . . . .282 angle (propriet BevelFilter.angle) . . . . . . . . . . . . . . . . . . . . . . . . . . .285 Funzione di costruzione BevelFilter . . . . . . . . . . . . . . . . . . . . . . . . . .286 blurX (propriet BevelFilter.blurX). . . . . . . . . . . . . . . . . . . . . . . . . . . .288 blurY (propriet BevelFilter.blurY) . . . . . . . . . . . . . . . . . . . . . . . . . . .289 clone (metodo BevelFilter.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 distance (propriet BevelFilter.distance). . . . . . . . . . . . . . . . . . . . . .292 highlightAlpha (priopriet BevelFilter.highlightAlpha) . . . . . . . . . .293 highlightColor (propriet BevelFilter.highlightColor) . . . . . . . . . . 294 knockout (propriet BevelFilter.knockout) . . . . . . . . . . . . . . . . . . . 295 quality (propriet BevelFilter.quality) . . . . . . . . . . . . . . . . . . . . . . . . .296 shadowAlpha (propriet BevelFilter.shadowAlpha) . . . . . . . . . . . .297 shadowColor (propriet BevelFilter.shadowColor) . . . . . . . . . . . . .298 strength (propriet BevelFilter.strength) . . . . . . . . . . . . . . . . . . . . . 299 type (propriet BevelFilter.type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 BitmapData (flash.display.BitmapData). . . . . . . . . . . . . . . . . . . . . . . . . 301 applyFilter (metodo BitmapData.applyFilter) . . . . . . . . . . . . . . . . . 306 funzione di costruzione BitmapData . . . . . . . . . . . . . . . . . . . . . . . . 308 clone (metodo BitmapData.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 colorTransform (metodo BitmapData.colorTransform) . . . . . . . . . 312 copyChannel (metodo BitmapData.copyChannel) . . . . . . . . . . . . . 313 copyPixels (metodo BitmapData.copyPixels) . . . . . . . . . . . . . . . . . 314 dispose (metodo BitmapData.dispose) . . . . . . . . . . . . . . . . . . . . . . . 316 draw (metodo BitmapData.draw) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 fillRect (metodo BitmapData.fillRect) . . . . . . . . . . . . . . . . . . . . . . . . 319 floodFill (metodo BitmapData.floodFill) . . . . . . . . . . . . . . . . . . . . . . 319 generateFilterRect (metodo BitmapData.generateFilterRect) . 320 getColorBoundsRect (metodo BitmapData.getColorBoundsRect) . . 321 getPixel (metodo BitmapData.getPixel) . . . . . . . . . . . . . . . . . . . . . .323 getPixel32 (metodo BitmapData.getPixel32) . . . . . . . . . . . . . . . . .324 height (propriet BitmapData.height). . . . . . . . . . . . . . . . . . . . . . . . .325 hitTest (metodo BitmapData.hitTest). . . . . . . . . . . . . . . . . . . . . . . . .325

Indice

loadBitmap (metodo BitmapData.loadBitmap) . . . . . . . . . . . . . . . 327 merge (metodo BitmapData.merge) . . . . . . . . . . . . . . . . . . . . . . . . . 328 noise (metodo BitmapData.noise method) . . . . . . . . . . . . . . . . . . . 329 paletteMap (metodo BitmapData.paletteMap). . . . . . . . . . . . . . . . 330 perlinNoise (metodo BitmapData.perlinNoise) . . . . . . . . . . . . . . . . 332 pixelDissolve (metodo BitmapData.pixelDissolve) . . . . . . . . . . . . 334 rectangle (propriet BitmapData.rectangle) . . . . . . . . . . . . . . . . . . 336 scroll (metodo BitmapData.scroll) . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 setPixel (BitmapData.setPixel method) . . . . . . . . . . . . . . . . . . . . . . 337 setPixel32 (metodo BitmapData.setPixel32) . . . . . . . . . . . . . . . . . 338 threshold (metodo BitmapData.threshold) . . . . . . . . . . . . . . . . . . . 339 transparent (propriet BitmapData.transparent) . . . . . . . . . . . . . . .341 width (propriet BitmapData.width) . . . . . . . . . . . . . . . . . . . . . . . . . 342 BitmapFilter (flash.filters.BitmapFilter) . . . . . . . . . . . . . . . . . . . . . . . . . 342 clone (metodo BitmapFilter.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . 343 BlurFilter (flash.filters.BlurFilter). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 BlurFilter, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 blurX (propriet BlurFilter.blurX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 blurY (propriet BlurFilter.blurY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 clone (metodo BlurFilter.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 quality (propriet BlurFilter.quality) . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 Boolean, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 toString (metodo Boolean.toString) . . . . . . . . . . . . . . . . . . . . . . . . . 353 valueOf (metodo Boolean.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Pulsante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 _alpha (propriet Button._alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 blendMode (propriet Button.blendMode) . . . . . . . . . . . . . . . . . . . 358 cacheAsBitmap (propriet Button.cacheAsBitmap). . . . . . . . . . . 364 enabled (propriet Button.enabled). . . . . . . . . . . . . . . . . . . . . . . . . . 365 filters (propriet Button.filters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 _focusrect (propriet Button._focusrect) . . . . . . . . . . . . . . . . . . . . . 368 getDepth (metodo Button.getDepth) . . . . . . . . . . . . . . . . . . . . . . . . 369 _height (propriet Button._height) . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 _highquality (propriet Button._highquality). . . . . . . . . . . . . . . . . . . 370 menu (propriet Button.menu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 _name (propriet Button._name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 onDragOut (gestore Button.onDragOut) . . . . . . . . . . . . . . . . . . . . . 372 onDragOver (gestore Button.onDragOver) . . . . . . . . . . . . . . . . . . . 373 onKeyDown (gestore Button.onKeyDown) . . . . . . . . . . . . . . . . . . . 373 onKeyUp (gestore Button.onKeyUp) . . . . . . . . . . . . . . . . . . . . . . . . 374 onKillFocus (gestore Button.onKillFocus) . . . . . . . . . . . . . . . . . . . . 375 onPress (gestore Button.onPress) . . . . . . . . . . . . . . . . . . . . . . . . . . 376 onRelease (gestore Button.onRelease) . . . . . . . . . . . . . . . . . . . . . . 377 onReleaseOutside (gestore Button.onReleaseOutside). . . . . . . . 377

Indice

onRollOut (gestore Button.onRollOut) . . . . . . . . . . . . . . . . . . . . . . . 377 onRollOver (gestore Button.onRollOver) . . . . . . . . . . . . . . . . . . . . . 378 onSetFocus (gestore Button.onSetFocus). . . . . . . . . . . . . . . . . . . . 378 _parent (propriet Button._parent) . . . . . . . . . . . . . . . . . . . . . . . . . . .379 _quality (propriet Button._quality) . . . . . . . . . . . . . . . . . . . . . . . . . . 380 _rotation (propriet Button._rotation) . . . . . . . . . . . . . . . . . . . . . . . . 380 scale9Grid (propriet Button.scale9Grid) . . . . . . . . . . . . . . . . . . . . . 381 _soundbuftime (propriet Button._soundbuftime) . . . . . . . . . . . . . .382 tabEnabled (propriet Button.tabEnabled) . . . . . . . . . . . . . . . . . . . .383 tabIndex (propriet Button.tabIndex) . . . . . . . . . . . . . . . . . . . . . . . . .384 _target (propriet Button._target) . . . . . . . . . . . . . . . . . . . . . . . . . . . .385 trackAsMenu (propriet Button.trackAsMenu) . . . . . . . . . . . . . . . .386 _url (propriet Button._url). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 useHandCursor (propriet Button.useHandCursor) . . . . . . . . . . . . 387 _visible (propriet Button._visible). . . . . . . . . . . . . . . . . . . . . . . . . . . .388 _width (propriet Button._width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389 _x (propriet Button._x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389 _xmouse (propriet Button._xmouse). . . . . . . . . . . . . . . . . . . . . . . . 390 _xscale (propriet Button._xscale) . . . . . . . . . . . . . . . . . . . . . . . . . . 390 _y (propriet Button._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 _ymouse (propriet Button._ymouse). . . . . . . . . . . . . . . . . . . . . . . . .392 _yscale (propriet Button._yscale) . . . . . . . . . . . . . . . . . . . . . . . . . . .392 Camera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .393 activityLevel (propriet Camera.activityLevel) . . . . . . . . . . . . . . . . .396 bandwidth (propriet Camera.bandwidth). . . . . . . . . . . . . . . . . . . . .397 currentFps (propriet Camera.currentFps) . . . . . . . . . . . . . . . . . . . .398 fps (propriet Camera.fps) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 get (metodo Camera.get) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 height (propriet Camera.height) . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 index (propriet Camera.index) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 motionLevel (propriet Camera.motionLevel) . . . . . . . . . . . . . . . . 404 motionTimeOut (propriet Camera.motionTimeOut) . . . . . . . . . . 406 muted (propriet Camera.muted) . . . . . . . . . . . . . . . . . . . . . . . . . . . .407 name (propriet Camera.name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 names (propriet Camera.names). . . . . . . . . . . . . . . . . . . . . . . . . . . 409 onActivity (gestore Camera.onActivity) . . . . . . . . . . . . . . . . . . . . . . . 410 onStatus (Gestore Camera.onStatus) . . . . . . . . . . . . . . . . . . . . . . . . 410 quality (propriet Camera.quality) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 setMode (metodo Camera.setMode) . . . . . . . . . . . . . . . . . . . . . . . . . 413 setMotionLevel (metodo setMotionLevel) . . . . . . . . . . . . . . . . . . . . 414 setQuality (metodo Camera.setQuality) . . . . . . . . . . . . . . . . . . . . . . . 416 width (propriet Camera.width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 capabilities (System.capabilities). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 avHardwareDisable (propriet capabilities.avHardwareDisable) 422 hasAccessibility (propriet capabilities.hasAccessibility) . . . . . . .422

10

Indice

hasAudio (propriet capabilities.hasAudio) . . . . . . . . . . . . . . . . . . . 423 hasAudioEncoder (propriet capabilities.hasAudioEncoder) . . . 423 hasEmbeddedVideo (propriet capabilities.hasEmbeddedVideo). . . 423 hasIME (propriet capabilities.hasIME) . . . . . . . . . . . . . . . . . . . . . . 424 hasMP3 (propriet capabilities.hasMP3). . . . . . . . . . . . . . . . . . . . . 424 hasPrinting (propriet capabilities.hasPrinting) . . . . . . . . . . . . . . . 424 hasScreenBroadcast (propriet capabilities.hasScreenBroadcast) . 425 hasScreenPlayback (propriet capabilities.hasScreenPlayback) . . . 425 hasStreamingAudio (propriet capabilities.hasStreamingAudio) 425 hasStreamingVideo (propriet capabilities.hasStreamingVideo) 426 hasVideoEncoder (propriet capabilities.hasVideoEncoder) . . . 426 isDebugger (propriet capabilities.isDebugger) . . . . . . . . . . . . . . . 426 language (propriet capabilities.language) . . . . . . . . . . . . . . . . . . . 427 localFileReadDisable (propriet capabilities.localFileReadDisable) . 428 manufacturer (propriet capabilities.manufacturer) . . . . . . . . . . . . 429 os (propriet capabilities.os) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 pixelAspectRatio (propriet capabilities.pixelAspectRatio) . . . . . 429 playerType (propriet capabilities.playerType) . . . . . . . . . . . . . . . . 430 screenColor (propriet capabilities.screenColor) . . . . . . . . . . . . . . 430 screenDPI (propriet capabilities.screenDPI) . . . . . . . . . . . . . . . . . .431 screenResolutionX (propriet capabilities.screenResolutionX) . .431 screenResolutionY (propriet capabilities.screenResolutionY) . .431 serverString (propriet capabilities.serverString). . . . . . . . . . . . . . 432 version (propriet capabilities.version) . . . . . . . . . . . . . . . . . . . . . . . 432 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 Color, funzione di costruzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 getRGB (metodo Color.getRGB). . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 getTransform (metodo Color.getTransform) . . . . . . . . . . . . . . . . . . 435 setRGB (metodo Color.setRGB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 setTransform (metodo Color.setTransform) . . . . . . . . . . . . . . . . . . 436 ColorMatrixFilter (flash.filters.ColorMatrixFilter) . . . . . . . . . . . . . . . . . 438 clone (metodo ColorMatrixFilter.clone) . . . . . . . . . . . . . . . . . . . . . . 442 ColorMatrixFilter, funzione di costruzione . . . . . . . . . . . . . . . . . . . . 442 matrix (propriet ColorMatrixFilter.matrix) . . . . . . . . . . . . . . . . . . . . 443 ColorTransform (flash.geom.ColorTransform). . . . . . . . . . . . . . . . . . . 443 alphaMultiplier (propriet ColorTransform.alphaMultiplier) . . . . . 446 alphaOffset (propriet ColorTransform.alphaOffset). . . . . . . . . . . 447 blueMultiplier (propriet ColorTransform.blueMultiplier) . . . . . . . 448 blueOffset (propriet ColorTransform.blueOffset) . . . . . . . . . . . . . 448 ColorTransform, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . 449 concat (metodo ColorTransform.concat) . . . . . . . . . . . . . . . . . . . . . .451

Indice

11

greenMultiplier (propriet ColorTransform.greenMultiplier) . . . . 452 greenOffset (propriet ColorTransform.greenOffset). . . . . . . . . . .453 redMultiplier (propriet ColorTransform.redMultiplier). . . . . . . . . 454 redOffset (propriet ColorTransform.redOffset) . . . . . . . . . . . . . . 455 rgb (propriet ColorTransform.rgb). . . . . . . . . . . . . . . . . . . . . . . . . . 455 toString (metodo ColorTransform.toString) . . . . . . . . . . . . . . . . . . .457 ContextMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457 builtInItems (propriet ContextMenu.builtInItems) . . . . . . . . . . . . 459 ContextMenu, funzione di costruzione. . . . . . . . . . . . . . . . . . . . . . . 460 copy (metodo ContextMenu.copy) . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 customItems (propriet ContextMenu.customItems) . . . . . . . . . . .462 hideBuiltInItems (metodo ContextMenu.hideBuiltInItems) . . . . . .463 onSelect (gestore ContextMenu.onSelect) . . . . . . . . . . . . . . . . . . 464 ContextMenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465 caption (propriet ContextMenuItem.caption) . . . . . . . . . . . . . . . . . 467 ContextMenuItem, funzione di costruzione. . . . . . . . . . . . . . . . . . . .467 copy (metodo ContextMenuItem.copy) . . . . . . . . . . . . . . . . . . . . . . .468 enabled (propriet ContextMenuItem.enabled) . . . . . . . . . . . . . . . 469 onSelect (gestore ContextMenuItem.onSelect) . . . . . . . . . . . . . . .470 separatorBefore (propriet ContextMenuItem.separatorBefore) 470 visible (propriet ContextMenuItem.visible) . . . . . . . . . . . . . . . . . . . 471 ConvolutionFilter (flash.filters.ConvolutionFilter) . . . . . . . . . . . . . . . . .472 alpha (propriet ConvolutionFilter.alpha) . . . . . . . . . . . . . . . . . . . . .475 bias (propriet ConvolutionFilter.bias) . . . . . . . . . . . . . . . . . . . . . . . . 476 clamp (propriet ConvolutionFilter.clamp) . . . . . . . . . . . . . . . . . . . . 476 clone (metodo ConvolutionFilter.clone). . . . . . . . . . . . . . . . . . . . . . . 477 color (propriet ConvolutionFilter.color) . . . . . . . . . . . . . . . . . . . . . .479 ConvolutionFilter, funzione di costruzione . . . . . . . . . . . . . . . . . . . .479 divisor (propriet ConvolutionFilter.divisor property) . . . . . . . . . . . 481 matrix (propriet ConvolutionFilter.matrix) . . . . . . . . . . . . . . . . . . . .482 matrixX (propriet ConvolutionFilter.matrixX) . . . . . . . . . . . . . . . . .483 matrixY (propriet ConvolutionFilter.matrixY) . . . . . . . . . . . . . . . . .483 preserveAlpha (propriet ConvolutionFilter.preserveAlpha). . . . .483 CustomActions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .484 get (metodo CustomActions.get) . . . . . . . . . . . . . . . . . . . . . . . . . . . .485 install (metodo CustomActions.install). . . . . . . . . . . . . . . . . . . . . . . .486 list (metodo CustomActions.list) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .488 uninstall (metodo CustomActions.uninstall) . . . . . . . . . . . . . . . . . . 489 Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 Date, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 getDate (metodo Date.getDate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .497 getDay (metodo Date.getDay). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 getFullYear (metodo Date.getFullYear). . . . . . . . . . . . . . . . . . . . . . 498 getHours (metodo Date.getHours) . . . . . . . . . . . . . . . . . . . . . . . . . . 499 getMilliseconds (metodo Date.getMilliseconds) . . . . . . . . . . . . . . 499

12

Indice

getMinutes (metodo Date.getMinutes) . . . . . . . . . . . . . . . . . . . . . . . 500 getMonth (metodo Date.getMonth) . . . . . . . . . . . . . . . . . . . . . . . . . 500 getSeconds (metodo Date.getSeconds) . . . . . . . . . . . . . . . . . . . . . .501 getTime (metodo Date.getTime) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 getTimezoneOffset (metodo Date.getTimezoneOffset) . . . . . . . . 502 getUTCDate (metodo Date.getUTCDate) . . . . . . . . . . . . . . . . . . . . 503 getUTCDay (metodo Date.getUTCDay). . . . . . . . . . . . . . . . . . . . . . 503 getUTCFullYear (metodo Date.getUTCFullYear). . . . . . . . . . . . . . 504 getUTCHours (metodo Date.getUTCHours) . . . . . . . . . . . . . . . . . . 504 getUTCMilliseconds (metodo Date.getUTCMilliseconds) . . . . . . 505 getUTCMinutes (metodo Date.getUTCMinutes) . . . . . . . . . . . . . . 505 getUTCMonth (metodo Date.getUTCMonth) . . . . . . . . . . . . . . . . . 506 getUTCSeconds (metodo Date.getUTCSeconds) . . . . . . . . . . . . 506 getUTCYear (metodo Date.getUTCYear) . . . . . . . . . . . . . . . . . . . . 507 getYear (metodo Date.getYear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 setDate (metodo Date.setDate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 setFullYear (metodo Date.setFullYear) . . . . . . . . . . . . . . . . . . . . . . 509 setHours (metodo Date.setHours). . . . . . . . . . . . . . . . . . . . . . . . . . . .510 setMilliseconds (metodo Date.setMilliseconds) . . . . . . . . . . . . . . . .510 setMinutes (metodo Date.setMinutes) . . . . . . . . . . . . . . . . . . . . . . . . 511 setMonth (metodo Date.setMonth) . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 setSeconds (metodo Date.setSeconds) . . . . . . . . . . . . . . . . . . . . . .512 setTime (metodo Date.setTime). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513 setUTCDate (metodo Date.setUTCDate) . . . . . . . . . . . . . . . . . . . . .513 setUTCFullYear (metodo Date.setUTCFullYear) . . . . . . . . . . . . . . .514 setUTCHours (metodo Date.setUTCHours) . . . . . . . . . . . . . . . . . . .515 setUTCMilliseconds (metodo Date.setUTCMilliseconds) . . . . . . .516 setUTCMinutes (metodo Date.setUTCMinutes). . . . . . . . . . . . . . . . 517 setUTCMonth (metodo Date.setUTCMonth) . . . . . . . . . . . . . . . . . . 517 setUTCSeconds (metodo Date.setUTCSeconds) . . . . . . . . . . . . . .518 setYear (metodo Date.setYear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519 toString (metodo Date.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 UTC (metodo Date.UTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 valueOf (metodo Date.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521 DisplacementMapFilter (flash.filters.DisplacementMapFilter). . . . . .521 alfa (propriet DisplacementMapFilter.alpha). . . . . . . . . . . . . . . . . 524 clone (metodo DisplacementMapFilter.clone) . . . . . . . . . . . . . . . . 526 colore (propriet DisplacementMapFilter.color). . . . . . . . . . . . . . . 529 componentX (DisplacementMapFilter.componentX property) . . .531 componentY (propriet DisplacementMapFilter.componentY) . 532 DisplacementMapFilter, funzione di costruzione . . . . . . . . . . . . . . 534 mapBitmap (propriet DisplacementMapFilter.mapBitmap) . . . 537 mapPoint (propriet DisplacementMapFilter.mapPoint) . . . . . . . 538 modalit (propriet DisplacementMapFilter.mode) . . . . . . . . . . . . 540 scaleX (propriet DisplacementMapFilter.scaleX). . . . . . . . . . . . . 542

Indice

13

scaleY (propriet DisplacementMapFilter.scaleY) . . . . . . . . . . . . 544 DropShadowFilter (flash.filters.DropShadowFilter) . . . . . . . . . . . . . 545 alfa (propriet DropShadowFilter.alpha) . . . . . . . . . . . . . . . . . . . . . .548 angolo (propriet DropShadowFilter.angle) . . . . . . . . . . . . . . . . . . 549 blurX (propriet DropShadowFilter.blurX) . . . . . . . . . . . . . . . . . . . 550 blurY (propriet DropShadowFilter.blurY) . . . . . . . . . . . . . . . . . . . . 551 clonazione (metodo DropShadowFilter.clone) . . . . . . . . . . . . . . . .552 colore (propriet DropShadowFilter.color) . . . . . . . . . . . . . . . . . . . .553 distanza (propriet DropShadowFilter.distance). . . . . . . . . . . . . . 554 DropShadowFilter, funzione di costruzione . . . . . . . . . . . . . . . . . . 555 hideObject (propriet DropShadowFilter.hideObject) . . . . . . . . . .557 interno (propriet DropShadowFilter.inner) . . . . . . . . . . . . . . . . . . .558 foratura (propriet DropShadowFilter.knockout) . . . . . . . . . . . . . 559 qualit (propriet DropShadowFilter.quality) . . . . . . . . . . . . . . . . . 560 intensit (propriet DropShadowFilter.strength) . . . . . . . . . . . . . . . 561 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .562 Error, funzione di costruzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .563 messaggio (propriet Error.message) . . . . . . . . . . . . . . . . . . . . . . . .564 nome (propriet Error.name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .565 toString (metodo Error.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566 ExternalInterface (flash.external.ExternalInterface). . . . . . . . . . . . . . .566 addCallback (metodo ExternalInterface.addCallback) . . . . . . . . . .568 disponibile (propriet ExternalInterface.available) . . . . . . . . . . . . .570 chiamata (metodo ExternalInterface.call) . . . . . . . . . . . . . . . . . . . . . 571 FileReference (flash.net.FileReference) . . . . . . . . . . . . . . . . . . . . . . . . 573 addListener (metodo FileReference.addListener) . . . . . . . . . . . . . 578 sfoglia (metodo FileReference.browse). . . . . . . . . . . . . . . . . . . . . . . 578 annulla (metodo FileReference.cancel) . . . . . . . . . . . . . . . . . . . . . . . 581 creationDate (propriet FileReference.creationDate) . . . . . . . . . . 581 creatore (propriet FileReference.creator) . . . . . . . . . . . . . . . . . . . .582 scaricamento (metodo FileReference.download) . . . . . . . . . . . . . .583 FileReference, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . .586 modificationDate (propriet FileReference.modificationDate) . . 587 nome (propriet FileReference.name) . . . . . . . . . . . . . . . . . . . . . . . .588 onCancel (listener di eventi FileReference.onCancel) . . . . . . . . . .588 onHTTPError (listener di eventi FileReference.onHTTPError) . 590 onIOError (listener di eventi FileReference.onIOError) . . . . . . . . . 591 onOpen (listener di eventi FileReference.onOpen) . . . . . . . . . . . . 593 onProgress (listener di eventi FileReference.onProgress) . . . . . 593 onSecurityError (listener di eventi FileReference.onSecurityError) . . 595 onSelect (listener di eventi FileReference.onSelect) . . . . . . . . . . 596 removeListener (metodo FileReference.removeListener) . . . . . .597 dimensioni (propriet FileReference.size). . . . . . . . . . . . . . . . . . . . .598 tipo (propriet FileReference.type) . . . . . . . . . . . . . . . . . . . . . . . . . . .598

14

Indice

caricamento (metodo FileReference.upload) . . . . . . . . . . . . . . . . . 599 FileReferenceList (flash.net.FileReferenceList) . . . . . . . . . . . . . . . . . 603 addListener (metodo FileReferenceList.addListener) . . . . . . . . . 606 sfoglia (metodo FileReferenceList.browse). . . . . . . . . . . . . . . . . . . 607 fileList (propriet FileReferenceList.fileList) . . . . . . . . . . . . . . . . . . 609 FileReferenceList, funzione di costruzione . . . . . . . . . . . . . . . . . . . .610 onCancel (listener di eventi FileReferenceList.onCancel) . . . . . . . 611 onSelect (listener di eventi FileReferenceList.onSelect) . . . . . . . .612 removeListener (metodo FileReferenceList.removeListener) . . .613 Funzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .614 applica (metodo Function.apply) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .615 chiama (metodo Function.call) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .616 GlowFilter (flash.filters.GlowFilter) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .618 alfa (propriet GlowFilter.alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620 blurX (propriet GlowFilter.blurX). . . . . . . . . . . . . . . . . . . . . . . . . . . . .621 blurY (propriet GlowFilter.blurY) . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 clonazione (metodo GlowFilter.clone) . . . . . . . . . . . . . . . . . . . . . . . 623 colore (propriet GlowFilter.color) . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 GlowFilter, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . 625 interno (propriet GlowFilter.inner) . . . . . . . . . . . . . . . . . . . . . . . . . . 627 foratura (propriet GlowFilter.knockout) . . . . . . . . . . . . . . . . . . . . . 628 qualit (propriet GlowFilter.quality) . . . . . . . . . . . . . . . . . . . . . . . . . 629 intensit (propriet GlowFilter.strength) . . . . . . . . . . . . . . . . . . . . . . 630 GradientBevelFilter (flash.filters.GradientBevelFilter) . . . . . . . . . . . . .631 alfa (propriet GradientBevelFilter.alphas) . . . . . . . . . . . . . . . . . . . 634 angolo (propriet GradientBevelFilter.angle) . . . . . . . . . . . . . . . . . 635 blurX (propriet GradientBevelFilter.blurX) . . . . . . . . . . . . . . . . . . . 636 blurY (propriet GradientBevelFilter.blurY) . . . . . . . . . . . . . . . . . . . 637 clonazione (metodo GradientBevelFilter.clone) . . . . . . . . . . . . . . . 638 colori (propriet GradientBevelFilter.colors) . . . . . . . . . . . . . . . . . . 639 distanza (propriet GradientBevelFilter.distance) . . . . . . . . . . . . . 640 GradientBevelFilter, funzione di costruzione. . . . . . . . . . . . . . . . . . .641 foratura (propriet GradientBevelFilter.knockout) . . . . . . . . . . . . . 643 qualit (propriet GradientBevelFilter.quality) . . . . . . . . . . . . . . . . 644 rapporti (propriet GradientBevelFilter.ratios) . . . . . . . . . . . . . . . . 645 intensit (propriet GradientBevelFilter.strength) . . . . . . . . . . . . . 648 tipo (propriet GradientBevelFilter.type) . . . . . . . . . . . . . . . . . . . . . 649 GradientGlowFilter (flash.filters.GradientGlowFilter) . . . . . . . . . . . . . 650 alfa (propriet GradientGlowFilter.alphas) . . . . . . . . . . . . . . . . . . . . 653 angolo (propriet GradientGlowFilter.angle) . . . . . . . . . . . . . . . . . . 654 blurX (propriet GradientGlowFilter.blurX). . . . . . . . . . . . . . . . . . . . 655 blurY (propriet GradientGlowFilter.blurY) . . . . . . . . . . . . . . . . . . . 656 clonazione (metodo GradientGlowFilter.clone) . . . . . . . . . . . . . . . 657 colori (propriet GradientGlowFilter.colors) . . . . . . . . . . . . . . . . . . 659 distanza (propriet GradientGlowFilter.distance). . . . . . . . . . . . . . 660

Indice

15

GradientGlowFilter, funzione di costruzione. . . . . . . . . . . . . . . . . . . 661 foratura (propriet GradientGlowFilter.knockout) . . . . . . . . . . . . . .663 qualit (propriet GradientGlowFilter.quality). . . . . . . . . . . . . . . . . .664 rapporti (propriet GradientGlowFilter.ratios) . . . . . . . . . . . . . . . . .666 intensit (propriet GradientGlowFilter.strength) . . . . . . . . . . . . . .669 tipo (propriet GradientGlowFilter.type property) . . . . . . . . . . . . . .670 IME (System.IME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 addListener (metodo IME.addListener). . . . . . . . . . . . . . . . . . . . . . . 674 ALPHANUMERIC_FULL (propriet IME.ALPHANUMERIC_FULL). 675 ALPHANUMERIC_HALF (propriet IME.ALPHANUMERIC_HALF) 676 CHINESE (propriet IME.CHINESE) . . . . . . . . . . . . . . . . . . . . . . . . . 677 doConversion (metodo IME.doConversion) . . . . . . . . . . . . . . . . . . . 677 getConversionMode (metodo IME.getConversionMode) . . . . . . . 678 getEnabled (metodo IME.getEnabled). . . . . . . . . . . . . . . . . . . . . . . .679 JAPANESE_HIRAGANA (propriet IME.JAPANESE_HIRAGANA) . 679 JAPANESE_KATAKANA_FULL (propriet IME.JAPANESE_KATAKANA_FULL) . . . . . . . . . . . . . . . . . . . . 680 JAPANESE_KATAKANA_HALF (propriet IME.JAPANESE_KATAKANA_HALF) . . . . . . . . . . . . . . . . . . . . . 681 KOREAN (propriet IME.KOREAN) . . . . . . . . . . . . . . . . . . . . . . . . . 681 onIMEComposition (listener di eventi IME.onIMEComposition) .682 removeListener (metodo IME.removeListener) . . . . . . . . . . . . . . . .683 setCompositionString (metodo IME.setCompositionString) . . . .684 setConversionMode (metodo IME.setConversionMode) . . . . . . .685 setEnabled (metodo IME.setEnabled) . . . . . . . . . . . . . . . . . . . . . . . .686 UNKNOWN (propriet IME.UNKNOWN). . . . . . . . . . . . . . . . . . . . . 687 Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 addListener (metodo Key.addListener) . . . . . . . . . . . . . . . . . . . . . . 690 BACKSPACE (propriet Key.BACKSPACE) . . . . . . . . . . . . . . . . . 691 CAPSLOCK (propriet Key.CAPSLOCK) . . . . . . . . . . . . . . . . . . . . 691 CONTROL (propriet Key.CONTROL) . . . . . . . . . . . . . . . . . . . . . . .692 DELETEKEY (propriet Key.DELETEKEY) . . . . . . . . . . . . . . . . . .693 DOWN (propriet Key.DOWN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 END (propriet Key.END). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 ENTER (propriet Key.ENTER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695 ESCAPE (propriet Key.ESCAPE) . . . . . . . . . . . . . . . . . . . . . . . . . .696 getAscii (metodo Key.getAscii) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .696 getCode (metodo Key.getCode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .697 HOME (propriet Key.HOME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 INSERT (propriet Key.INSERT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 isAccessible (metodo Key.isAccessible) . . . . . . . . . . . . . . . . . . . . . .700 isDown (metodo Key.isDown) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .700

16

Indice

isToggled (metodo Key.isToggled) . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 LEFT (propriet Key.LEFT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 _listeners (propriet Key._listeners) . . . . . . . . . . . . . . . . . . . . . . . . . . 703 onKeyDown (listener di eventi Key.onKeyDown). . . . . . . . . . . . . . 704 onKeyUp (listener di eventi Key.onKeyUp) . . . . . . . . . . . . . . . . . . . 705 PGDN (propriet Key.PGDN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705 PGUP (propriet Key.PGUP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706 removeListener (metodo Key.removeListener) . . . . . . . . . . . . . . . 706 RIGHT (propriet Key.RIGHT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707 SHIFT (propriet Key.SHIFT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708 SPACE (propriet Key.SPACE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708 TAB (propriet Key.TAB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709 UP (propriet Key.UP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710 LoadVars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 addRequestHeader (metodo LoadVars.addRequestHeader). . . . 713 contentType (propriet LoadVars.contentType) . . . . . . . . . . . . . . . 714 decode (metodo LoadVars.decode) . . . . . . . . . . . . . . . . . . . . . . . . . . 715 getBytesLoaded (metodo LoadVars.getBytesLoaded) . . . . . . . . . 716 getBytesTotal (metodo LoadVars.getBytesTotal) . . . . . . . . . . . . . . 717 load (metodo LoadVars.load) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 loaded (propriet LoadVars.loaded) . . . . . . . . . . . . . . . . . . . . . . . . . 720 Funzione di costruzione LoadVars . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 onData (gestore LoadVars.onData) . . . . . . . . . . . . . . . . . . . . . . . . . . 721 onHTTPStatus (gestore LoadVars.onHTTPStatus) . . . . . . . . . . . 722 onLoad (gestore LoadVars.onLoad). . . . . . . . . . . . . . . . . . . . . . . . . 724 send (metodo LoadVars.send) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 sendAndLoad (metodo LoadVars.sendAndLoad). . . . . . . . . . . . . 727 toString (metodo LoadVars.toString) . . . . . . . . . . . . . . . . . . . . . . . . 729 LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 allowDomain (gestore LocalConnection.allowDomain) . . . . . . . . 732 allowInsecureDomain (gestore LocalConnection.allowInsecureDomain). . . . . . . . . . . . . . . . . . . 736 close (metodo LocalConnection.close) . . . . . . . . . . . . . . . . . . . . . . 737 connect (metodo LocalConnection.connect) . . . . . . . . . . . . . . . . . 738 domain (metodo LocalConnection.domain) . . . . . . . . . . . . . . . . . . . 741 Funzione di costruzione LocalConnection. . . . . . . . . . . . . . . . . . . . 744 send (metodo LocalConnection.send) . . . . . . . . . . . . . . . . . . . . . . . 746 Locale (mx.lang.Locale) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749 addDelayedInstance (metodo Locale.addDelayedInstance). . . . . 751 addXMLPath (metodo Locale.addXMLPath) . . . . . . . . . . . . . . . . . 752 autoReplace (propriet Locale.autoReplace) . . . . . . . . . . . . . . . . . 753 checkXMLStatus (metodo Locale.checkXMLStatus) . . . . . . . . . 754 getDefaultLang (metodo Locale.getDefaultLang). . . . . . . . . . . . . 754 initialize (metodo Locale.initialize) . . . . . . . . . . . . . . . . . . . . . . . . . . . 755 languageCodeArray (propriet Locale.languageCodeArray) . . . 756

Indice

17

loadLanguageXML (metodo Locale.loadLanguageXML) . . . . . . 757 loadString (metodo Locale.loadString) . . . . . . . . . . . . . . . . . . . . . . . 758 loadStringEx (metodo Locale.loadStringEx) . . . . . . . . . . . . . . . . . .759 setDefaultLang (metodo Locale.setDefaultLang). . . . . . . . . . . . . .760 setLoadCallback (metodo Locale.setLoadCallback) . . . . . . . . . . . 761 setString (metodo Locale.setString) . . . . . . . . . . . . . . . . . . . . . . . . . 761 stringIDArray (propriet Locale.stringIDArray) . . . . . . . . . . . . . . . . 762 Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 abs (metodo Math.abs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 acos (metodo Math.acos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 asin (metodo Math.asin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767 atan (metodo Math.atan). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768 atan2 (metodo Math.atan2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768 ceil (metodo Math.ceil) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .769 cos (metodo Math.cos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .769 E (propriet Math.E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770 exp (metodo Math.exp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 floor (metodo Math.floor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 LN10 (propriet Math.LN10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772 LN2 (propriet Math.LN2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772 log (metodo Math.log) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772 LOG10E (propriet Math.LOG10E) . . . . . . . . . . . . . . . . . . . . . . . . . . 773 LOG2E (propriet Math.LOG2E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773 max (metodo Math.max) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 min (metodo Math.min) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 PI (propriet Math.PI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775 pow (metodo Math.pow) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776 random (metodo Math.random). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 round (metodo Math.round) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 sin (metodo Math.sin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778 sqrt (metodo Math.sqrt). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779 SQRT1_2 (propriet Math.SQRT1_2) . . . . . . . . . . . . . . . . . . . . . . . . .780 SQRT2 (propriet Math.SQRT2) . . . . . . . . . . . . . . . . . . . . . . . . . . . .780 tan (metodo Math.tan) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 Matrix (flash.geom.Matrix). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782 a (propriet Matrix.a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 b (propriet Matrix.b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 c (propriet Matrix.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 clone (metodo Matrix.clone). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788 concat (metodo Matrix.concat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 createBox (metodo Matrix.createBox) . . . . . . . . . . . . . . . . . . . . . . .790 createGradientBox (metodo Matrix.createGradientBox) . . . . . . .792 d (propriet Matrix.d) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .793 deltaTransformPoint (metodo Matrix.deltaTransformPoint). . . . .793 identity (metodo Matrix.identity) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .795

18

Indice

invert (metodo Matrix.invert) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 Matrix, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797 rotate (metodo Matrix.rotate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 scale (metodo Matrix.scale). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .801 toString (metodo Matrix.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . . 802 transformPoint (metodo Matrix.transformPoint) . . . . . . . . . . . . . . 802 translate (metodo Matrix.translate) . . . . . . . . . . . . . . . . . . . . . . . . . . 803 tx (propriet Matrix.tx). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 ty (propriet Matrix.ty). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 Microphone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 activityLevel (propriet Microphone.activityLevel) . . . . . . . . . . . . 808 gain (propriet Microphone.gain) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 get (metodo Microphone.get) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 index (propriet Microphone.index). . . . . . . . . . . . . . . . . . . . . . . . . . .812 muted (propriet Microphone.muted) . . . . . . . . . . . . . . . . . . . . . . . . .813 name (propriet Microphone.name) . . . . . . . . . . . . . . . . . . . . . . . . . .813 names (propriet Microphone.names) . . . . . . . . . . . . . . . . . . . . . . . .814 onActivity (gestore Microphone.onActivity) . . . . . . . . . . . . . . . . . . .815 onStatus (gestore Microphone.onStatus) . . . . . . . . . . . . . . . . . . . . .816 rate (propriet Microphone.rate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817 setGain (metodo Microphone.setGain). . . . . . . . . . . . . . . . . . . . . . . . 818 setRate (metodo Microphone.setRate) . . . . . . . . . . . . . . . . . . . . . . 820 setSilenceLevel (metodo Microphone.setSilenceLevel) . . . . . . . .821 setUseEchoSuppression (metodo Microphone.setUseEchoSuppression) . . . . . . . . . . . . . . . . . . . . 823 silenceLevel (propriet Microphone.silenceLevel). . . . . . . . . . . . . 825 silenceTimeOut (propriet Microphone.silenceTimeOut). . . . . . . 826 useEchoSuppression (propriet Microphone.useEchoSuppression) 827 Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828 addListener (metodo Mouse.addListener) . . . . . . . . . . . . . . . . . . . 830 hide (metodo Mouse.hide) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .831 onMouseDown (listener di eventi Mouse.onMouseDown). . . . . . 832 onMouseMove (listener di eventi Mouse.onMouseMove) . . . . . . 833 onMouseUp (listener di eventi Mouse.onMouseUp) . . . . . . . . . . . 835 onMouseWheel (listener di eventi Mouse.onMouseWheel). . . . . 836 removeListener (metodo Mouse.removeListener). . . . . . . . . . . . . 838 show (metodo Mouse.show) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 _alpha (propriet MovieClip._alpha). . . . . . . . . . . . . . . . . . . . . . . . . . 850 attachAudio (metodo MovieClip.attachAudio) . . . . . . . . . . . . . . . . .851 attachBitmap (metodo MovieClip.attachBitmap). . . . . . . . . . . . . . 852 attachMovie (metodo MovieClip.attachMovie) . . . . . . . . . . . . . . . . 854 beginBitmapFill (metodo MovieClip.beginBitmapFill) . . . . . . . . . 855 beginFill (metodo MovieClip.beginFill) . . . . . . . . . . . . . . . . . . . . . . . 857

Indice

19

beginGradientFill (metodo MovieClip.beginGradientFill). . . . . . . .858 blendMode (propriet MovieClip.blendMode) . . . . . . . . . . . . . . . . .865 cacheAsBitmap (propriet MovieClip.cacheAsBitmap) . . . . . . . . 872 clear (metodo MovieClip.clear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip) . 875 createTextField (metodo MovieClip.createTextField) . . . . . . . . . . 876 _currentframe (propriet MovieClip._currentframe) . . . . . . . . . . . . 878 curveTo (metodo MovieClip.curveTo) . . . . . . . . . . . . . . . . . . . . . . . . 878 _droptarget (propriet MovieClip._droptarget) . . . . . . . . . . . . . . . . . 881 duplicateMovieClip (metodo MovieClip.duplicateMovieClip) . . . .882 enabled (propriet MovieClip.enabled) . . . . . . . . . . . . . . . . . . . . . . .884 endFill (metodo MovieClip.endFill) . . . . . . . . . . . . . . . . . . . . . . . . . . .884 filters (propriet MovieClip.filters) . . . . . . . . . . . . . . . . . . . . . . . . . . . .885 focusEnabled (propriet MovieClip.focusEnabled). . . . . . . . . . . . . 887 _focusrect (propriet MovieClip._focusrect) . . . . . . . . . . . . . . . . . . . 887 _framesloaded (propriet MovieClip._framesloaded) . . . . . . . . . . .889 getBounds (metodo MovieClip.getBounds) . . . . . . . . . . . . . . . . . . 890 getBytesLoaded (metodo MovieClip.getBytesLoaded) . . . . . . . . 891 getBytesTotal (metodo MovieClip.getBytesTotal) . . . . . . . . . . . . .892 getDepth (metodo MovieClip.getDepth) . . . . . . . . . . . . . . . . . . . . . .893 getInstanceAtDepth (metodo MovieClip.getInstanceAtDepth) . 894 getNextHighestDepth (metodo MovieClip.getNextHighestDepth). . . 895 getRect (metodo MovieClip.getRect) . . . . . . . . . . . . . . . . . . . . . . . .896 getSWFVersion (metodo MovieClip.getSWFVersion) . . . . . . . . .898 getTextSnapshot (metodo MovieClip.getTextSnapshot) . . . . . . 899 getURL (metodo MovieClip.getURL). . . . . . . . . . . . . . . . . . . . . . . . 900 globalToLocal (metodo MovieClip.globalToLocal) . . . . . . . . . . . . 902 gotoAndPlay (metodo MovieClip.gotoAndPlay) . . . . . . . . . . . . . . 904 gotoAndStop (metodo MovieClip.gotoAndStop) . . . . . . . . . . . . . 905 _height (propriet MovieClip._height). . . . . . . . . . . . . . . . . . . . . . . . 906 _highquality (propriet MovieClip._highquality) . . . . . . . . . . . . . . . .907 hitArea (propriet MovieClip.hitArea). . . . . . . . . . . . . . . . . . . . . . . . .907 hitTest (metodo MovieClip.hitTest). . . . . . . . . . . . . . . . . . . . . . . . . . 908 lineGradientStyle (metodo MovieClip.lineGradientStyle) . . . . . . 909 lineStyle (metodo MovieClip.lineStyle) . . . . . . . . . . . . . . . . . . . . . . . 913 lineTo (metodo MovieClip.lineTo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916 loadMovie (metodo MovieClip.loadMovie) . . . . . . . . . . . . . . . . . . . . 917 loadVariables (metodo MovieClip.loadVariables) . . . . . . . . . . . . . 920 localToGlobal (metodo MovieClip.localToGlobal). . . . . . . . . . . . . . 921 _lockroot (propriet MovieClip._lockroot) . . . . . . . . . . . . . . . . . . . . 924 menu (propriet MovieClip.menu). . . . . . . . . . . . . . . . . . . . . . . . . . . .927 moveTo (metodo MovieClip.moveTo) . . . . . . . . . . . . . . . . . . . . . . . .928 _name (propriet MovieClip._name) . . . . . . . . . . . . . . . . . . . . . . . . . .928 nextFrame (metodo MovieClip.nextFrame) . . . . . . . . . . . . . . . . . . 929

20

Indice

onData (gestore MovieClip.onData) . . . . . . . . . . . . . . . . . . . . . . . . . 930 onDragOut (gestore MovieClip.onDragOut) . . . . . . . . . . . . . . . . . . .931 onDragOver (gestore MovieClip.onDragOver) . . . . . . . . . . . . . . . . .931 onEnterFrame (gestore MovieClip.onEnterFrame) . . . . . . . . . . . . 932 onKeyDown (gestore MovieClip.onKeyDown) . . . . . . . . . . . . . . . . 932 onKeyUp (gestore MovieClip.onKeyUp) . . . . . . . . . . . . . . . . . . . . . 933 onKillFocus (gestore MovieClip.onKillFocus) . . . . . . . . . . . . . . . . . 934 onLoad (gestore MovieClip.onLoad) . . . . . . . . . . . . . . . . . . . . . . . . 935 onMouseDown (gestore MovieClip.onMouseDown) . . . . . . . . . . 936 onMouseMove (gestore MovieClip.onMouseMove) . . . . . . . . . . . 937 onMouseUp (gestore MovieClip.onMouseUp) . . . . . . . . . . . . . . . . 937 onPress (gestore MovieClip.onPress). . . . . . . . . . . . . . . . . . . . . . . . 937 onRelease (gestore MovieClip.onRelease) . . . . . . . . . . . . . . . . . . . 938 onReleaseOutside (gestore MovieClip.onReleaseOutside). . . . . 938 onRollOut (gestore MovieClip.onRollOut) . . . . . . . . . . . . . . . . . . . . 939 onRollOver (gestore MovieClip.onRollOver) . . . . . . . . . . . . . . . . . . 939 onSetFocus (gestore MovieClip.onSetFocus) . . . . . . . . . . . . . . . . 940 onUnload (gestore MovieClip.onUnload) . . . . . . . . . . . . . . . . . . . . . .941 opaqueBackground (propriet MovieClip.opaqueBackground). .941 _parent (propriet MovieClip._parent) . . . . . . . . . . . . . . . . . . . . . . . . 942 play (metodo MovieClip.play) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943 prevFrame (metodo MovieClip.prevFrame) . . . . . . . . . . . . . . . . . . 943 _quality (propriet MovieClip._quality). . . . . . . . . . . . . . . . . . . . . . . . 944 removeMovieClip (metodo MovieClip.removeMovieClip) . . . . . . 946 _rotation (propriet MovieClip._rotation) . . . . . . . . . . . . . . . . . . . . . 948 scale9Grid (propriet MovieClip.scale9Grid) . . . . . . . . . . . . . . . . . 949 scrollRect (propriet MovieClip.scrollRect) . . . . . . . . . . . . . . . . . . . 953 setMask (metodo MovieClip.setMask) . . . . . . . . . . . . . . . . . . . . . . . 954 _soundbuftime (propriet MovieClip._soundbuftime) . . . . . . . . . . 955 startDrag (metodo MovieClip.startDrag) . . . . . . . . . . . . . . . . . . . . . 956 stop (metodo MovieClip.stop). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957 stopDrag (metodo MovieClip.stopDrag) . . . . . . . . . . . . . . . . . . . . . 957 swapDepths (metodo MovieClip.swapDepths) . . . . . . . . . . . . . . . 958 tabChildren (propriet MovieClip.tabChildren) . . . . . . . . . . . . . . . . 959 tabEnabled (propriet MovieClip.tabEnabled) . . . . . . . . . . . . . . . . 960 tabIndex (propriet MovieClip.tabIndex) . . . . . . . . . . . . . . . . . . . . . .961 _target (propriet MovieClip._target) . . . . . . . . . . . . . . . . . . . . . . . . . 962 _totalframes (propriet MovieClip._totalframes) . . . . . . . . . . . . . . . 962 trackAsMenu (propriet MovieClip.trackAsMenu). . . . . . . . . . . . . 963 transform (propriet MovieClip.transform). . . . . . . . . . . . . . . . . . . . 964 unloadMovie (metodo MovieClip.unloadMovie) . . . . . . . . . . . . . . . 965 _url (propriet MovieClip._url) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966 useHandCursor (propriet MovieClip.useHandCursor) . . . . . . . . 967 _visible (propriet MovieClip._visible) . . . . . . . . . . . . . . . . . . . . . . . . 968 _width (propriet MovieClip._width). . . . . . . . . . . . . . . . . . . . . . . . . . 969 _x (propriet MovieClip._x). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970

Indice

21

_xmouse (propriet MovieClip._xmouse) . . . . . . . . . . . . . . . . . . . . . . 971 _xscale (propriet MovieClip._xscale). . . . . . . . . . . . . . . . . . . . . . . . . 971 _y (propriet MovieClip._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .973 _ymouse (propriet MovieClip._ymouse) . . . . . . . . . . . . . . . . . . . . . .974 _yscale (propriet MovieClip._yscale). . . . . . . . . . . . . . . . . . . . . . . . .974 MovieClipLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .976 addListener (metodo MovieClipLoader.addListener) . . . . . . . . . . 978 getProgress (metodo MovieClipLoader.getProgress) . . . . . . . . . .979 loadClip (metodo MovieClipLoader.loadClip) . . . . . . . . . . . . . . . . . 981 Funzione di costruzione MovieClipLoader . . . . . . . . . . . . . . . . . . . .983 onLoadComplete (listener di eventi MovieClipLoader.onLoadComplete) . . . . . . . . . . . . . . . . . . . . . . 984 onLoadError (listener di eventi MovieClipLoader.onLoadError) .986 onLoadInit (listener di eventi MovieClipLoader.onLoadInit) . . . . .988 onLoadProgress (listener di eventi MovieClipLoader.onLoadProgress). . . . . . . . . . . . . . . . . . . . . . . 989 onLoadStart (listener di eventi MovieClipLoader.onLoadStart) 990 removeListener (metodo MovieClipLoader.removeListener). . . 992 unloadClip (metodo MovieClipLoader.unloadClip) . . . . . . . . . . . . 993 NetConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994 connect (metodo NetConnection.connect) . . . . . . . . . . . . . . . . . . 995 Funzione di costruzione NetConnection . . . . . . . . . . . . . . . . . . . . . 996 NetStream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .997 bufferLength (propriet NetStream.bufferLength) . . . . . . . . . . . . 999 bufferTime (propriet NetStream.bufferTime) . . . . . . . . . . . . . . . .1000 bytesLoaded (propriet NetStream.bytesLoaded) . . . . . . . . . . . . 1001 bytesTotal (propriet NetStream.bytesTotal). . . . . . . . . . . . . . . . .1003 close (metodo NetStream.close). . . . . . . . . . . . . . . . . . . . . . . . . . . .1004 currentFps (propriet NetStream.currentFps) . . . . . . . . . . . . . . . .1005 Funzione di costruzione NetStream . . . . . . . . . . . . . . . . . . . . . . . . .1005 onStatus (gestore NetStream.onStatus). . . . . . . . . . . . . . . . . . . . . 1007 pause (metodo NetStream.pause) . . . . . . . . . . . . . . . . . . . . . . . . . .1009 play (metodo NetStream.play) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010 seek (metodo NetStream.seek). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011 setBufferTime (metodo NetStream.setBufferTime) . . . . . . . . . . . 1012 time (propriet NetStream.time) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013 Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014 MAX_VALUE (propriet Number.MAX_VALUE) . . . . . . . . . . . . . 1016 MIN_VALUE (propriet Number.MIN_VALUE) . . . . . . . . . . . . . . . 1016 NaN (propriet Number.NaN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 NEGATIVE_INFINITY (propriet Number.NEGATIVE_INFINITY) . . . 1017 Funzione di costruzione Number. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 POSITIVE_INFINITY (propriet Number.POSITIVE_INFINITY) 1018 toString (metodo Number.toString) . . . . . . . . . . . . . . . . . . . . . . . . . 1019

22

Indice

valueOf (metodo Number.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 Oggetto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 addProperty (metodo Object.addProperty). . . . . . . . . . . . . . . . . . . 1021 constructor (propriet Object.constructor) . . . . . . . . . . . . . . . . . . 1025 hasOwnProperty (metodo Object.hasOwnProperty) . . . . . . . . . 1025 isPropertyEnumerable (metodo Object.isPropertyEnumerable) 1026 isPrototypeOf (metodo Object.isPrototypeOf) . . . . . . . . . . . . . . . 1027 Funzione di costruzione Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 __proto__ (Oggetto.__proto__ propriet) . . . . . . . . . . . . . . . . . . . . . 1027 prototype (propriet Object.prototype). . . . . . . . . . . . . . . . . . . . . . 1028 registerClass (metodo Object.registerClass) . . . . . . . . . . . . . . . . . 1029 __resolve (Object.__resolve, propriet) . . . . . . . . . . . . . . . . . . . . . . . 1031 toString (metodo Object.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . 1034 unwatch (metodo Object.unwatch) . . . . . . . . . . . . . . . . . . . . . . . . . 1035 valueOf (metodo Object.valueOf) . . . . . . . . . . . . . . . . . . . . . . . . . . 1036 watch (metodo Object.watch). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037 Point (flash.geom.Point) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 add (metodo Point.add) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041 clone (metodo Point.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 distance (metodo Point.distance) . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 equals (metodo Point.equals) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043 interpolate (metodo Point.interpolate) . . . . . . . . . . . . . . . . . . . . . . 1044 length (propriet Point.length) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 normalize (metodo Point.normalize) . . . . . . . . . . . . . . . . . . . . . . . . 1045 offset (metodo Point.offset) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045 Funzione di costruzione Point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 polar (metodo Point.polar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047 subtract (metodo Point.subtract) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048 toString (metodo Point.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048 x (propriet Point.x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 y (propriet Point.y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 PrintJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 addPage (metodo PrintJob.addPage) . . . . . . . . . . . . . . . . . . . . . . . 1051 orientation (propriet PrintJob.orientation) . . . . . . . . . . . . . . . . . . 1056 pageHeight (propriet PrintJob.pageHeight) . . . . . . . . . . . . . . . . 1056 pageWidth (propriet PrintJob.pageWidth) . . . . . . . . . . . . . . . . . 1056 paperHeight (propriet PrintJob.paperHeight). . . . . . . . . . . . . . . 1056 paperWidth (propriet PrintJob.paperWidth) . . . . . . . . . . . . . . . . 1056 Funzione di costruzione PrintJob. . . . . . . . . . . . . . . . . . . . . . . . . . . 1057 send (metodo PrintJob.send) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058 start (metodo PrintJob.start) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059 Rectangle (flash.geom.Rectangle) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 bottom (propriet Rectangle.bottom) . . . . . . . . . . . . . . . . . . . . . . . 1064 bottomRight (propriet Rectangle.bottomRight) . . . . . . . . . . . . . 1065 clone (metodo Rectangle.clone) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066

Indice

23

contains (metodo Rectangle.contains) . . . . . . . . . . . . . . . . . . . . . . 1068 containsPoint (metodo Rectangle.containsPoint). . . . . . . . . . . . .1069 containsRectangle (metodo Rectangle.containsRectangle) . . . 1070 equals (metodo Rectangle.equals) . . . . . . . . . . . . . . . . . . . . . . . . . . 1070 height (propriet Rectangle.height) . . . . . . . . . . . . . . . . . . . . . . . . . 1072 inflate (metodo Rectangle.inflate) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072 inflatePoint (metodo Rectangle.inflatePoint) . . . . . . . . . . . . . . . . . 1073 intersection (metodo Rectangle.intersection) . . . . . . . . . . . . . . . . 1074 intersects (metodo Rectangle.intersects) . . . . . . . . . . . . . . . . . . . . 1075 isEmpty (metodo Rectangle.isEmpty) . . . . . . . . . . . . . . . . . . . . . . . 1076 left (propriet Rectangle.left) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077 offset (metodo Rectangle.offset) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 offsetPoint (metodo Rectangle.offsetPoint). . . . . . . . . . . . . . . . . . 1078 Funzione di costruzione Rectangle. . . . . . . . . . . . . . . . . . . . . . . . . . 1079 right (propriet Rectangle.right) . . . . . . . . . . . . . . . . . . . . . . . . . . . .1080 setEmpty (metodo Rectangle.setEmpty) . . . . . . . . . . . . . . . . . . . .1080 size (propriet Rectangle.size). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081 top (propriet Rectangle.top) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082 topLeft (propriet Rectangle.topLeft) . . . . . . . . . . . . . . . . . . . . . . . 1083 toString (metodo Rectangle.toString) . . . . . . . . . . . . . . . . . . . . . . .1084 union (metodo Rectangle.union) . . . . . . . . . . . . . . . . . . . . . . . . . . . .1084 width (propriet Rectangle.width) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085 x (propriet Rectangle.x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086 y (propriet Rectangle.y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087 security (System.security) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087 allowDomain (metodo security.allowDomain) . . . . . . . . . . . . . . . .1089 allowInsecureDomain (metodo security.allowInsecureDomain) 1094 loadPolicyFile (metodo security.loadPolicyFile) . . . . . . . . . . . . . .1098 sandboxType (propriet security.sandboxType) . . . . . . . . . . . . . . . 1101 Selezione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102 addListener (metodo Selection.addListener). . . . . . . . . . . . . . . . . 1103 getBeginIndex (metodo Selection.getBeginIndex). . . . . . . . . . . . 1104 getCaretIndex (metodo Selection.getCaretIndex). . . . . . . . . . . . . 1106 getEndIndex (metodo Selection.getEndIndex) . . . . . . . . . . . . . . . 1107 getFocus (metodo Selection.getFocus) . . . . . . . . . . . . . . . . . . . . . 1108 removeListener (metodo Selection.removeListener) . . . . . . . . . . . 1111 setFocus (metodo Selection.setFocus). . . . . . . . . . . . . . . . . . . . . . . 1112 setSelection (metodo Selection.setSelection). . . . . . . . . . . . . . . . . 1113 SharedObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114 clear (metodo SharedObject.clear). . . . . . . . . . . . . . . . . . . . . . . . . . . 1118 data (propriet SharedObject.data) . . . . . . . . . . . . . . . . . . . . . . . . . . 1118 flush (metodo SharedObject.flush) . . . . . . . . . . . . . . . . . . . . . . . . . . 1120 getLocal (metodo SharedObject.getLocal) . . . . . . . . . . . . . . . . . . 1122 getSize (metodo SharedObject.getSize) . . . . . . . . . . . . . . . . . . . . 1126 onStatus (gestore SharedObject.onStatus) . . . . . . . . . . . . . . . . . . .1127

24

Indice

Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129 attachSound (metodo Sound.attachSound) . . . . . . . . . . . . . . . . . . 1131 duration (propriet Sound.duration) . . . . . . . . . . . . . . . . . . . . . . . . . 1132 getBytesLoaded (metodo Sound.getBytesLoaded) . . . . . . . . . . . 1134 getBytesTotal (metodo Sound.getBytesTotal). . . . . . . . . . . . . . . . 1135 getPan (metodo Sound.getPan) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136 getTransform (metodo Sound.getTransform) . . . . . . . . . . . . . . . . . 1137 getVolume (metodo Sound.getVolume). . . . . . . . . . . . . . . . . . . . . . 1140 id3 (propriet Sound.id3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 loadSound (metodo Sound.loadSound). . . . . . . . . . . . . . . . . . . . . . 1143 onID3 (gestore Sound.onID3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145 onLoad (gestore Sound.onLoad). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146 onSoundComplete (gestore Sound.onSoundComplete) . . . . . . . 1147 position (propriet Sound.position) . . . . . . . . . . . . . . . . . . . . . . . . . . 1147 setPan (metodo Sound.setPan) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148 setTransform (metodo Sound.setTransform) . . . . . . . . . . . . . . . . . 1148 setVolume (metodo Sound.setVolume) . . . . . . . . . . . . . . . . . . . . . . 1151 Sound, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151 start (metodo Sound.start). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152 stop (metodo Sound.stop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153 Stage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154 addListener (metodo Stage.addListener) . . . . . . . . . . . . . . . . . . . . 1155 align (propriet Stage.align) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156 height (Stage.height, propriet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157 onResize (listener di eventi Stage.onResize) . . . . . . . . . . . . . . . . . 1158 removeListener (metodo Stage.removeListener) . . . . . . . . . . . . . 1158 scaleMode (propriet Stage.scaleMode) . . . . . . . . . . . . . . . . . . . . . 1159 showMenu (propriet Stage.showMenu) . . . . . . . . . . . . . . . . . . . . . 1161 width (propriet Stage.width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161 Stringa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162 charAt (metodo String.charAt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165 charCodeAt (metodo String.charCodeAt) . . . . . . . . . . . . . . . . . . . . 1165 concat (metodo String.concat). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166 fromCharCode (metodo String.fromCharCode) . . . . . . . . . . . . . . . 1167 indexOf (metodo String.indexOf) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167 lastIndexOf (metodo String.lastIndexOf) . . . . . . . . . . . . . . . . . . . . . 1168 length (propriet String.length). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169 slice (metodo String.slice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170 split (metodo String.split) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172 String, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 substr (metodo String.substr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 substring (metodo String.substring) . . . . . . . . . . . . . . . . . . . . . . . . . 1174 toLowerCase (metodo String.toLowerCase) . . . . . . . . . . . . . . . . . 1175 toString (metodo String.toString) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176 toUpperCase (metodo String.toUpperCase). . . . . . . . . . . . . . . . . . 1177

Indice

25

valueOf (metodo String.valueOf). . . . . . . . . . . . . . . . . . . . . . . . . . . . .1178 StyleSheet (TextField.StyleSheet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1178 clear (metodo StyleSheet.clear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182 getStyle (metodo StyleSheet.getStyle) . . . . . . . . . . . . . . . . . . . . . . 1183 getStyleNames (metodo StyleSheet.getStyleNames). . . . . . . . . 1185 load (metodo StyleSheet.load) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185 onLoad (gestore StyleSheet.onLoad) . . . . . . . . . . . . . . . . . . . . . . . 1186 parseCSS (metodo StyleSheet.parseCSS) . . . . . . . . . . . . . . . . . . .1187 setStyle (metodo StyleSheet.setStyle) . . . . . . . . . . . . . . . . . . . . . . 1188 StyleSheet, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . 1190 transform (metodo StyleSheet.transform) . . . . . . . . . . . . . . . . . . . . 1191 System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192 exactSettings (propriet System.exactSettings) . . . . . . . . . . . . . . 1193 onStatus (gestore System.onStatus) . . . . . . . . . . . . . . . . . . . . . . . . 1195 setClipboard (metodo System.setClipboard) . . . . . . . . . . . . . . . . . 1196 showSettings (metodo System.showSettings) . . . . . . . . . . . . . . . 1197 useCodepage (propriet System.useCodepage) . . . . . . . . . . . . . 1198 TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199 addListener (metodo TextField.addListener). . . . . . . . . . . . . . . . .1205 _alpha (propriet TextField._alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . 1207 antiAliasType (propriet TextField.antiAliasType). . . . . . . . . . . . . 1208 autoSize (propriet TextField.autoSize) . . . . . . . . . . . . . . . . . . . . .1209 background (propriet TextField.background) . . . . . . . . . . . . . . . . 1211 backgroundColor (TextField.backgroundColor property) . . . . . . 1212 border (propriet TextField.border) . . . . . . . . . . . . . . . . . . . . . . . . . 1212 borderColor (propriet' TextField.borderColor) . . . . . . . . . . . . . . . . 1213 bottomScroll (proprioet' TextField.bottomScroll) . . . . . . . . . . . . . 1213 condenseWhite (propriet TextField.condenseWhite) . . . . . . . . 1214 embedFonts (propriet TextField.embedFonts) . . . . . . . . . . . . . . 1215 filters (propriet TextField.filters) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216 getDepth (metodo TextField.getDepth) . . . . . . . . . . . . . . . . . . . . . 1218 getFontList (metodo TextField.getFontList) . . . . . . . . . . . . . . . . . 1219 getNewTextFormat (metodo TextField.getNewTextFormat). . . 1220 getTextFormat (metodo TextField.getTextFormat) . . . . . . . . . . . 1220 gridFitType (propriet TextField.gridFitType) . . . . . . . . . . . . . . . . 1222 _height (propriet TextField._height) . . . . . . . . . . . . . . . . . . . . . . . . 1224 _highquality (propriet TextField._highquality) . . . . . . . . . . . . . . . . 1224 hscroll (propriet TextField.hscroll) . . . . . . . . . . . . . . . . . . . . . . . . . 1225 html (propriet TextField.html). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226 htmlText (propriet TextField.htmlText) . . . . . . . . . . . . . . . . . . . . . 1226 length (propriet TextField.length) . . . . . . . . . . . . . . . . . . . . . . . . . . 1227 maxChars (propriet TextField.maxChars) . . . . . . . . . . . . . . . . . . . 1228 maxhscroll (propriet TextField.maxhscroll). . . . . . . . . . . . . . . . . . 1228 maxscroll (propriet TextField.maxscroll) . . . . . . . . . . . . . . . . . . . . 1229 menu (propriet TextField.menu) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229

26

Indice

mouseWheelEnabled (propriet TextField.mouseWheelEnabled) . . 1231 multiline (propriet TextField.multiline) . . . . . . . . . . . . . . . . . . . . . . 1232 _name (propriet TextField._name) . . . . . . . . . . . . . . . . . . . . . . . . . 1232 onChanged (gestore TextField.onChanged) . . . . . . . . . . . . . . . . . 1233 onKillFocus (gestore TextField.onKillFocus) . . . . . . . . . . . . . . . . 1234 onScroller (gestore TextField.onScroller) . . . . . . . . . . . . . . . . . . . 1234 onSetFocus (gestore TextField.onSetFocus). . . . . . . . . . . . . . . . 1236 _parent (propriet TextField._parent) . . . . . . . . . . . . . . . . . . . . . . . .1237 password (propriet TextField.password) . . . . . . . . . . . . . . . . . . . 1238 _quality (propriet TextField._quality) . . . . . . . . . . . . . . . . . . . . . . . 1239 removeListener (metodo TextField.removeListener) . . . . . . . . . 1240 removeTextField (metodo TextField.removeTextField) . . . . . . . . 1241 replaceSel (metodo TextField.replaceSel) . . . . . . . . . . . . . . . . . . . 1241 replaceText (metodo TextField.replaceText) . . . . . . . . . . . . . . . . 1243 restrict (propriet TextField.restrict) . . . . . . . . . . . . . . . . . . . . . . . . 1244 _rotation (propriet TextField._rotation) . . . . . . . . . . . . . . . . . . . . . 1245 scroll (propriet TextField.scroll) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246 selectable (propriet TextField.selectable) . . . . . . . . . . . . . . . . . . 1247 setNewTextFormat (metodo TextField.setNewTextFormat) . . 1248 setTextFormat (metodo TextField.setTextFormat) . . . . . . . . . . . 1249 sharpness (propriet TextField.sharpness) . . . . . . . . . . . . . . . . . . . 1251 _soundbuftime (propriet TextField._soundbuftime) . . . . . . . . . . 1252 styleSheet (propriet TextField.styleSheet) . . . . . . . . . . . . . . . . . 1253 tabEnabled (propriet TextField.tabEnabled) . . . . . . . . . . . . . . . . 1255 tabIndex (propriet TextField.tabIndex) . . . . . . . . . . . . . . . . . . . . . 1256 _target (propriet TextField._target) . . . . . . . . . . . . . . . . . . . . . . . . 1257 text (propriet TextField.text) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258 textColor (propriet TextField.textColor) . . . . . . . . . . . . . . . . . . . . 1259 textHeight (propriet TextField.textHeight) . . . . . . . . . . . . . . . . . . 1260 textWidth (propriet TextField.textWidth) . . . . . . . . . . . . . . . . . . . 1260 thickness (propriet TextField.thickness) . . . . . . . . . . . . . . . . . . . . 1261 type (propriet TextField.type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1262 _url (propriet TextField._url) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263 variable (propriet TextField.variable). . . . . . . . . . . . . . . . . . . . . . . 1263 _visible (propriet TextField._visible) . . . . . . . . . . . . . . . . . . . . . . . . 1264 _width (propriet TextField._width) . . . . . . . . . . . . . . . . . . . . . . . . . 1265 wordWrap (propriet TextField.wordWrap) . . . . . . . . . . . . . . . . . 1266 _x (propriet TextField._x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266 _xmouse (propriet TextField._xmouse) . . . . . . . . . . . . . . . . . . . . . .1267 _xscale (propriet TextField._xscale). . . . . . . . . . . . . . . . . . . . . . . . 1268 _y (propriet TextField._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269 _ymouse (propriet TextField._ymouse) . . . . . . . . . . . . . . . . . . . . . 1269 _yscale (propriet TextField._yscale). . . . . . . . . . . . . . . . . . . . . . . . 1270 TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270

Indice

27

align (propriet TextFormat.align). . . . . . . . . . . . . . . . . . . . . . . . . . . 1273 blockIndent (propriet TextFormat.blockIndent) . . . . . . . . . . . . . . 1274 bold (propriet TextFormat.bold) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 bullet (propriet TextFormat.bullet) . . . . . . . . . . . . . . . . . . . . . . . . . 1275 color (propriet TextFormat.color) . . . . . . . . . . . . . . . . . . . . . . . . . . 1275 font (propriet TextFormat.font) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276 getTextExtent (metodo TextFormat.getTextExtent) . . . . . . . . . . 1276 indent (propriet TextFormat.indent) . . . . . . . . . . . . . . . . . . . . . . . . 1279 italic (propriet TextFormat.italic) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1280 kerning (propriet TextFormat.kerning). . . . . . . . . . . . . . . . . . . . . . 1280 leading (propriet TextFormat.leading) . . . . . . . . . . . . . . . . . . . . . . 1282 leftMargin (propriet TextFormat.leftMargin). . . . . . . . . . . . . . . . . 1282 letterSpacing (propriet TextFormat.letterSpacing). . . . . . . . . . . 1283 rightMargin (propriet TextFormat.rightMargin) . . . . . . . . . . . . . . 1284 size (propriet TextFormat.size) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284 tabStops (propriet TextFormat.tabStops) . . . . . . . . . . . . . . . . . . 1285 target (propriet TextFormat.target). . . . . . . . . . . . . . . . . . . . . . . . . 1285 TextFormat, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . 1286 underline (propriet TextFormat.underline) . . . . . . . . . . . . . . . . . . 1288 url (propriet TextFormat.url) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288 TextRenderer (flash.text.TextRenderer) . . . . . . . . . . . . . . . . . . . . . . . 1289 maxLevel (propriet TextRenderer.maxLevel). . . . . . . . . . . . . . . . 1291 setAdvancedAntialiasingTable (metodo TextRenderer.setAdvancedAntialiasingTable) . . . . . . . . . . . . . 1291 TextSnapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294 findText (metodo TextSnapshot.findText) . . . . . . . . . . . . . . . . . . . 1296 getCount (metodo TextSnapshot.getCount) . . . . . . . . . . . . . . . . . 1297 getSelected (metodo TextSnapshot.getSelected) . . . . . . . . . . . . 1298 getSelectedText (metodo TextSnapshot.getSelectedText) . . . . 1299 getText (metodo TextSnapshot.getText) . . . . . . . . . . . . . . . . . . . .1300 getTextRunInfo (metodo TextSnapshot.getTextRunInfo). . . . . . 1301 hitTestTextNearPos (metodo TextSnapshot.hitTestTextNearPos) . . 1304 setSelectColor (metodo TextSnapshot.setSelectColor) . . . . . . .1305 setSelected (metodo TextSnapshot.setSelected) . . . . . . . . . . . . 1306 Transform (flash.geom.Transform) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308 colorTransform (propriet Transform.colorTransform) . . . . . . . .1309 concatenatedColorTransform (propriet Transform.concatenatedColorTransform) . . . . . . . . . . . . . . . . . 1310 concatenatedMatrix (propriet Transform.concatenatedMatrix) 1312 matrix (propriet Transform.matrix) . . . . . . . . . . . . . . . . . . . . . . . . . 1313 pixelBounds (propriet Transform.pixelBounds). . . . . . . . . . . . . . 1314 Funzione di costruzione Transform . . . . . . . . . . . . . . . . . . . . . . . . . 1315 Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316 _alpha (propriet Video._alpha) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319

28

Indice

attachVideo (metodo Video.attachVideo) . . . . . . . . . . . . . . . . . . . 1320 clear (metodo Video.clear). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 deblocking (propriet Video.deblocking) . . . . . . . . . . . . . . . . . . . . . 1321 _height (propriet Video._height) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323 height (propriet Video.height) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323 _name (propriet Video._name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324 _parent (propriet Video._parent). . . . . . . . . . . . . . . . . . . . . . . . . . . 1324 _rotation (propriet Video._rotation) . . . . . . . . . . . . . . . . . . . . . . . . 1325 smoothing (propriet Video.smoothing) . . . . . . . . . . . . . . . . . . . . . 1325 _visible (propriet Video._visible) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326 _width (propriet Video._width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326 width (propriet Video.width) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326 _x (propriet Video._x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1327 _xmouse (propriet Video._xmouse) . . . . . . . . . . . . . . . . . . . . . . . . .1327 _xscale (propriet Video._xscale) . . . . . . . . . . . . . . . . . . . . . . . . . . . .1327 _y (propriet Video._y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328 _ymouse (propriet Video._ymouse) . . . . . . . . . . . . . . . . . . . . . . . . 1328 _yscale (propriet Video._yscale) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328 XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329 addRequestHeader (metodo XML.addRequestHeader) . . . . . . 1333 contentType (propriet XML.contentType) . . . . . . . . . . . . . . . . . . 1334 createElement (metodo XML.createElement) . . . . . . . . . . . . . . . 1335 createTextNode (metodo XML.createTextNode) . . . . . . . . . . . . 1336 docTypeDecl (propriet XML.docTypeDecl) . . . . . . . . . . . . . . . . .1337 getBytesLoaded (metodo XML.getBytesLoaded) . . . . . . . . . . . 1338 getBytesTotal (metodo XML.getBytesTotal) . . . . . . . . . . . . . . . . 1339 idMap (propriet XML.idMap). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339 ignoreWhite (propriet XML.ignoreWhite) . . . . . . . . . . . . . . . . . . . 1341 load (metodo XML.load) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 loaded (propriet XML.loaded). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345 onHTTPStatus (gestore XML.onHTTPStatus). . . . . . . . . . . . . . . 1347 parseXML (metodo XML.parseXML) . . . . . . . . . . . . . . . . . . . . . . . 1350 send (metodo XML.send) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351 sendAndLoad (metodo XML.sendAndLoad) . . . . . . . . . . . . . . . . 1352 status (propriet XML.status) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354 XML, funzione di costruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356 xmlDecl (propriet XML.xmlDecl) . . . . . . . . . . . . . . . . . . . . . . . . . . 1357 XMLNode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1358 appendChild (metodo XMLNode.appendChild) . . . . . . . . . . . . . . . 1361 attributes (propriet XMLNode.attributes) . . . . . . . . . . . . . . . . . . . 1362 childNodes (propriet XMLNode.childNodes) . . . . . . . . . . . . . . . 1363 cloneNode (metodo XMLNode.cloneNode) . . . . . . . . . . . . . . . . . 1364 firstChild (propriet XMLNode.firstChild). . . . . . . . . . . . . . . . . . . . 1366 getNamespaceForPrefix (metodo XMLNode.getNamespaceForPrefix) . . . . . . . . . . . . . . . . . . . . . .1367

Indice

29

getPrefixForNamespace (metodo XMLNode.getPrefixForNamespace). . . . . . . . . . . . . . . . . . . . . . 1368 hasChildNodes (metodo XMLNode.hasChildNodes). . . . . . . . . . 1369 insertBefore (metodo XMLNode.insertBefore) . . . . . . . . . . . . . . . 1370 lastChild (propriet XMLNode.lastChild). . . . . . . . . . . . . . . . . . . . . .1371 localName (propriet XMLNode.localName) . . . . . . . . . . . . . . . . . 1372 namespaceURI (propriet XMLNode.namespaceURI) . . . . . . . . 1373 nextSibling (propriet XMLNode.nextSibling) . . . . . . . . . . . . . . . . 1375 nodeName (propriet XMLNode.nodeName) . . . . . . . . . . . . . . . . 1376 nodeType (propriet XMLNode.nodeType) . . . . . . . . . . . . . . . . . . 1377 nodeValue (propriet XMLNode.nodeValue) . . . . . . . . . . . . . . . . . 1379 parentNode (propriet XMLNode.). . . . . . . . . . . . . . . . . . . . . . . . . . 1380 prefix (propriet XMLNode.prefix) . . . . . . . . . . . . . . . . . . . . . . . . . . 1381 previousSibling (propriet XMLNode.previousSibling) . . . . . . . . 1382 removeNode (metodo XMLNode.removeNode) . . . . . . . . . . . . . . 1382 toString (metodo XMLNode.toString) . . . . . . . . . . . . . . . . . . . . . . . 1383 Funzione di costruzione XMLNode . . . . . . . . . . . . . . . . . . . . . . . . . 1384 XMLSocket. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386 close (metodo XMLSocket.close). . . . . . . . . . . . . . . . . . . . . . . . . . . 1388 connect (metodo XMLSocket.connect) . . . . . . . . . . . . . . . . . . . . . 1389 onClose (gestore XMLSocket.onClose) . . . . . . . . . . . . . . . . . . . . . 1391 onConnect (gestore XMLSocket.onConnect) . . . . . . . . . . . . . . . . 1391 onData (gestore XMLSocket.onData) . . . . . . . . . . . . . . . . . . . . . . . 1393 onXML (gestore XMLSocket.onXML). . . . . . . . . . . . . . . . . . . . . . . 1393 send (metodo XMLSocket.send) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394 Funzione di costruzione XMLSocket . . . . . . . . . . . . . . . . . . . . . . . . 1395 XMLUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395 accept (metodo XMLUI.accept) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397 cancel (metodo XMLUI.cancel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397 get (metodo XMLUI.get) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397 set (metodo XMLUI.set) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397 Capitolo 3: ActionScript obsoleto. . . . . . . . . . . . . . . . . . . . . . . .1399 Riepilogo delle classi obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399 Riepilogo delle funzioni obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399 Riepilogo delle propriet obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401 Riepilogo degli operatori obsoleti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401 Indice analitico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1403

30

Indice

CAPITOLO 1

Elementi del linguaggio ActionScript


Questa sezione fornisce informazioni sulla sintassi e sull'utilizzo; esempi di codice per le funzioni e le propriet globali (ossia per gli elementi che non appartengono a una classe ActionScript); direttive per il compilatore; e informazioni sulle costanti, gli operatori, le istruzioni e le parole chiave usate in ActionScript e definite nella bozza della specifica del linguaggio ECMAScript (ECMA-262) Edizione 4.

Direttive per il compilatore


Questa sezione contiene le direttive da includere nel file ActionScript per fare in modo che il compilatore preelabori determinate istruzioni. Non inserire un punto e virgola (;) alla fine della riga che contiene la direttiva. Riepilogo delle direttive per il compilatore
Direttiva
#endinitclip #include

Descrizione
Indica la fine di un blocco di azioni di inizializzazione. Comprende il contenuto del file specificato, come se i comandi del file facessero parte dello script di chiamata. Indica l'inizio di un blocco di azioni di inizializzazione.

#initclip

Direttiva #endinitclip
#endinitclip

Indica la fine di un blocco di azioni di inizializzazione. Non inserire un punto e virgola (;) alla fine della riga che contiene la direttiva #endinitclip. Disponibilit: Flash Player 6.0; ActionScript 1.0

31

Esempio
#initclip ...initialization actions go here... #endinitclip

Direttiva #include
#include "[path]filename.as":String

Comprende il contenuto del file specificato, come se i comandi del file facessero parte dello script di chiamata. La direttiva #include viene chiamata al momento della compilazione. Pertanto, se si apportano modifiche a un file esterno, necessario salvare il file e ricompilare gli eventuali file FLA che lo utilizzano. Se si utilizza il pulsante Controlla sintassi per uno script che contiene istruzioni #include, viene verificata anche la sintassi dei file inclusi. La direttiva #include pu essere utilizzata nei file FLA e nei file di script esterni, ma non nei file di classe ActionScript 2.0. possibile non specificare il percorso, indicare un percorso relativo o il percorso assoluto del file da includere. Se non si specifica il percorso, il file AS deve trovarsi in una delle seguenti posizioni:

La directory del file FLA. La stessa directory dello script che contiene l'istruzione #include. La directory Include globale, ovvero una delle seguenti: --Windows 2000 o Windows XP: C:\Documents and Settings\user \Impostazioni Locali \ Dati applicazione\Macromedia\Flash 8\language\Configuration\Include --Macintosh OS X: Disco rigido/Users/Library/Supporto applicazioni/Macromedia/Flash 8/language/Configuration/Include

La directory programma Flash 8\lingua\First Run\Include; un file salvato in questa posizione viene copiato nella directory globale Include al successivo avvio di Flash.

Per specificare un percorso relativo al file AS, utilizzare un solo punto (.) per indicare la directory corrente, due punti (..) per indicare una directory principale o il carattere barra (/) per indicare le sottodirectory. Consultare la seguente sezione di esempio.

32

Capitolo 1: Elementi del linguaggio ActionScript

Per specificare un percorso assoluto per il file AS, utilizzare il formato supportato dalla piattaforma in uso (Macintosh o Windows). Consultare la seguente sezione di esempio. (Questo uso non consigliato in quanto richiede che la struttura della directory sia uguale su tutti i computer utilizzati per compilare lo script.) Se si posizionano dei file nella directory First Run/Include o nella directory Include globale, eseguire il backup dei file. Nel caso in cui si rendesse necessario disinstallare e reinstallare Flash, possibile che queste directory vengano eliminate o sovrascritte. Non inserire un punto e virgola (;) alla fine della riga che contiene la direttiva #include. Disponibilit: Flash Player 4.0; ActionScript 1.0 Parametri
[path]filename.as:String

- filename.asIl nome file e il percorso opzionale dello script da aggiungere al pannello Azioni o allo script corrente; .as l'estensione file consigliata. Esempio Gli esempi seguenti mostrano i diversi modi di specificare un percorso che includa un file nello 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"

Direttive per il compilatore

33

Direttiva #initclip
#initclip [order:Number]

Indica l'inizio di un blocco di azioni di inizializzazione. Quando pi clip vengono inizializzati contemporaneamente, possibile utilizzare il parametro order per indicare l'inizializzazione che deve avvenire per prima. Le azioni di inizializzazione vengono eseguite al momento della definizione di un simbolo di clip filmato. Se il clip filmato un simbolo esportato, le azioni di inizializzazione vengono eseguite prima delle azioni presenti sul fotogramma 1 del file SWF. In caso contrario, vengono eseguite immediatamente prima delle azioni contenenti la prima istanza del simbolo di clip filmato associato. Le azioni di inizializzazione vengono eseguite una sola volta quando viene riprodotto il file SWF. Utilizzarle per le inizializzazioni singole, quali la definizione della classe e la registrazione. Non inserire un punto e virgola (;) alla fine della riga che contiene la direttiva #initclip. Disponibilit: Flash Player 6.0; ActionScript 1.0 Parametri [opzionale] - Un numero intero non negativo che specifica l'ordine di esecuzione dei blocchi del codice #initclip. Questo parametro opzionale. necessario specificare il valore usando un valore letterale intero (possono essere usati solo i valori decimali, non quelli esadecimali), non una variabile. Se si includono pi blocchi #initclip in un simbolo di clip filmato singolo, il compilatore usa l'ultimo valore order specificato nel simbolo di clip filmato per tutti i blocchi #initclip del simbolo.
order:Number

Esempio Nell'esempio seguente, il codice ActionScript viene posizionato nel fotogramma 1 all'interno di un'istanza di clip filmato. Un file di testo denominato variables.txt viene collocato nella stessa directory.
#initclip trace("initializing app"); var variables:LoadVars = new LoadVars(); variables.load("variables.txt"); variables.onLoad = function(success:Boolean) { trace("variables loaded:"+success);

34

Capitolo 1: Elementi del linguaggio ActionScript

if (success) { for (i in variables) { trace("variables."+i+" = "+variables[i]); } } }; #endinitclip

Costanti
Una costante una variabile utilizzata per rappresentare una propriet il cui valore non cambia mai. In questa sezione vengono descritte le costanti globali disponibili per tutti gli script. Riepilogo delle costanti
Modificatori Costante
false

Descrizione
Valore booleano univoco che rappresenta l'opposto di true. Indica il valore IEEE-754 che rappresenta l'infinito positivo. Indica il valore IEEE-754 che rappresenta l'infinito negativo. Variabile predefinita con il valore IEEE-754 per NaN (not a number). Inserisce un carattere di ritorno a capo (\r) che crea una riga vuota nel testo generato dal codice. Valore che pu essere assegnato a delle variabili o restituito da una funzione quando non vengono forniti dati. Valore booleano univoco che rappresenta l'opposto di false. Valore speciale, solitamente utilizzato per indicare che a una variabile non ancora stato assegnato un valore.

Infinity

-Infinity

NaN

newline

null

true

undefined

Costanti

35

Costante false
Valore booleano univoco che rappresenta l'opposto di true. Quando la tipizzazione automatica dei dati converte false in un numero, questo diventa 0; quando converte false in una stringa, questa diventa "false". Disponibilit: Flash Player 5; ActionScript 1.0 Esempio
false

Questo esempio mostra il modo in cui la tipizzazione automatica dei dati converte il valore in un numero o in una stringa:

var bool1:Boolean = Boolean(false); // converts it to the number 0 trace(1 + bool1); // outputs 1 // converts it to a string trace("String: " + bool1); // outputs String: false

Costante Infinity
Indica il valore IEEE-754 che rappresenta l'infinito positivo. Il valore di questa costante uguale a Number.POSITIVE_INFINITY. Disponibilit: Flash Player 5; ActionScript 1.0 Vedere anche
POSITIVE_INFINITY (propriet Number.POSITIVE_INFINITY)

-Costante Infinity
Indica il valore IEEE-754 che rappresenta l'infinito negativo. Il valore di questa costante uguale a Number.NEGATIVE_INFINITY. Disponibilit: Flash Player 5; ActionScript 1.0 Vedere anche
NEGATIVE_INFINITY (propriet Number.NEGATIVE_INFINITY)

36

Capitolo 1: Elementi del linguaggio ActionScript

Costante NaN
Una variabile predefinita con il valore IEEE-754 per NaN (not a number). Per determinare se un numero NaN, usare isNaN(). Disponibilit: Flash Player 5; ActionScript 1.0 Vedere anche
Funzione isNaN, NaN (propriet Number.NaN)

Costante newline
Inserisce un carattere di ritorno a capo (\r) che crea una riga vuota nel testo generato dal codice. Utilizzare newline per creare spazio per le informazioni recuperate da una funzione o istruzione del codice. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio L'esempio seguente mostra il modo in cui il carattere newline visualizza l'output dell'istruzione trace() su pi righe.
var myName:String = "Lisa", myAge:Number = 30; trace(myName+myAge); trace("-----"); trace(myName+newline+myAge); // output: Lisa30 ----Lisa 30

Vedere anche
Funzione trace

Costante null
Un valore che pu essere assegnato a delle variabili o restituito da una funzione quando non vengono forniti dati. Utilizzare null per rappresentare valori mancanti o che non presentano un tipo di dati definito. Disponibilit: Flash Player 5; ActionScript 1.0

Costanti

37

Esempio L'esempio seguente controlla i primi sei valori di un array di tipo indice e visualizza un messaggio se non stato impostato alcun valore (se il valore == 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"); } }

L'output il seguente:
testArray[2] == null testArray[3] == null testArray[5] == null

Costante true
Valore booleano univoco che rappresenta l'opposto di false. Quando la tipizzazione automatica dei dati converte true in un numero, questo diventa 1; quando converte true in una stringa, questa diventa "true". Disponibilit: Flash Player 5; ActionScript 1.0 Esempio L'esempio seguente mostra l'uso di true in un'istruzione 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"); }

38

Capitolo 1: Elementi del linguaggio ActionScript

L'esempio seguente mostra il modo in cui la tipizzazione automatica dei dati converte true nel numero 1:
var myNum:Number; myNum = 1 + true; trace(myNum); // output: 2

Vedere anche
Costante false, Boolean

Costante undefined
Un valore speciale, solitamente utilizzato per indicare che a una variabile non ancora stato assegnato un valore. Un riferimento a un valore non definito restituisce il valore speciale undefined. Il codice ActionScript typeof(undefined) restituisce la stringa "undefined". L'unico valore di tipo undefined undefined. Nei file pubblicati per Flash Player 6 o versione precedente, il valore di String(undefined) "" (una stringa vuota). Nei file pubblicati per Flash Player 7 o versione successiva, il valore di String(undefined) "undefined" (il valore undefined viene convertito in stringa). Nei file pubblicati per Flash Player 6 o versione precedente, il valore di Number(undefined)
0. Nei file pubblicati per Flash Player 7 o versione successiva, il valore di Number(undefined)

NaN. Il valore undefined simile al valore speciale null. Quando null e undefined vengono confrontati mediante l'operatore di uguaglianza (==), risultano uguali. Tuttavia, quando null e undefined vengono confrontati mediante l'operatore di uguaglianza rigorosa (===), non risultano uguali. Disponibilit: Flash Player 5; ActionScript 1.0 Esempio Nell'esempio seguente, la variabile x non stata dichiarata e pertanto il relativo valore
undefined.

Nella prima sezione del codice, l'operatore di uguaglianza (==) confronta il valore di x con il valore undefined, quindi il risultato appropriato viene inviato al pannello Output. Nella seconda sezione del codice, l'operatore di uguaglianza (==) confronta i valori null e
undefined. // x has not been declared trace("The value of x is "+x);

Costanti

39

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"); }

Il risultato seguente viene visualizzato nel pannello Output.


The value of x is undefined x is undefined typeof (x) is undefined null and undefined are equal

Funzioni globali
Questa sezione contiene una serie di funzioni incorporate disponibili in qualsiasi punto di un file SWF in cui viene utilizzato ActionScript. Queste funzioni globali coprono una vasta gamma di attivit di programmazione comuni quali le operazioni con tipi di dati (Boolean(), int() e cos via), la produzione di informazioni sul debug (trace()) e la comunicazione con Flash Player o con il browser (fscommand()). Riepilogo delle funzioni globali
Modificatori Firma
umber], [elementN:Object]) asfunction(function: Un protocollo speciale per gli URL nei campi di testo String, parameter:String)

Descrizione
elementi specificati.

Array([numElements:N Crea un nuovo array vuoto oppure converte in array gli

HTML che consente a un collegamento HREF di chiamare una funzione ActionScript. booleano e restituisce true o false. Sconsigliata a partire da Flash Player 5. Questa azione stata sostituita con l'istruzione function. Esegue lo script nel fotogramma chiamato senza spostare l'indicatore di riproduzione sul fotogramma.

Boolean(expression:O Converte il parametro expression in un valore bject) call(frame:Object)

40

Capitolo 1: Elementi del linguaggio ActionScript

Modificatori

Firma
chr(number:Number)

Descrizione
Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da String.fromCharCode(). Converte i numeri di codice ASCII in caratteri.

clearInterval(interv Arresta la chiamata setInterval(). alID:Number) duplicateMovieClip(t Crea un'istanza di un clip filmato durante la arget:Object, newname:String, depth:Number) escape(expression:St Converte il parametro in stringa e lo codifica in un ring)

riproduzione del file SWF.

formato URL in cui tutti i caratteri non alfanumerici vengono sostituiti con sequenze esadecimali %. base al nome. Player o il programma su cui Flash Player risiede (ad esempio, un browser Web). clip filmato my_mc. Restituisce il numero di millisecondi trascorsi dall'inizio della riproduzione del file SWF. Carica un documento da un URL specifico in una finestra, oppure trasmette le variabili a un'altra applicazione in un URL definito. Restituisce una stringa contenente le informazioni sulla versione di Flash Player e la piattaforma. specificato in una scena e avvia la riproduzione da quel fotogramma. specificato in una scena e lo arresta.

eval(expression:Obje Accede a variabili, propriet, oggetti e clip filmato in ct)

fscommand(command:St Consente la comunicazione tra il file SWF e Flash ring, parameters:String)

getProperty(my_mc:St Restituisce il valore della propriet specificata per il ring, property) getTimer()

getURL(url:String, [window:String], [method:String]) getVersion()

gotoAndPlay([scene:S Invia l'indicatore di riproduzione al fotogramma tring], frame:Object)

gotoAndStop([scene:S Invia l'indicatore di riproduzione al fotogramma tring], frame:Object) ifFrameLoaded([scene Sconsigliata a partire da Flash Player 5. Questa :String], frame:Object)

funzione stata eliminata. Macromedia consiglia di usare la propriet MovieClip._framesloaded. Verifica se il contenuto di un fotogramma specifico disponibile localmente.

Funzioni globali

41

Modificatori

Firma
int(value:Number)

Descrizione
Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da Math.round(). Converte un numero decimale in valore intero troncando il valore decimale. numero finito oppure false se si tratta di un valore infinito o infinito negativo. (not a number). funzione con le relative funzioni stringa stata eliminata. Macromedia consiglia di usare i metodi della classe String e la propriet String.length per eseguire le stesse operazioni. Restituisce la lunghezza della stringa o della variabile specificata. riproduzione del file SWF originale.

isFinite(expression: Valuta expression e restituisce true se si tratta di un Object)

isNaN(expression:Obj Valuta il parametro e restituisce true se il valore NaN ect)

length(expression:St Sconsigliata a partire da Flash Player 5. Questa ring, variable:Object)

loadMovie(url:String Carica un file SWF o JPEG in Flash Player durante la , target:Object, [method:String]) loadMovieNum(url:Str Carica un file SWF o JPEG in un livello di Flash Player ing, level:Number, [method:String])

durante la riproduzione del file SWF caricato originariamente.

loadVariables(url:St Legge i dati da un file esterno, ad esempio un file di ring, target:Object, testo o un testo generato da ColdFusion, uno script [method:String])

CGI, ASP (Active Server Pages), PHP o Perl, e imposta i valori delle variabili in un clip filmato target. testo o un testo generato da ColdFusion, uno script CGI, ASP (Active Server Pages), PHP o Perl, e imposta i valori delle variabili in un livello di Flash Player. funzione stata sostituita dal metodo String.fromCharCode(). Converte un numero di codice ASCII in un carattere multibyte.

loadVariablesNum(url Legge i dati da un file esterno, ad esempio un file di :String, level:Number, [method:String])

mbchr(number:Number) Sconsigliata a partire da Flash Player 5. Questa

42

Capitolo 1: Elementi del linguaggio ActionScript

Modificatori

Firma
ng)

Descrizione
funzione stata sostituita dai metodi e dalle propriet della classe String. Restituisce la lunghezza della stringa a caratteri multibyte. funzione stata sostituita da String.charCodeAt(). Converte il carattere specificato in un numero multibyte. funzione stata sostituita da String.substr(). Estrae una nuova stringa a caratteri multibyte da una stringa a caratteri multibyte. di Flash da ActionScript. Invia l'indicatore di riproduzione al fotogramma successivo. Invia l'indicatore di riproduzione al fotogramma 1 della scena successiva.

mblength(string:Stri Sconsigliata a partire da Flash Player 5. Questa

mbord(character:Stri Sconsigliata a partire da Flash Player 5. Questa ng)

mbsubstring(value:St Sconsigliata a partire da Flash Player 5. Questa ring, index:Number, count:Number)

MMExecute(command:St Consente di inviare i comandi API JavaScript (JSAPI) ring) nextFrame()

nextScene()

Number(expression:Ob Converte il parametro expression in un numero. ject) Object([value:Object Crea un nuovo oggetto vuoto o converte in oggetto il ])

numero, la stringa o il valore booleano specificati. un tasto che attiva un'azione. clip filmato. funzione stata sostituita dai metodi e dalle propriet della classe String. Converte i caratteri in numeri di codice ASCII.

on(mouseEvent:Object Specifica l'evento associato al mouse o la pressione di )

onClipEvent(movieEve Attiva le azioni definite per un'istanza specifica di un nt:Object)

ord(character:String Sconsigliata a partire da Flash Player 5. Questa )

parseFloat(string:St Converte una stringa in un numero a virgola mobile. ring) parseInt(expression: Converte una stringa in un numero intero. String, [radix:Number])

Funzioni globali

43

Modificatori

Firma
play()

Descrizione
Sposta l'indicatore di riproduzione pi avanti nella linea temporale. Invia l'indicatore di riproduzione al fotogramma precedente. Invia l'indicatore di riproduzione al fotogramma 1 della scena precedente. nel parametro (bmovie, bmax o bframe). in base ai limiti specificati nel parametro (bmovie, bmax o bframe). bitmap in base ai limiti specificati nel parametro (bmovie, bmax o bframe). specificati nel parametro boundingBox (bmovie, bmax, bframe). funzione stata sostituita da Math.random(). Restituisce un numero intero casuale compreso tra 0 e un valore inferiore al numero intero specificato nel parametro <code><em>value</em></code>&#160;.

prevFrame()

prevScene()

print(target:Object, Stampa il clip filmato target in base ai limiti specificati boundingBox:String)

printAsBitmap(target Stampa il clip filmato target come immagine bitmap :Object, boundingBox:String)

printAsBitmapNum(lev Stampa un livello di FlashPlayer come immagine el:Number, boundingBox:String)

printNum(level:Numbe Stampa il livello in Flash Player in base ai limiti r, boundingBox:String)

random(value:Number) Sconsigliata a partire da Flash Player 5. Questa

removeMovieClip(targ Elimina il clip filmato specificato. et:Object) setInterval(function Chiama una funzione, un metodo di un oggetto a Reference:Function, interval:Number, [param:Object], objectReference:Obje ct, methodName:String) setProperty(target:O Modifica un valore di propriet di un clip filmato bject, property:Object, expression:Object) showRedrawRegions(en Consente alla funzione di debug di Player di mostrare able:Boolean, [color:Number])

intervalli regolari durante la riproduzione di un file SWF.

durante la riproduzione del clip filmato.

le aree dello schermo da ricreare.

44

Capitolo 1: Elementi del linguaggio ActionScript

Modificatori

Firma

Descrizione

startDrag(target:Obj Rende trascinabile il clip filmato target durante la ect, [lock:Boolean], riproduzione del filmato. [left,top,right,bott om:Number]) stop() stopAllSounds()

Arresta il file SWF in corso di riproduzione. Interrompe tutti i suoni attualmente riprodotti in un file SWF senza arrestare l'indicatore di riproduzione. Interrompe l'operazione di trascinamento corrente. stringa del parametro specificato. funzione stata sostituita da String.substr(). Estrae parte di una stringa. movieClipObject. consiglia di usare la notazione del punto (.) e l'istruzione with. Applica le istruzioni specificate nel parametro statements alla linea temporale specificata nel parametro target. Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da _quality. Attiva e disattiva l'antialiasing in Flash Player.

stopDrag()

String(expression:Ob Restituisce una rappresentazione sotto forma di ject)

substring(string:Str Sconsigliata a partire da Flash Player 5. Questa ing, index:Number, count:Number)

targetPath(targetObj Restituisce una stringa contenente il percorso target di ect:Object)

tellTarget(target:St Sconsigliata a partire da Flash Player 5. Macromedia ring, statement(s))

toggleHighQuality()

trace(expression:Obj Valuta l'espressione e produce il risultato ect) unescape(string:Stri Valuta il parametro x come stringa, decodifica la ng)

stringa dal formato URL (convertendo tutte le sequenze esadecimali in caratteri ASCII) e restituisce la stringa. loadMovie() da Flash Player. loadMovieNum() mediante Flash Player. Aggiorna la visualizzazione quando viene chiamata all'interno di un gestore o mediante l'uso di setInterval().

unloadMovie(target:O Rimuove un clip filmato caricato mediante bject)

unloadMovieNum(level Rimuove un file SWF o un'immagine caricati da :Number) updateAfterEvent()

Funzioni globali

45

Funzione Array
Array() : Array Array(numElements:Number) : Array Array(element0:Object, [element1, element2, ...elementN]) : Array

Crea un nuovo array di lunghezza pari a 0 o a un valore superiore oppure un array compilato da un elenco di elementi specificati, possibilmente di tipi di dati diversi. Utilizzare Array() per creare:

Un array vuoto Un array di lunghezza specifica i cui elementi hanno valori non definiti Un array i cui elementi hanno valori specifici

L'uso di questa funzione simile alla creazione di un array mediante la funzione di costruzione di array (vedere "Funzione di costruzione per la classe Array"). possibile passare un numero (numElements) o un elenco di elementi contenente uno o pi tipi diversi (element0, element1, ... elementN). I parametri che possono accettare pi tipi di dati vengono indicati con il tipo Object. Disponibilit: Flash Player 6; ActionScript 1.0 Parametri
numElements:Number [opzionale] - Un numero intero positivo che specifica il numero di elementi nell'array. possibile specificare numElements o l'elenco di elementi, ma non entrambi. elementN:Object

[opzionale] - Uno o pi parametri, element0, element1, ... ,

elementN, i cui valori possono essere di qualunque tipo. I parametri che possono accettare pi

tipi di dati vengono indicati con il tipo Object. possibile specificare numElements o l'elenco di elementi, ma non entrambi. Valori restituiti
Array

- Un array.

Esempio
var myArray:Array = Array(); myArray.push(12); trace(myArray); //traces 12 myArray[4] = 7; trace(myArray); //traces 12,undefined,undefined,undefined,7

Uso 2: l'esempio seguente crea un array con lunghezza 4 ma senza elementi definiti:
var myArray:Array = Array(4);

46

Capitolo 1: Elementi del linguaggio ActionScript

trace(myArray.length); // traces 4 trace(myArray); // traces undefined,undefined,undefined,undefined

Uso 3: l'esempio seguente crea un array con tre elementi definiti:


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 .

Vedere anche
Array

Protocollo asfunction
asfunction:function:Function, parameter:String

Un protocollo speciale per gli URL nei campi di testo HTML che consente a un collegamento HREF di chiamare una funzione ActionScript. Nei campi di testo HTML, possibile creare dei collegamenti mediante il tag HTML A. L'attributo HREF del tag A contiene un URL che utilizza un protocollo standard come HTTP, HTTPS o FTP. Il protocollo asfunction un protocollo aggiuntivo specifico di Flash che fa in modo che il collegamento richiami una funzione ActionScript. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
function:String

- Un identificatore di una funzione. - Una stringa che viene passata alla funzione indicata dal parametro

parameter:String function.

Esempio Nell'esempio seguente viene definita la funzione playMP3(). Viene creato e impostato l'oggetto TextField list_txt per consentire di eseguire il rendering del testo HTML. I testi Track 1 e Track 2 sono collegamenti all'interno del campo di testo. La funzione playMP3() viene chiamata quando l'utente fa clic sul collegamento o riproduce il file MP3 che viene passato come parametro della chiamata ad 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 }

Funzioni globali

47

}; } 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>";

Quando si fa clic su un collegamento, il file audio MP3 viene riprodotto in streaming in Flash Player. Vedere anche
htmlText (propriet TextField.htmlText)

Funzione Boolean
Boolean(expression:Object) : Boolean

Converte il parametro expression in un valore booleano e restituisce un valore descritto nel seguente elenco:

Se expression un valore booleano, viene restituito il valore expression. Se expression un numero, il valore restituito true se il numero diverso da 0; false in caso contrario. Nei file pubblicati per Flash Player 6 e versioni precedenti, la stringa viene prima convertita in un numero. Il valore true se il numero diverso da 0; false in caso contrario. Nei file pubblicati per Flash Player 7 e versioni successive, il valore restituito true se la stringa ha una lunghezza superiore a 0; false se la stringa vuota.

Seexpression una stringa, viene restituito il seguente valore:

Se expression una stringa, il risultato true se la stringa ha una lunghezza superiore a 0; false se la stringa vuota.

Se expression undefined o NaN (not a number), il valore restituito false. Se expression un clip filmato o un oggetto, il valore restituito true.

48

Capitolo 1: Elementi del linguaggio ActionScript

A differenza della funzione di costruzione della classe Boolean, la funzione Boolean() non utilizza la parola chiave new. Inoltre, la funzione di costruzione della classe Boolean inizializza un oggetto booleano su false se non viene specificato alcun parametro, mentre la funzione Boolean() restituisce il valore undefined se non viene specificato alcun parametro. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
expression:Object

- Espressione che consente di convertire in un valore booleano.

Valori restituiti
Boolean

- Un valore booleano.

Esempio
trace(Boolean(-1)); // output: true trace(Boolean(0)); // output: false trace(Boolean(1)); // output: true

trace(Boolean(true)); // output: true trace(Boolean(false)); // output: false

trace(Boolean("true")); // output: true trace(Boolean("false")); // output: true trace(Boolean("Craiggers")); // output: true trace(Boolean("")); // output: false

Se i file sono pubblicati per Flash Player 6 e versione precedente, i risultati sono diversi per tre degli esempi precedenti:
trace(Boolean("true")); // output: false trace(Boolean("false")); // output: false trace(Boolean("Craiggers")); // output: false

Questo esempio mostra una differenza significativa tra l'uso della funzione Boolean() e quello della classe Boolean. La funzione Boolean() crea un valore booleano, mentre la classe Boolean crea un oggetto Boolean. I valori booleani vengono confrontati in base al valore, mentre gli oggetti Boolean vengono confrontati in base al riferimento.
// 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

Funzioni globali

49

// 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

Vedere anche
Boolean

Funzione call
call(frame)

Sconsigliata a partire da Flash Player 5. Questa azione stata sostituita con l'istruzione function. Esegue lo script nel fotogramma chiamato senza spostare l'indicatore di riproduzione sul fotogramma. Le variabili locali non sono presenti dopo l'esecuzione dello script.

Se non vengono dichiarate variabili all'interno di un blocco ({}), ma l'elenco delle azioni stato eseguito mediante un'azione call(), le variabili sono locali e scadono al termine dell'elenco corrente. Se non vengono dichiarate delle variabili all'interno di un blocco e l'elenco delle azioni corrente non stato eseguito mediante l'azione call(), le variabili vengono interpretate come variabili della linea temporale.

Disponibilit: Flash Player 4; ActionScript 1.0 Parametri


frame:Object

- L'etichetta o il numero di un fotogramma nella linea temporale.

Vedere anche
function, istruzione, chiama (metodo Function.call)

Funzione chr
chr(number:Number) : String

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da String.fromCharCode(). Converte i numeri di codice ASCII in caratteri. Disponibilit: Flash Player 4; ActionScript 1.0

50

Capitolo 1: Elementi del linguaggio ActionScript

Parametri
number:Number

- Un numero di codice ASCII.

Valori restituiti
String

- Il valore dei caratteri del codice ASCII specificato.

Esempio L'esempio seguente converte il numero 65 nella lettera A e la assegna alla variabile myVar:
myVar = chr(65);

Vedere anche
fromCharCode (metodo String.fromCharCode)

Funzione clearInterval
clearInterval(intervalID:Number) : Void

Arresta la chiamata setInterval(). Disponibilit: Flash Player 6; ActionScript 1.0 Parametri


intervalID:Number

- Un identificatore numerico (numero intero) restituito da una chiamata a setInterval().

Esempio L'esempio seguente imposta e successivamente cancella una chiamata a interval:


function callback() { trace("interval called: "+getTimer()+" ms."); } var intervalID:Number = setInterval(callback, 1000);

Al termine dell'utilizzo della funzione, necessario cancellare l'intervallo. Crea un pulsante di nome clearInt_btn e utilizzare il codice ActionScript per cancellare setInterval():
clearInt_btn.onRelease = function(){ clearInterval( intervalID ); trace("cleared interval"); };

Funzioni globali

51

Vedere anche
Funzione setInterval

Funzione duplicateMovieClip
duplicateMovieClip(target:String, newname:String, depth:Number) : Void duplicateMovieClip(target:MovieClip, newname:String, depth:Number) : Void

Crea un'istanza di un clip filmato durante la riproduzione del file SWF. L'indicatore di riproduzione nei clip filmato duplicati parte sempre dal fotogramma 1, indipendentemente dal punto in cui si trova l'indicatore nel clip filmato originale. Le variabili presenti nel clip filmato originale non vengono copiate nel clip filmato duplicato. Utilizzare la funzione o il metodo removeMovieClip() per eliminare un'istanza di clip filmato creata con duplicateMovieClip(). Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
target:Object

- Il percorso di destinazione del clip filmato da duplicare. Questo parametro pu essere una stringa (ad esempio, "my_mc") oppure un riferimento diretto all'istanza del clip filmato (ad esempio, my_mc). I parametri che possono accettare pi tipi di dati vengono indicati con il tipo Object. - Un identificatore univoco del clip filmato duplicato.

newname:String depth:Number

- Un livello di profondit univoco per il clip filmato duplicato. Il livello di profondit rappresenta l'ordine di impilamento dei clip filmato duplicati, simile all'ordine di impilamento dei livelli nella linea temporale: i clip filmato con un livello di profondit inferiore sono nascosti sotto i clip con un ordine di impilamento superiore. Per evitare che i file SWF nei livelli di profondit occupati vengano sostituiti, necessario assegnare a ciascun clip filmato duplicato un livello di profondit univoco. Esempio

Nell'esempio seguente viene creata un'istanza di un clip filmato chiamata img_mc. L'immagine viene caricata nel clip filmato, quindi il clip img_mc viene copiato. Il clip duplicato viene denominato newImg_mc e spostato sullo stage senza sovrapporlo al clip originale, quindi la stessa immagine viene caricata nel secondo 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");

52

Capitolo 1: Elementi del linguaggio ActionScript

Per rimuovere il clip filmato duplicato, possibile utilizzare il seguente codice per il pulsante myButton_btn.
this.myButton_btn.onRelease = function(){ removeMovieClip(newImg_mc); };

Vedere anche
Funzione removeMovieClip, duplicateMovieClip (metodo MovieClip.duplicateMovieClip), removeMovieClip (metodo MovieClip.removeMovieClip)

Funzione escape
escape(expression:String) : String

Converte il parametro in stringa e lo codifica in un formato URL in cui tutti i caratteri non alfanumerici vengono sostituiti con sequenze esadecimali %. Quando viene utilizzato in una stringa con formato di codifica URL, il simbolo della percentuale (%) introduce i caratteri escape e non equivale all'operatore modulo (%). Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
expression:String

- L'espressione che consente di convertire in stringa e codificare in

formato URL. Valori restituiti


String

- Stringa con codifica URL.

Esempio Il seguente codice produce il risultato someuser%40somedomain%2Ecom:


var email:String = "someuser@somedomain.com"; trace(escape(email));

In questo esempio, il simbolo @ stato sostituito con %40 e il simbolo del punto (.) stato sostituito con %2E. Si tratta di un metodo utile quando si tenta di passare delle informazioni a un server remoto e i dati contengono dei caratteri speciali (ad esempio, & o ?), come mostrato nel codice seguente:
var redirectUrl:String = "http:// www.somedomain.com?loggedin=true&username=Gus"; getURL("http://www.myothersite.com?returnurl="+ escape(redirectUrl));

Funzioni globali

53

Vedere anche
Funzione unescape

Funzione eval
eval(expression:Object) : Object eval(expression:String) : Object

Accede a variabili, propriet, oggetti e clip filmato in base al nome. Se l'espressione una variabile o una propriet, viene restituito il valore della variabile o della propriet. Se l'espressione un oggetto o un clip filmato, viene restituito un riferimento all'oggetto o al clip filmato. Se l'elemento nominato nell'espressione non viene trovato, viene restituito il valore undefined. In Flash 4, eval() era utilizzata per la simulazione degli array; in Flash 5 e versioni successive, la simulazione degli array deve essere eseguita mediante la classe Array. In Flash 4, anche possibile utilizzare eval() per impostare e recuperare in modo dinamico il valore di una variabile o il nome di un'istanza. La stessa operazione pu anche essere svolta mediante l'operatore di accesso agli array ([]). In Flash 5 o versioni successive, eval() non pu essere utilizzata per impostare e recuperare in modo dinamico il valore di una variabile o il nome di un'istanza, in quanto eval() non pu essere utilizzata a sinistra di un'equazione. Ad esempio, sostituire il codice
eval ("var" + i) = "first";

Con:
this["var"+i] = "first"

Oppure con:
set ("var" + i, "first");

Disponibilit: Flash Player 5; ActionScript 1.0 Parametri


expression:Object

- Il nome di una variabile, propriet, oggetto o clip filmato da recuperare. Questo parametro pu essere una stringa o un riferimento diretto all'istanza dell'oggetto (vale a dire, l'uso delle virgolette (" ") facoltativo). Valori restituiti

Object

- Un valore, riferimento a un oggetto o clip filmato, oppure undefined .

54

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente utilizza la funzione eval() per impostare le propriet dei clip filmato a cui viene assegnato un nome dinamicamente. Questo codice ActionScript imposta la propriet _rotation per tre clip filmato: square1_mc, square2_mc e square3_mc.
for (var i = 1; i <= 3; i++) { setProperty(eval("square"+i+"_mc"), _rotation, 5); }

possibile utilizzare il codice ActionScript seguente:


for (var i = 1; i <= 3; i++) { this["square"+i+"_mc"]._rotation = -5; }

Vedere anche
Array, set variable, istruzione

Funzione fscommand
fscommand(command:String, parameters:String) : Void

Consente la comunicazione tra il file SWF e Flash Player o il programma su cui Flash Player risiede (ad esempio, un browser Web). La funzione fscommand() pu anche essere utilizzata per trasmettere messaggi a Macromedia Director o a Visual Basic (VB), Visual C++ e ad altri programmi su cui possono risiedere i controlli ActiveX. La funzione fscommand() consente a un file SWF di comunicare con uno script in una pagina Web. Tuttavia, l'accesso allo script viene controllato dall'impostazione allowScriptAccess della pagina Web. (Questo attributo viene impostato nel codice HTML che incorpora il file SWF, ad esempio nel tag PARAM per Internet Explorer o nel tag EMBED Netscape. Quando allowScriptAccess impostato su "never", il file SWF non pu accedere agli script della pagina Web. In Flash Player 7 e versioni successive, quando allowScriptAccess impostato su "always", il SWF pu sempre accedere agli script della pagina Web. Quando allowScriptAccess impostato su "sameDomain", la creazione di script consentita solo per i file SWF che si trovano nello stesso dominio della pagina Web; la creazione di script sempre consentita con le versioni precedenti di Flash Player. Se allowScriptAccess non specificato in una pagina HTML, per impostazione predefinita, l'attributo impostato su "sameDomain" per i file SWF della versione 8 e successive e su "always" per i file SWF della versione 7 e precedenti.

Funzioni globali

55

Uso 1: per usare fscommand() per inviare un messaggio a Flash Player, necessario utilizzare parametri e comandi predefiniti. La tabella seguente mostra i valori che possono essere specificati per la funzione fscommand() e in particolare per i parametri command e parameters. Questi valori controllano i file SWF riprodotti in Flash Player, compresi i proiettori. (Un proiettore un file SWF salvato in un formato che pu essere eseguito come applicazione autonoma, ovvero fuori da Flash Player.)
Comando
quit fullscreen

Parametro
None
true Oppure false

Scopo
Chiude il proiettore. Se si specifica true, Flash Player viene impostato in modalit schermo intero. Se si specifica false, il lettore viene riportato alla normale visualizzazione con i menu. Se si specifica false, il lettore viene impostato affinch il file SWF sia disegnato sempre alle dimensioni originali e non venga mai ridimensionato. Se si specifica true, il file SWF viene ridimensionato per essere adattato alle dimensioni del lettore. Se si specifica true, vengono attivate tutte le voci del menu di scelta rapida. Se si specifica false, vengono disattivate tutte le voci del menu di scelta rapida ad eccezione di Impostazioni e Informazioni su Flash. Esegue un'applicazione dall'interno del proiettore. Se si specifica true, tutti gli eventi di tastiera, compresi quelli dei tasti di scelta rapida, vengono inviati al gestore onClipEvent(keyDown/ keyUp) in Flash Player.

allowscale

true Oppure false

showmenu

true Oppure false

exec

Percorso dell'applicazione
true Oppure false

trapallkeys

Disponibilit:

Nessuno dei comandi descritti nella tabella sono disponibili per i lettori Web. Tutti i comandi sono disponibili per le applicazioni autonome come i proiettori. Solo allowscale e exec sono disponibili nei lettori di prova filmato.

56

Capitolo 1: Elementi del linguaggio ActionScript

Il comando exec pu contenere solo i caratteri A-Z, a-z, 0-9, punto (.) e il carattere di sottolineatura (_). Il comando exec viene eseguito solo nella sottodirectory fscommand. In altre parole, se si utilizza il comando exec per chiamare un'applicazione, questa deve risiedere in una sottodirectory denominata fscommand. Il comando exec funziona solo da un proiettore Flash. Uso 2: per utilizzare fscommand() per inviare un messaggio a un linguaggio di script come JavaScript in un browser, possibile passare qualunque coppia di parametri command e parameters. Questi parametri possono essere stringhe o espressioni e vengono utilizzati in una funzione JavaScript che gestisce, ovvero rileva, la funzione fscommand(). In un browser Web, fscommand() chiama la funzione JavaScript moviename_DoFScommand, che risiede nella pagina Web che contiene il file SWF. Per moviename, specificare il nome dell'oggetto Flash usato per l'attributo NAMEdel tag EMBED o la propriet ID del tag OBJECT. Se si assegna il nome myMovie al file SWF, viene richiamata la funzione JavaScript myMovie_DoFScommand. Nella pagina Web che contiene il file SWF, impostare l'attributo allowScriptAccess in modo che consenta o respinga l'accesso del file SWF alla pagina Web. (Questo attributo viene impostato nel codice HTML che incorpora il file SWF, ad esempio nel tag PARAM per Internet Explorer o EMBED per Netscape.) Quando allowScriptAccess impostato su "never", la creazione di script in uscita non viene eseguita. Quando allowScriptAccess impostato su "always", la creazione di script in uscita viene sempre eseguita correttamente. Quando impostato su "sameDomain", la creazione di script consentita solo dai file SWF che appartengono allo stesso dominio della pagina Web. Se allowScriptAccess non specificato in una pagina Web, il valore predefinito "sameDomain" per Flash Player 8 e "always" per le versioni precedenti. Quando si utilizza questa funzione, tenere presente la funzione di sicurezza Flash Player. In Flash Player 8 la funzione fscommand() non consentita se il file SWF che esegue la chiamata si trova nel sandbox locale con file system o locale con rete e la pagina HTML una funzione sandbox non affidabile. Per ulteriori informazioni, consultare:

Capitolo 17, "Nozioni fondamentali sulla sicurezza" in Apprendimento di ActionScript 2.0 in Flash White paper sulla sicurezza per Flash Player 8 alla pagina Web http:// www.macromedia.com/go/fp8_security White paper sulle API connesse alla sicurezza per Flash Player 8 alla pagina http:// www.macromedia.com/go/fp8_security_apis

Funzioni globali

57

Uso 3: la funzione fscommand() pu inviare messaggi a Macromedia Director. Questi messaggi vengono interpretati da Lingo (linguaggio di scripting di Director) come stringhe, eventi o codice Lingo eseguibile. Se il messaggio una stringa o un evento, necessario scrivere il codice Lingo per ricevere il messaggio dalla funzione fscommand() ed eseguire un'azione in Director. Per ulteriori informazioni, visitare il Centro di assistenza di Director all'indirizzo www.macromedia.com/support/director. Uso 4: in Visual Basic, Visual C++ e altri programmi che possono ospitare controlli ActiveX, la funzione fscommand() invia un evento VB con due stringhe che possono essere gestite dal linguaggio di programmazione dell'ambiente. Per ulteriori informazioni, cercare le parole chiave "Flash method" nel Centro di supporto di Flash all'indirizzo www.macromedia.com/ support/flash. Nota: per pubblicare file in Flash Player 8 o versioni successive, consigliabile usare la classe ExternalInterface che fornisce una funzionalit di comunicazione migliore tra JavaScript e ActionScript (uso 2) e ActionScript e VisualBasic, Visual C++ o altri programmi che possono ospitare i controlli ActiveX (use 4). Continuare a usare fscommand() per inviare messaggi a Flash Player (uso 1) e Macromedia Director (uso 3). Disponibilit: Flash Player 3; ActionScript 1.0 Parametri
command:String - Una stringa trasmessa all'applicazione host per qualsiasi uso, o un comando trasmesso a Flash Player. parameters:String - Una stringa trasmessa all'applicazione host per qualsiasi uso, o un valore trasmesso a Flash Player.

Esempio Nell'esempio seguente la funzione fscommand() imposta Flash Player in modo che modifichi in scala il file SWF fino alle dimensioni a schermo pieno quando viene rilasciato il pulsante fullscreen_btn o unfullscreen_btn.
this.fullscreen_btn.onRelease = function() { fscommand("fullscreen", true); }; this.unfullscreen_btn.onRelease = function() { fscommand("fullscreen", false); };

L'esempio seguente applica la funzione fscommand() a un pulsante in Flash allo scopo di aprire una finestra di messaggio JavaScript in una pagina HTML. Il messaggio stesso viene inviato a JavaScript come parametro fscommand.

58

Capitolo 1: Elementi del linguaggio ActionScript

necessario aggiungere una funzione alla pagina Web che contiene il file SWF. Questa funzione, myDocument _DoFSCommand(), attende una chiamata fscommand(). Quando fscommand() viene attivato in Flash (ad esempio quando un utente fa clic su un pulsante), le stringhe command e parameter vengono passate alla funzione myDocument _DoFSCommand(). possibile utilizzare nel modo desiderato le stringhe passate nel codice JavaScript o VBScript. In questo esempio la funzione contiene un'istruzione condizionale if che verifica se la stringa del comando "messagebox". Se lo , vinIf it is, la casella di avviso JavaScript visualizza il contenuto della funzione fscommand() e della stringa parameters.
function myDocument_DoFSCommand(command, args) { if (command == "messagebox") { alert(args); } }

Nel documento Flash, aggiungere fscommand() a un pulsante:


fscommand("messagebox", "This is a message box called from within Flash.")

anche possibile utilizzare le espressioni per i parametri della funzione fscommand(), come mostra l'esempio seguente:
fscommand("messagebox", "Hello, " + name + ", welcome to our website!")

Per provare il file SWF, selezionare File > Anteprima pubblicazione > HTML. Se si pubblica il file SWF mediante il modello Flash FSCommand (disponibile nella finestra di dialogo Impostazioni pubblicazione se si seleziona il tag HTML), Flash inserisce la funzione myDocument_DoFSCommand() automaticamente. Gli attributi NAME e ID del file SWF sono costituiti dal nome del file. Ad esempio, per il file myDocument.fla, gli attributi verrebbero impostati su myDocument. Vedere anche
ExternalInterface (flash.external.ExternalInterface)

Funzione getProperty
getProperty(my_mc:Object, property:Object) : Object

Restituisce il valore della propriet specificata per il clip filmato my_mc. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
my_mc:String property

- Il nome dell'istanza di un clip filmato per cui viene recuperata la propriet.

- Una propriet di un clip filmato.

Funzioni globali

59

Valori restituiti
Object

- Il valore della propriet specificata.

Esempio L'esempio seguente crea il nuovo clip filmato someClip_mc e visualizza il valore alfa (_alpha) per il clip filmato someClip_mc nel pannello Output:
this.createEmptyMovieClip("someClip_mc", 999); trace("The alpha of "+getProperty(someClip_mc, _name)+" is: "+getProperty(someClip_mc, _alpha));

Funzione getTimer
getTimer() : Number

Restituisce il numero di millisecondi trascorsi dall'inizio della riproduzione del file SWF. Disponibilit: Flash Player 4; ActionScript 1.0 Valori restituiti
Number

- Il numero di millisecondi trascorsi dall'inizio della riproduzione del file SWF.

Esempio Nell'esempio seguente, le funzioni getTimer() e setInterval() vengono usate per creare un timer semplice:
this.createTextField("timer_txt", this.getNextHighestDepth(), 0, 0, 100, 22); function updateTimer():Void { timer_txt.text = getTimer(); } var intervalID:Number = setInterval(updateTimer, 100);

Funzione getURL
getURL(url:String, [window:String, [method:String]]) : Void

Carica un documento da un URL specifico in una finestra, oppure trasmette le variabili a un'altra applicazione in un URL definito. Per eseguire il test di questa funzione, accertarsi che il file da caricare si trovi nella posizione specificata. Per usare un URL assoluto (ad esempio http://www.myserver.com), necessaria una connessione di rete. Disponibilit: Flash Player 4; ActionScript 1.0

60

Capitolo 1: Elementi del linguaggio ActionScript

Parametri
url:String

- L'URL da cui ottenere il documento.

window:String

[opzionale] - Specifica la finestra o il fotogramma HTML nel quale il documento dovrebbe essere caricato. possibile immettere il nome di una finestra specifica o selezionare tra i seguenti nomi riservati di destinazioni:
_self

indica il fotogramma corrente nella finestra corrente. indica una nuova finestra. indica l'elemento principale nel fotogramma corrente.

_blank

_parent _top

specifica il fotogramma di primo livello nella finestra corrente.

method:String

[opzionale] - Un metodo GET o POST per l'invio delle variabili. Se non vi sono variabili, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili ridotto. Il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di lunghe stringhe di variabili. Esempio Questo esempio carica un'immagine nel clip filmato. Quando si fa clic sull'immagine, un nuovo URL viene caricato in una nuova finestra del browser.

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()));

Nell'esempio seguente getURL() viene usato per inviare un messaggio e-mail:


myBtn_btn.onRelease = function(){ getURL("mailto:you@somedomain.com"); };

Nel codice ActionScript seguente, viene utilizzato JavaScript per aprire una finestra di avviso quando il file SWF incorporato in una finestra del browser ( opportuno sottolineare che quando si chiama JavaScript mediante getURL(), la lunghezza del parametro url limitata a 508 caratteri):
myBtn_btn.onRelease = function(){ getURL("javascript:alert('you clicked me')"); };

Funzioni globali

61

anche possibile utilizzare GET o POST per inviare variabili. L'esempio seguente utilizza GET per aggiungere variabili a un URL:
var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; myBtn_btn.onRelease = function() { getURL("http://www.macromedia.com", "_blank", "GET"); };

Il codice ActionScript seguente utilizza POST per inviare le variabili all'intestazione HTTP. Assicurarsi di provare i documenti in una finestra del browser per evitare che le variabili vengano inviate mediante GET:
var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; getURL("http://www.macromedia.com", "_blank", "POST");

Vedere anche
Funzione loadVariables, send (metodo XML.send), sendAndLoad (metodo XML.sendAndLoad)

Funzione getVersion
getVersion() : String

Restituisce una stringa contenente le informazioni sulla versione di Flash Player e la piattaforma. La funzione getVersion restituisce informazioni solo su Flash Player 5 e versioni successive. Disponibilit: Flash Player 5; ActionScript 1.0 Valori restituiti
String - Una stringa contenente le informazioni sulla versione di Flash Player e la piattaforma.

Esempio L'esempio seguente traccia il numero di versione di Flash Player in cui in riproduzione il file 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

62

Capitolo 1: Elementi del linguaggio ActionScript

La stringa seguente viene restituita dalla funzione getVersion:


WIN 8,0,1,0

La stringa restituita indica che la piattaforma Microsoft Windows e che il numero di versione principale di Flash Player 8 mentre quello della versione minore 1 (8.1). Vedere anche
os (propriet capabilities.os), version (propriet capabilities.version)

Funzione gotoAndPlay
gotoAndPlay([scene:String], frame:Object) : Void

Invia l'indicatore di riproduzione al fotogramma specificato in una scena e avvia la riproduzione da quel fotogramma. Se non viene specificata alcuna scena, l'indicatore di riproduzione passa al fotogramma specificato nella scena corrente. possibile utilizzare il parametro scene solo nella linea temporale principale, non all'interno delle linee temporali per clip filmato o altri oggetti del documento. Disponibilit: Flash Player 2; ActionScript 1.0 Parametri
scene:String

[opzionale] - Una stringa che specifica il nome della scena a cui viene inviato l'indicatore di riproduzione. - Un numero che rappresenta il numero del fotogramma, o una stringa che rappresenta l'etichetta del fotogramma a cui viene inviato l'indicatore di riproduzione. Esempio

frame:Object

Nell'esempio seguente il documento ha due scene: sceneOne e sceneTwo. La prima scena contiene un'etichetta di fotogramma nel fotogramma 10 di nome newFrame e due pulsanti, myBtn_btn e myOtherBtn_btn. Questo codice ActionScript viene collocato nel fotogramma 1, nella scena 1 della linea temporale principale.
stop(); myBtn_btn.onRelease = function(){ gotoAndPlay("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndPlay("sceneTwo", 1); };

Quando l'utente fa clic sui pulsanti, l'indicatore di riproduzione si sposta alla posizione specificata e continua la riproduzione.

Funzioni globali

63

Vedere anche
gotoAndPlay (metodo MovieClip.gotoAndPlay), Funzione nextFrame, Funzione play, Funzione prevFrame

Funzione gotoAndStop
gotoAndStop([scene:String], frame:Object) : Void

Invia l'indicatore di riproduzione al fotogramma specificato in una scena e lo arresta. Se non stata specificata nessuna scena, l'indicatore di riproduzione viene inviato al fotogramma della scena corrente. possibile usare il parametro scene solo nella linea temporale principale per le clip filmato o in altri oggetti del documento. Disponibilit: Flash Player 2; ActionScript 1.0 Parametri
scene:String

[opzionale] - Una stringa che specifica il nome della scena a cui viene inviato l'indicatore di riproduzione. - Un numero che rappresenta il numero del fotogramma, o una stringa che rappresenta l'etichetta del fotogramma a cui viene inviato l'indicatore di riproduzione. Esempio

frame:Object

Nell'esempio seguente il documento ha due scene: sceneOne e sceneTwo. La prima scena contiene un'etichetta di fotogramma nel fotogramma 10 di nome newFrame e due pulsanti, myBtn_btn e myOtherBtn_btn. Questo codice ActionScript viene collocato nel fotogramma 1, nella scena 1 della linea temporale principale:
stop(); myBtn_btn.onRelease = function(){ gotoAndStop("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndStop("sceneTwo", 1); };

Quando l'utente fa clic sui pulsanti, l'indicatore di riproduzione si sposta alla posizione specificata e arresta la riproduzione.

64

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
gotoAndStop (metodo MovieClip.gotoAndStop), Funzione stop, Funzione play, Funzione gotoAndPlay

Funzione ifFrameLoaded
ifFrameLoaded([scene:String], frame) { statement(s); }

Sconsigliata a partire da Flash Player 5. Questa funzione stata eliminata. Macromedia consiglia di usare la propriet MovieClip._framesloaded. Verifica se il contenuto di un fotogramma specifico disponibile localmente. Utilizzare per avviare la riproduzione di un'animazione semplice mentre il resto del file SWF viene scaricato nel computer locale. La differenza tra usare _framesloaded e ifFrameLoaded che _framesloaded permette di aggiungere istruzioni if o else personalizzate.
ifFrameLoaded

Disponibilit: Flash Player 4; ActionScript 1.0 Parametri


scene:String

[opzionale] - Una stringa che specifica il nome della scena da caricare.

frame:Object - Il numero di fotogramma o l'etichetta di fotogramma che deve essere caricata

prima dell'esecuzione dell'istruzione successiva. Vedere anche , addListener (metodo MovieClipLoader.addListener)

Funzione int
int(value:Number) : Number

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da Math.round(). Converte un numero decimale in valore intero troncando il valore decimale. Questa funzione equivalente a Math.floor() se il parametro value positivo e a Math.ceil() se il parametro value negativo. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
value:Number

- Un numero da arrotondare a intero.

Funzioni globali

65

Valori restituiti
Number

- Il valore intero troncato.

Vedere anche
round (metodo Math.round), floor (metodo Math.floor), ceil (metodo Math.ceil)

Funzione isFinite
isFinite(expression:Object) : Boolean

Valuta expression e restituisce true se si tratta di un numero finito oppure false se si tratta di un valore infinito o infinito negativo. La presenza di un valore infinito o infinito negativo indica una condizione di errore matematico, come la divisione per 0. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
expression:Object

- Valore booleano, variabile o altra espressione da valutare.

Valori restituiti
Boolean

- Un valore booleano.

Esempio Il seguente esempio mostra i valori restituiti da isFinite:


isFinite(56) // returns true isFinite(Number.POSITIVE_INFINITY) //returns false

Funzione isNaN
isNaN(expression:Object) : Boolean

Valuta il parametro e restituisce true se il valore NaN (not a number). Questa funzione utile per verificare se un'espressione matematica restituisce un numero. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
expression:Object

- Valore booleano, variabile o altra espressione da restituire.

66

Capitolo 1: Elementi del linguaggio ActionScript

Valori restituiti
Boolean

- Un valore booleano.

Esempio Il codice seguente mostra i valori restituiti dalla funzione isNaN():


trace( isNaN("Tree") ); // returns true trace( isNaN(56) ); // returns false trace( isNaN(Number.POSITIVE_INFINITY) ) // returns false

L'esempio seguente mostra il modo in cui possibile utilizzare la funzione isNAN() per verificare se un'espressione matematica contiene o meno un errore:
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).

Vedere anche
Costante NaN, NaN (propriet Number.NaN)

Funzione length
length(expression:String)length(variable)

Sconsigliata a partire da Flash Player 5. Questa funzione con le relative funzioni stringa stata eliminata. Macromedia consiglia di usare i metodi della classe String e la propriet String.length per eseguire le stesse operazioni. Restituisce la lunghezza della stringa o della variabile specificata. Disponibilit: Flash Player 4; ActionScript 1.0

Funzioni globali

67

Parametri
expression:String variable:Object

- Una stringa.

- Il nome di una variabile.

Valori restituiti
Number

- La lunghezza della stringa o della variabile specificata.

Esempio L'esempio seguente restituisce la lunghezza della stringa "Hello": length("Hello");Il risultato 5. Vedere anche
" (delimitatore di stringa), operatore, Stringa, length (propriet String.length)

Funzione loadMovie
loadMovie(url:String, target:Object, [method:String]) : Void loadMovie(url:String, target:String, [method:String]) : Void

Carica un file SWF, JPEG, GIF o PNG in un clip filmato in Flash Player mentre in riproduzione il file SWF originale. Il supporto per file GIF non animati, per i file PNG e per i file JPEG progressivi viene aggiunto in Flash Player 8. Se si carica un GIF animato, viene visualizzato solo il primo fotogramma. Suggerimento: per verificare lo stato di avanzamento dell'operazione, utilizzare MovieClipLoader.loadClip() anzich la funzione. La funzione loadMovie() consente di visualizzare diversi file SWF contemporaneamente e di passare da uno stato all'altro senza caricare un altro documento HTML Senza la funzione loadMovie(), Flash Player visualizza un unico file SWF. Se si desidera caricare un file SWF o JPEG in un livello specifico, utilizzare loadMovieNum() anzich loadMovie(). Quando un file SWF viene caricato in un clip filmato target, possibile utilizzare il percorso target del clip filmato per indicare come destinazione il file SWF. Un file SWF o un'immagine caricati in un target ereditano le propriet delle modifiche in scala, la posizione e la rotazione del clip filmato target. L'angolo superiore sinistro dell'immagine o del file SWF caricati viene allineato con il punto di registrazione del clip filmato target. In alternativa, se il target la linea temporale principale, l'angolo superiore sinistro dell'immagine o del file SWF viene allineato all'angolo superiore sinistro dello stage.

68

Capitolo 1: Elementi del linguaggio ActionScript

Utilizzare unloadMovie() per rimuovere i file SWF caricato mediante loadMovie(). Quando si utilizza questa funzione, tenere presente la funzione di sicurezza Flash Player. Per Flash Player 8:

Il caricamento non consentito se il clip filmato di chiamato nel sandbox locale con file system e se il clip filmato caricato proviene da un sandbox di rete. Il caricamento non consentito se il file SWF di chiamata nel sandbox di rete e il clip filmato da caricare locale. L'accesso al sandbox di rete da un sandbox affidabile locale o locale con collegamento in rete richiede l'autorizzazione del sito Web tramite un file dei criteri di domini diversi. I clip filmato nel sandbox locale con file system non possono generare script per clip filmato con sandbox locale con collegamento in rete e viceversa. I siti Web possono permettere ai pi domini di accedere alla risorsa per mezzo di un file di criteri per pi domini. La generazione di script tra i file SWF limitata dal dominio di origine dei file SWF. Utilizzare il metodo System.security.allowDomain() per correggere queste limitazioni. Capitolo 17, "Nozioni fondamentali sulla sicurezza" in Apprendimento di ActionScript 2.0 in Flash White paper sulla sicurezza per Flash Player 8 alla pagina Web http:// www.macromedia.com/go/fp8_security White paper sulle API connesse alla sicurezza per Flash Player 8 alla pagina http:// www.macromedia.com/go/fp8_security_apis

Per Flash Player 7 e versioni successive:

Per ulteriori informazioni, consultare:

Disponibilit: Flash Player 3; ActionScript 1.0 Parametri - L'URL assoluto o relativo del file SWF o JPEG da caricare. Un percorso relativo deve essere tale rispetto al file SWF al livello 0. Gli URL assoluti devono includere il riferimento al protocollo, ad esempio http:// o file:///.
url:String target:Object

- Un riferimento a un oggetto clip filmato o una stringa che rappresenta il percorso di un clip filmato target. Il clip filmato target viene sostituito dal file SWF o dall'immagine caricati.

Funzioni globali

69

method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro

deve essere la stringa GET o POST . Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili ridotto. Il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per stringhe di variabili lunghe. Esempio Uso 1: l'esempio seguente carica il file SWF di nome circle.swf dalla stessa directory e sostituisce il clip filmato mySquare che gi presente sullo stage:
loadMovie("circle.swf", mySquare); // equivalent statement (Usage 1): loadMovie("circle.swf", _level0.mySquare); // equivalent statement (Usage 2): loadMovie("circle.swf", "mySquare");

L'esempio seguente carica il file SWF di nome circle.swf dalla stessa directory ma sostituisce il clip filmato principale anzich 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'istruzione loadMovie() seguente carica il file SWF di nome sub.swf dalla stessa directory in un nuovo clip filmato di nome logo_mc creato mediante createEmptyMovieClip():
this.createEmptyMovieClip("logo_mc", 999); loadMovie("sub.swf", logo_mc);

possibile aggiungere il codice seguente per caricare un'immagine JPEG di nome image1.jpg dalla stessa directory del file SWF che carica sub.swf. L'immagine JPEG viene caricata quando si fa clic sul pulsante myBtn_btn. Questo codice carica l'immagine JPEG in logo_mc. Di conseguenza, sostituisce sub.swf con l'immagine JPEG.
myBtn_btn.onRelease = function(){ loadMovie("image1.jpg", logo_mc); };

Uso 2: l'esempio seguente carica il file SWF di nome circle.swf dalla stessa directory e sostituisce il clip filmato mySquare che gi presente sullo stage:
loadMovie("circle.swf", "mySquare");

Vedere anche
_level, propriet, Funzione loadMovieNum, loadMovie (metodo MovieClip.loadMovie), loadClip (metodo MovieClipLoader.loadClip), Funzione unloadMovie

70

Capitolo 1: Elementi del linguaggio ActionScript

Funzione loadMovieNum
loadMovieNum(url:String, level:Number, [method:String]) : Void

Carica un file SWF, JPEG, GIF o PNG in un livello mentre in riproduzione il file SWF originale. Il supporto per file GIF non animati, per i file PNG e per i file JPEG progressivi viene aggiunto in Flash Player 8. Se si carica un GIF animato, viene visualizzato solo il primo fotogramma. Suggerimento: per verificare lo stato di avanzamento dell'operazione, utilizzare MovieClipLoader.loadClip() anzich la funzione. Normalmente, Flash Player si chiude dopo aver visualizzato un file SWF. La funzioneloadMovieNum() consente di visualizzare diversi file SWF contemporaneamente e di passare da uno stato all'altro senza caricare un altro documento HTML. Se si desidera specificare un target invece di un livello, utilizzare loadMovie() anzich
loadMovieNum().

Flash Player dispone di un ordine di impilamento dei livelli a partire dal livello 0. Questi livelli sono paragonabili a fogli in acetato in quanto sono completamente trasparenti a eccezione degli oggetti su ciascun livello. Quando si utilizza loadMovieNum(), necessario specificare un livello di Flash Player in cui caricare il file SWF. Quando un file SWF viene caricato in un livello, possibile utilizzare la sintassi, _level N, dove N il numero del livello, per indicare come destinazione il file SWF. Quando si carica un file SWF, possibile specificare un numero di livello qualsiasi e caricare i file in un livello in cui gi presente un file SWF. Se si procede in questo modo, il nuovo file SWF sostituisce il file SWF esistente. Se si carica un file SWF nel livello 0, vengono scaricati tutti i livelli presenti in Flash Player e il livello 0 viene sostituito con il nuovo file. Il file SWF nel livello 0 imposta la frequenza dei fotogrammi, il colore di sfondo e le dimensioni dei fotogrammi per tutti i file SWF caricati. L'azione loadMovieNum() consente anche di caricare file JPEG in un file SWF durante la riproduzione di quest'ultimo. Nel caso delle immagini e dei file SWF, l'angolo superiore sinistro dell'immagine viene allineato con l'angolo superiore sinistro dello stage durante il caricamento del file; inoltre, il file caricato eredita la rotazione e le modifiche in scala, e il contenuto originale viene sovrascritto nel livello specificato. Nota: i file JPEG salvati in formato progressivo non sono supportati. Utilizzare unloadMovieNum() per rimuovere i file SWF o le immagini caricati mediante loadMovieNum().

Funzioni globali

71

Quando si utilizza questo metodo, tenere presente la funzione di sicurezza Flash Player. Per Flash Player 8:

Il caricamento non consentito se il clip filmato di chiamata nel sandbox locale con file system e se il clip filmato caricato proviene dal sandbox di rete. Il caricamento non consentito se il file SWF di chiamata nel sandbox di rete e il clip filmato da caricare locale. L'accesso al sandbox di rete da un sandbox affidabile locale o locale con collegamento in rete richiede l'autorizzazione del sito Web tramite un file dei criteri di domini diversi. I clip filmato nel sandbox locale con file system non possono generare script per clip filmato nel sandbox locale con collegamento in rete e viceversa. I siti Web possono permettere ai pi domini di accedere alla risorsa per mezzo di un file di criteri per pi domini. La generazione di script tra i file SWF limitata dal dominio di origine dei file SWF. Utilizzare il metodo System.security.allowDomain() per correggere queste limitazioni. Capitolo 17, "Nozioni fondamentali sulla sicurezza" in Apprendimento di ActionScript 2.0 in Flash White paper sulla sicurezza per Flash Player 8 alla pagina Web http:// www.macromedia.com/go/fp8_security White paper sulle API connesse alla sicurezza per Flash Player 8 alla pagina http:// www.macromedia.com/go/fp8_security_apis

Per Flash Player 7 e versioni successive:

Per ulteriori informazioni, consultare:

Disponibilit: Flash Player 4; ActionScript 1.0 Parametri - L'URL assoluto o relativo del file SWF o JPEG da caricare. Un percorso relativo deve essere tale rispetto al file SWF nel livello 0. Per l'uso con il lettore autonomo Flash Player o per la verifica in modalit di prova nell'applicazione di creazione Flash, tutti i file SWF devono essere archiviati nella stessa cartella e i nomi file non devono contenere specifiche relative alla cartella o all'unit disco.
url:String level:Number

- Un numero intero che specifica il livello di Flash Player in cui viene caricato

il file SWF.

72

Capitolo 1: Elementi del linguaggio ActionScript

method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro

deve essere la stringa GET o POST . Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili ridotto. Il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per stringhe di variabili lunghe. Esempio L'esempio seguente carica l'immagine JPEG di nome tim.jpg nel secondo livello di Flash Player:
loadMovieNum("http://www.helpexamples.com/flash/images/image1.jpg", 2);

Vedere anche
Funzione unloadMovieNum, Funzione loadMovie, loadClip (metodo MovieClipLoader.loadClip), _level, propriet

Funzione loadVariables
loadVariables(url:String, target:Object, [method:String]) : Void

Legge i dati da un file esterno, ad esempio un file di testo o un testo generato da ColdFusion, uno script CGI, ASP (Active Server Pages), PHP o Perl, e imposta i valori delle variabili in un clip filmato target. Questa azione pu essere utilizzata anche per aggiornare le variabili del file SWF attivo con nuovi valori. Il testo nell'URL specificato deve essere nel formato MIME standard application/x-www-formurlencoded (formato standard utilizzato dagli script CGI). possibile specificare un numero di variabili qualsiasi. L'espressione seguente definisce diverse variabili:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103

Nei file SWF eseguiti in una versione di Flash Player precedente alla 7, url deve trovarsi nello stesso superdominio del file SWF che emette la chiamata. Per identificare il superdominio, rimuovere la parte pi a sinistra dell'URL di un file. Ad esempio, un file SWF che si trova in www.someDomain.com pu caricare dati da un'origine situata in store.someDomain.com in quanto entrambi i file si trovano nel superdominio someDomain.com.

Funzioni globali

73

Nei file SWF di qualunque versione eseguiti in Flash Player 7 o versione superiore, l'url deve essere esattamente nello stesso sottodominio del file SWF che emette la chiamata (vedere "Funzionalit di sicurezza" in Uso di ActionScript in Flash). Ad esempio, un file SWF che si trova nel sito www.someDomain.com pu caricare dati solo da altre origini presenti nel sito www.someDomain.com. Per caricare dati da un dominio diverso, possibile collocare un file di criteri dei domini sul server che ospita il file SWF al quale si sta accedendo. Per ulteriori informazioni, vedere "Come consentire il caricamento di dati tra domini diversi" in Uso di ActionScript in Flash. Per caricare variabili in un livello specifico, utilizzare loadVariablesNum() anzich
loadVariables().

Disponibilit: Flash Player 4; ActionScript 1.0 Parametri - URL assoluto o relativo in cui si trovano le variabili. Se il file SWF che emette la chiamata viene eseguito in un browser Web, l'url deve trovarsi nello stesso dominio del file SWF; per i dettagli, consultare la sezione Descrizione.
url:String target:Object

- Il percorso target di un clip filmato che riceve le variabili caricate.

method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro deve essere la stringa GET o POST . Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili ridotto. Il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per stringhe di variabili lunghe.

Esempio
target_mc

L'esempio seguente carica le informazioni dal file di testo params.txt nel clip filmato creato mediante createEmptyMovieClip(). La funzione setInterval() viene utilizzata per controllare l'avanzamento. Lo script cerca una variabile denominata done nel file params.txt.

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) { trace(i+": "+target_mc[i]); } trace("-------------");

74

Capitolo 1: Elementi del linguaggio ActionScript

clearInterval(param_interval); } } var param_interval:Number = setInterval(checkParamsLoaded, 100);

Il file esterno params.txt include il testo seguente:


var1="hello"&var2="goodbye"&done="done"

Vedere anche
Funzione loadVariablesNum, Funzione loadMovie, Funzione loadMovieNum, Funzione getURL, loadMovie (metodo MovieClip.loadMovie), loadVariables (metodo MovieClip.loadVariables), load (metodo LoadVars.load)

Funzione loadVariablesNum
loadVariablesNum(url:String, level:Number, [method:String]) : Void

Legge i dati da un file esterno, ad esempio un file di testo o un testo generato da ColdFusion, uno script CGI, ASP (Active Server Pages), PHP o Perl, e imposta i valori delle variabili in un livello di FlashPlayer. Questa funzione pu essere utilizzata anche per aggiornare le variabili del file SWF attivo con nuovi valori. Il testo nell'URL specificato deve essere nel formato MIME standard application/x-wwwform-urlencoded (formato standard utilizzato dagli script CGI). possibile specificare un numero di variabili qualsiasi. L'espressione seguente definisce diverse variabili:
company=Macromedia&address=601+Townsend&city=San+Francisco&zip=94103

Nei file SWF eseguiti in una versione di Flash Player precedente alla 7, l'url deve trovarsi nello stesso superdominio del file SWF che emette la chiamata. Per identificare il superdominio, rimuovere la parte pi a sinistra dell'URL di un file. Ad esempio, un file SWF che si trova in www.someDomain.com pu caricare dati da un'origine situata in store.someDomain.com in quanto entrambi i file si trovano nel superdominio someDomain.com. Nei file SWF di qualunque versione eseguiti in Flash Player 7 o versione superiore, l'url deve essere esattamente nello stesso sottodominio del file SWF che emette la chiamata (vedere "Funzionalit di sicurezza" in Uso di ActionScript in Flash). Ad esempio, un file SWF che si trova nel sito www.someDomain.com pu caricare dati solo da altre origini presenti nel sito www.someDomain.com. Per caricare dati da un dominio diverso, possibile collocare un file di criteri dei domini sul server che ospita il file SWF. Per ulteriori informazioni, vedere "Come consentire il caricamento di dati tra domini diversi" in Uso di ActionScript in Flash.

Funzioni globali

75

Per caricare variabili in un livello clip filmato target, utilizzare loadVariables() anzich loadVariablesNum(). Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
url:String - URL assoluto o relativo in cui si trovano le variabili. Se il file SWF che emette la chiamata viene eseguito in un browser Web, l'url deve trovarsi nello stesso dominio del file SWF; per i dettagli, consultare la sezione Descrizione. level:Number

- Un numero intero che specifica il livello di Flash Player in cui ricevere le

variabili.
method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro

deve essere la stringa GET o POST . Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili ridotto. Il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per stringhe di variabili lunghe. Esempio L'esempio seguente carica le informazioni dal file di testo params.txt nella linea temporale principale del file SWF al secondo livello in Flash Player. I nomi delle variabili dei campi di testo devono corrispondere ai nomi delle variabili presenti nel file params.txt. La funzione setInterval() viene utilizzata per verificare l'avanzamento dei dati che vengono caricati nel file SWF. Lo script cerca una variabile denominata done nel file params.txt.
loadVariablesNum("params.txt", 2); function checkParamsLoaded() { if (_level2.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in _level2) { 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"

76

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
Funzione getURL, Funzione loadMovie, Funzione loadMovieNum, Funzione loadVariables, loadMovie (metodo MovieClip.loadMovie), loadVariables (metodo MovieClip.loadVariables), load (metodo LoadVars.load)

Funzione mbchr
mbchr(number:Number)

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita dal metodo String.fromCharCode(). Converte un numero di codice ASCII in un carattere multibyte. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
number:Number

- Il numero da convertire in carattere multibyte.

Vedere anche
fromCharCode (metodo String.fromCharCode)

Funzione mblength
mblength(string:String) : Number

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita dai metodi e dalle propriet della classe String. Restituisce la lunghezza della stringa a caratteri multibyte. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
string:String

- La stringa da misurare.

Valori restituiti
Number

- La lunghezza della stringa a caratteri multibyte.

Vedere anche
Stringa, length (propriet String.length)

Funzioni globali

77

Funzione mbord
mbord(character:String) : Number

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da String.charCodeAt(). Converte il carattere specificato in un numero multibyte. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
character:String

- character Il carattere da convertire in numero multibyte.

Valori restituiti
Number

- Il carattere convertito.

Vedere anche
charCodeAt (metodo String.charCodeAt)

Funzione mbsubstring
mbsubstring(value:String, index:Number, count:Number) : String

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da String.substr(). Estrae una nuova stringa a caratteri multibyte da una stringa a caratteri multibyte. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
value:String index:Number count:Number

- La stringa multibyte da cui deve essere estratta una nuova stringa multibyte. - Il numero del primo carattere da estrarre. - Il numero di caratteri da includere nella stringa estratta, escluso il carattere

index. Valori restituiti


String

- La stringa estratta dalla stringa a caratteri multibyte.

Vedere anche
substr (metodo String.substr)

78

Capitolo 1: Elementi del linguaggio ActionScript

Funzione MMExecute
MMExecute("Flash JavaScript API command;":String) : String

Consente di inviare i comandi API JavaScript (JSAPI) di Flash da ActionScript. In Flash MX2004 la funzione MMExecute pu essere chiamata solo da un filmato utilizzato come Flash Panel (il file archiviato nella directory WindowSWF), mediante una finestra di dialogo XMLtoUI, o mediante l'interfaccia utente personalizzata di un componente. I comandi JSAPI non hanno alcun effetto nel player, nella modalit di prova del filmato e fuori dell'ambiente di creazione. Flash JSAPI offre diversi oggetti, metodi e propriet per duplicare o emulare i comandi che un utente pu immettere nell'ambiente di creazione. Mediante JSAPI, possibile creare script che estendono le funzionalit di Flash in diversi modi: mediante l'aggiunta di comandi ai menu, la manipolazione degli oggetti nello stage, la ripetizione delle sequenze di comandi e cos via. In linea generale, un utente esegue uno script JSAPI mediante la selezione di Comandi > Esegui comando. Tuttavia, possibile utilizzare questa funzione in uno script ActionScript per chiamare direttamente un comando JSAPI. Se si utilizza MMExecute() in uno script del fotogramma 1 del file, il comando viene eseguito quando viene caricato il file SWF. Per ulteriori informazioni su JSAPI, vedere www.macromedia.com/go/jsapi_info_en. Disponibilit: Flash Player 7; ActionScript 1.0 Parametri
command:String

- Qualunque comando che possibile utilizzare in un file Flash JavaScript

(JSFL). Valori restituiti


String - Una rappresentazione sotto forma di stringa dell'eventuale risultato, inviato dall'istruzione JavaScript.

Funzioni globali

79

Esempio Il comando seguente invia alla finestra di traccia il numero di elementi presenti nella library del documento corrente. necessario eseguire questo esempio sotto forma di pannello di Flash poich i file di Flash non possono chiamare MMExecute se vengono eseguiti in una prova filmato o nel browser.

Collocare il codice seguente nel fotogramma 1 della linea temporale principale di un documento Flash vuoto:
var numLibItems = MMExecute("fl.getDocumentDOM().library.items.length"); var message = numLibItems + " items in library"; MMExecute('fl.trace("' + message + '");');

Salvare il file FLA nella directory WindowSWF presente nella directory Configuration, quindi selezionare File > Pubblica (in alternativa, salvare il file altrove e pubblicare il file SWF nella directory scelta oppure spostare il file SWF nella directory scelta). Chiudere e riavviare l'applicazione (questa operazione necessaria la prima volta che si aggiunge il file alla directory WindowSWF).

A questo punto possibile selezionare il file nella parte inferiore del menu Finestra > Altri pannelli. La funzione trace di ActionScript non funziona se viene eseguita da un pannello di Flash; questo esempio utilizza la versione JavaScript fl.trace. Pu risultare pi semplice copiare il risultato di MMExecute in un campo di testo che fa parte del file nel pannello di Flash.

Funzione nextFrame
nextFrame() : Void

Invia l'indicatore di riproduzione al fotogramma successivo. Disponibilit: Flash Player 2; ActionScript 1.0

80

Capitolo 1: Elementi del linguaggio ActionScript

Esempio Nell'esempio seguente, quando l'utente preme il tasto freccia destra o sinistra, l'indicatore di riproduzione si sposta al fotogramma successivo e si arresta. Se l'utente preme il tasto freccia su o gi, l'indicatore di riproduzione si sposta al fotogramma precedente e si arresta. Il listener viene inizializzato affinch attenda la pressione del tasto freccia, e viene utilizzata la variabile init per impedire che il listener venga ridefinito se l'indicatore di riproduzione ritorna al fotogramma 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; }

Vedere anche
Funzione prevFrame

Funzione nextScene
nextScene() : Void

Invia l'indicatore di riproduzione al fotogramma 1 della scena successiva. Disponibilit: Flash Player 2; ActionScript 1.0 Esempio Nell'esempio seguente, quando l'utente fa clic sul pulsante creato in fase di runtime, l'indicatore di riproduzione viene inviato al fotogramma 1 della scena successiva. Creare due scene, quindi immettere il codice ActionScript seguente nel fotogramma 1 della scena 1.
stop(); if (init == undefined) { this.createEmptyMovieClip("nextscene_mc", this.getNextHighestDepth()); nextscene_mc.createTextField("nextscene_txt", this.getNextHighestDepth(), 200, 0, 100, 22);

Funzioni globali

81

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; }

Assicurarsi di specificare l'azione stop() per il fotogramma 1 della scena. Vedere anche
Funzione prevScene

Funzione Number
Number(expression) : Number

Converte il parametro expression in numero e restituisce un valore come descritto nell'elenco seguente:

Se expression un numero, viene restituito il valore expression. Se expression un valore booleano, viene restituito il valore 1 se expression true oppure 0 se expression false. Se expression una stringa, la funzione cerca di analizzare expression come numero decimale con un esponente finale opzionale; vale a dire 1.57505e-3. Se expression NaN, viene restituito il valore NaN.

82

Capitolo 1: Elementi del linguaggio ActionScript

Se expression undefined, viene restituito il seguente valore: - Nei file pubblicati in Flash Player 6 o versioni precedenti, il risultato 0. - Nei file pubblicati in Flash Player 7 o versioni successive, il risultato NaN.

Disponibilit: Flash Player 4; ActionScript 1.0 Parametri


expression:Object

- Espressione che consente di convertire in un numero. I numeri o le stringhe che iniziano con 0x vengono interpretati come valori esadecimali. I numeri o le stringhe che iniziano con 0 vengono interpretati come valori ottali. Valori restituiti

Number

- Un numero o NaN (not a number).

Esempio Nell'esempio seguente, viene creato un campo di testo sullo stage in fase di runtime:
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);

Vedere anche
Costante NaN, Number, Funzione parseInt, Funzione parseFloat

Funzione Object
Object([value:Object]) : Object

Crea un nuovo oggetto vuoto o converte in oggetto il numero, la stringa o il valore booleano specificati. Questo comando equivale alla creazione di un oggetto mediante la funzione di costruzione dell'oggetto (vedere "Funzione di costruzione per la classe Object"). Disponibilit: Flash Player 5; ActionScript 1.0

Funzioni globali

83

Parametri
value:Object

[opzionale] - Un numero, una stringa o un valore booleano.

Valori restituiti
Object

- Un oggetto.

Esempio Nell'esempio seguente viene creato un nuovo oggetto vuoto, che viene successivamente compilato con dei valori:
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]); }

Vedere anche
Oggetto

Gestore on
on(mouseEvent:Object) {

// your statements here


}

Specifica l'evento associato al mouse o la pressione di un tasto che attiva un'azione. Disponibilit: Flash Player 2; ActionScript 1.0 Parametri
mouseEvent:Object

- Un mouseEvent un trigger chiamato evento . Quando si verifica l'evento, vengono eseguite le istruzioni che lo seguono racchiuse tra parentesi graffe ({ }). Per il parametro mouseEvent possono essere specificati i valori seguenti:
press

Il pulsante del mouse viene premuto quando il puntatore si trova sopra il pulsante. Il pulsante del mouse viene rilasciato quando il puntatore si trova sopra il

release

pulsante.

84

Capitolo 1: Elementi del linguaggio ActionScript

Quando il puntatore si trova sopra il pulsante, il pulsante del mouse viene premuto, quindi, il puntatore esce dall'area del pulsante poco prima che questo venga rilasciato. Gli eventi press e dragOut precedono sempre un evento releaseOutside.
releaseOutside rollOut

Il puntatore esce dall'area del pulsante. Il puntatore del mouse scorre sopra il pulsante.

rollOver dragOut

Quando il puntatore si trova sopra il pulsante, il pulsante del mouse viene premuto, quindi il puntatore esce dall'area del pulsante. Quando il puntatore si trova sopra il pulsante, il pulsante del mouse viene premuto, il puntatore esce dall'area del pulsante, quindi torna sopra il pulsante. " Viene premuto il tasto specificato. Per la porzione key del parametro, specificare una costante della classe key, come indicato nei suggerimenti sul codice del pannello Azioni. possibile utilizzare questo parametro per intercettare la pressione di un tasto, vale a dire per ignorare qualsiasi comportamento incorporato relativo al tasto specificato. Il pulsante pu trovarsi in qualsiasi punto dell'applicazione, nello stage o fuori dallo stage. L'unica limitazione a questa tecnica il fatto che non possibile applicare il gestore on() in fase di runtime; questa operazione va eseguita in fase di creazione. Selezionare sempre Controllo > Disattiva scelte rapide da tastiera. In caso contrario, i tasti con comportamento incorporato non vengono ignorati quando si esegue una verifica dell'applicazione mediante il comando Controllo > Prova filmato.

dragOver

keyPress "< key >

Per un elenco delle costanti key, vedere la classe Key. Esempio Nello script seguente la funzione startDrag() viene eseguita quando si preme il pulsante del mouse, e viene eseguito lo script condizionale quando si rilascia il pulsante del mouse e l'oggetto viene rilasciato:
on (press) { startDrag(this); } on (release) { trace("X:"+this._x); trace("Y:"+this._y); stopDrag(); }

Vedere anche
Gestore onClipEvent, Key

Funzioni globali

85

Gestore onClipEvent
onClipEvent(movieEvent:Object) {

// your statements here


}

Attiva le azioni definite per un'istanza specifica di un clip filmato. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
movieEvent:Object - movieEvent un trigger chiamato evento . Quando si verifica l'evento,

vengono eseguite le istruzioni che lo seguono racchiuse tra parentesi graffe ({ }). Per il parametro movieEvent possono essere specificati i valori seguenti:

load

L'azione viene avviata nel momento in cui viene creata l'istanza del clip filmato e questo appare nella linea temporale.

L'azione viene avviata nel primo fotogramma dopo che il clip filmato stato rimosso dalla linea temporale. Le azioni associate all'evento Unload del clip filmato vengono elaborate prima che qualsiasi azione venga associata al fotogramma interessato.
unload enterFrame L'azione viene attivata in modo continuo alla stessa frequenza dei fotogrammi del clip filmato. Le azioni associate all'evento enterFrame del clip filmato vengono elaborate prima che qualsiasi azione fotogramma venga associata ai fotogrammi interessati. mouseMove

L'azione viene avviata ogni volta che il mouse viene spostato. Utilizzare le

propriet
_xmouse

e _ymouse per determinare la posizione del mouse. L'azione viene avviata quando si preme il pulsante sinistro del mouse. viene avviata quando si rilascia il pulsante sinistro del mouse.

mouseDown

mouseUpL'azione keyDown

L'azione viene avviata quando si preme un tasto. Utilizzare Key.getCode() per recuperare le informazioni sull'ultimo tasto premuto. L'azione viene avviata quando si rilascia un tasto. Utilizzare il metodo per recuperare le informazioni sull'ultimo tasto premuto.

keyUp

Key.getCode()

data

L'azione viene avviata quando l'azione loadVariables() o loadMovie() riceve i dati. Quando viene specificato con un'azione loadVariables(), l'evento data si verifica una sola volta, al momento del caricamento dell'ultima variabile. Quando viene specificato mediante un'azioneloadMovie(), l'evento data si verifica ripetutamente a ogni sezione di dati recuperata.

86

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente utilizza onClipEvent() con l'evento di filmato keyDown ed progettato per essere associato a un clip filmato o a un pulsante. L'evento di filmatokeyDown viene generalmente utilizzato con uno o pi metodi e propriet dell'oggetto Key. Lo script seguente utilizza Key.getCode() per identificare il tasto premuto dall'utente; se il tasto premuto corrisponde alla propriet Key.RIGHT, l'indicatore di riproduzione viene inviato al fotogramma successivo; se il tasto premuto corrisponde alla propriet Key.LEFT, l'indicatore di riproduzione viene inviato al fotogramma precedente.
onClipEvent (keyDown) { if (Key.getCode() == Key.RIGHT) { this._parent.nextFrame(); } else if (Key.getCode() == Key.LEFT) { this._parent.prevFrame(); } }

Il seguente esempio utilizza onClipEvent() con gli eventi di filmato load e mouseMove. Le propriet _xmouse e _ymouse rilevano la posizione del mouse ogni volta che quest'ultimo viene spostato, e la visualizzano nel campo di testo che stato creato in fase di runtime.
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; }

Vedere anche
Key, _xmouse (propriet MovieClip._xmouse), _ymouse (propriet MovieClip._ymouse), Gestore on, Funzione updateAfterEvent

Funzione ord
ord(character:String) : Number

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita dai metodi e dalle propriet della classe String. Converte i caratteri in numeri di codice ASCII. Disponibilit: Flash Player 4; ActionScript 1.0

Funzioni globali

87

Parametri
character:String

- Il carattere da convertire in numero di codice ASCII.

Valori restituiti
Number

- Il numero di codice ASCII del carattere specificato.

Vedere anche
Stringa, charCodeAt (metodo String.charCodeAt)

Funzione parseFloat
parseFloat(string:String) : Number

Converte una stringa in un numero a virgola mobile. La funzione legge, o analizza, e restituisce i numeri in una stringa finch non trova un carattere che non fa parte del numero iniziale. Se la stringa non inizia con un numero che pu essere analizzato, parseFloat() restituisce NaN. Lo spazio bianco che precede i numeri interi validi viene ignorato, allo stesso modo dei caratteri non numerici finali. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
string:String

- La stringa da leggere e convertire in numero a virgola mobile.

Valori restituiti
Number

- Un numero o NaN (not a number).

Esempio Gli esempi seguenti utilizzano la funzione parseFloat() per valutare vari tipi di numero:
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

Vedere anche
Costante NaN, Funzione parseInt

88

Capitolo 1: Elementi del linguaggio ActionScript

Funzione parseInt
parseInt(expression:String, [radix:Number]) : Number

Converte una stringa in un numero intero. Se la stringa specificata nei parametri non pu essere convertita in numero, la funzione restituisce NaN. Le stringhe che iniziano con 0x vengono interpretate come numeri esadecimali. I numeri interi che iniziano con 0 o che specificano una radice di 8 vengono interpretati come numeri ottali. Lo spazio bianco che precede i numeri interi validi viene ignorato, allo stesso modo dei caratteri non numerici finali. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
expression:String

- Una stringa da convertire in numero intero.

radix:Number [opzionale] - Un numero intero che rappresenta la radice (base) del numero da

analizzare. I valori accettabili sono quelli compresi tra 2 e 36. Valori restituiti
Number

- Un numero o NaN (not a number).

Esempio Gli esempi in questa sezione utilizzano la funzione parseInt() per valutare vari tipi di numeri. L'esempio seguente restituisce 3:
parseInt("3.5")

L'esempio seguente restituisce NaN:


parseInt("bar")

L'esempio seguente restituisce 4:


parseInt("4foo")

L'esempio seguente mostra una conversione esadecimale che restituisce 1016:


parseInt("0x3F8")

L'esempio seguente mostra una conversione esadecimale che utilizza il parametro opzionale radix e che restituisce 1000:
parseInt("3E8", 16)

L'esempio seguente mostra una conversione binaria e restituisce 10, che la rappresentazione decimale del valore binario 1010:
parseInt("1010", 2)

Funzioni globali

89

L'esempio seguente mostra l'analisi sintattica di un numero ottale e restituisce 511, che la rappresentazione decimale del valore ottale 777:
parseInt("0777") parseInt("777", 8)

Vedere anche , Funzione parseFloat

Funzione play
play() : Void

Sposta l'indicatore di riproduzione pi avanti nella linea temporale. Disponibilit: Flash Player 2; ActionScript 1.0 Esempio Nell'esempio seguente, le due istanze di clip filmato stop_mc e play_mc sono presenti nello stage. Il codice ActionScript interrompe la riproduzione del file SWF quando si fa clic sull'istanza di clip filmato stop_mc. La riproduzione viene riavviata quando si fa clic sull'istanza play_mc.
this.stop_mc.onRelease = function() { stop(); }; this.play_mc.onRelease = function() { play(); }; trace("frame 1");

Vedere anche
Funzione gotoAndPlay, gotoAndPlay (metodo MovieClip.gotoAndPlay)

Funzione prevFrame
prevFrame() : Void

Invia l'indicatore di riproduzione al fotogramma precedente. Se il fotogramma corrente il fotogramma 1, l'indicatore di riproduzione non si sposta. Disponibilit: Flash Player 2; ActionScript 1.0

90

Capitolo 1: Elementi del linguaggio ActionScript

Esempio Quando l'utente fa clic sul pulsante myBtn_btn e per tale pulsante viene collocato il codice ActionScript seguente su un fotogramma nella linea temporale, l'indicatore di riproduzione viene inviato al fotogramma precedente:
stop(); this.myBtn_btn.onRelease = function(){ prevFrame(); };

Vedere anche
Funzione nextFrame, prevFrame (metodo MovieClip.prevFrame)

Funzione prevScene
prevScene() : Void

Invia l'indicatore di riproduzione al fotogramma 1 della scena precedente. Disponibilit: Flash Player 2; ActionScript 1.0 Vedere anche
Funzione nextScene

Funzione print
print(target:Object, boundingBox:String) : Void

Stampa il clip filmato target in base ai limiti specificati nel parametro (bmovie, bmax o bframe). Se si desidera stampare fotogrammi specifici del clip filmato target, associare un'etichetta di fotogramma #p ai fotogrammi in questione. Le stampe ottenute mediante la funzione print() sono di qualit superiore rispetto a quelle ottenute mediante printAsBitmap() tuttavia, print() non pu essere utilizzata per la stampa di clip filmato che utilizzano trasparenze alfa o effetti di colore speciali. Se si utilizza bmovie per il parametro boundingBox ma non si assegna un'etichetta #b a un fotogramma, l'area di stampa viene determinata in base alle dimensioni sullo stage del clip filmato caricato. (Il clip filmato caricato non eredita le dimensioni dello stage del clip filmato principale.) Tutti gli elementi stampabili di un clip filmato devono essere stati caricati completamente affinch possa iniziare la stampa.

Funzioni globali

91

La funzione di stampa di Flash Player supporta le stampanti PostScript e non PostScript. Le stampanti non PostScript convertono la grafica vettoriale in bitmap. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri - Il nome dell'istanza di un clip filmato da stampare. Per impostazione predefinita, possono essere stampati tutti i fotogrammi presenti nell'istanza target. Se si desidera stampare fotogrammi specifici del clip filmato, assegnare un'etichetta di fotogramma #p ai fotogrammi in questione.
target:Object

- Modificatore che imposta l'area di stampa del clip filmato. Racchiudere questo parametro tra virgolette (" o ') e specificare uno dei seguenti valori:
boundingBox:String

bmovie

Definisce il riquadro di delimitazione di un fotogramma specifico di un clip filmato come area di stampa per tutti i fotogrammi stampabili del clip filmato. Assegnare un'etichetta #b al fotogramma il cui riquadro di delimitazione deve essere utilizzato come area di stampa.

bmax Definisce come

area di stampa una combinazione di tutti i riquadri di delimitazione di tutti i fotogrammi stampabili. Specificare il parametro bmax quando i fotogrammi stampabili del clip filmato hanno dimensioni differenti.

Indica che il riquadro di delimitazione di ciascun fotogramma stampabile dovrebbe essere utilizzato come area di stampa per quel fotogramma, vale a dire, che l'area di stampa cambia per ogni fotogramma e gli oggetti vengono modificati in scala in modo da adattarsi all'area di stampa. Utilizzare bframe se si hanno oggetti di dimensioni diverse e si desidera che ogni oggetto riempia la pagina stampata.
bframe

Esempio L'esempio seguente stampa tutti i fotogrammi stampabili in holder_mc con un'area di stampa definita dal riquadro di delimitazione di ciascun fotogramma:
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"); };

Nel codice ActionScript precedente possibile sostituire bframe con bmovie per fare in modo che l'area di stampa sia definita dal riquadro di delimitazione di un fotogramma a cui sia associata l'etichetta #b.

92

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
Funzione printAsBitmap, Funzione printAsBitmapNum, PrintJob, Funzione printNum

Funzione printAsBitmap
printAsBitmap(target:Object, boundingBox:String) : Void

Stampa il clip filmato target come immagine bitmap in base ai limiti specificati nel parametro (bmovie, bmax o bframe). Utilizzare printAsBitmap() per stampare i clip filmato contenenti fotogrammi con oggetti che utilizzano trasparenze o effetti di colore. L'azione printAsBitmap() stampa alla risoluzione pi alta disponibile sulla stampante, in modo da ottenere definizione e qualit ottimali. Se il clip filmato non contiene trasparenze alfa o effetti di colore, Macromedia consiglia di utilizzare la funzione print() al fine di ottenere stampe di qualit migliore. Se si utilizza bmovie per il parametro boundingBox ma non si assegna un'etichetta #b a un fotogramma, l'area di stampa viene determinata in base alle dimensioni sullo stage del clip filmato caricato. (Il clip filmato caricato non eredita le dimensioni dello stage del clip filmato principale.) Tutti gli elementi stampabili di un clip filmato devono essere stati caricati completamente affinch possa iniziare la stampa. La funzione di stampa di Flash Player supporta le stampanti PostScript e non PostScript. Le stampanti non PostScript convertono la grafica vettoriale in bitmap. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
target:Object

- Il nome dell'istanza del clip filmato da stampare. Per impostazione predefinita possono essere stampati tutti i fotogrammi presenti nel clip filmato. Se si desidera stampare fotogrammi specifici del clip filmato, assegnare un'etichetta di fotogramma #p ai fotogrammi in questione.

boundingBox:String - Modificatore che imposta l'area di stampa del clip filmato. Racchiudere questo parametro tra virgolette (" o ') e specificare uno dei seguenti valori:

bmovie

Definisce il riquadro di delimitazione di un fotogramma specifico di un clip filmato come area di stampa per tutti i fotogrammi stampabili del clip filmato. Assegnare un'etichetta #b al fotogramma il cui riquadro di delimitazione deve essere utilizzato come area di stampa.

Funzioni globali

93

bmax Definisce come

area di stampa una combinazione di tutti i riquadri di delimitazione di tutti i fotogrammi stampabili. Specificare il parametro bmax quando i fotogrammi stampabili del clip filmato hanno dimensioni differenti.

bframe Indica che il riquadro di delimitazione di ogni fotogramma stampabile deve essere utilizzato come area di stampa per il fotogramma stesso. Questo parametro modifica l'area di stampa di ogni fotogramma e ridimensiona gli oggetti in modo da adattarli all'area di stampa. Utilizzare bframe se si hanno oggetti di dimensioni diverse e si desidera che ogni oggetto riempia la pagina stampata.

Esempio L'esempio seguente stampa tutti i fotogrammi stampabili in holder_mc con un'area di stampa definita dal riquadro di delimitazione del fotogramma:
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"); };

Vedere anche
Funzione print, Funzione printAsBitmapNum, Funzione printNum, PrintJob

Funzione printAsBitmapNum
printAsBitmapNum(level:Number, boundingBox:String) : Void

Stampa un livello di FlashPlayer come immagine bitmap in base ai limiti specificati nel parametro (bmovie, bmax o bframe). Utilizzare printAsBitmapNum() per stampare i clip filmato contenenti fotogrammi con oggetti che utilizzano trasparenze o effetti di colore. L'azione printAsBitmapNum() stampa alla risoluzione pi alta disponibile sulla stampante, in modo da mantenere definizione e qualit ottimali. Per calcolare le dimensioni del file stampabile di un fotogramma designato per la stampa come bitmap, moltiplicare la larghezza in pixel per l'altezza in pixel per la risoluzione della stampante. Se il clip filmato non contiene trasparenze alfa o effetti di colore, l'uso di printNum() consente di ottenere stampe di qualit migliore.

94

Capitolo 1: Elementi del linguaggio ActionScript

Se si utilizza bmovie per il parametro boundingBox ma non si assegna un'etichetta #b a un fotogramma, l'area di stampa viene determinata in base alle dimensioni sullo stage del clip filmato caricato. (Il clip filmato caricato non eredita le dimensioni dello stage del filmato principale.) Tutti gli elementi stampabili di un clip filmato devono essere stati caricati completamente affinch possa iniziare la stampa. La funzione di stampa di Flash Player supporta le stampanti PostScript e non PostScript. Le stampanti non PostScript convertono la grafica vettoriale in bitmap. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
level:Number

- Il livello di Flash Player da stampare. Per impostazione predefinita possono essere stampati tutti i fotogrammi presenti nel livello. Se si desidera stampare fotogrammi specifici del livello, assegnare un'etichetta di fotogramma #p ai fotogrammi in questione.

boundingBox:String - Modificatore che imposta l'area di stampa del clip filmato. Racchiudere questo parametro tra virgolette (" o ') e specificare uno dei seguenti valori:

bmovie

Definisce il riquadro di delimitazione di un fotogramma specifico di un clip filmato come area di stampa per tutti i fotogrammi stampabili del clip filmato. Assegnare un'etichetta #b al fotogramma il cui riquadro di delimitazione deve essere utilizzato come area di stampa.

bmax Definisce come

area di stampa una combinazione di tutti i riquadri di delimitazione di tutti i fotogrammi stampabili. Specificare il parametro bmax quando i fotogrammi stampabili del clip filmato hanno dimensioni differenti.

bframe Indica che il riquadro di delimitazione di ogni fotogramma stampabile deve essere utilizzato come area di stampa per il fotogramma stesso. Questo parametro modifica l'area di stampa di ogni fotogramma e ridimensiona gli oggetti in modo da adattarli all'area di stampa. Utilizzare bframe se si hanno oggetti di dimensioni diverse e si desidera che ogni oggetto riempia la pagina stampata.

Esempio L'esempio seguente stampa il contenuto dello stage quando l'utente fa clic sul pulsante myBtn_btn. L'area da stampare definita dal riquadro di delimitazione del fotogramma.
myBtn_btn.onRelease = function(){ printAsBitmapNum(0, "bframe") };

Funzioni globali

95

Vedere anche
Funzione print, Funzione printAsBitmap, PrintJob, Funzione printNum

Funzione printNum
printNum(level:Number, boundingBox:String) : Void

Stampa il livello in Flash Player in base ai limiti specificati nel parametro boundingBox (bmovie, bmax, bframe). Se si desidera stampare fotogrammi specifici del clip filmato target, associare un'etichetta di fotogramma #p ai fotogrammi in questione. L'uso di printNum() consente di ottenere stampe di qualit migliore rispetto a quelle prodotte mediante printAsBitmapNum(), tuttavia, non possibile utilizzare printNum() per stampare filmati con trasparenze alfa o effetti di colore speciali. Se si utilizza bmovie per il parametro boundingBox ma non si assegna un'etichetta #b a un fotogramma, l'area di stampa viene determinata in base alle dimensioni sullo stage del clip filmato caricato. (Il clip filmato caricato non eredita le dimensioni dello stage del filmato principale.) Tutti gli elementi stampabili di un clip filmato devono essere stati caricati completamente affinch possa iniziare la stampa. La funzione di stampa di Flash Player supporta le stampanti PostScript e non PostScript. Le stampanti non PostScript convertono la grafica vettoriale in bitmap. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
level:Number

- Il livello di Flash Player da stampare. Per impostazione predefinita possono essere stampati tutti i fotogrammi presenti nel livello. Se si desidera stampare fotogrammi specifici del livello, assegnare un'etichetta di fotogramma #p ai fotogrammi in questione.

boundingBox:String - Modificatore che imposta l'area di stampa del clip filmato. Racchiudere questo parametro tra virgolette (" o ') e specificare uno dei seguenti valori:

bmovie

Definisce il riquadro di delimitazione di un fotogramma specifico di un clip filmato come area di stampa per tutti i fotogrammi stampabili del clip filmato. Assegnare un'etichetta #b al fotogramma il cui riquadro di delimitazione deve essere utilizzato come area di stampa.

bmax Definisce come

area di stampa una combinazione di tutti i riquadri di delimitazione di tutti i fotogrammi stampabili. Specificare il parametro bmax quando i fotogrammi stampabili del clip filmato hanno dimensioni differenti.

96

Capitolo 1: Elementi del linguaggio ActionScript

bframe Indica che il riquadro di delimitazione di ogni fotogramma stampabile deve essere

utilizzato come area di stampa per il fotogramma stesso. Questo parametro modifica l'area di stampa di ogni fotogramma e ridimensiona gli oggetti in modo da adattarli all'area di stampa. Utilizzare bframe se si hanno oggetti di dimensioni diverse e si desidera che ogni oggetto riempia la pagina stampata. Vedere anche
Funzione print, Funzione printAsBitmap, Funzione printAsBitmapNum, PrintJob

Funzione random
random(value:Number) : Number

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da Math.random(). Restituisce un numero intero casuale compreso tra 0 e un valore inferiore al numero intero specificato nel parametro value. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
value:Number

- Un numero intero.

Valori restituiti
Number

- Un numero intero casuale.

Esempio L'utilizzo seguente di random() restituisce il valore 0, 1, 2, 3 o 4: random(5); Vedere anche


random (metodo Math.random)

Funzioni globali

97

Funzione removeMovieClip
removeMovieClip(target:Object)

Elimina il clip filmato specificato. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri - Il percorso di destinazione di un'istanza di clip filmato creata con o il nome dell'istanza di un clip filmato creata con MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip().
target:Object duplicateMovieClip()

Esempio L'esempio seguente crea un nuovo clip filmato di nome myClip_mc e duplica il clip filmato. Al secondo filmato viene assegnato il nome newClip_mc. Le immagini vengono caricate in entrambi i clip filmato. Quando viene premuto il pulsante button_mc, il clip filmato duplicato viene rimosso dallo stage.
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); };

Vedere anche
Funzione duplicateMovieClip, duplicateMovieClip (metodo MovieClip.duplicateMovieClip), attachMovie (metodo MovieClip.attachMovie), removeMovieClip (metodo MovieClip.removeMovieClip), createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip)

98

Capitolo 1: Elementi del linguaggio ActionScript

Funzione setInterval
interval:Number, [param1:Object, param2, ..., paramN]) : Number setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number Chiama una funzione, un metodo di un oggetto a intervalli regolari durante la riproduzione di un file SWF. possibile utilizzare setInterval() per eseguire qualsiasi funzione ripetutamente nel tempo. Utilizzare i seguenti suggerimenti con setInterval():

setInterval(functionReference:Function,

Identificare l'area di validit della funzione richiamata. Identificare l'area di validit in cui stato impostato l'ID intervallo (il valore restituito da setInterval()). Cancellare gli intervalli impostati in precedenza prima di crearne di nuovi.

Questi suggerimenti sono analizzati in dettaglio nei paragrafi che seguono. Identificare l'area di validit della funzione richiamata. Per identificare l'area di validit della funzione richiamata, passare l'oggetto in cui il metodo setInterval() pu essere eseguito (area di validit oggetto) come primo parametro e il nome del metodo da eseguire come secondo parametro (come mostrato nella seconda firma). Ci verificare che il metodo desiderato venga eseguito dall'area di validit del riferimento oggetto passato. Se il metodo viene eseguito in questo modo, pu fare riferimento a variabili membro dell'oggetto tramite la parola chiave this. Identificare l'area di validit in cui stato impostato l'identificatore dell'intervallo. Per identificare l'area di validit in cui stato impostato l'identificatore dell'intervallo (intervalId), possibile assegnarlo a una variabile membro dell'area di validit dell'oggetto passata a setInterval(). In questo modo la funzione richiamata in grado di identificare l'identificatore intervallo in this.intervalId. Cancellare gli intervalli impostati in precedenza. Per cancellare gli intervalli impostati in precedenza prima di crearne di nuovi, generalmente consigliabile chiamare clearInterval() prima di setInterval(). Ci evita che si sovrascriva o si danneggi la variabile intervalId, che l'unico riferimento all'intervallo correntemente in esecuzione. Per chiamare clearInterval() prima di setInterval(), necessario che gli script di avvio e in esecuzione abbiano accesso a intervalId, come mostrano gli esempi. Nota: accertarsi di richiamare clearInterval() per arrestare la ripetizione ciclica dello script. Disponibilit: Flash Player 6; ActionScript 1.0

Funzioni globali

99

Parametri
functionReference:Function interval:Number

- Un riferimento alla funzione da richiamare.

functionReference

- L'intervallo in millisecondi tra le chiamate alla funzione o methodName passata.

Se interval inferiore alla frequenza dei fotogrammi del file SWF (ad esempio, 10 fotogrammi al secondo [fps] uguale a 100 millisecondi), la funzione interval viene chiamata nel punto pi vicino a interval possibile. L'esecuzione di script lunghi che richiedono molte risorse di memoria durante un intervallo provoca ritardi. Se la funzione richiamata apporta una modifica agli elementi visivi, necessario usare la funzione updateAfterEvent() per verificare che lo schermo venga aggiornato frequentemente. Se interval superiore alla frequenza dei fotogrammi del file SWF, la funzione interval viene richiamata solo dopo la scadenza di interval e dopo che l'indicatore di riproduzione entrato nel fotogramma successivo per minimizzare l'impatto durante ogni aggiornamento dello schermo. [opzionale] - Parametri passati alla funzione inviata a functionReference o methodName. Nel caso di pi parametri, separarli mediante virgole: param1 , param2 , ...,
param:Object paramN objectReference:Object methodName:String objectReference.

- Un oggetto che contiene il metodo specificato da methodName.

- Un metodo che esiste nell'area di validit dell'oggetto specificato da

Valori restituiti
Number clearInterval()

- Un numero intero che identifica l'intervallo (ID intervallo) che possibile passare a per cancellare l'intervallo.

Esempio Esempio 1: il seguente esempio traccia il messaggio ad intervalli di 20 millisecondi, fino a 10 volte, quindi cancella l'intervallo. L'area di validit dell'oggetto, this, viene passata come primo parametro e il nome dell'oggetto executeCallback come secondo. Ci assicura che executeCallback() venga eseguito dalla stessa area di validit dello script di chiamata.
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);

100

Capitolo 1: Elementi del linguaggio ActionScript

} count++; } intervalId = setInterval(this, "executeCallback", duration);

Esempio 2: il seguente esempio simile al primo, eccetto per il fatto che chiama
clearInterval() prima di setInterval(). Ci pu essere utile per evitare cicli indesiderati

ed particolarmente importante nei sistemi basati sugli eventi perch consente di eseguire lo script di avvio pi volte prima della cancellazione di un intervallo specifico.
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();

Esempio 3: il seguente esempio mostra come passare un argomento personalizzato alla funzione chiamata.
var intervalId:Number; var count:Number = 0; var maxCount:Number = 10; var duration:Number = 20; var colors:Array = new Array("red", "blue", "yellow", "purple",

Funzioni globali

101

"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]);

Esempio 4: il seguente esempio mostra come usare setInterval() correttamente da una classe personalizzata di ActionScript 2.0. In questo caso, al pari degli esempi precedenti, this viene passato alla funzione setInterval() per fare in modo che il metodo venga chiamato nell'area di validit corretta.
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); }

102

Capitolo 1: Elementi del linguaggio ActionScript

public function executeCallback():Void { trace("executeCallback intervalId: " + intervalId + " count: " + count); if(count >= maxCount) { clearInterval(intervalId); } count++; } }

In un nuovo documento, creare una nuova istanza per la nuova classe:


var custom:CustomClass = new CustomClass();

Vedere anche
Funzione clearInterval, Funzione updateAfterEvent, classe, istruzione

Funzione setProperty
setProperty(target:Object, property:Object, expression:Object) : Void

Modifica un valore di propriet di un clip filmato durante la riproduzione del clip filmato. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
target:Object

- Il percorso del nome dell'istanza del clip filmato di cui si sta impostando la - La propriet da impostare.

propriet.
property:Object expression:Object

- Il nuovo valore letterale della propriet o un'equazione che restituisce il nuovo valore della propriet.

Funzioni globali

103

Esempio Il codice ActionScript seguente crea un nuovo clip filmato e vi carica un'immagine. Le coordinate _x e _y per il clip vengono impostate con setProperty(). Quando si seleziona il pulsante right_btn, la coordinata _x del clip filmato di nome params_mc viene incrementata di 20 pixel.
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() { setProperty(params_mc, _x, getProperty(params_mc, _x)+20); };

Vedere anche
Funzione getProperty

Funzione showRedrawRegions
showRedrawRegions(enable:Boolean, [color:Number]) : Void

Permette alla funzione debug di Player di mostrare le aree dello schermo che verranno ricreate (ovvero le aree sporche aggiornate). I contorni possono essere attivati anche tramite la voce di menu Mostra aree di ridisegno. Disponibilit: Flash Player 8; ActionScript 1.0 Parametri
enable:Boolean

- Specifica se abilitare (true) o disabilitare (false) le aree di ridisegno. Se impostato su true, i rettangoli di ridisegno sono visibili. Se impostato su false, i rettangoli di ridisegno vengono cancellati. [opzionale] - Il colore da usare per il disegno. Il valore predefinito rosso:

color:Number

0xFF0000. Esempio Il seguente esempio mostra come usare la funzione showRedrawRegions.


var w:Number = 100; var h:Number = 100; var shape1:MovieClip = createShape("shape1"); shape1.onEnterFrame = function():Void { this._x += 5; this._y += 5;

104

Capitolo 1: Elementi del linguaggio ActionScript

} 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()); 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; }

Funzione startDrag
startDrag(target:Object, [lock:Boolean, left:Number, top:Number, right:Number, bottom:Number]) : Void

Rende trascinabile il clip filmato target durante la riproduzione del filmato. possibile trascinare solo un clip filmato alla volta. Dopo l'esecuzione di un'operazione startDrag(), il clip filmato rimane trascinabile finch non viene esplicitamente arrestato da stopDrag() oppure finch non viene chiamata un'azione startDrag() per un altro clip filmato. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
target:Object lock:Boolean

- Il percorso target del clip filmato da trascinare.

[opzionale] - Valore booleano che specifica che il clip filmato trascinabile bloccato al centro della posizione del mouse (true ) oppure bloccato nel punto in cui l'utente aveva fatto clic sul clip filmato la prima volta (false ).

left,top,right,bottom:Number [opzionale] - Valori relativi alle coordinate del clip filmato principale, che indicano un rettangolo di delimitazione per il clip filmato.

Funzioni globali

105

Esempio L'esempio seguente crea in fase di runtime il clip filmato pic_mc, che pu essere trascinato da un utente in qualsiasi posizione associando le azioni startDrag() e stopDrag() al clip filmato. Un'immagine viene caricata in pic_mc mediante 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(); }; }; pic_mcl.addListener(listenerObject);

Vedere anche
Funzione stopDrag, _droptarget (propriet MovieClip._droptarget), startDrag (metodo MovieClip.startDrag)

Funzione stop
stop() : Void

Arresta il file SWF in corso di riproduzione. Questa azione viene comunemente utilizzata per controllare i clip filmato mediante i pulsanti. Disponibilit: Flash Player 2; ActionScript 1.0 Vedere anche
Funzione gotoAndStop, gotoAndStop (metodo MovieClip.gotoAndStop)

Funzione stopAllSounds
stopAllSounds() : Void

Interrompe tutti i suoni attualmente riprodotti in un file SWF senza arrestare l'indicatore di riproduzione. La riproduzione dei suoni impostati per la ripetizione riprende quando l'indicatore di riproduzione arriva nei fotogrammi in cui si trovano tali suoni. Disponibilit: Flash Player 3; ActionScript 1.0

106

Capitolo 1: Elementi del linguaggio ActionScript

Esempio Il codice seguente crea un campo di testo che visualizza le informazioni ID3 del brano. Viene creata una nuova istanza di oggetto Sound e il file MP3 viene caricato nel file SWF. Le informazioni ID3 vengono estratte dal file audio. Quando l'utente seleziona stop_mc, la riproduzione dell'audio viene messa in pausa Quando l'utente seleziona play_mc,, la riproduzione del brano riprende dal punto in cui era stata messa in pausa.
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; 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(); };

Vedere anche
Audio

Funzioni globali

107

Funzione stopDrag
stopDrag() : Void

Interrompe l'operazione di trascinamento corrente. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio Il codice seguente, collocato nella linea temporale principale, interrompe l'azione di trascinamento eseguita sull'istanza di clip filmato my_mc quando l'utente rilascia il pulsante del mouse:
my_mc.onPress = function () { startDrag(this); } my_mc.onRelease = function() { stopDrag(); }

Vedere anche
Funzione startDrag, _droptarget (propriet MovieClip._droptarget), startDrag (metodo MovieClip.startDrag), stopDrag (metodo MovieClip.stopDrag)

Funzione String
String(expression:Object) : String

Restituisce una rappresentazione sotto forma di stringa del parametro specificato, come descritto nell'elenco seguente:

Se expression un numero, la stringa restituita una rappresentazione sotto forma di testo del numero. Se expression una stringa, la stringa restituita expression. Se expression un oggetto, il valore restituito una rappresentazione sotto forma di stringa dell'oggetto generato chiamando la propriet stringa dell'oggetto o chiamando Object.toString() se questa propriet non esiste. Se expression un valore booleano, la stringa restituita "true" oppure "false". Se expression un clip filmato, il valore restituito il percorso target del clip filmato mediante notazione a barra (/).

108

Capitolo 1: Elementi del linguaggio ActionScript

Se expression undefined, vengono restituiti i seguenti valori:

Nei file pubblicati per Flash Player 6 e versione precedente, il valore una stringa vuota (""). Nei file pubblicati per Flash Player 7 e versione successiva, il risultato undefined undefined.

Nota: la notazione a barra non supportata in ActionScript 2.0. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
expression:Object

- Espressione che consente di convertire in stringa.

Valori restituiti
String

- Una stringa.

Esempio Nell'esempio seguente, il codice ActionScript viene utilizzato per convertire in stringa le espressioni specificate:
var string1:String = String("3"); var string2:String = String("9"); trace(string1+string2); // output: 39

Dal momento che entrambi i parametri sono costituiti da stringhe, i valori non vengono aggiunti bens concatenati. Vedere anche
toString (metodo Number.toString), toString (metodo Object.toString), Stringa, " (delimitatore di stringa), operatore

Funzione substring
substring(string:String, index:Number, count:Number) : String

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da String.substr(). Estrae parte di una stringa. Questa funzione con base uno, mentre i metodi dell'oggetto String sono con base zero. Disponibilit: Flash Player 4; ActionScript 1.0

Funzioni globali

109

Parametri
string:String index:Number count:Number

- La stringa da cui estrarre la nuova stringa.

- Il numero del primo carattere da estrarre. - Il numero di caratteri da includere nella stringa estratta, escluso il carattere

index. Valori restituiti


String

- La sottostringa estratta.

Vedere anche
substr (metodo String.substr)

Funzione targetPath
targetpath(targetObject:Object) : String

Restituisce una stringa che contiene il percorso target di un oggetto MovieClip, Button, TextField o Videoobject. Il percorso target viene restituito mediante notazione del punto (.); per recuperare il percorso target sotto forma di notazione a barra (/), utilizzare la propriet _target. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
targetObject:Object - Un riferimento (ad esempio _root o _parent ) all'oggetto del quale

si sta recuperano il percorso target. Pu essere un oggetto MovieClip, Button o TextField. Valori restituiti
String

- Una stringa contenente il percorso target del clip filmato specificato.

Esempio Nell'esempio seguente viene tracciato il percorso di destinazione di un clip filmato non appena viene caricato:
this.createEmptyMovieClip("myClip_mc", this.getNextHighestDepth()); trace(targetPath(myClip_mc)); // _level0.myClip_mc

Vedere anche
Funzione eval

110

Capitolo 1: Elementi del linguaggio ActionScript

Funzione tellTarget
tellTarget(target:String) {

statement(s);
}

Sconsigliata a partire da Flash Player 5. Macromedia consiglia di usare la notazione del punto (.) e l'istruzione with. Applica le istruzioni specificate nel parametro statements alla linea temporale specificata nel parametro target. L'azione tellTarget utile per i controlli di navigazione. Assegnare tellTarget ai pulsanti che arrestano o avviano i clip filmato in qualche altro punto dello stage. Inoltre, possibile fare in modo che i clip filmato si spostino a un fotogramma particolare del clip. Ad esempio possibile assegnare tellTarget a pulsanti che arrestano o avviano clip filmato sullo stage o che richiedano ai clip filmato di passare a un fotogramma particolare.
tellTarget.

In Flash 5 o versioni successive, possibile utilizzare la notazione (.) anzich l'azione possibile utilizzare l'azione with per eseguire pi azioni sulla stessa linea temporale. possibile utilizzare l'azione with in modo che venga applicata a qualunque oggetto, mentre l'azione tellTarget pu essere applicata solo ai clip filmato. Disponibilit: Flash Player 3; ActionScript 1.0 Parametri

target:String - Una stringa che specifica il percorso di destinazione della linea temporale da

controllare.
statement(s)

- Le istruzioni da eseguire se la condizione restituisce true.

Esempio Questa istruzione tellTarget controlla l'istanza di clip filmato denominata ball sulla linea temporale principale. Il fotogramma 1 dell'istanza di ball vuoto e su di esso presente un'azione stop() in modo che non sia visibile sullo stage. Quando si fa clic sul pulsante con l'azione seguente, tellTarget indica all'indicatore di riproduzione presente in ball di passare al fotogramma 2, che il punto in cui inizia l'animazione:
on(release) { tellTarget("_parent.ball") { gotoAndPlay(2); } }

Funzioni globali

111

L'esempio seguente utilizza la notazione del punto (.) per ottenere lo stesso risultato:
on(release) { _parent.ball.gotoAndPlay(2); }

Se necessario eseguire pi comandi per l'istanza di ball, possibile utilizzare l'azione with, come mostrato nell'istruzione seguente:
on(release) { with(_parent.ball) { gotoAndPlay(2); _alpha = 15; _xscale = 50; _yscale = 50; } }

Vedere anche
with (istruzione)

Funzione toggleHighQuality
toggleHighQuality()

Sconsigliata a partire da Flash Player 5. Questa funzione stata sostituita da _quality. Attiva e disattiva l'antialiasing in Flash Player. L'antialiasing smussa i bordi degli oggetti e rallenta la riproduzione dei file SWF. L'azione agisce su tutti i file SWF in Flash Player. Disponibilit: Flash Player 2; ActionScript 1.0 Esempio Ad esempio, il codice seguente pu essere applicato a un pulsante che, una volta premuto, attiva e disattiva l'antialiasing:
on(release) { toggleHighQuality(); }

Vedere anche , _quality, propriet

112

Capitolo 1: Elementi del linguaggio ActionScript

Funzione trace
trace(expression:Object)

possibile usare la funzione debug di Flash Player per acquisire l'output dalla funzione trace() e visualizzare il risultato. Utilizzare questa istruzione per registrare le note di programmazione o visualizzare i messaggi nel pannello Output durante la prova di un file SWF. Utilizzare il parametro expression per verificare l'esistenza di una condizione o per visualizzare i valori nel pannello Output. L'istruzione trace() simile alla funzione alert di JavaScript. Il comando Ometti azioni Trace nella finestra di dialogo Impostazioni pubblicazione consente di rimuovere le azioni trace() dal file SWF esportato. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri - Un'espressione da valutare. Quando un file SWF viene aperto nello strumento di creazione Flash (mediante il comando Prova filmato), il valore del parametro expression viene visualizzato nel pannello Output.
expression:Object

Esempio L'esempio seguente utilizza un'istruzione trace() per visualizzare nel pannello Output i metodi e le propriet del campo di testo error_txt che stato creato dinamicamente:
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 error_txt.condenseWhite = false ... error_txt.maxscroll = 1 error_txt.scroll = 1 */

Funzioni globali

113

Funzione unescape
unescape(string:String) : String

Valuta il parametro x come stringa, decodifica la stringa dal formato URL (convertendo tutte le sequenze esadecimali in caratteri ASCII) e restituisce la stringa. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
string:String

- Una stringa con sequenze esadecimali da decodificare mediante escape.

Valori restituiti
String

- Una stringa decodificata di un parametro in formato URL.

Esempio L'esempio seguente mostra il processo di conversione da escape a unescape:


var email:String = "user@somedomain.com"; trace(email); var escapedEmail:String = escape(email); trace(escapedEmail); var unescapedEmail:String = unescape(escapedEmail); trace(unescapedEmail);

Il risultato seguente viene visualizzato nel pannello Output.


user@somedomain.com user%40somedomain%2Ecom user@somedomain.com

Funzione unloadMovie
unloadMovie(target:MovieClip) : Void unloadMovie(target:String) : Void

Rimuove un clip filmato caricato mediante loadMovie() da Flash Player. Per scaricare un clip filmato caricato tramite loadMovieNum(), usare unloadMovieNum() anzich unloadMovie(). Disponibilit: Flash Player 3; ActionScript 1.0

114

Capitolo 1: Elementi del linguaggio ActionScript

Parametri
target:Object

- Il percorso target di un clip filmato. Questo parametro pu essere una stringa (ad esempio, "my_mc") oppure un riferimento diretto all'istanza del clip filmato (ad esempio, my_mc). I parametri che possono accettare pi tipi di dati vengono indicati con il tipo Object.

Esempio L'esempio seguente crea un nuovo clip filmato di nome pic_mc e carica un'immagine nel clip. Viene caricato mediante la classe MovieClipLoader. Quando si fa clic sull'immagine, il clip filmato viene scaricato dal file 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);

Vedere anche
loadMovie (metodo MovieClip.loadMovie), unloadClip (metodo MovieClipLoader.unloadClip)

Funzione unloadMovieNum
unloadMovieNum(level:Number) : Void

Rimuove un file SWF o un'immagine caricati da Flash Player mediante loadMovieNum(). Per scaricare un file SWF o un'immagine caricata tramite MovieClip.loadMovie(), utilizzare unloadMovie() anzich unloadMovieNum(). Disponibilit: Flash Player 3; ActionScript 1.0 Parametri
level:Number

- Il livello (_level N ) di un filmato caricato.

Funzioni globali

115

Esempio L'esempio seguente carica un'immagine in un file SWF. Quando si seleziona unload_btn, il contenuto caricato viene rimosso
loadMovieNum("yourimage.jpg", 1); unload_btn.onRelease = function() { unloadMovieNum(1); }

Vedere anche
Funzione loadMovieNum, Funzione unloadMovie, loadMovie (metodo MovieClip.loadMovie)

Funzione updateAfterEvent
updateAfterEvent() : Void

Aggiorna il display (indipendentemente dai fotogrammi per secondo impostati per il filmato) quando viene chiamata all'interno di un gestore onClipEvent() o come parte di una funzione o di un metodo trasmessi a setInterval(). Flash ignora le chiamate a updateAfterEvent che non si trovano all'interno di un gestore onClipEvent() o che non fanno parte di una funzione o metodo passati a setInterval(). Questa funzione pu essere utilizzata soltanto con alcuni gestori Mouse e MovieClip: i gestori mouseDown, mouseUp, mouseMove, keyDown e keyUp per la classe Mouse, e i gestori onMouseMove, onMouseDown, onMouseUp, onKeyDown e onKeyUp per la classe MovieClip. Non funziona invece con la classe Key. Disponibilit: Flash Player 5; ActionScript 1.0 Esempio L'esempio seguente mostra come creare un cursore personalizzato di nome cursor_mc. ActionScript viene utilizzato per sostituire il cursore del mouse con cursor_mc. A questo punto updateAfterEvent() viene utilizzato per aggiornare continuamente lo stage al fine di attenuare il movimento del cursore.
Mouse.hide(); cursor_mc.onMouseMove = function() { this._x = this._parent._xmouse; this._y = this._parent._ymouse; updateAfterEvent(); };

116

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
Gestore onClipEvent, Funzione setInterval

Propriet globali
Le propriet globali sono disponibili in tutti gli script e visibili a tutte le linee temporali e aree di validit del documento. Ad esempio, le propriet globali consentono l'accesso alle linee temporali di altri clip filmato caricati, sia relative (_parent) che assolute (_root). Inoltre, consentono di ridurre (this) o espandere (super) l'area di validit. possibile utilizzare le propriet globali per modificare le impostazioni di runtime quali l'accessibilit da parte degli screen reader, la qualit di riproduzione e le dimensioni del buffer audio. Riepilogo delle propriet globali
Modificatori Propriet
_accProps

Descrizione
Consente di controllare le opzioni di accessibilit degli screen reader per i file SWF, i clip filmato, i pulsanti, i campi di testo dinamico e i campi di input in fase di runtime. Propriet (globale); specifica se un rettangolo giallo viene visualizzato attorno al pulsante o al clip filmato che viene attivato mediante tastiera. Un riferimento all'oggetto globale che contiene le classi ActionScript principali, quali String, Object, Math e Array. Sconsigliata a partire da Flash Player 5: questa propriet stata sconsigliata a favore di _quality. Specifica il livello di antialiasing applicato al file SWF corrente. Un riferimento alla linea temporale principale di _level N. Sconsigliata a partire da Flash Player 5: questa propriet stata sconsigliata a favore di TextField.maxscroll. Indica il numero della prima riga in alto del testo visibile all'interno di un campo di testo in cui visibile anche l'ultima riga in basso. Specifica o restituisce un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente.

_focusrect

_global

_highquality

_level

maxscroll

_parent

Propriet globali

117

Modificatori

Propriet
_quality

Descrizione
Imposta o recupera la qualit di rendering utilizzata per un clip filmato. Specifica o restituisce un riferimento alla linea temporale principale del clip filmato. Sconsigliata a partire da Flash Player 5: questa propriet stata sconsigliata a favore di TextField.scroll. Controlla la visualizzazione delle informazioni in un campo di testo associato ad una variabile. Stabilisce il numero di secondi dell'audio in streaming da inserire nel buffer. Fa riferimento ad un oggetto o all'istanza di un clip filmato.

_root

scroll

_soundbuftime

this

_accProps, propriet
_accProps.propertyName instanceName._accProps.propertyName Consente di controllare le opzioni di accessibilit degli screen reader per i file SWF, i clip filmato, i pulsanti, i campi di testo dinamico e i campi di input in fase di runtime. Queste propriet hanno priorit sulle impostazioni corrispondenti disponibili nel pannello Accessibilit in fase di creazione. Perch le modifiche apportate a queste propriet abbiano effetto, necessario chiamare Accessibility.updateProperties().

Per informazioni sul pannello Accessibilit, vedere "Pannello Accessibilit di Flash" in Uso di Flash. Per determinare se il lettore viene eseguito in un ambiente che supporta strumenti di accessibilit, utilizzare il metodo System.capabilities.hasAccessibility().

118

Capitolo 1: Elementi del linguaggio ActionScript

L'elenco seguente mostra il nome e il tipo di dati di ogni propriet _accProps, l'impostazione equivalente nel pannello Accessibilit e i tipi di oggetti a cui possibile applicare la propriet. La definizione logica inversa significa che l'impostazione della propriet il contrario dell'impostazione corrispondente nel pannello Accessibilit. Ad esempio, impostare la propriet silent su true equivale a deselezionare l'opzione Rendi accessibile il filmato o l'opzione Rendi accessibili gli oggetti.
Propriet Tipi di dati Equivalente nel pannello Accessibilit
Rendi accessibile il filmato/Rendi accessibili gli oggetti (logica inversa) Rendi accessibili gli oggetti secondari (logica inversa) Nome

Si applica a

silent

Booleano

File SWF interi Clip filmato Pulsanti Testo dinamico Testo di input File SWF interi Clip filmato File SWF interi Clip filmato Pulsanti Testo di input File SWF interi Clip filmato Pulsanti Testo dinamico Testo di input Clip filmato Pulsanti Testo di input

forceSimple

Booleano

name

Stringa

description

Stringa

Descrizione

shortcut

Stringa

Tasto di scelta rapida

Per il campo Tasto di scelta rapida, utilizzare nomi sotto forma di Control+A. L'aggiunta di un tasto di scelta rapida al pannello Accessibilit non crea effettivamente un tasto di scelta rapida, semplicemente informa gli screen reader dell'esistenza di un tasto di questo tipo. Per informazioni sull'assegnazione di un tasto di scelta rapida ad un oggetto accessibile, vedere Key.addListener(). Per specificare le impostazioni corrispondenti all'impostazione dell'indice di tabulazione nel pannello Accessibilit, utilizzare le propriet Button.tabIndex, MovieClip.tabIndex o TextField.tabIndex. Non possibile specificare un'impostazione Etichetta automatica in fase di runtime.

Propriet globali

119

Per fare riferimento all'oggetto _accProps che rappresenta il documento Flash intero, omettere il parametro instanceName. Il valore di _accProps deve essere un oggetto; quindi, se non esiste gi un oggetto _accProps, necessario crearne uno, come mostra l'esempio seguente, prima di poter assegnare valori alle propriet dell'oggetto _accProps:
if ( _accProps == undefined ) { _accProps = new Object(); } _accProps.name = "My SWF file";

Quando si utilizza _accProps senza il parametro instanceName, le modifiche apportate alle propriet _accProps si applicano al file SWF intero. Ad esempio, il codice seguente imposta la propriet di Accessibilit name per tutto il file SWF alla stringa "Pet Store", quindi chiama Accessibility.updateProperties() in modo che venga apportato il cambiamento:
_accProps.name = "Pet Store"; Accessibility.updateProperties();

Al contrario, il codice seguente imposta la propriet name di un clip filmato con il nome dell'istanza price_mc sulla stringa "Price":
price_mc._accProps.name = "Price"; Accessibility.updateProperties();

Se si stanno specificando diverse propriet di accessibilit, apportare il maggior numero di modifiche possibili prima di chiamare Accessibility.updateProperties(), invece di chiamarla dopo le singole istruzioni di propriet, come descritto nell'esempio seguente:
_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();

Se non si specifica una propriet di accessibilit per un documento o un oggetto, vengono implementati i valori impostati nel pannello Accessibilit.

120

Capitolo 1: Elementi del linguaggio ActionScript

Dopo che stata specificata una propriet di accessibilit, il suo valore non pu essere ripristinato su un valore impostato nel pannello Accessibilit. Tuttavia, possibile impostare la propriet sul suo valore predefinito (false per i valori booleani, stringhe vuote per i valori stringa) eliminando la propriet dall'oggetto _accProps, come illustrato nell'esempio seguente:
my_mc._accProps.silent = true; // set a property // other code here delete my_mc._accProps.silent; // revert to default value

Il valore di _accProps deve essere un oggetto; quindi, se non esiste gi un oggetto _accProps, necessario crearne uno prima di poter assegnare indicazioni alle propriet dell'oggetto _accProps:
if (_accProps == undefined) { _accProps = new Object(); } _accProps.name = "My movie";

Disponibilit: Flash Player 6,0,65,0; ActionScript 1.0 Parametri


propertyName:Boolean or String

- Il nome di una propriet di accessibilit (vedere la

descrizione per i nomi validi). instanceName


instanceName:String - Il nome assegnato ad un'istanza di un clip filmato, pulsante, campo di testo dinamico o campo di testo di input. Per fare riferimento all'oggetto _accProps che rappresenta l'intero documento Flash, omettere instanceName.

Esempio Se si modifica un'immagine e si desidera aggiornarne la descrizione dell'accessibilit, possibile utilizzare il codice ActionScript seguente:
my_mc.gotoAndStop(2); if (my_mc._accProps == undefined ) { my_mc._accProps = new Object(); } my_mc._accProps.name = "Photo of Mount Rushmore"; Accessibility.updateProperties();

Vedere anche
isActive (metodo Accessibility.isActive), updateProperties (metodo Accessibility.updateProperties), hasAccessibility (propriet capabilities.hasAccessibility)

Propriet globali

121

_focusrect, propriet
_focusrect = Boolean;

Specifica se attorno al pulsante o al clip filmato che viene attivato mediante tastiera viene visualizzato un rettangolo giallo. Se _focusrect impostata sul valore predefinito true, un rettangolo giallo viene visualizzato attorno al pulsante o clip filmato corrente nel momento in cui l'utente preme il tasto di tabulazione per passare da un oggetto all'altro in un file SWF. Specificare false per fare in modo che il rettangolo giallo non venga visualizzato. Questa una propriet globale che pu essere ignorata nel caso di istanze specifiche. Se la propriet _focusrect globale impostata su false, il comportamento predefinito per tutti i pulsanti e i clip filmato prevede che la navigazione mediante tastiera sia limitata al tasto Tab. Tutti gli altri tasti vengono ignorati, compresi Invio e i tasti freccia. Per ripristinare la navigazione mediante tutta la tastiera, necessario impostare _focusrect su true. Per ripristinare la completa funzionalit da tastiera per un pulsante o un clip filmato specifico, possibile ignorare questa propriet globale mediante Button._focusrect oppure MovieClip._focusrect. Nota: se si utilizza un componente, FocusManager ha la priorit sulla gestione dell'attivazione di Flash Player, anche nel caso di questa propriet globale. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio L'esempio seguente mostra come nascondere il rettangolo giallo attorno a tutte le istanze di un file SWF quando queste sono state attivate mediante tastiera in una finestra del browser. Creare alcuni pulsanti o clip filmato e aggiungere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
_focusrect = false;

Configurare le impostazioni di pubblicazione per Flash Player 6 e provare il file SWF in una finestra del browser selezionando File > Anteprima pubblicazione > HTML. Rendere attivo il file SWF facendo clic su di esso nella finestra del browser e utilizzare il tasto Tab per rendere attiva ciascuna istanza. Se si preme Invio o la barra spaziatrice quando la propriet _focusrect disabilitata, il gestore eventi onRelease non viene chiamato quando _focusrect abilitata o true. Vedere anche
_focusrect (propriet Button._focusrect), _focusrect (propriet MovieClip._focusrect)

122

Capitolo 1: Elementi del linguaggio ActionScript

_global, propriet
_global.identifier

Un riferimento all'oggetto globale che contiene le classi ActionScript principali, quali String, Object, Math e Array. possibile, ad esempio, creare una libreria che sia visibile come un oggetto ActionScript globale, simile agli oggetti Math e Date. A differenza delle variabili e funzioni dichiarate localmente o nella linea temporale, le variabili e funzioni globali sono visibili in tutte le linee temporali e aree di validit del file SWF, a condizione che non siano oscurate da identificatori con nomi uguali nelle aree di validit interne. Nota: durante l'impostazione del valore di una variabile globale, necessario utilizzare il nome completo della variabile, come _global.variableName. In caso contrario verrebbe creata una variabile locale con lo stesso nome che oscurerebbe quella che si sta cercando di impostare. Restituisce un riferimento all'oggetto globale che contiene le classi ActionScript principali, quali String, Object, Math e Array. Disponibilit: Flash Player 6; ActionScript 1.0 Esempio L'esempio seguente crea la funzione di primo livello factorial(),, disponibile per ogni linea temporale e area di validit in un file 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'esempio seguente mostra il modo in cui il mancato utilizzo del nome completo di una variabile quando si imposta il valore di quest'ultima porta a risultati imprevisti:
_global.myVar = "globalVariable"; trace(_global.myVar); // globalVariable trace(myVar); // globalVariable myVar = "localVariable"; trace(_global.myVar); // globalVariable trace(myVar); // localVariable

Propriet globali

123

Vedere anche
var, istruzione, set variable, istruzione

_highquality, propriet
_highquality

Sconsigliata a partire da Flash Player 5: questa propriet stata sconsigliata a favore di _quality. Specifica il livello di antialiasing applicato al file SWF corrente. Specificare 2 (migliore qualit) per applicare un'alta qualit con lo smussamento bitmap sempre abilitato. Specificare 1 (alta qualit) per applicare l'antialiasing; le immagini bitmap vengono attenuate se il file SWF non contiene animazioni. Specificare 0 (bassa qualit) per impedire l'antialiasing. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio Il codice ActionScript seguente viene collocato nella linea temporale principale e imposta la propriet quality globale in modo che ai file non animati venga sempre applicata l'attenuazione bitmap. _highquality = 1; Vedere anche
_quality, propriet

_level, propriet
_levelN

Un riferimento alla linea temporale principale di _level N. Utilizzare loadMovieNum() per caricare i file SWF in Flash Player prima di indicarli come destinazione mediante la propriet _level. anche possibile servirsi di _level N per indicare come destinazione un file SWF al livello assegnato da N. Il file SWF inizialmente caricato in un'istanza di Flash Player viene automaticamente caricato in _level0. Il file SWF in _level0 imposta la frequenza dei fotogrammi, il colore di sfondo e le dimensioni dei fotogrammi per tutti i file SWF che vengono caricati successivamente. I file vengono quindi ordinati nei livelli con numeri pi alti, sopra il file SWF in _level0.

124

Capitolo 1: Elementi del linguaggio ActionScript

necessario assegnare un livello a ciascun file SWF che viene caricato in Flash Player mediante loadMovieNum(). I livelli possono essere assegnati in qualsiasi ordine. Se si assegna un livello che contiene gi un file SWF (compreso _level0), il file che si trova in quel livello viene scaricato e sostituito dal nuovo file SWF. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio L'esempio seguente arresta l'indicatore di riproduzione nella linea temporale principale del file SWF sub.swf che viene caricato in _level9. Il file sub.swf contiene l'animazione e si trova nella stessa directory del documento che contiene il seguente codice ActionScript:
loadMovieNum("sub.swf", 9); myBtn_btn.onRelease = function() { _level9.stop(); };

possibile sostituire _level9.stop() dell'esempio precedente con il codice seguente:


_level9.gotoAndStop(5);

Questa azione, anzich arrestare l'indicatore di riproduzione della linea temporale principale del file SWF in _level9, lo invia al fotogramma 5. Vedere anche
Funzione loadMovie, swapDepths (metodo MovieClip.swapDepths)

maxscroll, propriet
variable_name.maxscroll

Sconsigliata a partire da Flash Player 5: questa propriet stata sconsigliata a favore di TextField.maxscroll. Indica il numero della prima riga in alto del testo visibile all'interno di un campo di testo in cui visibile anche l'ultima riga in basso. La propriet maxscroll agisce in combinazione con la propriet scroll per controllare il modo in cui vengono visualizzate le informazioni in un campo di testo. La propriet pu essere recuperata, ma non modificata. Disponibilit: Flash Player 4; ActionScript 1.0 Vedere anche
maxscroll (propriet TextField.maxscroll), scroll (propriet TextField.scroll)

Propriet globali

125

_parent, propriet
_parent.property _parent._parent.property

Specifica o restituisce un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. L'oggetto corrente l'oggetto che contiene il codice ActionScript che fa riferimento a _parent. Utilizzare _parent per specificare un percorso relativo dei clip filmati oppure oggetti che si trovano sopra il clip filmato oppure l'oggetto corrente. Disponibilit: Flash Player 5; ActionScript 1.0 Esempio Nell'esempio seguente, sullo stage presente un clip filmato con il nome di istanza All'interno del clip filmato si trova un altro clip filmato con il nome di istanza circle_mc. Il codice ActionScript seguente consente di modificare l'istanza circle_mc principale (square_mc) quando si fa clic sul cerchio. Quando si utilizza il sistema di indirizzi relativi (ovvero, quando si utilizza _parent anzich _root), pu risultare pi semplice usare come prima cosa il pulsante Inserisci percorso target nel pannello Azioni.
square_mc. this.square_mc.circle_mc.onRelease = function() { this._parent._alpha -= 5; };

Vedere anche
_root, propriet, Funzione targetPath

_quality, propriet
_quality:String

Imposta o recupera la qualit di rendering utilizzata per un clip filmato. I caratteri del dispositivo sono sottoposti ad aliasing e pertanto non vengono modificati dalla propriet _quality.

126

Capitolo 1: Elementi del linguaggio ActionScript

possibile impostare la propriet _quality sui valori descritti nella tabella seguente.
Valore
"LOW"

Descrizione
Qualit di rendering bassa. Qualit di rendering media. Si tratta di un'impostazione adatta per i filmati che non contengono testo.

Antialiasing personalizzato

Smussatura delle bitmap

Alle funzioni non viene Le bitmap non vengono applicata la funzione di smussate. antialising. Le immagini vengono sottoposte ad antialiasing utilizzando una griglia di 2 x 2 pixel. Flash Player 8: le bitmap vengono smussate in base al parametro smoothing utilizzato nelle chiamate MovieClip.attachBitmap() e MovieClip.beginBitmapFill(). Flash Player 6 e 7: le bitmap non vengono smussate. Flash Player 8: le bitmap vengono smussate in base al parametro smoothing utilizzato nelle chiamate MovieClip.attachBitmap() e MovieClip.beginBitmapFill(). Flash Player 6 e 7: le bitmap vengono smussate se il clip filmato statico. Flash Player 8: le bitmap vengono smussate in base al parametro smoothing utilizzato nelle chiamate MovieClip.attachBitmap() e MovieClip.beginBitmapFill(). se smoothing impostato su "Best", il risultato un rendering con una qualit pi elevata quando il clip filmato viene ridotto tramite l'uso di un algoritmo medio. Questa operazione riduce il rendering, ma permette, ad esempio, anteprime dalla qualit elevata di grandi immagini. Flash Player 6 e 7: le bitmap vengono sempre smussate.

"MEDIUM"

"HIGH"

Qualit di rendering alta. l'impostazione predefinita utilizzata da Flash per la qualit di rendering.

Le immagini vengono sottoposte ad antialiasing utilizzando una griglia di 4 x 4 pixel.

"BEST"

Qualit di rendering molto alta.

Le immagini vengono sottoposte ad antialiasing utilizzando una griglia di 4 x 4 pixel.

Disponibilit: Flash Player 5; ActionScript 1.0

Propriet globali

127

Esempio L'esempio seguente imposta la qualit di rendering su LOW:


_quality = "LOW";

_root, propriet
_root.movieClip _root.action _root.property

Specifica o restituisce un riferimento alla linea temporale principale del clip filmato. Se un clip filmato ha pi livelli, la linea temporale principale si trova nel livello che contiene lo script in esecuzione. Ad esempio, se uno script nel livello 1 valuta _root, viene restituito _level1. La specifica di _root equivale all'uso della notazione a barra (/) sconsigliata per specificare un percorso assoluto nel livello corrente. Nota: se un clip filmato contenente _root viene caricato in un altro clip filmato, _root si riferisce alla linea temporale del clip filmato in fase di caricamento e non alla linea temporale che contiene _root. Per fare in modo che _root faccia riferimento alla linea temporale del clip filmato caricato anche se questo viene caricato in un altro clip filmato, utilizzare MovieClip._lockroot. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
movieClip:String action:String:

- Il nome dell'istanza di un clip filmato. una propriet dell'oggetto MovieClip.

un'azione o un metodo.

property:String:

Esempio L'esempio seguente arresta la linea temporale del livello che contiene lo script in corso di esecuzione:
_root.stop();

L'esempio seguente traccia le variabili e le istanze presenti nell'area di validit di _root:


for (prop in _root) { trace("_root."+prop+" = "+_root[prop]); }

Vedere anche
_lockroot (propriet MovieClip._lockroot), _parent, propriet, Funzione targetPath

128

Capitolo 1: Elementi del linguaggio ActionScript

scroll, propriet
textFieldVariableName.scroll = x

Sconsigliata a partire da Flash Player 5: questa propriet stata sconsigliata a favore di TextField.scroll. Controlla la visualizzazione delle informazioni in un campo di testo associato ad una variabile. La propriet scroll definisce il punto in cui il campo di testo inizia la visualizzazione del contenuto; una volta impostata, Flash Player la aggiorna man mano che l'utente scorre il campo di testo. La propriet scroll utile per indirizzare gli utenti verso un paragrafo specifico all'interno di un brano lungo o per creare campi di testo a scorrimento. La propriet pu essere recuperata e modificata. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio Il codice seguente viene associato a un pulsante Up (Su) che scorre il campo di testo myText:
on (release) { myText.scroll = myText.scroll + 1; }

Vedere anche
maxscroll (propriet TextField.maxscroll), scroll (propriet TextField.scroll)

_soundbuftime, propriet
= integer Stabilisce il numero di secondi dell'audio in streaming da inserire nel buffer. Il valore predefinito 5 secondi. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
integer:Number _soundbuftime:Number

- Il numero di secondi prima che cominci l'esecuzione in streaming del file

SWF.

Propriet globali

129

Esempio L'esempio seguente riproduce in streaming un file MP3 ed esegue la bufferizzazione dell'audio prima che venga riprodotto per l'utente. In fase di runtime vengono creati due campi di testo che contengono un timer e le informazioni di debug. La propriet _soundbuftime impostata in modo da bufferizzare il file MP3 per 10 secondi. Per il file MP3 viene creata l'istanza di un nuovo oggetto Sound.
// 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() { debug_txt.text = "sound loaded"; }; debug_txt.text = "sound init"; function updateCounter() { counter_txt.text++; } counter_txt.text = 0; setInterval(updateCounter, 1000);

this, propriet
this

Fa riferimento ad un oggetto o all'istanza di un clip filmato. Durante l'esecuzione di uno script, this fa riferimento all'istanza del clip filmato che contiene lo script. Quando viene chiamato un metodo, this contiene un riferimento all'oggetto contenente tale metodo. All'interno di un gestore di eventi on() associato ad un pulsante, this fa riferimento alla linea temporale che contiene il pulsante. All'interno di un gestore di eventi onClipEvent() associato a un clip filmato, this fa riferimento alla linea temporale che contiene il clip filmato. Poich this viene valutato nel contesto dello script che lo contiene, non possibile utilizzare this in uno script per fare riferimento alla variabile definita in un file di classe. Disponibilit: Flash Player 5; ActionScript 1.0

130

Capitolo 1: Elementi del linguaggio ActionScript

Esempio Creare un file di ActionsScript denominato ApplyThis.as e quindi inserire il codice seguente:
class ApplyThis { var str:String = "Defined in ApplyThis.as"; function conctStr(x:String):String { return x+x; } function addStr():String { return str; } }

Quindi, in un file FLA o ActionScript separato, aggiungere il codice seguente:


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

Allo stesso modo, per chiamare un funzione definita in una classe dinamica, utilizzare this per chiamare la funzione nell'area di validit appropriata:
// 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()); } }

In un file FLA o ActionScript separato, aggiungere il codice seguente:


var obj:Simple = new Simple(); obj.num = 0; obj.func = function() { return true; }; obj.callfunc(); // output: true

Il codice suddetto si utilizza con this nel metodo callfunc(). Tuttavia, potrebbe verificarsi un errore di sintassi se viene utilizzata la versione non corretta di Simple.as, commentato nell'esempio precedente.

Propriet globali

131

Nell'esempio seguente, la parola chiave this fa riferimento all'oggetto 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);

Nell'istruzione seguente associata ad un fotogramma all'interno di un clip filmato, la parola chiave this fa riferimento al clip filmato corrente.
// sets the alpha property of the current movie clip to 20 this._alpha = 20;

Nell'istruzione corrente contenuta in un gestore MovieClip.onPress, la parola chiave this fa riferimento al clip filmato corrente:
this.square_mc.onPress = function() { startDrag(this); }; this.square_mc.onRelease = function() { stopDrag(); };

Vedere anche
Gestore on, Gestore onClipEvent

Operatori
Gli operatori simbolici sono caratteri che specificano la modalit di combinazione, confronto o modifica dei valori di un'espressione. Riepilogo degli operatori
Operatore
+ (addition) += (addition assignment) [] (array access)

Descrizione
Addiziona le espressioni numeriche o concatena (combina) le stringhe. Assegna a expression1 il valore di expression1 + expression2. Inizializza un nuovo array o un array multidimensionale con gli elementi specificati (a0 e cos via) oppure accede agli elementi di un array. Assegna il valore di expression2 (il parametro sulla destra) alla variabile, all'elemento di array o alla propriet in expression1.

= (assignment)

132

Capitolo 1: Elementi del linguaggio ActionScript

Operatore
& (bitwise AND)

Descrizione
Converte expression1 e expression2 in numeri interi senza segno a 32 bit ed esegue un'operazione AND booleana su ogni bit dei parametri dei numeri interi. Assegna a expression1 il valore di expression1 & expression2. Converte expression1 e expression2 in numeri interi a 32 bit e sposta tutti i bit in expression1 a sinistra per il numero di posti specificato dal numero intero risultante dalla conversione di expression2. Questo operatore esegue un'operazione di spostamento bit a bit verso sinistra (<<=) e memorizza il contenuto sottoforma di risultato in expression1. Noto anche come operatore del complemento a uno o operatore del complemento bit a bit. Converte expression1 e expression2 in numeri interi senza segno a 32 bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti expression1 o expression2 sono 1. Assegna a expression1 il valore di expression1 | expression2. Converte expression1 e expression2 in numeri interi a 32 bit e sposta tutti i bit in expression1 a destra per il numero di posti specificato dal numero intero risultante dalla conversione di expression2. Questo operatore esegue un'operazione di spostamento bit a bit verso destra e memorizza il contenuto sotto forma di risultato in expression1. Uguale all'operatore di spostamento a destra bit a bit (>>) ad eccezione del fatto che non conserva il segno originale dell'originale expression in quanto i bit a sinsitra vengono sempre rimepiti con 0. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. Esegue un'operazione di spostamento bit a bit verso destra senza segno e memorizza il contenuto sotto forma di risultato in expression1. Converte expression1 e expression2 in numeri interi senza segno a 32 bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti di expression1 o expression2, ma non entrambi, sono 1. Assegna a expression1 il valore di expression1 ^ expression2.

&= (bitwise AND assignment) << (bitwise left shift)

<<= (bitwise left shift and assignment) ~ (bitwise NOT)

| (bitwise OR)

|= (bitwise OR assignment) >> (bitwise right shift)

>>= (bitwise right shift and assignment) >>> (bitwise unsigned right shift)

>>>= (bitwise unsigned right shift and assignment) ^ (bitwise XOR)

^= (bitwise XOR assignment)

Operatori

133

Operatore
/*..*/ (block comment delimiter) , (comma) add (concatenation (strings))

Descrizione
Indica una o pi righe di commento di script. Valuta expression1, quindi expression2 e cos via. Sconsigliato a partire a partire da Flash Player 5; Macromedia consiglia di utilizzare l'operatore add (+) quando si crea contenuto per Flash Player 5 o versioni successive. Questo operatore non supportato in Flash Player o versioni successive. Concatena due o pi stringhe. Indica a Flash di valutare expression1 e, se il valore di expression1 true, restituisce il valore di expression2; altrimenti restituisce il valore di expression3. Operatore unario di decremento prima e dopo l'operazione, che sottrae 1 da expression. Divide expression1 per expression2. Assegna a expression1 il valore di expression1 / expression2. Utilizzato per spostarsi nelle gerarchie dei clip filmato e accedere ai clip filmato nidificati (secondari), alle variabili e alle propriet. Confronta due espressioni per verificarne l'uguaglianza. Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore == (equality). Restituisce true se la rappresentazione della stringa di expression1 uguale a quella della stringa di expression2, in caso contrario retituisce false. Esegue un confronto tra due espressioni e determina se expression1 maggiore di expression2; in caso affermativo, l'operatore restituisce true. Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore > (maggiore di). Esegue un confronto tra la rappresentazione sotto forma di stringa di expression1 e la rappresentazione sotto forma di stringa di expression2 e restituisce true se expression1 maggiore di expression2, in caso contrario restituisce false. Confronta due espressioni e determina se expression1 maggiore di o uguale a expression2 (true) o expression1 minore di expression2 (false).

?: (conditional)

-- (decrement)

/ (division) /= (division assignment) . (dot)

== (equality) eq (equality (strings))

> (greater than)

gt (greater than (strings))

>= (greater than or equal to)

134

Capitolo 1: Elementi del linguaggio ActionScript

Operatore
ge (greater than or equal to (strings))

Descrizione
Sconsigliato a partire da Flash Player 5; questo operatore stato sconsigliato a favore dell'operatore >= (maggiore di o uguale a). Restituisce true se expression1 maggiore di o uguale a expression2, in caso contrario restituisce false . Operatore unario di incremento prima e dopo l'operazione che aggiunge 1 a expression . Prova l'esatto opposto dell'operatore di uguaglianza (==). Sconsigliato a partire da Flash Player 5; questo operatore stato sconsigliato. Macromedia consiglia di utilizzare l'operatore != (inequality). Prova l'esatto opposto dell'operatore di uguaglianza (==). Prova se object un'istanza di classConstructor o una sottoclasse di classConstructor. Esegue un confronto di due espressioni e determina se expression1 inferiore a expression2; in caso affermativo, l'operatore restituisce true. Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore < (inferiore di). Restituisce true se expression1 minore di expression2; in caso contrario, restituisce false. Esegue un confronto tra due espressioni e determina se expression1 inferiore dio uguale a expression2; in caso affermativo l'operatore restituisce true. Sconsigliato a partire Flash Player 5; questo operatore stato sconsigliato in Flash 5 a favore dell'operatore <= (inferiore di o uguale a). Restituisce true se expression1 inferiore di o uguale a expression2, in caso contrario restituisce false. Indica l'inizio di un commento di script. Esegue un'operazione booleana sui valori di entrambe le espressioni. Sconsigliato a partire da Flash Payer 5. Macromedia consiglia di utilizzare l'operatore logico AND (&&). Esegue un'operazione logica AND (&&) in Flash Player 4. Inverte il valore booleano di una variabile o espressione. Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore ! (logical NOT). Esegue un'operazione NOT logica (!) in Flash Player 4.

++ (increment)

!= (inequality) <> (inequality)

instanceof

< (less than)

lt (less than (strings))

<= (less than or equal to)

le (less than or equal to (strings))

// (line comment delimiter) && (logical AND) and (logical AND)

! (logical NOT) not (logical NOT)

Operatori

135

Operatore
|| (logical OR)

Descrizione
Valuta expression1 (l'espressione sul lato sinistro dell'operatore) e restituisce true se l'espressione equivale a true. Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore || (logical OR). Valuta condition1 e condition2 e, se una delle espressioni true, l'intera espressione true. Calcola il resto di expression1 diviso per expression2. Assegna a expression1 il valore di expression1 % expression2. Moltiplica due espressioni numeriche. Assegna a expression1 il valore di expression1 * expression2. Crea un nuovo oggetto, inizialmente anonimo, e chiama la funzione identificata dal parametro constructor. Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore != (inequality). Restituisce true se expression1 non uguale a expression2; in caso contrario restituisce false . Crea un nuovo oggetto e lo inizializza con le coppie di propriet name e value specificate. Esegue un'operazione di raggruppamento su uno o pi parametri, compie una valutazione sequenziale delle espressioni, oppure racchiude uno o pi parametri e li trasmette come tali a una funzione fuori delle parentesi. Confronta due espressioni per verificarne l'uguaglianza. L'operatore di uguaglianza rigorosa (===) corrisponde all'operatore di uguaglianza (==), ma non converte i tipi di dati. Prova l'esatto opposto dell'operatore di uguaglianza (===).

or (logical OR)

% (modulo) %= (modulo assignment) * (multiplication) *= (multiplication assignment) new

ne (not equal (strings))

{} (object initializer) () (parentheses)

=== (strict equality)

!== (strict inequality)

" (string delimiter) Se utilizzate prima e dopo i caratteri, le virgolette (") indicano che tali

caratteri hanno un valore letterale e devono essere considerati come una stringa, non una variabile, un valore numerico o un altro elemento di ActionScript.
- (subtraction) -= (subtraction assignment) : (type)

Utilizzato per negare o sottrarre. Assegna a expression1 il valore di expression1 - expression2. Utilizzato per la tipizzazione forte dei dati; specifica i tipi di variabili, i tipi di funzioni restituite o i tipi di parametri funzione.

136

Capitolo 1: Elementi del linguaggio ActionScript

Operatore
typeof

Descrizione
L'operatore typeof valuta expression e restituisce una stringa che specifica se l'espressione un valore String, MovieClip, Object, Function, Number, o Boolean. L'operatore void valuta un'espressione, quindi ne scarta il valore e restituisce undefined.

void

+ (addizione), operatore
expression1 + expression2

Addiziona le espressioni numeriche o concatena (combina) le stringhe. Se un'espressione una stringa, tutte le altre espressioni vengono convertite in stringhe e concatenate. Se entrambe le espressioni sono numeri interi, la somma un numero intero; se almeno una delle due espressioni un numero a virgola mobile, la somma un numero a virgola mobile. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1

- Un numero o una stringa. - Un numero o una stringa.

expression2 : Number

Valori restituiti
Object

- Una stringa, un numero intero o un numero a virgola mobile.

Esempio Uso 1: l'esempio seguente concatena due stringhe e visualizza il risultato nel pannello Output.
var name:String = "Cola"; var instrument:String = "Drums"; trace(name + " plays " + instrument); // output: Cola plays Drums

Uso 2: questa istruzione somma gli interi 2 e 3 e visualizza il numero intero risultante (5) nel pannello Output:
trace(2 + 3); // output: 5

questa istruzione somma i numeri a virgola mobile 2,5 e 3,25 e visualizza il numero a virgola mobile risultante (5,75) nel pannello Output
trace(2.5 + 3.25); // output: 5.75

Operatori

137

Uso 3: per le variabili associate ai campi di testo dinamici e di input il tipo di dati String. Nell'esempio seguente, la variabile deposit un campo di testo di input sullo stage. Dopo che un utente ha immesso una cifra di deposito, lo script tenta di aggiungere deposit a oldBalance. Tuttavia, poich deposit un tipo di dati String, lo script concatena (ovvero, combina per formare un'unica stringa) i valori delle variabili anzich sommarli.
var oldBalance:Number = 1345.23; var currentBalance = deposit_txt.text + oldBalance; trace(currentBalance);

Ad esempio, se un utente immette 475 nel campo di testo deposit, l'istruzione trace() invia il valore 4751345.23 al pannello Output. Per correggere questo inconveniente, utilizzare la funzione Number() per convertire la stringa in numero, come accade nell'esempio seguente:
var oldBalance:Number = 1345.23; var currentBalance:Number = Number(deposit_txt.text) + oldBalance; trace(currentBalance);

L'esempio seguente mostra come le somme numeriche a destra di un'espressione stringa non vengano calcolate:
var a:String trace(a); // var b:String trace(b); // = 3 + 10 + "asdf"; 13asdf = "asdf" + 3 + 10; asdf310

+= assegnazione addizione, operatore


expression1 += expression2

Assegna a expression1 il valore di expression1 + expression2. Ad esempio, le due istruzioni seguenti danno lo stesso risultato:
x += y; x = x + y;

Questo operatore esegue anche la concatenazione delle stringhe. Tutte le regole dell'operatore di addizione (+) si applicano anche all'operatore di assegnazione addizione (+=) . Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Number expression2 : Number

- Un numero o una stringa. - Un numero o una stringa.

Valori restituiti
Number

- Il risultato dell'addizione.

138

Capitolo 1: Elementi del linguaggio ActionScript

Esempio Uso 1: questo esempio utilizza l'operatore += con un'espressione stringa e invia la frase "My name is Gilbert" al pannello Output.
var x1:String = "My name is "; x1 += "Gilbert"; trace(x1); // output: My name is Gilbert

Uso 2: l'esempio seguente mostra l'uso numerico dell'operatore di assegnazione addizione (+=):
var x:Number = 5; var y:Number = 10; x += y; trace(x); // output: 15

Vedere anche
+ (addizione), operatore

[] (accesso array), operatore


myArray = [ a0, a1,...aN ] myArray[ i ] = value myObject [ propertyName ] Inizializza un nuovo array o un array multidimensionale con gli elementi specificati (a0 e cos via) oppure accede agli elementi di un array. L'operatore di accesso agli array consente di impostare e recuperare in modo dinamico nomi di istanza, variabili e oggetti e di accedere alle propriet dell'oggetto. Uso 1: un array un oggetto le cui propriet sono definite elementi, ciascuno identificato mediante un numero chiamato indice. Quando si crea un array, gli elementi vengono racchiusi tra gli operatori di accesso all'array ([]) (parentesi). Un array pu contenere elementi di vari tipi; ad esempio, l'array seguente, denominato employee, ha tre elementi: il primo un numero, e il secondo e il terzo sono stringhe (racchiuse tra virgolette):
var employee:Array = [15, "Barbara", "Jay"];

Per simulare array multidimensionali, possibile nidificare pi parentesi, fino a una profondit di 256 livelli. Il codice seguente consente di creare un array chiamato ticTacToe con tre elementi; ognuno di questi a sua volta un array composto da tre elementi:
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.

Operatori

139

Uso 2: consente di racchiudere l'indice di ogni elemento tra parentesi ([]) per accedervi direttamente; possibile aggiungere un nuovo elemento a un array, oppure cambiare o recuperare il valore di un elemento esistente. Il primo indice di un array sempre 0, come nell'esempio seguente:
var my_array:Array = new Array(); my_array[0] = 15; my_array[1] = "Hello"; my_array[2] = true;

possibile utilizzare le parentesi ([]) per aggiungere un quarto elemento, come nell'esempio seguente:
my_array[3] = "George";

Le parentesi ([]) consentono anche di accedere a un elemento in un array multidimensionale. Il primo set di parentesi identifica l'elemento dell'array originale, il secondo set indica l'elemento dell'array nidificato. Le righe di codice seguenti inviano il numero 6 al pannello Output.
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; trace(ticTacToe[1][2]);// output: 6

Uso 3: possibile utilizzare l'operatore di accesso all'array ([]) invece della funzione eval() per impostare e recuperare in modo dinamico i valori dei nomi dei clip filmato o altre propriet di un oggetto. La riga di codice seguente invia il numero 6 al pannello Output.
name["mc" + i] = "left_corner";

Disponibilit: Flash Player 4; ActionScript 1.0 Operandi


myArray : Object

- myArray il nome di un array.

a0, a1,...aN : Object: a0,a1,...aN elementi di un array, qualsiasi istanza di oggetto o tipo nativo, compresi gli array nidificati. i : Number

- i un indice a numeri interi superiore o uguale a 0. Il nome di un oggetto. una stringa che d il nome a una propriet

myObject : Object: myObject

propertyName : String: propertyName

dell'oggetto. Valori restituiti


Object

Uso 1: un riferimento a un array. Uso 2: un valore dell'array; un'istanza di oggetto o tipo nativo (comprese le istanze di array). Uso 3: una propriet dell'oggetto; un'istanza di oggetto o tipo nativo (comprese le istanze di array).

140

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente mostra due modi per creare un nuovo oggetto Array vuoto; la prima riga utilizza le parentesi ([]):
var my_array:Array = []; var my_array:Array = new Array();

L'esempio seguente crea un array di nome employee_array e utilizza l'istruzione trace() per inviare gli elementi al pannello Output. Nella quarta riga, un elemento nell'array viene modificato, mentre la quinta riga invia l'array appena modificato al pannello Output:
var employee_array = ["Barbara", "George", "Mary"]; trace(employee_array); // output: Barbara,George,Mary employee_array[2] = "Sam"; trace(employee_array); // output: Barbara,George,Sam

Nell'esempio seguente, viene valutata l'espressione contenuta tra parentesi ("piece" + i) e il risultato viene utilizzato come nome della variabile da recuperare dal clip filmato my_mc. In questo esempio, la variabile i deve trovarsi nella stessa linea temporale del pulsante. Se ad esempio la variabile i uguale a 5, il valore della variabile piece5 nel clip filmato my_mc viene visualizzato nel pannello Output:
myBtn_btn.onRelease = function() { x = my_mc["piece"+i]; trace(x); };

Nell'esempio seguente, viene valutata l'espressione contenuta tra parentesi e il risultato viene utilizzato come nome della variabile da recuperare dal clip name_mc.
name_mc["A" + i];

Se si ha dimestichezza con la sintassi della barra ActionScript di Flash 4, possibile utilizzare la funzione eval() per ottenere lo stesso risultato:
eval("name_mc.A" & i);

possibile utilizzare il codice ActionScript seguente per eseguire un ciclo relativo a tutti gli oggetti nell'area di validit di _root, un'operazione molto utile per le operazioni di debug:
for (i in _root) { trace(i+": "+_root[i]); }

Inoltre, possibile utilizzare l'operatore di accesso agli array ([]) sul lato sinistro di un'istruzione di assegnazione per impostare dinamicamente i nomi delle istanze, delle variabili e degli oggetti:
employee_array[2] = "Sam";

Operatori

141

Vedere anche
Array, Oggetto, Funzione eval

= (assegnazione), operatore
expression1 = expression2

Assegna il valore di expression2 (il parametro sulla destra) alla variabile, all'elemento di array o alla propriet in expression1. L'assegnazione pu avvenire in base al valore o al riferimento. L'assegnazione in base al valore copia il valore effettivo di expression2 e lo memorizza in expression1 e viene utilizzata quando a una variabile viene assegnato un numero o un carattere letterale per la stringa. L'assegnazione in base al riferimento memorizza un riferimento expression2 in expression1. e viene comunemente utilizzata con l'operatore new. L'uso dell'operatore new crea un oggetto nella memoria e assegna a una variabile un riferimento a quella posizione nella memoria. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object: expression2 : Object:

una variabile, un elemento di array o la propriet di un oggetto. un valore di qualsiasi tipo.

Valori restituiti
Object:

il valore assegnato, expression2 .

Esempio L'esempio seguente utilizza l'assegnazione in base al valore per assegnare il valore 5 alla variabile x.
var x:Number = 5;

L'esempio seguente utilizza l'assegnazione in base al valore per assegnare il valore "hello" alla variabile x:
var x:String; x = " hello ";

L'esempio seguente utilizza l'assegnazione in base al riferimento per creare la variabile moonsOfJupiter, che contiene un riferimento a un oggetto Array appena creato. L'assegnazione in base al valore viene quindi utilizzata per copiare il valore "Callisto" nel primo elemento dell'array a cui fa riferimento la variabile moonsOfJupiter:
var moonsOfJupiter:Array = new Array(); moonsOfJupiter[0] = "Callisto";

142

Capitolo 1: Elementi del linguaggio ActionScript

L'esempio seguente utilizza l'assegnazione in base al riferimento per creare un nuovo oggetto e per assegnare alla variabile mercury un riferimento a tale oggetto. Quindi, viene utilizzata l'assegnazione in base al valore per assegnare il valore 3030 alla propriet diameter dell'oggetto mercury:
var mercury:Object = new Object(); mercury.diameter = 3030; // in miles trace (mercury.diameter); // output: 3030

L'esempio seguente riprende l'esempio precedente e crea una variabile di nome merkur (il termine tedesco per mercury) e lo assegna al valore di mercury. In questo modo vengono create due variabili che fanno riferimento allo stesso oggetto in memoria: pertanto, possibile utilizzare indistintamente una delle due variabili per accedere alle propriet dell'oggetto. A questo punto, possibile modificare la propriet diameter in modo che utilizzi i chilometri anzich le miglia:
var merkur:Object = mercury; merkur.diameter = 4878; // in kilometers trace (mercury.diameter); // output: 4878

Vedere anche
== (uguaglianza), operatore

& (AND bit a bit), operatore


expression1 & expression2

Converte expression1 e expression2 in numeri interi senza segno a 32 bit ed esegue un'operazione AND booleana su ogni bit dei parametri dei numeri interi. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. Il risultato un nuovo numero intero a 32 bit. I numeri interi positivi vengono convertiti in un valore esadecimale senza firma con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre pi significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza firma tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione e anche per questi numeri vengono scartate le cifre pi significative. Il valore restituito viene interpretato come complemento a due con segno, in modo che venga restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilit: Flash Player 5; ActionScript 1.0

Operatori

143

Operandi
expression1 : Number expression2 : Number

- Un numero. - Un numero.

Valori restituiti
Number:

il risultato dell'operazione bit a bit.

Esempio L'esempio seguente confronta la rappresentazione sotto forma di bit dei numeri e restituisce 1 solo se entrambi i bit nella stessa posizione sono 1. In questo codice ActionScript, vengono aggiunti 13 (1101 binario) e 11 (1011 binario) e viene restituito 1 solo nella posizione in cui entrambi i numero hanno un 1.
var insert:Number = 13; var update:Number = 11; trace(insert & update); // output : 9 (or 1001 binary)

Nei numeri 13 e 11 il risultato 9 poich solo nella prima e ultima posizione di entrambi i numeri presente il numero 1. Gli esempi seguenti mostrano il comportamento della conversione del valore restituito:
trace(0xFFFFFFFF); trace(0xFFFFFFFF & trace(0xFFFFFFFF & trace(4294967295 & trace(4294967295 & // 4294967295 0xFFFFFFFF); // -1 -1); // -1 -1); // -1 4294967295); // -1

Vedere anche
&= (assegnazione AND bit a bit), operatore, ^ (XOR bit a bit), operatore, ^= (assegnazione XOR bit a bit), operatore, | (OR bit a bit), operatore, |= (assegnazione OR bit a bit), operatore, ~ (NOT bit a bit), operatore

&= (assegnazione AND bit a bit), operatore


expression1 &= expression2

Assegna a expression1 il valore di expression1 & expression2. Ad esempio, le due espressioni seguenti sono equivalenti:
x &= y; x = x & y;

Disponibilit: Flash Player 5; ActionScript 1.0

144

Capitolo 1: Elementi del linguaggio ActionScript

Operandi
expression1 : Number expression2 : Number

- Un numero. - Un numero.

Valori restituiti
Number:

il valore di expression1 & expression2 .

Esempio L'esempio seguente assegna il valore 9 a x:


var x:Number = 15; var y:Number = 9; trace(x &= y); // output: 9

Vedere anche
& (AND bit a bit), operatore, ^ (XOR bit a bit), operatore, ^= (assegnazione XOR bit a bit), operatore, | (OR bit a bit), operatore, |= (assegnazione OR bit a bit), operatore, ~ (NOT bit a bit), operatore

<< (spostamento a sinistra bit a bit), operatore


expression1 << expression2

Converte expression1 e expression2 in valori interi a 32 bit; possibile chiamarli V1 e V2. Spostare tutti bit del valore di V1 a sinistra di V2 posizioni. Eliminare i bit spostati oltre l'estremit sinistra di V1 da questa operazione e inserire zeri nella posizioni di bit alla destra di quelle svuotate. Lo spostamento di un valore verso sinistra di una posizione equivale a moltiplicarlo per 2. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza firma con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre pi significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza firma tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre pi significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilit: Flash Player 5; ActionScript 1.0

Operatori

145

Operandi
expression1 : Number: expression2 : Number:

un numero o un'espressione da spostare a sinistra. un numero o un'espressione convertibile in un numero intero

compreso tra 0 e 31. Valori restituiti


Number:

il risultato dell'operazione bit a bit.

Esempio Nell'esempio seguente, il numero intero 1 viene spostato di 10 bit verso sinistra: x = 1 << 10: il risultato dell'operazione x = 1024 perch 1 decimale equivale a 1 binario, 1 binario spostato verso sinistra di 10 10000000000 binario, e 10000000000 binario 1024 decimale. Nell'esempio seguente, il numero intero 7 viene spostato di 8 bit verso sinistra: x = 7 << 8: il risultato dell'operazione x = 1792 perch 7 decimale equivale a 111 binario, 111 binario spostato verso sinistra di 8 bit 11100000000 binario, e 11100000000 binario 1792 decimale. Se si applica l'esempio seguente, possibile notare che i bit sono stati spostati di due spazi verso sinistra:
// 2 binary == 0010 // 8 binary == 1000 trace(2 << 2); // output: 8

Vedere anche
>>= (spostamento a destra bit a bit e assegnazione), operatore, >> (spostamento a destra bit a bit), operatore, <<= (spostamento a sinistra bit a bit e assegnazione), operatore, >>> (spostamento a destra bit a bit senza segno), operatore, >>>= (spostamento a destra bit a bit senza segno e assegnazione), operatore

<<= (spostamento a sinistra bit a bit e assegnazione), operatore


expression1 <<= expression2

Questo operatore esegue un'operazione di spostamento bit a bit verso sinistra (<<=) e memorizza il contenuto sottoforma di risultato in expression1. Le due espressioni seguenti sono equivalenti:
A <<= B; A = (A << B)

Disponibilit: Flash Player 5; ActionScript 1.0

146

Capitolo 1: Elementi del linguaggio ActionScript

Operandi
expression1 : Number: expression2 : Number:

un numero o un'espressione da spostare a sinistra. un numero o un'espressione convertibile in un numero intero

compreso tra 0 e 31. Valori restituiti


Number:

il risultato dell'operazione bit a bit.

Esempio Nell'esempio seguente viene utilizzato l'operatore spostamento a sinistra bit a bit e assegnazione (<<=) per spostare tutti i bit di uno spazio verso sinistra:
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

Vedere anche
<< (spostamento a sinistra bit a bit), operatore, >>= (spostamento a destra bit a bit e assegnazione), operatore, >> (spostamento a destra bit a bit), operatore

~ (NOT bit a bit), operatore


~expression

Noto anche come operatore del complemento a uno o operatore del complemento bit a bit. Converte expressionin un numero intero con segno a 32 bit, quindi applica un complemento a uno bit a bit. In altre parole, nel risultato, ogni bit 0 viene impostato su 1 e ogni bit 1 viene impostato su 0. Il risultato un numero intero a 32 bit con segno. Ad esempio, il valore esadecimale 0x7777 rappresentato da questo numero binario: 0111011101110111 La negazione bit a bit di quel valore esadecimale, ~0x7777, questo numero binario: 1000100010001000 In formato esadecimale, questo 0x8888. Pertanto ~0x7777 0x8888. Gli operatori bit a bit vengono pi comunemente utilizzati per rappresentare i flag bit (valori booleani compressi in 1 bit ciascuno).

Operatori

147

I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza firma con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre pi significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza firma tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre pi significative. Il valore restituito viene interpretato come complemento a due con segno, in modo che il valore restituito sia un numero intero compreso tra -2147483648 e 2147483647. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
expression : Number

- Un numero.

Valori restituiti
Number:

il risultato dell'operazione bit a bit.

Esempio L'esempio seguente mostra un utilizzo possibile dell'operatore NOT bit a bit (-) con i flag bit:
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

148

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
& (AND bit a bit), operatore, &= (assegnazione AND bit a bit), operatore, ^ (XOR bit a bit), operatore, ^= (assegnazione XOR bit a bit), operatore, | (OR bit a bit), operatore, |= (assegnazione OR bit a bit), operatore

| (OR bit a bit), operatore


expression1 | expression2

Converte expression1 e expression2 in numeri interi senza segno a 32-bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti di expression1 o expression2 sono 1. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. Il risultato un nuovo numero intero a 32 bit. I numeri interi positivi vengono convertiti in un valore esadecimale senza firma con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre pi significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza firma tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre pi significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
expression1 : Number expression2 : Number

- Un numero. - Un numero.

Valori restituiti
Number:

il risultato dell'operazione bit a bit.

Operatori

149

Esempio Di seguito riportato un esempio di operazione OR bit a 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)

Fare attenzione a non confondere | (OR bit a bit ) con || (OR logico). Vedere anche
& (AND bit a bit), operatore, &= (assegnazione AND bit a bit), operatore, ^ (XOR bit a bit), operatore, ^= (assegnazione XOR bit a bit), operatore, |= (assegnazione OR bit a bit), operatore, ~ (NOT bit a bit), operatore

|= (assegnazione OR bit a bit), operatore


expression1 |= expression2

Assegna a expression1 il valore di expression1 | expression2. Ad esempio, le due istruzioni seguenti sono equivalenti:
x |= y; x = x | y;

Disponibilit: Flash Player 5; ActionScript 1.0 Operandi


expression1 : Number expression2 : Number

- un numero o variabile. - un numero o variabile.

Valori restituiti
Number:

il risultato dell'operazione bit a bit.

Esempio L'esempio seguente utilizza l'operatore assegnazione OR bit a 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)

150

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
& (AND bit a bit), operatore, &= (assegnazione AND bit a bit), operatore, ^ (XOR bit a bit), operatore, ^= (assegnazione XOR bit a bit), operatore, | (OR bit a bit), operatore, |= (assegnazione OR bit a bit), operatore, ~ (NOT bit a bit), operatore

>> (spostamento a destra bit a bit), operatore


expression1 >> expression2

Converte expression1 e expression2 in numeri interi a 32 bit e sposta tutti i bit in expression1 a destra per il numero di posti specificato dal numero intero risultante dalla conversione di expression2. I bit che vengono spostati oltre l'estremit destra vengono scartati. Per conservare il segno dell'originale expression, i bit a sinistra vengono sostituiti con 0 se il bit pi significativo (ovvero quello all'estrema sinistra) di expression1 0, oppure con 1 se il bit pi significativo 1. Spostare un valore verso destra di una posizione equivale a dividere per 2 e scartare il resto. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza firma con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre pi significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza firma tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre pi significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
expression1 : Number: expression2 : Number:

un numero o un'espressione da spostare a destra. un numero o un'espressione convertibile in un numero intero

compreso tra 0 e 31. Valori restituiti


Number:

il risultato dell'operazione bit a bit.

Operatori

151

Esempio L'esempio seguente converte 65535 in un numero intero a 32 bit e lo sposta di 8 bit verso destra:
var x:Number = 65535 >> 8; trace(x); // outputs 255

L'esempio seguente mostra il risultato dell'esempio precedente:


var x:Number = 255;

65535 decimale equivale a 1111111111111111 binario (sedici volte 1), 1111111111111111 binario spostato verso destra di 8 bit 11111111 binario, e 11111111 binario 255 decimale. Il bit pi significativo 0 dal momento che gli interi sono a 32 bit, pertanto il bit di riempimento 0. L'esempio seguente converte -1 in un numero intero a 32 bit e lo sposta di 1 bit verso destra:
var x:Number = -1 >> 1; trace(x); // outputs -1

L'esempio seguente mostra il risultato dell'esempio precedente:


var x:Number = -1;

-1 decimale equivale a 11111111111111111111111111111111 binario (trentadue volte 1); se si sposta verso destra di un bit, il bit meno significativo (ovvero quello all'estrema destra) viene scartato e quello pi significativo viene riempito con 1. Il risultato 11111111111111111111111111111111 (trentadue volte 1) binario che rappresenta il numero intero -1 a 32 bit. Vedere anche
>>= (spostamento a destra bit a bit e assegnazione), operatore

>>= (spostamento a destra bit a bit e assegnazione), operatore


expression1 >>= expression2

Questo operatore esegue un'operazione di spostamento bit a bit verso destra e memorizza il contenuto sotto forma di risultato in expression1. Le due istruzioni seguenti sono equivalenti:
A >>= B; A = (A >> B);

Disponibilit: Flash Player 5; ActionScript 1.0

152

Capitolo 1: Elementi del linguaggio ActionScript

Operandi
expression1 : Number: expression2 : Number:

un numero o un'espressione da spostare a destra. un numero o un'espressione convertibile in un numero intero

compreso tra 0 e 31. Valori restituiti


Number:

il risultato dell'operazione bit a bit.

Esempio Il codice impostato come commento seguente utilizza l'operatore spostamento a destra bit a bit e assegnazione (>>=).
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; } return result; } trace(convertToBinary(479)); // Returns the string 00000000000000000000000111011111 // This string is the binary representation of the decimal // number 479

Vedere anche
>> (spostamento a destra bit a bit), operatore

>>> (spostamento a destra bit a bit senza segno), operatore


expression1 >>> expression2

Uguale all'operatore di spostamento a destra (>>) ad eccezione del fatto che non conserva il segno dell'orginale expression poich nei bit a sinistra vengono inseriti dei valori 0.

Operatori

153

I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza firma con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre pi significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza firma tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre pi significative. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
expression1 : Number: expression2 : Number:

un numero o un'espressione da spostare a destra. un numero o un'espressione convertibile in un numero intero

compreso tra 0 e 31. Valori restituiti


Number:

il risultato dell'operazione bit a bit.

Esempio L'esempio seguente converte -1 in un numero intero a 32 bit e lo sposta di 1 bit verso destra:
var x:Number = -1 >>> 1; trace(x); // output: 2147483647

-1 decimale 11111111111111111111111111111111 binario (trentadue volte 1), e quando si sposta verso destra (senza segno) di 1 bit, il bit meno significativo (ovvero quello all'estrema destra) viene scartato mentre quello pi significativo (ovvero quello all'estrema sinistra) viene riempito con uno 0. Il risultato 01111111111111111111111111111111 binario che rappresenta il numero intero a 2147483647 a 32 bit. Vedere anche
>>= (spostamento a destra bit a bit e assegnazione), operatore

154

Capitolo 1: Elementi del linguaggio ActionScript

>>>= (spostamento a destra bit a bit senza segno e assegnazione), operatore


expression1 >>>= expression2

Esegue un'operazione di spostamento bit a bit verso destra senza segno e memorizza il contenuto sotto forma di risultato in expression1. Le due istruzioni seguenti sono equivalenti:
A >>>= B; A = (A >>> B);

Disponibilit: Flash Player 5; ActionScript 1.0 Operandi


expression1 : Number: expression2 : Number:

un numero o un'espressione da spostare a destra. un numero o un'espressione convertibile in un numero intero

compreso tra 0 e 31. Valori restituiti


Number:

il risultato dell'operazione bit a bit.

Esempio Vedere anche


>>> (spostamento a destra bit a bit senza segno), operatore, >>= (spostamento a destra bit a bit e assegnazione), operatore

^ (XOR bit a bit), operatore


expression1 ^ expression2

Converte expression1 e expression2 in numeri interi senza segno a 32 bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti di expression1 o expression2, ma non entrambi, sono 1. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. Il risultato un nuovo numero intero a 32 bit.

Operatori

155

I numeri interi positivi vengono convertiti in un valore esadecimale senza firma con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre pi significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza firma tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre pi significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
expression1 : Number expression2 : Number

- Un numero. - Un numero.

Valori restituiti
Number:

il risultato dell'operazione bit a bit.

Esempio L'esempio seguente utilizza l'operatore XOR bit a bit sui decimali 15 e 9, e assegna il risultato alla variabile x:
// 15 decimal = 1111 binary // 9 decimal = 1001 binary var x:Number = 15 ^ 9; trace(x); // 1111 ^ 1001 = 0110 // returns 6 decimal (0110 binary)

Vedere anche
& (AND bit a bit), operatore, &= (assegnazione AND bit a bit), operatore, ^= (assegnazione XOR bit a bit), operatore, | (OR bit a bit), operatore, |= (assegnazione OR bit a bit), operatore, ~ (NOT bit a bit), operatore

156

Capitolo 1: Elementi del linguaggio ActionScript

^= (assegnazione XOR bit a bit), operatore


expression1 ^= expression2

Assegna a expression1 il valore di expression1 ^ expression2. Ad esempio, le due istruzioni seguenti sono equivalenti:
x ^= y; x = x ^ y;

Disponibilit: Flash Player 5; ActionScript 1.0 Operandi


expression1 : Numberexpression2 : Number-

Numeri interi e variabili. Numeri interi e variabili.

Valori restituiti
Number:

il risultato dell'operazione bit a bit.

Esempio L'esempio seguente mostra un'operazione assegnazione XOR bit a 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)

Vedere anche
& (AND bit a bit), operatore, &= (assegnazione AND bit a bit), operatore, ^ (XOR bit a bit), operatore, | (OR bit a bit), operatore, |= (assegnazione OR bit a bit), operatore, ~ (NOT bit a bit), operatore

Operatori

157

/*..*/ (delimitatore commenti), operatore


comment */ comment comment */ Indica una o pi righe di commento di script. Tutti i caratteri racchiusi tra il tag di inizio commento (/*) e il tag di fine commento (*/) vengono considerati come un commento e ignorati dall'interprete di ActionScript. Utilizzare il delimitatore commenti // per identificare i commenti su una sola riga. Utilizzare il delimitatore commenti /* per identificare i commenti su pi righe successive. Quando si utilizza questo formato di delimitazione, se si omette il tag di fine commento (*/) o si cerca di nidificare i commenti, viene restituito un messaggio di errore. Dopo che stato utilizzato un tag di inizio commento (/*), il primo tag di fine commento (*/) determina la fine del commento, indipendentemente dal numero di tag di inizio commento (/*) situati tra il primo tag di inizio e il tag di fine.
/* /*

Disponibilit: Flash Player 5; ActionScript 1.0 Operandi


comment

- Qualsiasi carattere.

Esempio Lo script seguente utilizza i delimitatori commenti all'inizio dello 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;

Il seguente tentativo di nidificare i commenti genera un messaggio di errore:


/* 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 */

Vedere anche
// (delimitatore commenti), operatore

158

Capitolo 1: Elementi del linguaggio ActionScript

, (virgola), operatore
(expression1 , expression2 [, expressionN... ])

Valuta expression1, quindi expression2 e cos via. Questo operatore viene utilizzato principalmente nelle istruzioni cicliche for, spesso assieme all'operatore parentesi (). Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Number: expression2 : Number: expressionN : Number:

un'espressione da valutare. un'espressione da valutare. un numero qualsiasi di espressioni aggiuntive da valutare.

Valori restituiti
Object:

il valore di expression1, expression2, e cos via.

Esempio L'esempio seguente utilizza l'operatore virgola (,) in un ciclo 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'esempio seguente utilizza l'operatore virgola (,) senza l'operatore parentesi () e mostra come l'operatore virgola restituisce solo il valore della prima espressione senza l'operatore parentesi ():
var v:Number = 0; v = 4, 5, 6; trace(v); // output: 4

L'esempio seguente utilizza l'operatore virgola (,) con l'operatore parentesi () e mostra come l'operatore virgola restituisce il valore dell'ultima espressione se utilizzato con l'operatore parentesi ():
var v:Number = 0; v = (4, 5, 6); trace(v); // output: 6

Operatori

159

L'esempio seguente utilizza l'operatore virgola (,) senza l'operatore parentesi () e mostra come l'operatore virgola valuta in sequenza tutte le espressioni ma restituisce il valore della prima espressione. La seconda espressione, z++, viene valutata e z viene incrementato di uno.
var v:Number = 0; var z:Number = 0; v = v + 4 , z++, v + 6; trace(v); // output: 4 trace(z); // output: 1

L'esempio seguente identico all'esempio precedente a eccezione dell'aggiunta dell'operatore parentesi () e mostra nuovamente come l'operatore virgola (,), se utilizzato con l'operatore parentesi (), restituisce il valore dell'ultima espressione nella serie:
var v:Number = 0; var z:Number = 0; v = (v + 4, z++, v + 6); trace(v); // output: 6 trace(z); // output: 1

Vedere anche
() (parentesi), operatore

add (concatenazione) (stringhe), operatore


string1 add string2

Sconsigliato a partire a partire da Flash Player 5; Macromedia consiglia di utilizzare l'operatore add (+) quando si crea contenuto per Flash Player 5 o versioni successive. Questo operatore non supportato in Flash Player o versioni successive. Concatena due o pi stringhe. L'operatore add (+) sostituisce l'operatore & di Flash 4; quando vengono utilizzati nell'ambiente di creazione Flash 5 o versione successiva, i file di Flash Player che utilizzano l'operatore & vengono automaticamente convertiti per utilizzare l'operatore add (+) per la concatenazione delle stringhe. Utilizzare l'operatore add (+) per concatenare le stringhe se si stanno creando dei contenuti per Flash Player 4 o versioni precedenti. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
string1 : String string2 : String

- Una stringa. - Una stringa.

Valori restituiti
String

- La stringa concatenata.

160

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
+ (addizione), operatore

?: operatore condizionale
expression1 ? expression2 : expression3

Indica a Flash di valutare expression1 e, se il valore di expression1 true, restituisce il valore di expression2; altrimenti restituisce il valore di expression3. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object:

un'espressione che valuta un valore booleano; solitamente un'espressione di confronto, come x < 5. - Valori di qualsiasi tipo. - Valori di qualsiasi tipo.

expression2 : Object expression3 : Object

Valori restituiti
Object:

il valore di expression2 o expression3.

Esempio L'istruzione seguente assegna il valore di variabile x alla variabile z, poich expression1 restituisce true:
var x:Number = 5; var y:Number = 10; var z = (x < 6) ? x: y; trace (z); // returns 5

L'esempio seguente mostra un'istruzione condizionale in forma abbreviata:


var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM"; trace(timecode);

La stessa istruzione condizionale pu essere scritta anche per esteso, come nell'esempio seguente:
if (new Date().getHours() < 11) { var timecode:String = "AM"; } else { var timecode:String = "PM"; } trace(timecode);

Operatori

161

-- (decremento), operatore
--expression expression-Operatore unario di decremento prima e dopo l'operazione, che sottrae 1 da expression . Il valore expression pu essere una variabile, un elemento in un array o la propriet di un oggetto. Il formato decremento prima dell'operazione (--expression) sottrae 1 da expression e restituisce il risultato. Il formato di decremento dopo l'operazione (expression--) sottrae 1 da expression e restituisce il valore iniziale di expression (il valore prima della sottrazione).

Disponibilit: Flash Player 4; ActionScript 1.0 Operandi


expression : Number

- Un numero o una variabile che restituisce un numero.

Valori restituiti
Number

- Il risultato del valore decrementato.

Esempio Il formato di decremento prima dell'operazione decrementa x a 2 (x - 1 = 2) e restituisce il risultato come y:


var x:Number = 3; var y:Number = --x; //y is equal to 2

Il formato di decremento dopo l'operazione decrementa x a 2 (x - 1 = 2) e restituisce il risultato originale di x come il risultato y:
var x:Number = 3; var y:Number = x--; //y is equal to 3

L'esempio seguente ripete da 10 a 1, e ogni iterazione del ciclo decrementa la variabile counter i di 1.
for (var i = 10; i>0; i--) { trace(i); }

162

Capitolo 1: Elementi del linguaggio ActionScript

/ (divisione), operatore
expression1 / expression2

Divide expression1 per expression2. Il risultato della divisione corrisponde a un numero a virgola mobile e doppia precisione. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression : Number

- Un numero o una variabile che restituisce un numero.

Valori restituiti
Number

- Il risultato a virgola mobile dell'operazione.

Esempio L'istruzione seguente divide la larghezza e l'altezza correnti dello stage, quindi visualizza il risultato nel pannello Output.
trace(Stage.width/2); trace(Stage.height/2);

Per una larghezza e un'altezza predefinite dello stage di 550 x 400, l'output 275 e 150. Vedere anche
% (modulo), operatore

/= (assegnazione divisione), operatore


expression1 /= expression2

Assegna a expression1 il valore di expression1 / expression2. Ad esempio, le due istruzioni seguenti sono equivalenti:
x /= y; x = x / y;

Disponibilit: Flash Player 4; ActionScript 1.0 Operandi


expression1 : Number expression2 : Number

- Un numero o una variabile che restituisce un numero. - Un numero o una variabile che restituisce un numero.

Operatori

163

Valori restituiti
Number

- Un numero.

Esempio Il codice seguente illustra l'uso dell'operatore assegnazione divisione (/=) con variabili e numeri:
var x:Number = 10; var y:Number = 2; x /= y; trace(x); // output: 5

Vedere anche
/ (divisione), operatore

. (punto), operatore
object.property_or_methodinstancename.variable instancename.childinstanceinstancename.childinstance.variable Utilizzato per spostarsi nelle gerarchie dei clip filmato e accedere ai clip filmato nidificati (secondari), alle variabili e alle propriet. L'operatore punto anche utilizzato per provare o impostare le propriet di un oggetto o classe di livello principale, eseguire un metodo di un oggetto o classe di livello principale, o creare una struttura di dati. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
object : Object

- Un'istanza di una classe. L'oggetto pu essere un'istanza di una qualsiasi delle classi incorporate in ActionScript o di una classe personalizzata. Questo parametro si trova sempre a sinistra dell'operatore punto (.).

- Il nome di una propriet o di un metodo associati ad un oggetto. Tutti i metodi e le propriet validi per le classi incorporate sono elencati nelle tabelle di riepilogo di propriet e metodi della relativa classe. Questo parametro si trova sempre a destra dell'operatore punto (.).
property_or_method instancename : MovieClip

- Il nome dell'istanza di un clip filmato.variable - Il nome dell'istanza a sinistra dell'operatore punto (.) pu anche rappresentare una variabile nella linea temporale del clip filmato. filmato secondario, o nidificato, rispetto a

childinstance : MovieClip - Un'istanza di clip

un altro clip filmato.

164

Capitolo 1: Elementi del linguaggio ActionScript

Valori restituiti
Object

- Il metodo, la propriet o il clip filmato menzionati a destra del punto.

Esempio L'esempio seguente identifica il valore corrente della variabile hairColor nel clip filmato person_mc:
person_mc.hairColor

L'ambiente di creazione Flash 4 non supportava la sintassi del punto, tuttavia i file di Flash MX 2004 pubblicati per Flash Player 4 possono utilizzare l'operatore punto. L'esempio precedente equivalente alla sintassi di Flash 4 (sconsigliata) seguente:
/person_mc:hairColor

L'esempio seguente crea un nuovo clip filmato all'interno dell'area di validit di _root. All'interno del clip filmato viene successivamente creato un campo di testo di nome container_mc. La propriet autoSize del campo di testo viene impostata su true e successivamente compilato con la data corrente.
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; this.container_mc.date_txt.text = new Date();

L'operatore punto (.) viene utilizzato quando si specificano le istanze all'interno del file SWF e quando necessario impostare le propriet e i valori per tali istanze.

== (uguaglianza), operatore
expression1 == expression2

Confronta due espressioni per verificarne l'uguaglianza. Il risultato true se le espressioni sono uguali. La definizione di uguale dipende dal tipo di dati del parametro:

I numeri e i valori booleani vengono confrontati in base al valore e sono considerati uguali se hanno lo stesso valore. Le espressioni stringa sono uguali se hanno lo stesso numero di caratteri e questi sono identici. Le variabili che rappresentano oggetti, array e funzioni vengono confrontate in base ai riferimenti. Due espressioni di questo tipo sono uguali se entrambe si riferiscono allo stesso oggetto, array o funzione. Due array separati non vengono mai considerati uguali, anche se contengono lo stesso numero di elementi.

Operatori

165

Nel confronto in base al valore, se expression1 e expression2 sono tipi di dati diversi, ActionScript cerca di convertire il tipo di dati di expression2 in modo che corrisponda al tipo di dati di expression1. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Esempio L'esempio seguente utilizza l'operatore uguaglianza (==)) con un'istruzione if:
var a:String = "David", b:String = "David"; if (a == b) { trace("David is David"); }

Gli esempi seguenti mostrano i risultati delle operazioni che confrontano tipi misti:
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

Gli esempi seguenti mostrano il confronto in base al riferimento. Il primo confronta due array con lunghezza ed elementi identici. L'operatore uguaglianza restituisce false per i due array. Bench gli array appaiano uguali, il confronto in base al riferimento richiede che entrambi facciano riferimento allo stesso array. Il secondo esempio crea la variabile thirdArray, che punta allo stesso array della variabile firstArray. L'operatore uguaglianza restituisce true per questi due array, poich le due variabili fanno riferimento allo stesso array.
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

166

Capitolo 1: Elementi del linguaggio ActionScript

// if the variables refer to the same array. var thirdArray:Array = firstArray; trace(firstArray == thirdArray); // will output true

Vedere anche
! (NOT logico), operatore, != (diseguaglianza), operatore, !== (diseguaglianza rigorosa), operatore, && (AND logico), operatore, || (OR logico), operatore, === (uguaglianza rigorosa), operatore

eq (uguaglianza) (stringhe), operatore


expression1 eq expression2

Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore == (equality). Confronta due espressioni per l'uguaglianza e restituisce il valore true se la rappresentazione sotto forma di stringa expression1 uguale alla rappresentazione sotto forma di stringa di expression2; in caso contrario, restituisce false. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Numeri, stringhe o variabili. - Numeri, stringhe o variabili.

Valori restituiti
Boolean

- Il risultato del confronto.

Vedere anche
== (uguaglianza), operatore

> (maggiore di), operatore


expression1 > expression2

Esegue un confronto tra due espressioni e determina se expression1 maggiore di expression2; in caso affermativo, l'operatore restituisce true. Se expression1 inferiore di o uguale a expression2, l'operatore restituisce false. Le espressioni stringa vengono valutate in base all'ordine alfabetico; tutte le lettere maiuscole vengono prima delle minuscole. Disponibilit: Flash Player 4; ActionScript 1.0

Operatori

167

Operandi
expression1 : Object expression2 : Object

- Un numero o una stringa. - Un numero o una stringa.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Esempio Nell'esempio seguente, l'operatore maggiore di (>) viene utilizzato per determinare se il valore del campo di testo score_txt maggiore di 90:
if (score_txt.text>90) { trace("Congratulations, you win!"); } else { trace("sorry, try again"); }

gt (maggiore di) (stringhe), operatore


expression1 gt expression2

Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore > (maggiore di). Esegue un confronto tra la rappresentazione sotto forma di stringa di expression1 e la rappresentazione sotto forma di stringa di expression2 e restituisce true se expression1 maggiore di expression2, in caso contrario restituisce false. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Numeri, stringhe o variabili. - Numeri, stringhe o variabili.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Vedere anche
> (maggiore di), operatore

168

Capitolo 1: Elementi del linguaggio ActionScript

>= (maggiore o uguale a), operatore


expression1 >= expression2

Confronta due espressioni e determina se expression1 maggiore di o uguale a expression2 (true) o expression1 minore di expression2 (false). Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Una stringa, un numero intero o un numero a virgola mobile. - Una stringa, un numero intero o un numero a virgola mobile.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Esempio Nell'esempio seguente, l'operatore maggiore o uguale a (>=) viene utilizzato per determinare se l'ora corrente maggiore o uguale a 12:
if (new Date().getHours() >= 12) { trace("good afternoon"); } else { trace("good morning"); }

ge (maggiore o uguale a) (stringhe), operatore


expression1 ge expression2

Sconsigliato a partire da Flash Player 5; questo operatore stato sconsigliato a favore dell'operatore >= (maggiore di o uguale a). Esegue un confronto tra la rappresentazione sotto forma di expression1 con la rappresentazione sotto forma di expression2 e restituisce true se expression1 maggiore di o uguale a expression2; in caso contrario, restituisce false . Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Numeri, stringhe o variabili. - Numeri, stringhe o variabili.

Operatori

169

Valori restituiti
Boolean

- Il risultato del confronto.

Vedere anche
>= (maggiore o uguale a), operatore

++ (incremento), operatore
++expression expression++ Operatore unario di incremento prima e dopo l'operazione che aggiunge 1 a expression . Il valore expression pu essere una variabile, un elemento in un array o la propriet di un oggetto. Il formato incremento prima dell'operazione (++expression) aggiunge 1 a expression e restituisce il risultato. Il formato di incremento dopo l'operazione (expression++) aggiunge 1 a expression e restituisce il valore iniziale di expression (il valore prima dell'addizione). 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

Il formato di incremento dopo l'operazione aumenta x a 2 (x + 1 = 2) e restituisce il risultato originale di x come il risultato 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 Operandi


expression : Number

- Un numero o una variabile che restituisce un numero.

Valori restituiti
Number

- Il risultato dell'incremento.

170

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente utilizza ++ come operatore di incremento dopo l'operazione per far eseguire cinque volte un ciclo while :
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'esempio seguente utilizza ++ come operatore di incremento prima dell'operazione:


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

L'esempio utilizza anche ++ come operatore di incremento prima dell'operazione:


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

Questo script mostra il risultato seguente nel pannello Output: 1,2,3,4,5,6,7,8,9,10 L'esempio seguente utilizza ++ come operatore di incremento dopo l'operazione in un ciclo 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'esempio seguente utilizza ++ come operatore di incremento dopo l'operazione in un ciclo for :
// using a for loop var a:Array = new Array(); for (var i = 0; i < 10; i++) { a.push(i); }

Operatori

171

trace(a.toString()); //traces 0,1,2,3,4,5,6,7,8,9

Questo script mostra il risultato seguente nel pannello Output:


0,1,2,3,4,5,6,7,8,9

!= (diseguaglianza), operatore
expression1 != expression2

Prova l'esatto opposto dell'operatore di uguaglianza (==). Se expression1 uguale a expression2 , il risultato false. Come nel caso dell'operatore di uguaglianza (==), la definizione di uguale dipende dai tipi di dati confrontati, come nell'elenco seguente:

Numeri, stringhe e valori booleani vengono confrontati in base al valore. Oggetti, array e funzioni vengono confrontati in base ai riferimenti. Una variabile viene confrontata in base al valore o al riferimento, a seconda del suo tipo.

Un confronto in base al valore significa quello che pi comunemente si intende per "uguaglianza", vale a dire, che due espressioni hanno lo stesso valore. Ad esempio, l'espressione (2 + 3) equivale all'espressione (1 + 4) se le due espressioni vengono confrontate in base al valore. Il confronto in base al riferimento significa invece che due espressioni sono equivalenti solo se entrambe si riferiscono allo stesso oggetto, array o funzione. I valori all'interno dell'oggetto, dell'array o della funzione non vengono confrontati. Nel confronto in base al valore, se expression1 e expression2 sono tipi di dati diversi, ActionScript cerca di convertire il tipo di dati di expression2 in modo che corrisponda al tipo di dati di expression1. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione.
expression1 : Object expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

172

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente mostra il risultato dell'operatore diseguaglianza (!=):


trace(5 != 8); // returns true trace(5 != 5) //returns false

L'esempio seguente mostra l'utilizzo dell'operatore di diseguaglianza (!=) in un'istruzione if:


var a:String = "David"; var b:String = "Fool"; if (a != b) { trace("David is not a fool"); }

L'esempio seguente mostra il confronto in base al riferimento di due funzioni:


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'esempio seguente mostra il confronto in base al riferimento di due array:


var a:Array = [ 1, 2, 3 ]; var b:Array = [ 1, 2, 3 ]; trace(a); // 1, 2, 3 trace(b); // 1, 2, 3 trace(a!=b); // true 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

Vedere anche
! (NOT logico), operatore, !== (diseguaglianza rigorosa), operatore, && (AND logico), operatore, || (OR logico), operatore, == (uguaglianza), operatore, === (uguaglianza rigorosa), operatore

Operatori

173

<> (diseguaglianza), operatore


expression1 <> expression2

Sconsigliato a partire da Flash Player 5; questo operatore stato sconsigliato. Macromedia consiglia di utilizzare l'operatore != (inequality).
expression2,

Prova l'esatto opposto dell'operatore di uguaglianza (==). Se expression1 uguale a il risultato false. Come nel caso dell'operatore di uguaglianza (==), la definizione di uguale dipende dai tipi di dati confrontati: Numeri, stringhe e valori booleani vengono confrontati in base al valore. Oggetti, array e funzioni vengono confrontati in base ai riferimenti. Le variabili vengono confrontate in base al valore o al riferimento, a seconda del tipo.

Disponibilit: Flash Player 2; ActionScript 1.0 Operandi


expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Vedere anche
!= (diseguaglianza), operatore

istanza di, operatore


object instanceof classConstructor

Prova se object un'istanza di classConstructor o una sottoclasse di classConstructor. L'operatore instanceof non converte i tipi di base in oggetti wrapper. Ad esempio, il codice seguente restituisce true:
new String("Hello") instanceof String;

Mentre il codice seguente restituisce false:


"Hello" instanceof String;

Disponibilit: Flash Player 6; ActionScript 1.0

174

Capitolo 1: Elementi del linguaggio ActionScript

Operandi
object : Object

- Un oggetto.

classConstructor : Function

- Un riferimento a una funzione di costruzione ActionScript, come String o Date. Valori restituiti

Boolean

- Se object un'istanza di una sottoclasse di classConstructor, instanceof restituisce true; in caso contrario restituisce false. Inoltre, _global instanceof Objectrestituisce false. Vedere anche

typeof, operatore

< (minore di), operatore


expression1 < expression2

Esegue un confronto di due espressioni e determina se expression1 inferiore a expression2; in caso affermativo, l'operatore restituisce true. Se expression1 maggiore di o uguale a expression2, l'operatore restituisce false. Le espressioni stringa vengono valutate in base all'ordine alfabetico; tutte le lettere maiuscole vengono prima delle minuscole. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Number expression2 : Number

- Un numero o una stringa. - Un numero o una stringa.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Esempio Gli esempi seguenti mostrano i risultati true e false sia per i confronti numerici che per quelli di stringa:
trace(3 < 10); // true trace(10 < 3); // false trace("Allen" < "Jack"); // true trace("Jack" < "Allen"); //false trace("11" < "3"); // true

Operatori

175

trace("11" < 3); // false (numeric comparison) trace("C" < "abc"); // true trace("A" < "a"); // true

lt (minore di) (stringhe), operatore


expression1 lt expression2

Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore < (inferiore di). Confronta expression1 con expression2 e restituisce true se expression1 inferiore a expression2; in caso contrario restituisce false . Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Numeri, stringhe o variabili. - Numeri, stringhe o variabili.

Valori restituiti
Boolean

- Il risultato del confronto.

Vedere anche
< (minore di), operatore

<= (minore o uguale a), operatore


expression1 <= expression2

Esegue un confronto tra due espressioni e determina se expression1 inferiore di o uguale a expression2; in caso affermativo l'operatore restituisce true. Se expression1 maggiore di expression2, l'operatore restituisce false. Le espressioni stringa vengono valutate in base all'ordine alfabetico; tutte le lettere maiuscole vengono prima delle minuscole. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Un numero o una stringa. - Un numero o una stringa.

176

Capitolo 1: Elementi del linguaggio ActionScript

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Esempio Gli esempi seguenti mostrano i risultati true e false sia per i confronti numerici che per quelli di stringa:
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

le (minore o uguale a) (stringhe), operatore


expression1 le expression2

Sconsigliato a partire Flash Player 5; questo operatore stato sconsigliato in Flash 5 a favore dell'operatore <= (inferiore di o uguale a). Confronta expression1 con expression2 e restituisce il valore true se expression1 inferiore o uguale a expression2; in caso contrario restituisce false. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Numeri, stringhe o variabili. - Numeri, stringhe o variabili.

Valori restituiti
Boolean

- Il risultato del confronto.

Vedere anche
<= (minore o uguale a), operatore

Operatori

177

// (delimitatore commenti), operatore


// comment

Indica l'inizio di un commento di script. Tutti i caratteri racchiusi tra il delimitatore (//) e il carattere di fine riga vengono considerati commenti e ignorati dall'interprete di ActionScript. Disponibilit: Flash Player 1,0; ActionScript 1.0 Operandi
comment

- Qualsiasi carattere.

Esempio Lo script seguente utilizza i delimitatori commenti per identificare la prima, terza, quinta e settima riga come commenti:
// 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

Vedere anche
/*..*/ (delimitatore commenti), operatore

&& (AND logico), operatore


expression1 && expression2

Esegue un'operazione booleana sui valori di entrambe le espressioni. Se expression1 e expression2 sono entrambi true, quindi restituisce true; in caso otherwise, restituisce false.
Expression
true&&true true&&false false&&false false&&true

Valuta
true false false false

Disponibilit: Flash Player 4; ActionScript 1.0

178

Capitolo 1: Elementi del linguaggio ActionScript

Operandi
expression1 : Number

- Un valore booleano o un'espressione convertibile in un valore - Un valore booleano o un'espressione convertibile in un valore

booleano.
expression2 : Number

booleano. Valori restituiti


Boolean

- Un risultato booleano dell'operazione logica.

Esempio L'esempio seguente utilizza l'operatore AND logico (&&) per eseguire una prova che determini se un giocatore ha vinto il gioco. La variabile turns e la variabile score vengono aggiornate quando un giocatore comincia il proprio turno o realizza dei punti durante il gioco. Lo script mostra la scritta "You Win the Game!" nel pannello Output quando il punteggio del giocatore raggiunge 75 o pi punti in 3 o meno turni.
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!

Vedere anche
! (NOT logico), operatore, != (diseguaglianza), operatore, !== (diseguaglianza rigorosa), operatore, || (OR logico), operatore, == (uguaglianza), operatore, === (uguaglianza rigorosa), operatore

and (AND logico), operatore


condition1 and condition2

Sconsigliato a partire da Flash Payer 5. Macromedia consiglia di utilizzare l'operatore logico AND (&&). Esegue un'operazione AND logico (&&) ) in Flash Player 4. Se entrambe le espressioni restituiscono true, l'intera espressione true. Disponibilit: Flash Player 4; ActionScript 1.0

Operatori

179

Operandi
condition1 : Boolean

- condition1,condition2 Condizioni o espressioni che restituiscono true o false. - condition1,condition2 Condizioni o espressioni che restituiscono true o false.

condition2 : Boolean

Valori restituiti
Boolean

- Un risultato booleano dell'operazione logica.

Vedere anche
&& (AND logico), operatore

! (NOT logico), operatore


! expression

Inverte il valore booleano di una variabile o espressione. Se expression una variabile con il valore assoluto o convertito true, il valore di ! expression false. Se l'espressione x && y restituisce false, l'espressione !(x && y) restituisce true. Le espressioni seguenti mostrano il risultato dell'uso dell'operatore NOT (!) logico:
! true

restituisce false ! false restituisce true

Disponibilit: Flash Player 4; ActionScript 1.0 Operandi


expression : Boolean

- Un'espressione o una variabile che restituisce un valore booleano.

Valori restituiti
Boolean

- Il risultato booleano dell'operazione logica.

Esempio Nell'esempio seguente, la variabile happy impostata su false. La condizione if restituisce la condizione !happy e, se la condizione true, l'istruzione trace() invia una stringa al pannello Output.
var happy:Boolean = false; if (!happy) { trace("don't worry, be happy"); //traces don't worry, be happy }

L'istruzione determina un'istruzione trace poich !false uguale a true.

180

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
!= (diseguaglianza), operatore, !== (diseguaglianza rigorosa), operatore, && (AND logico), operatore, || (OR logico), operatore, == (uguaglianza), operatore, === (uguaglianza rigorosa), operatore

not (NOT logico), operatore


not expression

Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore ! (logical NOT). Esegue un'operazione NOT logica (!) in Flash Player 4. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression : Object

- Una variabile o altra espressione convertibile in un valore booleano.

Valori restituiti
Boolean

- Il risultato dell'operazione logica.

Vedere anche
! (NOT logico), operatore

|| (OR logico), operatore


expression1 || expression2

Valuta expression1 (l'espressione sul lato sinistro dell'operatore) e restituisce true se l'espressione equivale a true. Se expression1 restituisce false, viene valutata expression2 (l'espressione a destra dell'operatore). Seexpression2 restituisce false, il risultato finale false; in caso contrario, restituisce true. Se si utilizza una chiamata ad una funzione come expression2, la funzione non viene eseguita dalla chiamata se expression1 restituisce true. Il risultato true se una delle due espressioni o entrambe restituiscono true; il risultato false solo se entrambe le espressioni restituiscono false. possibile utilizzare l'operatore logico OR con un numero qualsiasi di operandi; se uno degli operandi restituisce true, il risultato true. Disponibilit: Flash Player 4; ActionScript 1.0

Operatori

181

Operandi
expression1 : Number

- Un valore booleano o un'espressione convertibile in un valore - Un valore booleano o un'espressione convertibile in un valore

booleano.
expression2 : Number

booleano. Valori restituiti


Boolean

- Il risultato dell'operazione logica.

Esempio L'esempio seguente utilizza l'operatore OR logico (||) in un'istruzione if. La seconda espressione restituisce true,, quindi il risultato finale 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 }

Il messaggio "the logical OR test passed" viene visualizzato poich una delle condizioni dell'istruzione if true (y>200). Bench le altre due espressioni restituiscano false, finch una condizione restituisce true,, il blocco if viene eseguito. L'esempio seguente dimostra come l'uso di una chiamata di funzione come expression2 pu portare a risultati imprevisti. Se l'espressione a sinistra dell'operatore restituisce true, tale risultato viene restituito senza che venga valutata l'espressione a destra (la funzione fx2() non viene chiamata).
function fx1():Boolean { trace("fx1 called"); return true; } function fx2():Boolean { trace("fx2 called"); return true; } if (fx1() || fx2()) { trace("IF statement entered"); }

Le informazioni seguenti vengono inviate al pannello Output: fx1 called IF statement entered

182

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
! (NOT logico), operatore, != (diseguaglianza), operatore, !== (diseguaglianza rigorosa), operatore, && (AND logico), operatore, == (uguaglianza), operatore, === (uguaglianza rigorosa), operatore

or (OR logico), operatore


condition1 or condition2

Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore || (logical OR). Valuta condition1 e condition2 e, se una delle espressioni true, l'intera espressione true. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
condition1 : Boolean condition2 : Boolean

- Un'espressione che restituisce true o false. - Un'espressione che restituisce true o false.

Valori restituiti
Boolean

- Il risultato dell'operazione logica.

Vedere anche
|| (OR logico), operatore, | (OR bit a bit), operatore

% (modulo), operatore
expression1 % expression2

Calcola il resto di expression1 diviso per expression2. Se nessuno dei parametri expression numerico, l'operatore modulo (%) cerca di convertirli in numeri. expression pu essere un numero o stringa convertibile in un valore numerico. Il segno del risultato dell'operazione modulo corrisponde al segno del dividendo (ovvero il primo numero). Ad esempio, sia -4 % 3 sia -4 % -3 restituiscono -1. Disponibilit: Flash Player 4; ActionScript 1.0

Operatori

183

Operandi
expression1 : Number expression2 : Number

- Un numero o un'espressione che restituisce un numero. - Un numero o un'espressione che restituisce un numero.

Valori restituiti
Number

- Il risultato dell'operazione aritmetica.

Esempio L'esempio numerico seguente utilizza l'operatore modulo (%):


trace(12%5); // traces 2 trace(4.3%2.1); // traces 0.0999999999999996 trace(4%4); // traces 0

La prima istruzione trace restituisce 2 anzich 12/5 o 2,4, poich l'operatore modulo (%) restituisce solo il resto. La seconda istruzione trace restituisce 0.0999999999999996 anzich il valore 0,1 previsto a causa delle limitazioni di precisione della virgola mobile nell'elaborazione binaria. Vedere anche
/ (divisione), operatore, round (metodo Math.round)

%= (assegnazione modulo), operatore


expression1 %= expression2

Assegna a expression1 il valore di expression1 % expression2. Le due istruzioni seguenti sono equivalenti:
x %= y; x = x % y;

Disponibilit: Flash Player 4; ActionScript 1.0 Operandi


expression1 : Number expression2 : Number

- Un numero o un'espressione che restituisce un numero. - Un numero o un'espressione che restituisce un numero.

Valori restituiti
Number

- Il risultato dell'operazione aritmetica.

184

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente assegna il valore 4 alla variabile x:


var x:Number = 14; var y:Number = 5; trace(x = y); // output: 4

Vedere anche
% (modulo), operatore

* (moltiplicazione), operatore
expression1 * expression2

Moltiplica due espressioni numeriche. Se entrambe le espressioni sono numeri interi, il prodotto un numero intero. Se almeno una delle due espressioni un numero a virgola mobile, il prodotto un numero a virgola mobile. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Number expression2 : Number

- Un numero o un'espressione che restituisce un numero. - Un numero o un'espressione che restituisce un numero.

Valori restituiti
Number

- Un numero intero o un numero a virgola mobile.

Esempio Uso 1: l'istruzione seguente moltiplica gli interi 2 e 3:


trace(2*3); // output: 6

Il risultato un numero intero: 6. Uso 2: questa istruzione moltiplica i numeri a virgola mobile 2.0 e 3.1416:
trace(2.0 * 3.1416); // output: 6.2832

Il risultato un numero a virgola mobile: 6.2832.

Operatori

185

*= (assegnazione moltiplicazione), operatore


expression1 *= expression2

Assegna a expression1 il valore di expression1 * expression2. Ad esempio, le due espressioni seguenti sono equivalenti:
x *= y; x = x * y

Disponibilit: Flash Player 4; ActionScript 1.0 Operandi


expression1 : Number expression2 : Number

- Un numero o un'espressione che restituisce un numero. - Un numero o un'espressione che restituisce un numero.

Valori restituiti
Number

- Il valore di expression1 * expression2 . Se un'espressione non pu essere convertita in un valore numerico, restituisce NaN (not a number, non un numero). Esempio Uso 1: l'esempio seguente assegna il valore 50 alla variabile x:

var x:Number = 5; var y:Number = 10; trace(x *= y); // output: 50

Uso 2: la seconda e terza riga dell'esempio seguente calcolano le espressioni a destra del segno di uguale e assegnano i risultati a x e y:
var i:Number = var x:Number = var y:Number = trace(x *= y); 5; 4 - 6; i + 2; // output: -14

Vedere anche
* (moltiplicazione), operatore

186

Capitolo 1: Elementi del linguaggio ActionScript

new, operatore
new constructor()

Crea un nuovo oggetto, inizialmente anonimo, e chiama la funzione identificata dal parametro constructor. L'operatore new passa alla funzione tutti gli eventuali parametri opzionali tra parentesi, oltre all'oggetto appena creato, a cui viene fatto riferimento mediante la parola chiave this. La funzione constructor pu quindi utilizzare this per impostare le variabili dell'oggetto. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi - Una funzione seguita dagli eventuali parametri opzionali tra parentesi. Di solito, la funzione il nome del tipo di oggetto (ad esempio, Array, Number o Object) da creare.
constructor : Object

Esempio L'esempio seguente crea la funzione Book(), quindi utilizza l'operatore new per creare gli oggetti book1 e 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'esempio seguente utilizza l'operatore new per creare un oggetto Array con 18 elementi:
golfCourse_array = new Array(18);

Vedere anche
[] (accesso array), operatore, {} (inizializzatore di oggetto), operatore

Operatori

187

ne (non uguale) (stringhe), operator


expression1 ne expression2

Sconsigliato a partire da Flash Player 5: questo operatore stato sconsigliato a favore dell'operatore != (inequality). Confronta expression1 con expression2 e restituisce true se expression1 non uguale a expression2; in caso contrario restituisce false . Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object

- Numeri, stringhe o variabili. - Numeri, stringhe o variabili.

Valori restituiti
Boolean

- Restituisce true se expression1 non uguale a expression2; in caso contrario, restituisce false. Vedere anche

!= (diseguaglianza), operatore

{} (inizializzatore di oggetto), operatore


object = { name1 : value1 , name2 : value2 ,... nameN : valueN } {expression1; [...expressionN]} Crea un nuovo oggetto e lo inizializza con le coppie di propriet name e value specificate. L'uso di questo operatore equivale a utilizzare la sintassi new Object e indicare le coppie di propriet mediante l'operatore di assegnazione. Il prototipo dell'oggetto appena creato viene solitamente chiamato oggetto di Object. Questo operatore viene anche utilizzato per contrassegnare i blocchi di codice contigui associati alle istruzioni (for, while, if, else, switch) e funzioni. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
object : Object value1,2,...N

- L'oggetto da creare. name1,2,...N I nomi delle propriet. I valori corrispondenti per ogni propriet name.

188

Capitolo 1: Elementi del linguaggio ActionScript

Valori restituiti
Object

Uso 1: un oggetto di Object. Uso 2: nessuno, ad eccezione di quando una funzione ha un'istruzione return esplicita, nel qual caso il tipo restituito viene specificato nell'implementazione della funzione. Esempio La prima riga del codice seguente crea un oggetto vuoto mediante l'operatore inizializzatore di oggetto ({}); la seconda riga crea un nuovo oggetto mediante una funzione di costruzione:
var object:Object = {}; var object:Object = new Object();

L'esempio seguente crea un oggetto account e inizializza le propriet name, address, city, state, zip e balance con i relativi valori:
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]); }

L'esempio seguente mostra il modo in cui gli inizializzatori di array e di oggetto possono essere nidificati l'uno dentro l'altro:
var person:Object = {name:"Gina Vechio", children:["Ruby", "Chickie", "Puppa"]};

L'esempio seguente utilizza le informazioni dell'esempio precedente e produce lo stesso risultato mediante le funzioni di costruzione:
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'esempio di ActionScript precedente pu essere scritto anche nel formato seguente:


var person:Object = new Object(); person.name = "Gina Vechio"; person.children = new Array("Ruby", "Chickie", "Puppa");

Vedere anche
Oggetto

Operatori

189

() (parentesi), operatore
(expression1 [, expression2]) ( expression1, expression2 )

function ( parameter1,..., parameterN ) Esegue un'operazione di raggruppamento su uno o pi parametri, compie una valutazione sequenziale delle espressioni, oppure racchiude uno o pi parametri e li trasmette come tali a una funzione fuori delle parentesi. Uso 1: controlla l'ordine di esecuzione degli operatori nell'espressione. Le parentesi hanno la priorit sul normale ordine di precedenza e le espressioni racchiuse tra parentesi vengono valutate per prime. Quando le parentesi sono nidificate, il contenuto delle parentesi interne viene valutato prima del contenuto di quelle esterne. Uso 2: valuta una serie di espressioni, separate da virgola, in sequenza, e restituisce il risultato dell'espressione finale. Uso 3: racchiude uno o pi parametri e li trasmette sotto forma di parametri alla funzione che si trova fuori dalle parentesi. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Object expression2 : Object function : Function

- Numeri, stringhe, variabili o testo. - Numeri, stringhe, variabili o testo.

- La funzione da eseguire sul contenuto delle parentesi.

parameter1...parameterN : Object - Una serie di parametri da eseguire prima che i risultati vengano trasmessi come parametri alla funzione che si trova fuori dalle parentesi.

Esempio Uso 1: le istruzioni seguenti mostrano l'uso delle parentesi per controllare l'ordine con cui vengono eseguite le espressioni (il valore di ciascuna espressione viene visualizzato nel pannello Output):
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

190

Capitolo 1: Elementi del linguaggio ActionScript

Uso 2: l'esempio seguente valuta la funzione foo(), quindi restituisce la funzione bar() e restituisce il risultato dell'espressione 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

Uso 3: l'esempio seguente mostra l'uso delle parentesi con le funzioni:


var today:Date = new Date(); trace(today.getFullYear()); // traces current year function traceParameter(param):Void { trace(param); } traceParameter(2 * 2); //traces 4

Vedere anche
with (istruzione)

=== (uguaglianza rigorosa), operatore


expression1 === expression2

Confronta due espressioni per verificarne l'uguaglianza. L'operatore di uguaglianza rigorosa (===) corrisponde all'operatore di uguaglianza (==), ma non converte i tipi di dati. Il risultato true se le due espressioni sono uguali, inclusi i tipi di dati. La definizione di uguale dipende dal tipo di dati del parametro:

I numeri e i valori booleani vengono confrontati in base al valore e sono considerati uguali se hanno lo stesso valore. Le espressioni stringa sono uguali se hanno lo stesso numero di caratteri e questi sono identici. Le variabili che rappresentano oggetti, array e funzioni vengono confrontate in base ai riferimenti. Due espressioni di questo tipo sono uguali se entrambe si riferiscono allo stesso oggetto, array o funzione. Due array separati non vengono mai considerati uguali, anche se contengono lo stesso numero di elementi.

Disponibilit: Flash Player 6; ActionScript 1.0 Operandi


expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione.

Operatori

191

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Esempio I commenti nel codice seguente mostrano il valore restituito dalle operazioni che utilizzano gli operatori uguaglianza e uguaglianza rigorosa:
// 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

Gli esempi seguenti mostrano il modo in cui l'uguaglianza rigorosa tratta in modo diverso le variabili che sono dei riferimenti rispetto alle variabili che contengono valori letterali. Per tale motivo opportuno utilizzare in modo coerente i valori letterali di stringa dell'operatore new con 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

192

Capitolo 1: Elementi del linguaggio ActionScript

Vedere anche
! (NOT logico), operatore, != (diseguaglianza), operatore, !== (diseguaglianza rigorosa), operatore, && (AND logico), operatore, || (OR logico), operatore, == (uguaglianza), operatore

!== (diseguaglianza rigorosa), operatore


expression1 !== expression2

Prova l'esatto opposto dell'operatore di uguaglianza (=== ). L'operatore di diseguaglianza rigorosa si comporta come l'operatore di diseguaglianza ma non converte i tipi di dati. Se expression1 uguale a expression2 e i loro tipi di dati sono uguali, il risultato false. Come nel caso dell'operatore di uguaglianza rigorosa (===), la definizione di uguale dipende dai tipi di dati confrontati, come nell'elenco seguente:

Numeri, stringhe e valori booleani vengono confrontati in base al valore. Oggetti, array e funzioni vengono confrontati in base ai riferimenti. Una variabile viene confrontata in base al valore o al riferimento, a seconda del suo tipo.

Disponibilit: Flash Player 6; ActionScript 1.0 Operandi


expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione.

Valori restituiti
Boolean

- Il risultato booleano del confronto.

Esempio I commenti nel codice seguente mostrano il valore restituito dalle operazioni che utilizzano gli operatori uguaglianza (==), uguaglianza rigorosa (===) e diseguaglianza rigorosa (!==):
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

Operatori

193

trace(s1 trace(s1 trace(s1 trace(s1 trace(s1 trace(s1 trace(s1 trace(s1 trace(s1

== b); // false === s2); // true === s3); // false === n); // false === b); // false !== s2); // false !== s3); // true !== n); // true !== b); // true

Vedere anche
! (NOT logico), operatore, != (diseguaglianza), operatore, && (AND logico), operatore, || (OR logico), operatore, == (uguaglianza), operatore, === (uguaglianza rigorosa), operatore

" (delimitatore di stringa), operatore


"text"

Se utilizzate prima e dopo i caratteri, le virgolette (") indicano che tali caratteri hanno un valore letterale e devono essere considerati come una stringa, non una variabile, un valore numerico o un altro elemento di ActionScript. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
text : String

- Una sequenza di zero o pi caratteri.

Esempio L'esempio seguente utilizza le virgolette (") per indicare che il valore della variabile yourGuess il valore letterale di stringa "Prince Edward Island" e non il nome di una variabile. Il valore di province una variabile, non un valore letterale; per determinare il valore di province, necessario individuare il valore di yourGuess.
var yourGuess:String = "Prince Edward Island"; submit_btn.onRelease = function() { trace(yourGuess); }; // displays Prince Edward Island

Vedere anche
Stringa, Funzione String

194

Capitolo 1: Elementi del linguaggio ActionScript

- (sottrazione), operatore
- expression2 Utilizzato per negare o sottrarre. Uso 1: quando viene utilizzato per la negazione, inverte il segno dell'expression numerica. Uso 2: quando viene utilizzato per la sottrazione, esegue una sottrazione aritmetica su due espressioni numeriche, sottraendo expression2 da expression1. Se entrambe le espressioni sono numeri interi, la differenza un numero intero. Se almeno una delle due espressioni un numero a virgola mobile, la differenza un numero a virgola mobile. Disponibilit: Flash Player 4; ActionScript 1.0 Operandi
expression1 : Number expression2 : Number (Negation) -expression (Subtraction) expression1

- Un numero o un'espressione che restituisce un numero. - Un numero o un'espressione che restituisce un numero.

Valori restituiti
Number

- Un numero intero o un numero a virgola mobile.

Esempio Uso 1: l'istruzione seguente inverte il segno dell'espressione 2 + 3:


trace(-(2+3)); // output: -5

Uso 2: l'istruzione seguente sottrae il numero intero 2 dal numero intero 5:


trace(5-2); // output: 3

Il risultato un numero intero: 3. Uso 3: l'istruzione seguente sottrae il numero a virgola mobile 1.5 dal numero a virgola mobile 3.25:
trace(3.25-1.5); // output: 1.75

Il risultato un numero a virgola mobile: 1,75.

-= (assegnazione sottrazione), operatore


expression1 -= expression2

Assegna a expression1 il valore di expression1 - expression2. Ad esempio, le due istruzioni seguenti sono equivalenti: x -= y ;x = x - y; Le espressioni stringa devono essere convertite in numeri; in caso contrario, viene restituito NaN (not a number, non un numero). Disponibilit: Flash Player 4; ActionScript 1.0

Operatori

195

Operandi
expression1 : Number expression2 : Number

- Un numero o un'espressione che restituisce un numero. - Un numero o un'espressione che restituisce un numero.

Valori restituiti
Number

- Il risultato dell'operazione aritmetica.

Esempio L'esempio seguente utilizza l'operatore assegnazione sottrazione (-=) per sottrarre 10 da 5 e assegnare il risultato alla variabile x:
var x:Number = 5; var y:Number = 10; x -= y; trace(x); // output: -5

L'esempio seguente mostra il modo in cui le stringhe vengono convertite in numeri:


var x:String = "5"; var y:String = "10"; x -= y; trace(x); // output: -5

Vedere anche
- (sottrazione), operatore

: (tipo), operatore
[ modifiers ] var variableName : type function functionName () : type { ... } function functionName ( parameter1:type , ... , parameterN:type ) [ :type ]{ ... } Utilizzato per la tipizzazione forte dei dati; specifica i tipi di variabili, i tipi di funzioni restituite o i tipi di parametri funzione. Se utilizzato in una dichiarazione o assegnazione di variabile, questo operatore specifica il tipo di variabile; quando viene utilizzato in una dichiarazione o definizione della funzione, specifica il tipo restituito da una funzione; se viene utilizzato con un parametro di funzione nella definizione di una funzione, specifica il tipo di variabile prevista per quel parametro. I tipi sono una funzione solo di compilazione. Tutti vengono verificati al momento della compilazione e, in caso di mancata corrispondenza, vengono generati i relativi errori. Gli errori di corrispondenza possono verificarsi durante le operazioni di assegnazione, le chiamate di funzione e l'annullamento dei membri di classe mediante l'operatore punto (.). Per evitare errori di tipo non corrispondente, utilizzare la tipizzazione forte dei dati.

196

Capitolo 1: Elementi del linguaggio ActionScript

Possono essere utilizzati tutti i tipi di oggetti nativi, le classi e interfacce definite dall'utente, Function e Void. I tipi nativi riconosciuti sono Boolean, Number e String. Anche tutte le classi incorporate sono supportate come tipi nativi. Disponibilit: Flash Player 6; ActionScript 1.0 Operandi
variableName : Object

- Un identificatore per una variabile. type Un tipo di dati nativo, un nome di classe definito dall'utente o un nome di interfaccia. functionName Un identificatore per una funzione. parameter Un identificatore per una funzione.

Esempio Uso 1: l'esempio seguente dichiara una variabile pubblica di nome userName il cui tipo String e le assegna una stringa vuota:
var userName:String = "";

Uso 2: l'esempio seguente mostra come specificare il parametro randomInt() di una funzione definendo una funzione di nome randomInt() che usa un parametro di nome integer di tipo Number:
function randomInt(integer:Number):Number { return Math.round(Math.random()*integer); } trace(randomInt(8));

Uso 3: l'esempio seguente definisce una funzione di nome squareRoot() che usa un parametro di nome val del tipo Number e restituisce la radice quadrata di val, anch'essa di tipo Number:
function squareRoot(val:Number):Number { return Math.sqrt(val); } trace(squareRoot(121));

Vedere anche
var, istruzione, function, istruzione

typeof, operatore
typeof(expression)

Valuta expression e restituisce una stringa che specifica se l'espressione un valore String, MovieClip, Object, Function, Number, o Boolean. Disponibilit: Flash Player 5; ActionScript 1.0

Operatori

197

Operandi
expression : Object

- Una stringa, un clip filmato, un pulsante, un oggetto o una

funzione. Valori restituiti


String

- Una rappresentazione String del tipo di expression. La tabella seguente mostra i risultati dell'operatore typeof su ciascun tipo di expression.
Tipo di espressione Risultato
Stringa Clip filmato Pulsante Campo di testo Number Booleano Object Funzione
string movieclip object object number boolean object function

Vedere anche
istanza di, operatore

void, operatore
void expression

L'operatore void valuta un'espressione, quindi ne scarta il valore e restituisce undefined. L'operatore void viene spesso utilizzato nei confronti che utilizzano l'operatore == per verificare i valori undefined. Disponibilit: Flash Player 5; ActionScript 1.0 Operandi
expression : Object

- Un'espressione da valutare.

198

Capitolo 1: Elementi del linguaggio ActionScript

Istruzioni
Le istruzioni sono elementi del linguaggio che eseguono o specificano un'azione. L'istruzione return, ad esempio, restituisce un risultato sotto forma di valore della funzione in cui l'istruzione viene eseguita; l'istruzione if valuta una condizione per determinare l'azione successiva da eseguire; l'istruzione switch crea una struttura ad albero per le istruzioni ActionScript. Riepilogo delle istruzioni
Istruzione
break

Descrizione
Viene visualizzata all'interno di un ciclo (for, for..in, do..while o while) oppure in un blocco di istruzioni associate a un caso particolare all'interno di un'istruzione switch. Definisce una condizione per l'istruzione switch. Definisce una classe personalizzata, che consente di creare le istanze degli oggetti che condividono i metodi e le propriet definite dall'utente. Passa oltre tutte le istruzioni rimanenti nel ciclo pi interno e avvia l'iterazione successiva del ciclo come se il controllo fosse arrivato normalmente alla fine del ciclo. Definisce il caso predefinito di un'istruzione switch. Elimina il riferimento specificato dal parametro reference e restituisce true se il riferimento viene correttamente eliminato; in caso contrario, restituisce false. Simile ad un ciclo while, ad eccezione del fatto che le istruzioni vengono eseguite una volta prima della valutazione iniziale della condizione. Indica che gli oggetti basati sulla classe specificata possono aggiungere propriet dinamiche e accedervi in fase di runtime. Specifica le istruzioni da eseguire se la condizione nell'istruzione if restituisce false. Valuta una condizione e specifica le istruzioni da eseguire se la condizione nell'istruzione if iniziale restituisce false. Definisce una classe che una sottoclasse di un'altra classe; quest'ultima rappresenta la superclasse. Valuta l'espressione init (inzializza) una volta, quindi avvia una sequenza di ripetizione ciclica. Esegue iterazioni sulle propriet di un oggetto o sugli elementi di un array ed esegue statement per ogni propriet o elemento.

case class

continue

default delete

do..while

dynamic

else

else if

extends

for

for..in

Istruzioni

199

Istruzione
function

Descrizione
Comprende un set di istruzioni definite dall'utente per eseguire una determinata attivit. Consente l'acquisizione implicita delle propriet associate agli oggetti basati sulle classi definite nei file di classe esterni. Valuta una condizione per determinare l'azione successiva da eseguire in un file SWF. Specifica che una classe deve definire tutti i metodi dichiarati nell'interfaccia (o interfacce) in fase di implementazione. Consente di accedere alle classi senza doverne specificare il nome completo. Definisce un'interfaccia. Consente la verifica del tipo in fase di compilazione delle classi definite in precedenza. Specifica che una variabile o una funzione sono disponibili solo per la classe (o relative sottoclassi) che le dichiara o definisce. Specifica che una variabile o una funzione sono disponibili a qualsiasi chiamante. Specifica il valore restituito da una funzione. Consente l'impostazione implicita delle propriet associate agli oggetti basati sulle classi definite nei file di classe esterni. Assegna un valore a una variabile. Specifica che una variabile o una funzione vengono create solo una volta per ogni classe e non in ogni oggetto basato sulla classe. Richiama la versione della superclasse di un metodo o di una funzione di costruzione. Crea una struttura ad albero per le istruzioni ActionScript. Crea, o genera, un errore che pu essere gestito, o rilevato, mediante un blocco di codice catchcatch{}. Racchiudono un blocco di codice nel quale pu verificarsi un errore, quindi rispondono all'errore. Utilizzata per dichiarare le variabili locali o della linea temporale.

get

if

implements

import

interface intrinsic

private

public

return set

set variable static

super

switch throw

try..catch..finally

var

200

Capitolo 1: Elementi del linguaggio ActionScript

Istruzione
while

Descrizione
Valuta una condizione e, se questa restituisce true, esegue un'istruzione o una serie di istruzioni prima di tornare a valutare la condizione. Consente di specificare un oggetto (come un clip filmato) con il parametro object e valutare espressioni e azioni all'interno di quell'oggetto mediante il parametro statement(s).

with

break, istruzione
break

Viene visualizzata all'interno di un ciclo (for, for..in, do..while o while) oppure in un blocco di istruzioni associate a un caso particolare all'interno di un'istruzione switch. Quando viene utilizzata in un ciclo, l'istruzione break indica a Flash di ignorare il resto del corpo del ciclo, arrestare la ripetizione ciclica ed eseguire l'istruzione che segue l'istruzione ciclica. Quando viene utilizzata in uno switch, l'istruzione break indica a Flash di ignorare il resto delle istruzioni in quel blocco case e passare alla prima istruzione che segue l'istruzione switch che le racchiude. Nei cicli nidificati, l'istruzione break ignora solo il resto del ciclo immediato e non esce dalla serie di cicli nidificati. Per uscire da una serie completa di cicli nidificati, vedere try..catch..finally. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio L'esempio seguente utilizza l'istruzione break per uscire da un ciclo altrimenti infinito:
var i:Number = 0; while (true) { trace(i); if (i >= 10) { break; // this will terminate/exit the loop } i++; }

che traccia l'output seguente:


0 1 2 3 4 5 6

Istruzioni

201

7 8 9 10

Vedere anche
for, istruzione

case, istruzione
case expression : statement(s)

Definisce una condizione per l'istruzione switch. Se il parametro expression uguale al parametro expression dell'istruzione switch mediante uguaglianza rigorosa (===), quindi Flash Player esegue istruzioni nel parametro statement(s) finch non incontra un'istruzione break o la fine dell'istruzione switch. Se si utilizza l'istruzione case al di fuori di un'istruzione switch, si verifica un errore e lo script non viene compilato. Nota: Il parametro statement(s) deve sempre terminare con un'istruzione break. Se si omette l'istruzione break statement dal parametro statement(s), l'esecuzione prosegue con l'istruzione case successiva invece di uscire dall'istruzione switch. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
expression:String

- Qualsiasi espressione.

Esempio L'esempio seguente definisce le condizioni per l'istruzione switch thisMonth. Se thisMonth uguale all'espressione nell'istruzione case, l'istruzione viene eseguita.
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;

202

Capitolo 1: Elementi del linguaggio ActionScript

case 8 : trace("September"); break; default : trace("some other month"); }

Vedere anche
break, istruzione

classe, istruzione
[dynamic] class className [ interfaceName... ] ] { // class definition here }

extends superClass ] [ implements interfaceName[,

Definisce una classe personalizzata, che consente di creare le istanze degli oggetti che condividono i metodi e le propriet definite dall'utente. Ad esempio, se si sta sviluppando un sistema di registrazione delle fatture, possibile creare un'apposita classe che definisca tutti i metodi e le propriet richiesti per le fatture. A quel punto, si pu utilizzare il nuovo comando new invoice() per creare i relativi oggetti invoice. Il nome della classe deve corrispondere al nome del file esterno che la contiene e il nome del file esterno deve essere il nome della classe seguito dall'estensione di file .as. Ad esempio, se la classe viene denominata Studente, il file che la definisce dovr chiamarsi Studente.as. Se una classe si trova all'interno di un pacchetto, la dichiarazione di classe deve utilizzare il nome di classe completo del modulo base.sub1.sub2.MyClass. Inoltre, il file AS della classe deve essere memorizzato nel percorso di una struttura di diretory che rifletta la struttura del pacchetto, come base/sub1/sub2/MyClass.as. Se la definiione di una classe del modulo "class MyClass," questa si trova nel pacchetto predefinito e il file MyClass.as deve trovarsi al primo livello di alcune directory del percorso. Per questo motivo, consigliabile pianificare la struttura delle directory prima di iniziare a creare le classi. In caso contrario, se si decide di spostare i file di classe dopo averli creati, sar necessario modificare le istruzioni di dichiarazione delle classi affinch riflettano la nuova posizione. Le definizioni di classe non possono essere nidificate, vale a dire non possibile definire altre classi all'interno di una definizione di classe.

Istruzioni

203

Per indicare che gli oggetti possono aggiungere le propriet dinamiche e accedervi in fase di runtime, specificare la parola chiave dynamic prima dell'istruzione di classe. Per dichiarare che la classe implementa un'interfaccia, utilizzare la parola chiave implements. Per creare sottoclassi di una classe, utilizzare la parola chiave extends. (Una classe pu estendere solo una classe, ma pu implementare diverse interfacce.) possibile utilizzare implements ed extends in un'unica istruzione. Gli esempi seguenti mostrano gli usi pi comuni delle parole chiave implements ed 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 Parametri


className:String

- Il nome completo della classe.

Esempio Nell'esempio seguente viene creata una classe di nome Plant. La funzione di costruzione Plant richiede due parametri.
// 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; 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; } }

In un file di script esterno o nel pannello Azioni, utilizzare l'operatore new per creare un oggetto Plant.
var pineTree:Plant = new Plant("Evergreen", "N/A"); // Confirm parameters were passed correctly

204

Capitolo 1: Elementi del linguaggio ActionScript

trace(pineTree.getLeafType()); trace(pineTree.getBloomSeason());

Nell'esempio seguente viene creata una classe di nome ImageLoader. La funzione di costruzione ImageLoader richiede tre parametri.
// 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); } }

In un file di script esterno o nel pannello Azioni, utilizzare l'operatore new per creare un oggetto Plant.
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});

Vedere anche
dynamic, istruzione

continue, istruzione
continue

Passa oltre tutte le istruzioni rimanenti nel ciclo pi interno e avvia l'iterazione successiva del ciclo come se il controllo fosse arrivato normalmente alla fine del ciclo. Non ha alcun effetto fuori di un ciclo. Disponibilit: Flash Player 4; ActionScript 1.0 Esempio Nel ciclo while seguente, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo e di passare all'inizio del ciclo, dove viene provata la condizione:
trace("example 1"); var i:Number = 0; while (i < 10) {

Istruzioni

205

if (i % 3 == 0) { i++; continue; } trace(i); i++; }

Nel ciclo do..while seguente, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo e di passare alla fine del ciclo, dove viene provata la condizione:
trace("example 2"); var i:Number = 0; do { if (i % 3 == 0) { i++; continue; } trace(i); i++; } while (i < 10);

In un ciclo for, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo. Nell'esempio seguente, se il modulo i 3 uguale a 0, l'istruzione trace(i) viene ignorata:
trace("example 3"); for (var i = 0; i < 10; i++) { if (i % 3 == 0) { continue; } trace(i); }

Nel ciclo for..in seguente, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo e di passare all'inizio del ciclo, dove viene elaborato il valore successivo dell'enumerazione:
for (i in _root) { if (i == "$version") { continue; } trace(i); }

Vedere anche

206

Capitolo 1: Elementi del linguaggio ActionScript

default, istruzione
default: statements

Definisce il caso predefinito di un'istruzione switch. Le istruzioni vengono eseguite se il parametro expression dell'istruzione switch non uguale (in base all'operazione di uguaglianza rigorosa [===]) ad alcuno dei parametri expression che seguono le parole chiave case per una data istruzione switch. Non richiesta un'istruzione switch per un'istruzione case default. Un'istruzione case default non deve necessariamente essere l'ultima dell'elenco. Se si utilizza un'istruzione default al di fuori di un'istruzione switch, si verifica un errore e lo script non viene compilato. Disponibilit: Flash Player 6; ActionScript 1.0 Parametri
statements:String

- Qualsiasi istruzione.

Esempio Nell'esempio seguente, l'espressione A non equivale all'espressione B o D, pertanto l'istruzione che segue la parola chiave default viene eseguita e l'istruzione trace() viene inviata al pannello Output.
var dayOfWeek:Number = new Date().getDay(); switch (dayOfWeek) { case 1 : trace("Monday"); break; case 2 : trace("Tuesday"); break; case 3 : trace("Wednesday"); break; case 4 : trace("Thursday"); break; case 5 : trace("Friday"); break; default : trace("Weekend"); }

Istruzioni

207

Vedere anche
switch (istruzione)

delete, istruzione
delete reference

Elimina il riferimento specificato dal parametro reference e restituisce true se il riferimento viene correttamente eliminato; in caso contrario, restituisce false. Questo operatore utile per liberare la memoria utilizzata dagli script. Per rimuovere i riferimenti agli oggetti, possibile utilizzare l'operatore delete. Dopo che sono stati rimossi tutti i riferimenti a un oggetto, Flash Player rimuove l'oggetto e libera lo spazio di memoria che questo occupava.
delete un operatore ma viene solitamente utilizzato come istruzione, come dimostra il seguente esempio: delete x;

L'operatore delete pu non riuscire e restituire false se il parametro reference non esiste o non pu essere eliminato. Non possibile eliminare gli oggetti e le propriet predefinite, n le variabili che vengono dichiarate all'interno di una funzione con l'istruzione var. L'operatore delete non consente di rimuovere i clip filmato. Disponibilit: Flash Player 5; ActionScript 1.0 Valori restituiti
Boolean

- Un valore booleano.

Parametri
reference:Object

- Il nome della variabile o dell'oggetto da eliminae.

Esempio Uso 1: l'esempio seguente crea un oggetto, lo utilizza e lo elimina quando non pi richiesto:
var account:Object = new Object(); account.name = "Jon"; account.balance = 10000; trace(account.name); //output: Jon delete account; trace(account.name); //output: undefined

Uso 2: l'esempio seguente elimina una propriet di un oggetto:


// create the new object "account" var account:Object = new Object(); // assign property name to the account

208

Capitolo 1: Elementi del linguaggio ActionScript

account.name = "Jon"; // delete the property delete account.name;

Uso 3: l'esempio seguente elimina una propriet dell'oggetto:


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

Uso 4: l'esempio seguente mostra il comportamento di delete sui riferimenti agli oggetti:
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

Se ref1 non fosse stato copiato in ref2, l'oggetto sarebbe stato eliminato al momento dell'eliminazione di ref1 poich non vi sarebbe stato pi presente alcun riferimento. Se si elimina ref2, non sono pi presenti riferimenti all'oggetto, pertanto viene distrutto e viene resa disponibile la memoria utilizzata da esso. Vedere anche
var, istruzione

do..while, istruzione
do { statement(s) } while (condition)

Simile ad un ciclo while, ad eccezione del fatto che le istruzioni vengono eseguite una volta prima della valutazione iniziale della condizione. Quindi, le istruzioni vengono eseguite solo se la condizione restituisce true. Un ciclo do..while fa in modo che il codice all'interno del ciclo venga eseguito almeno una volta. Questa operazione pu essere svolta anche mediante un ciclo while posizionando una copia delle istruzioni da eseguire prima che il ciclo while cominci, ma molti programmatori ritengono che i cicli do..while siano pi semplici da leggere.

Istruzioni

209

Se la condizione always restituisce true, il ciclo do..while infinito. Se si entra in un ciclo infinito, si verificano dei problemi in Flash Player e viene visualizzato un messaggio di errore o il lettore si blocca. Quando possibile, se si conosce il numero di volte che si desidera ripetere il ciclo, utilizzare un ciclo for. I cicli for sono facili da leggere e sottoporre a debug, ma non sostituiscono i cicli do..while in tutte le circostanze. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
condition:Boolean

- La condizione da valutare. statement(s) all'interno del blocco di codice do vengono eseguite mentre il parametro condition restituisce true . Esempio

L'esempio seguente utilizza un ciclo do..while per valutare se una condizione true, e traccia myVar finch myVar maggiore di 5. Quando myVar maggiore di 5, il ciclo termina.
var myVar:Number = 0; do { trace(myVar); myVar++; } while (myVar < 5); /* output: 0 1 2 3 4 */

Vedere anche
break, istruzione

dynamic, istruzione
dynamic class

className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] {

// class definition here }

Indica che gli oggetti basati sulla classe specificata possono aggiungere propriet dinamiche e accedervi in fase di runtime.

210

Capitolo 1: Elementi del linguaggio ActionScript

La verifica del tipo eseguita sulle classi dinamiche meno rigorosa di quella eseguita sulle classi non dinamiche, in quanto i membri cui si accede all'interno della definizione di classe e nelle istanze di classe non vengono confrontati con quelli definiti nell'area di validit della classe. Le funzioni dei membri di classe, tuttavia, possono essere verificate per quanto riguarda i tipi restituiti e i tipi di parametro. Questo comportamento particolarmente utile quando si lavora con oggetti MovieClips, in quanto ci sono molti modi per aggiungere propriet e oggetti in modo dinamico a un clip filmato, ad esempio mediante MovieClip.createEmptyMovieClip() e MovieClip.createTextField(). Anche le sottoclassi delle classi dinamiche sono dinamiche. Assicurarsi di specificare il tipo quando si dichiara un oggetto come nell'esempio seguente:
var x:MyClass = new MyClass();

Se non si specifica il tipo quando si dichiara un oggetto (come nell'esempio seguente), l'oggetto verr considerato dinamico:
var x = new MyClass();

Disponibilit: Flash Player 6; ActionScript 2,0 Esempio Nell'esempio seguente, class Person2 non ancora stato contrassegnato come dynamic; pertanto, se si chiama una funzione non dichiarata, viene generato un errore in fase di compilazione:
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; } }

In un file FLA o AS che si trova nella stessa directory, aggiungere il codice ActionScript seguente al fotogramma 1 sulla linea temporale:
// 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 */

Istruzioni

211

Se si aggiunge una funzione non dichiarata, dance, viene generato un errore, come mostrato nell'esempio seguente:
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 */

Aggiungere la parola chiave dynamic alla classe Person2, in modo che la prima riga sia uguale alla seguente:
dynamic class Person2 {

Riprovare il codice; viene generato l'output seguente:


craig.dance = true craig.age = 32 craig.name = Craiggers

Vedere anche
classe, istruzione

else, istruzione
if (condition){ statement(s); } else { statement(s); }

Specifica le istruzioni da eseguire se la condizione nell'istruzione if restituisce false. le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione else non sono necessarie se viene eseguita una sola istruzione. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
condition:Boolean

- Un'espressione che restituisce true o false.

Esempio
age_txt

Nell'esempio seguente, la condizione else viene utilizzata per verificare se la variabile maggiore o minore di 18:

if (age_txt.text>=18) { trace("welcome, user"); }

212

Capitolo 1: Elementi del linguaggio ActionScript

else { trace("sorry, junior"); userObject.minor = true; userObject.accessAllowed = false; }

Nell'esempio seguente, le parentesi graffe (({})) non sono necessarie poich solo un'istruzione segue l'istruzione else:
if (age_txt.text>18) { trace("welcome, user"); } else trace("sorry, junior");

Vedere anche
if, istruzione

else if, istruzione


if(condition) { statement(s); } else if(condition) { statement(s); }

Valuta una condizione e specifica le istruzioni da eseguire se la condizione nell'istruzione if iniziale restituisce false. Se la condizione else if restituisce true, l'interprete di Flash esegue le istruzioni che seguono la condizione all'interno delle parentesi graffe ({}). Se la condizione else if false, Flash ignora le istruzioni all'interno delle parentesi graffe ed esegue le istruzioni dopo le parentesi. Utilizzare l'istruzione else if per creare una struttura logica ad albero negli script. Se ci sono pi rami, opportuno utilizzare un'istruzione switch. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
condition:Boolean

- Un'espressione che restituisce true o false.

Esempio L'esempio seguente utilizza le istruzioni else if per confrontare score_txt a un valore specificato:
if (score_txt.text>90) { trace("A"); } else if (score_txt.text>75) { trace("B"); }

Istruzioni

213

else if (score_txt.text>60) { trace("C"); } else { trace("F"); }

Vedere anche
if, istruzione

extends, istruzione
class className extends otherClassName {} interface interfaceName extends otherInterfaceName {}

Definisce una classe che una sottoclasse di un'altra classe; quest'ultima rappresenta la superclasse. La sottoclasse eredita tutti i metodi, le propriet e le funzioni definiti nella superclasse. Anche le interfacce possono essere estese mediante la parola chiave extends. Un'interfaccia che estende un'altra interfaccia include tutte le dichiarazioni di metodo dell'interfaccia originale. Disponibilit: Flash Player 6; ActionScript 2,0 Parametri
className:String

- Il nome della classe in fase di definizione.

Esempio Nell'esempio seguente, la classe Car estende la classe Vehicle in modo che tutti i metodi, le propriet e le funzioni vengano ereditate. Se lo script crea un'istanza di un oggetto Car, possibile utilizzare sia i metodi della classe Car che quelli della classe Vehicle. L'esempio seguente mostra il contenuto di un file di nome Vehicle.as, che definisce la classe Vehicle:
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 {

214

Capitolo 1: Elementi del linguaggio ActionScript

trace("[Vehicle] stop"); } function reverse():Void { trace("[Vehicle] reverse"); } }

L'esempio seguente mostra un secondo file AS, denominato Car.as, nella stessa directory. Questa classe estende la classe Vehicle, modificandola in tre modi. Innanzi tutto, la classe Car aggiunge una variabile fullSizeSpare per verificare se l'oggetto Car ha una gomma di scorta di dimensione regolare. Quindi, aggiunge un nuovo metodo specifico delle auto, activateCarAlarm(), che attiva l'antifurto dell'auto. Infine, ignora la funzione stop() per aggiungere il fatto che la classe Car utilizza un sistema di frenaggio anti-bloccaggio.
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'esempio seguente crea un'istanza di un oggetto Car, chiama un metodo definito nella classe Vehicle (start()), quindi chiama il metodo ignorato dalla classe Car (stop()), infine chiama un metodo della 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

anche possibile scrivere una sottoclasse della classe Vehicle mediante la parola chiave super, che pu essere utilizzata dalla sottoclasse per accedere alle propriet e ai metodi della superclasse. L'esempio seguente mostra un terzo file AS, denominato Truck.as, sempre nella stessa directory. La classe Truck utilizza la parola chiave super nella funzione di costruzione e anche nella funzione reverse() ignorata.
class Truck extends Vehicle { var numWheels:Number; function Truck(param_numDoors:Number, param_color:String, param_numWheels:Number) { super(param_numDoors, param_color);

Istruzioni

215

this.numWheels = param_numWheels; } function reverse():Void { beep(); super.reverse(); } function beep():Void { trace("[Truck] make beeping sound"); } }

L'esempio seguente crea un'istanza di un oggetto Truck, chiama un metodo ignorato dalla classe Truck (reverse()), quindi chiama un metodo definito nella 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

Vedere anche
classe, istruzione

for, istruzione
for(init; }

condition; next) { statement(s); Valuta l'espressione init (inzializza) una volta, quindi avvia una sequenza di ripetizione ciclica. La sequenza di ripetizione ciclica dalla valutazione dell'espressione condition. Se l'espressione condition restituisce, viene eseguito statement e viene valutata l'espressione next. La sequenza di ripetizione ciclica che riprende dalla valutazione dell'espressione condition. le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione for non sono necessarie se viene eseguita una sola istruzione. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
init

- Un'espressione da valutare prima dell'inizio della sequenza di ripetizione ciclica; solitamente un'espressione di assegnazione. Per questo parametro consentito anche l'uso dell'istruzione var.

216

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente utilizza for per aggiungere gli elementi in un array:
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'esempio seguente utilizza for per eseguire ripetutamente la stessa azione. Nel codice, il ciclo for aggiunge i numeri compresi tra 1 e 100.
var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) { sum += i; } trace(sum); // output: 5050

L'esempio seguente mostra che le parentesi graffe ({}) non sono necessarie se viene eseguita una sola istruzione:
var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) sum += i; trace(sum); // output: 5050

Vedere anche
++ (incremento), operatore

for..in, istruzione
for (variableIterant

in object) {

statement(s);
}

Esegue iterazioni sulle propriet di un oggetto o sugli elementi di un array ed esegue statement per ogni propriet o elemento. I metodi di un oggetto non vengono enumerati dall'azione for..in. Alcune propriet non possono essere elencate dall'azione for..in, come ad esempio le propriet di clip formato _x e _y Nei file di classe esterni, i membri statici, a differenza dei membri di un'istanza, non possono essere enumerati.

Istruzioni

217

L'istruzione for..in esegue iterazioni sulle propriet degli oggetti nella catena di prototipi degli oggetti di cui si esegue l'iterazione. Per prime vengono enumerate le propriet dell'oggetto, quindi le propriet del suo prototipo immediato, quindi quelle del prototipo del prototipo e cos via. L'istruzione for..in non enumera lo stesso nome di propriet due volte. Se l'elemento child dell'oggetto ha un prototipo parent ed entrambi contengono la propriet prop, l'istruzione for..in chiamata sull'elemento child enumera il prop dell'elemento child, ma ignora quello dell'elemento parent. Le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione for..in non sono necessarie se viene eseguita una sola istruzione. Se si scrive un ciclo for..in in un file di classe (un file AS esterno), i membri dell'istanza non sono disponibili per il ciclo, ma i membri statici s. Tuttavia, se si scrive un ciclo for..in in un file FLA per un'istanza della classe, i membri dell'istanza sono disponibili ma i membri statici no. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
variableIterant:String

- Il nome di una variabile che deve agire come elemento di iterazione, creando un riferimento a ciascuna propriet di un oggetto o elemento di un array. Esempio L'esempio seguente utilizza for..in per eseguire un'iterazione sulle propriet di un oggetto:

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'esempio seguente utilizza for..in per eseguire un'iterazione sugli elementi di un array:
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

218

Capitolo 1: Elementi del linguaggio ActionScript

L'esempio seguente utilizza l'operatore typeof con for..in per eseguire l'iterazione in un tipo particolare di elemento secondario:
for (var name in this) { if (typeof (this[name]) == "movieclip") { trace("I have a movie clip child named "+name); } }

Nota: in presenza di pi clip filmato, l'output consiste nei nomi di istanza di tali clip. L'esempio seguente enumera gli elementi secondari di un clip filmato e invia ciascuno di essi al fotogramma 2 nelle rispettive linee temporali. Il clip filmato RadioButtonGroup un elemento principale con tre secondari: _RedRadioButton_, _GreenRadioButton_, e _BlueRadioButton_.
for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); }

function, istruzione
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)
}

Comprende un set di istruzioni definite dall'utente per eseguire una determinata attivit. possibile definire una funzione in una posizione e invocarla, o chiamarla, da diversi script in un file SWF. Quando si definisce una funzione, possibile anche specificare gli eventuali parametri, vale a dire i segnaposto dei valori su cui la funzione agisce. possibile trasmettere diversi parametri a una funzione ogni volta che viene chiamata in modo da poter riutilizzare la funzione in situazioni diverse. Utilizzare l'istruzione return in statement(s) di una funzione per fare in modo che la funzione generi, o restituisca, un valore. possibile utilizzare questa istruzione per definire una function con il functionname specificato, i parameters e le statement(s). Quando uno script chiama una funzione, vengono eseguite le istruzioni nella definizione della funzione. consentito utilizzare riferimenti di inoltro; all'interno dello stesso script, una funzione pu essere dichiarata dopo che stata chiamata. Una definizione di funzione sostituisce l'eventuale definizione preesistente della stessa funzione. Questa sintassi pu essere utilizzata in tutti i casi in cui consentita un'istruzione.

Istruzioni

219

anche possibile utilizzare questa istruzione per creare una funzione anonima e restituire un riferimento alla funzione. Questa sintassi utilizzata nelle espressioni ed particolarmente utile per installare i metodi negli oggetti. Per ulteriori funzionalit, possibile utilizzare l'oggetto arguments nella definizione della funzione. L'oggetto arguments comunemente utilizzato per creare funzioni che accettano un numero variabile di parametri e funzioni anonime ricorsive. Disponibilit: Flash Player 5; ActionScript 1.0 Valori restituiti - Uso 1: Il modulo di restituzione non restituisce nulla. Uso 2: un riferimento alla funzione anonima.
String

Parametri
functionname:String

- Il nome della nuova funzione.

Esempio
Math.pow(x, 2)

L'esempio seguente definisce la funzione sqr, che accetta un parametro e restituisce il valore del parametro:

function sqr(x:Number) { return Math.pow(x, 2); } var y:Number = sqr(3); trace(y); // output: 9

Se la funzione definita e viene utilizzata nello stesso script, possibile che dopo l'uso della funzione ne compaia la definizione:
var y:Number = sqr(3); trace(y); // output: 9 function sqr(x:Number) { return Math.pow(x, 2); }

La funzione seguente crea un oggetto LoadVars e carica params.txt nel file SWF. Una volta caricato correttamente il file, viene tracciato variables loaded:
var myLV:LoadVars = new LoadVars(); myLV.load("params.txt"); myLV.onLoad = function(success:Boolean) { trace("variables loaded"); }

220

Capitolo 1: Elementi del linguaggio ActionScript

get, istruzione
function get property () { // your statements here }

Consente l'acquisizione implicita delle propriet associate agli oggetti basati sulle classi definite nei file di classe esterni. L'uso dei metodi get impliciti consente di accedere alle propriet degli oggetti senza accedere alla propriet direttamente. I metodi impliciti get/set rappresentano un'abbreviazione sintattica del metodo Object.addProperty() in ActionScript 1,0. Disponibilit: Flash Player 6; ActionScript 2,0 Parametri
property:String

- La parola utilizzata per fare riferimento alla propriet a cui get accede; questo valore deve essere uguale a quello utilizzato nel comando set corrispondente.

Esempio Nell'esempio seguente viene definita una classe Team. La classe Team comprende i metodi get/set che consentono di recuperare e impostare le propriet all'interno della 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; } }

Immettere il codice ActionScript seguente in un fotogramma della linea temporale:


var giants:Team = new Team("San Fran", "SFO"); trace(giants.name); giants.name = "San Francisco"; trace(giants.name); /* output: San Fran San Francisco */

Quando si traccia giants.name, si utilizza il metodo get per restituire il valore della propriet.

Istruzioni

221

Vedere anche
addProperty (metodo Object.addProperty)

if, istruzione
if(condition) { statement(s); }

Valuta una condizione per determinare l'azione successiva da eseguire in un file SWF. Se la condizione restituisce true, Flash esegue le istruzioni che seguono la condizione all'interno delle parentesi graffe ({}). Se la condizione false, Flash ignora le istruzioni all'interno delle parentesi graffe ed esegue le istruzioni dopo le parentesi. Utilizzare le istruzioni if, else e else if per creare una logica ad albero negli script. le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione if non sono necessarie se viene eseguita una sola istruzione. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
condition:Boolean

- Un'espressione che restituisce true o false.

Esempio Nell'esempio seguente, la condizione tra parentesi restituisce il name della variabile per verificare se contiene il valore letterale "Erica". In caso affermativo, viene eseguita la funzione play() tra parentesi graffe.
if(name == "Erica"){ play(); }

L'esempio seguente utilizza un'istruzione if per valutare quanto tempo trascorre prima che un utente faccia clic su submit_btn in un file SWF. Se un utente fa clic sul pulsante dopo 10 secondi dall'inizio della riproduzione del file SWF, la condizione restituisce true e il messaggio tra parentesi graffe ({}) viene visualizzato in un campo di testo che viene creato in fase di runtime (mediante createTextField()). Se l'utente fa clic entro 10 secondi dalla riproduzione del file SWF, la condizione restituisce false e viene visualizzato un messaggio diverso.
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;

222

Capitolo 1: Elementi del linguaggio ActionScript

if (difference > 10) { this._parent.message_txt.text = "Not very speedy, you took "+difference+" seconds."; } else { this._parent.message_txt.text = "Very good, you hit the button in "+difference+" seconds."; } };

Vedere anche
else, istruzione

implements, istruzione
myClass implements interface01 [, interface02 , ...] Specifica che una classe deve definire tutti i metodi dichiarati nell'interfaccia (o interfacce) in fase di implementazione. Disponibilit: Flash Player 6; ActionScript 2,0 Esempio Vedere interface. Vedere anche
classe, istruzione

istruzione di importazione
className packageName.* Consente di accedere alle classi senza doverne specificare il nome completo. Ad esempio, se si desidera utilizzare una classe personalizzata macr.util.users.UserClass in uno script, necessario farvi riferimento utilizzando il suo nome completo oppure importarla; se la si importa, possibile farvi riferimento mediante il nome della 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();

Istruzioni

223

Se il pacchetto contiene pi file di classe (working_directory /macr/utils/users) a cui si desidera accedere, possibile importarli tutti in un'unica istruzione, come nell'esempio seguente:
import macr.util.users.*;

necessario emettere l'istruzione import prima di cercare di accedere alla classe importata senza specificare il suo nome completo. Se si importa una classe ma non la si utilizza nello script, la classe non viene esportata nel file SWF. Questo significa che possibile importare pacchetti di grandi dimensioni senza doversi preoccupare delle dimensioni del file SWF; il codice byte associato a una classe viene incluso in un file SWF solo se tale classe viene effettivamente utilizzata. L'istruzione import si applica solo allo script corrente (fotogramma oppure oggetto) in cui viene chiamata. Ad esempio, se nel fotogramma 1 di un documento Flash si importano tutte le classi presenti nel pacchetto macr.util, in quel fotogramma possibile fare riferimento alle classi del pacchetto utilizzando i semplici nomi:
// On Frame 1 of a FLA: import macr.util.*; var myFoo:foo = new foo();

In un altro script di fotogramma, tuttavia, sarebbe necessario fare riferimento alle classi di quel pacchetto mediante i loro nomi completi (var myFoo:foo = new macr.util.foo();) o aggiungere un'istruzione import all'altro fotogramma che importa le classi di quel pacchetto. Disponibilit: Flash Player 6; ActionScript 2,0 Parametri
className:String

- Il nome completo di una classe definita in un file di classe esterno.

Esempio

interface, istruzione
InterfaceName [extends InterfaceName ] {} Definisce un'interfaccia. Un'interfaccia simile a una classe, con le eccezioni seguenti:
interface

Le interfacce contengono solo le dichiarazioni dei metodi, non le loro implementazioni; vale a dire, ogni classe che implementa un'interfaccia deve fornire un'implementazione per ciascun metodo dichiarato nell'interfaccia. Nella definizione di un'interfaccia sono consentiti solo membri pubblici e non membri di classe e istanza. Le istruzioni get e set non sono consentite nelle definizioni di interfaccia.

Disponibilit: Flash Player 6; ActionScript 2,0

224

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente mostra alcuni modi per definire e implementare le interfacce:
(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 {

Istruzioni

225

function k():Number { return 25; } function n(x:Number):Number { return x + 5; } function o():Void { trace("o"); } function p():Void { trace("p"); } }

Vedere anche
classe, istruzione

intrinsic, istruzione
intrinsic class className [extends interfaceName...] ] { //class definition here }

superClass] [implements interfaceName [,

Consente la verifica del tipo in fase di compilazione delle classi definite in precedenza. Flash utilizza le dichiarazioni della classe intrinsic per abilitare la verifica in fase di compilazione delle classi incorporate, quali Array, Object e String. Questa parola chiave indica al compilatore che non richiesta alcuna implementazione di funzione e che per essa non deve essere generato alcun codice byte. La parola chiave intrinsic pu essere utilizzata anche con le dichiarazioni di variabile e di funzione. Flash la utilizza per abilitare la verifica del tipo in fase di compilazione per le funzioni e le propriet globali. La parola chiave intrinsic stata specificamente creata per abilitare la verifica del tipo in fase di compilazione per le classi e gli oggetti incorporati, oltre che per le variabili e le funzioni globali. Non dedicata all'uso generico, ma pu essere di aiuto per gli sviluppatori che desiderano abilitare la verifica del tipo in fase di compilazione con classi definite in precedenza, in particolare se le classi sono state definite mediante ActionScript 1.0. Questa parola chiave supportata solo quando utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Disponibilit: Flash Player 6; ActionScript 2,0

226

Capitolo 1: Elementi del linguaggio ActionScript

Esempio L'esempio seguente mostra come abilitare la verifica del tipo in fase di compilazione per una classe definita in precedenza mediante ActionScript 1.0. Il codice genera un errore in fase di compilazione poich la chiamata a myCircle.setRadius() invia come parametro un valore String anzich un valore Number. L'errore pu essere evitato trasformando il parametro in un valore Number (ad esempio, sostituendo "10" con 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());

Vedere anche
classe, istruzione

Istruzioni

227

private, istruzione
class someClassName{ private var name; private function name() { // your statements here } }

Specifica che una variabile o una funzione sono disponibili solo per la classe (o relative sottoclassi) che le dichiara o definisce. Per impostazione predefinita, una variabile o una funzione sono disponibili a qualsiasi chiamante. Utilizzare questa parola chiave se si desidera limitare l'accesso a una variabile o funzione. ideata come supporto di sviluppo del software per facilitare le operazioni di codificazione, come l'incapsulamento, e non come un meccanismo di sicurezza per nascondere o mettere in sicurezza i dati sensibili. Non necessariamente evita l'accesso ad una variabile durante la fase di runtime. possibile utilizzare questa parola chiave solo nelle definizioni di classe, non nelle definizioni di interfaccia. Disponibilit: Flash Player 6; ActionScript 2,0 Parametri
name:String

- Il nome della variabile o funzione che si desidera specificare come privata.

Esempio L'esempio seguente dimostra come limitare l'accesso alle variabili o funzioni mediante la parola chiave private. Creare un nuovo file AS denominato Alpha.as.
class Alpha { private var privateProperty = "visible only within class and subclasses"; public var publicProperty = "visible everywhere"; }

Nella stessa directory di Alpha.as, creare un nuovo file AS denominato Beta.as contenente il codice seguente:
class Beta extends Alpha { function Beta() { trace("privateProperty is " + privateProperty); } }

Come dimostra il codice seguente, la funzione di costruzione per la classe Beta in grado di accedere alla propriet privateProperty ereditata dalla classe Alpha:
var myBeta:Beta = new Beta(); // Output: privateProperty is visible only within class and subclasses

228

Capitolo 1: Elementi del linguaggio ActionScript

Tentativi di accedere alla variabile privateProperty dall'esterno della classe Alpha o da una classe che eredita dalla classe Alpha determinano un errore. Il codice seguente, che risiede esternamente a qualsiasi classe, causa un errore:
trace(myBeta.privateProperty); // Error

Vedere anche
public, istruzione

public, istruzione
class someClassName{ public var name; public function name() { // your statements here } }

Specifica che una variabile o una funzione sono disponibili a qualsiasi chiamante. Poich le variabili e le funzioni per impostazione predefinita sono pubbliche, questa parola chiave viene utilizzata principalmente per ragioni di stile. Ad esempio, la si pu utilizzare per motivi di continuit in un blocco di codice che contiene anche variabili private o statiche. Disponibilit: Flash Player 6; ActionScript 2,0 Parametri
name:String

- Il nome della variabile o funzione che si desidera specificare come pubblica.

Esempio L'esempio seguente mostra come utilizzare le variabili public in un file di classe. Creare un nuovo file di classe denominato User.as e immettere il codice seguente:
class User { public var age:Number; public var name:String; }

Quindi, creare un nuovo file FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
import User; var jimmy:User = new User(); jimmy.age = 27; jimmy.name = "jimmy";

Se si trasforma una delle variabili public nella classe User in una variabile private, viene generato un errore quando si tenta di accedere alla propriet.

Istruzioni

229

Vedere anche
private, istruzione

return (istruzione)
return[expression]

Specifica il valore restituito da una funzione. L'istruzione return valuta expression e restituisce il risultato come valore della funzione in cui viene eseguita. L'istruzione return fa in modo che l'esecuzione torni immediatamente alla funzione di chiamata. Se l'istruzione return utilizzata da sola, restituisce il valore undefined.. Non possibile eseguire return su pi valori; se si tenta di eseguire questa operazione, viene restituito solo l'ultimo valore. Nel seguente esempio, viene restituito c:
return a, b, c ;

Per fare in modo che vengano restituiti pi valori, si consiglia di utilizzare un array o un oggetto. Disponibilit: Flash Player 5; ActionScript 1.0 Valori restituiti
String

- Il parametro expression valutato, se fornito.

Parametri
expression - Una stringa, un numero, un valore booleano, un array o un oggetto da valutare

e restituire come valore della funzione. Questo parametro opzionale. Esempio L'esempio seguente utilizza l'istruzione return all'interno del corpo della funzione sum() per restituire il valore aggiunto dei tre parametri. La successiva riga di codice chiama sum() e assegna il valore restituito alla variabile 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

Vedere anche
function, istruzione

230

Capitolo 1: Elementi del linguaggio ActionScript

set, istruzione
function set property(varName) { // your statements here }

Consente l'impostazione implicita delle propriet associate agli oggetti basati sulle classi definite nei file di classe esterni. L'uso dei metodi set impliciti consente di modificare il valore di una propriet dell'oggetto senza accedere alla propriet direttamente. I metodi impliciti get/ set rappresentano un'abbreviazione sintattica del metodo Object.addProperty() in ActionScript 1,0. Disponibilit: Flash Player 6; ActionScript 2,0 Parametri
property:String

- Parola che fa riferimento alla propriet a cui set accede; questo valore deve essere uguale al valore utilizzato nel comando get corrispondente.

Esempio L'esempio seguente crea una classe Login che mostra il modo in cui possibile utilizzare la parola chiave set per impostare le variabili private:
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; } }

In un file FLA o AS che si trova nella stessa directory di Login.as, aggiungere il codice ActionScript seguente al fotogramma 1 sulla linea temporale:
var gus:Login = new Login("Gus", "Smith"); trace(gus.username); // output: Gus gus.username = "Rupert"; trace(gus.username); // output: Rupert

Istruzioni

231

Nell'esempio seguente, la funzione get viene eseguita quando viene tracciato il valore. La funzione set viene attivata solo quando a essa si passa un valore, come mostrato nella riga seguente:
gus.username = "Rupert";

Vedere anche
get, istruzione

set variable, istruzione


set("variableString",expression)

Assegna un valore a una variabile. Una variabile un "contenitore" di dati; il contenitore resta sempre invariato, ma il contenuto pu variare. Mediante la modifica del valore di una variabile durante la riproduzione del file SWF, possibile registrare e salvare informazioni sulle azioni svolte dall'utente, registrare i valori che vengono modificati durante la riproduzione del file o verificare se una condizione true o false. Le variabili possono contenere qualsiasi tipo di dati (quali stringa, numero, booleano, oggetto o clip filmato). La linea temporale di ciascun file SWF e clip filmato dispone del proprio set di variabili, e ogni variabile ha il proprio valore, indipendente dalle variabili delle altre linee temporali. La tipizzazione forte dei dati non supportata all'interno delle istruzioni set. Se si utilizza questa istruzione per impostare una variabile su un valore il cui tipo di dati diverso da quello associato alla variabile in un file di classe, non viene generato alcun errore di compilazione. Una lieve ma importante differenza da ricordare, il fatto che il parametro variableString una stringa, non un nome di variabile. Se si trasmette un nome di variabile esistente come primo parametro a set() senza racchiudere il nome tra virgolette (""), la variabile viene valutata prima che le venga assegnato il valore di expression. Ad esempio, se si crea una variabile stringa chiamata myVariable e le si assegna il valore "Tuesday" dimenticando poi di utilizzare le virgolette, viene erroneamente creata una nuova variabile chiamata Tuesday contenente il valore che si voleva assegnare a myVariable:
var myVariable:String = "Tuesday"; set (myVariable, "Saturday"); trace(myVariable); // outputs Tuesday trace(Tuesday); // outputs Saturday

Questa situazione pu essere evitata utilizzando le virgolette (""):


set ("myVariable", "Saturday"); trace(myVariable); //outputs Saturday

Disponibilit: Flash Player 4; ActionScript 1.0

232

Capitolo 1: Elementi del linguaggio ActionScript

Parametri
variableString:String

- Stringa che indica una variabile che contiene il valore del

parametro expression. Esempio Nell'esempio seguente viene assegnato il valore "Jakob" alla variabile name.
set("name", "Jakob"); trace(name);

Il codice seguente viene ripetuto tre volte e crea tre nuove variabili denominate caption0, caption1 e caption2:
for (var i = 0; i < 3; i++) { set("caption" + i, "this is caption " + i); } trace(caption0); trace(caption1); trace(caption2);

Vedere anche
var, istruzione

static, istruzione
class someClassName{ static var name; static function name() { // your statements here } }

Specifica che una variabile o una funzione vengono create solo una volta per ogni classe e non in ogni oggetto basato sulla classe. possibile accedere a un membro di classe statico senza creare un'istanza della classe, utilizzando la sintassi someClassName.name. Se si crea un'istanza della classe, possibile anche accedere a un membro statico utilizzando l'istanza, ma solo attaraverso una funzione non statica che accede al membro statico. Questa parola chiave pu essere utilizzata solo nelle definizioni di classe, non nelle definizioni di interfaccia. Disponibilit: Flash Player 6; ActionScript 2,0 Parametri
name:String

- Il nome della variabile o funzione che si desidera specificare come statica.

Istruzioni

233

Esempio L'esempio seguente mostra il modo in cui possibile utilizzare la parola chiave static per creare un contatore che tenga traccia del numero di istanze che sono state create per la classe. Dal momento che la variabile numInstances static, viene creata solo una volta per l'intera classe e non per ogni singola istanza. Creare un nuovo file AS denominato Users.as e immettere il codice seguente:
class Users { private static var numInstances:Number = 0; function Users() { numInstances++; } static function get instances():Number { return numInstances; } }

Creare un documento FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
trace(Users.instances); var user1:Users = new Users(); trace(Users.instances); var user2:Users = new Users(); trace(Users.instances);

Vedere anche
private, istruzione

super, istruzione
super.method([arg1, ..., argN]) super([arg1, ..., argN])

Il primo stile di sintassi pu essere utilizzato nel corpo del metodo di un oggetto per chiamare la versione superclasse di un metodo, e pu facoltativamente trasmettere parametri (arg1 ... argN) al metodo della superclasse. Questo utile per creare metodi della sottoclasse che oltre ad aggiungere comportamenti supplementari ai metodi della superclasse, li chiamano affinch eseguano il loro comportamento originale. Il secondo stile di sintassi pu essere utilizzato nel corpo di una funzione di costruzione per chiamare la versione superclasse della funzione di costruzione, a cui pu facoltativamente trasmettere parametri. Questo utile per creare una sottoclasse che oltre a eseguire un'ulteriore inizializzazione, chiama la funzione di costruzione della superclasse affinch esegua l'inizializzazione della superclasse. Disponibilit: Flash Player 6; ActionScript 1.0

234

Capitolo 1: Elementi del linguaggio ActionScript

Valori restituiti Entrambe le forme chiamano una funzione, che pu restituire qualsiasi valore. Parametri
method:Function argN

- Il metodo da chiamare nella superclasse.

- Parametri opzionali che vengono trasmessi alla versione superclasse del metodo (sintassi 1) o alla funzione di costruzione della superclasse (sintassi 2).

switch (istruzione)
switch (expression){ caseClause: [defaultClause:] }

Crea una struttura ad albero per le istruzioni ActionScript. Come nel caso dell'istruzione if, l'istruzione switch prova una condizione ed esegue le istruzioni se la condizione restituisce il valore true. Tutte le istruzioni switch dovrebbero comprendere un'etichetta case default che a sua volta dovrebbe comprendere un'istruzione break che consente di uscire dall'istruzione switch quando viene soddisfatta la condizione. Un'etichetta case che non consente di uscire dall'istruzione non include un'istruzione break. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
expression

- Qualsiasi espressione.

Esempio Nell'esempio seguente, se il parametro String.fromCharCode(Key.getAscii()) restituisce A, viene eseguita l'istruzione trace() che segue case "A"; se il parametro restituisce a, viene eseguita l'istruzione trace() che segue case "a", e cos via. Se nessuna espressione case soddisfa il parametro String.fromCharCode(Key.getAscii()), viene eseguita l'istruzione trace() che segue la parola chiave default.
var listenerObj:Object = new Object(); listenerObj.onKeyDown = function() { switch (String.fromCharCode(Key.getAscii())) { case "A" : trace("you pressed A"); break; case "a" : trace("you pressed a"); break;

Istruzioni

235

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);

Vedere anche
=== (uguaglianza rigorosa), operatore

throw, istruzione
throw expression

Crea, o genera, un errore che pu essere gestito, o rilevato, mediante un blocco di codice catchcatch{}. Se un'eccezione non viene rilevata da un blocco catch, la rappresentazione sotto forma di stringa del valore generato viene inviata al pannello Output. Tipicamente, vengono generate istanze della classe Errore o delle sue sottoclassi (consultare la sezione degli esempi). Disponibilit: Flash Player 7; ActionScript 1.0 Parametri
expression:Object

- Un oggetto o espressione ActionScript.

Esempio In questo esempio, una funzione denominata checkEmail() verifica se la stringa che le viene passata un indirizzo e-mail dal formato corretto. Se la stringa non contiene il simbolo @, viene generato un errore.
function checkEmail(email:String) { if (email.indexOf("@") == -1) { throw new Error("Invalid email address"); } } checkEmail("someuser_theirdomain.com");

236

Capitolo 1: Elementi del linguaggio ActionScript

Quindi, il codice seguente chiama la funzione checkEmail() all'interno del blocco di codice try. Se email_txt non contiene un indirizzo e-mail valido, il messaggio di errore viene visualizzato in un campo di testo (error_txt).
try { checkEmail("Joe Smith"); } catch (e) { error_txt.text = e.toString(); }

Nell'esempio seguente, viene generata una sottoclasse della classe Error. La funzione checkEmail() viene modificata in modo da generare un'istanza di tale classe.
// Define Error subclass InvalidEmailError // In InvalidEmailError.as: class InvalidEmailAddress extends Error { var message = "Invalid email address."; }

In un file FLA o AS, immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
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(); }

Vedere anche
Error

Istruzioni

237

try..catch..finally, istruzione
try {

// ... try block ...


} finally {

// ... finally block ...


} try {

// ... try block ... } catch(error [:ErrorType1]) { // ... catch block ... } [catch(error[:ErrorTypeN]) { // ... catch block ...
}] [finally {

// ... finally block ...


}]

Racchiude un blocco di codice nel quale pu verificarsi un errore, quindi rispondono all'errore. Se un qualsiasi codice all'interno del blocco di codice try genera un errore (mediante l'istruzione throw), il controllo passa al blocco catch (se presente), quindi al blocco di codice finally (se presente). Il blocco finally viene sempre eseguito, che sia stato generato un errore o meno. Se il codice nel blocco try non genera un errore (ovvero se il blocco try viene completato normalmente), il codice nel blocco finally viene comunque eseguito. il blocco finally viene eseguito anche se il blocco try viene chiuso mediante un'istruzione return. Un blocco try deve essere seguito da un blocco catch, o da un blocco finally, o da entrambi. Un singolo blocco try pu avere pi blocchi catch, ma solo un blocco finally. possibile nidificare i blocchi try per tutti i numeri di livelli (profondit) desiderati. Il parametro error specificato in un gestore catch deve essere un semplice identificatore come e o theException o x. possibile digitare la variabile anche in un gestore catch. Quando sono utilizzati con pi blocchi catch, gli errori digitati consentono di rilevare pi tipi di errore generati da un unico blocco try. Se l'eccezione generata un oggetto, il tipo corrisponde se l'oggetto generato una sottoclasse del tipo specificato. Se viene generato un errore di un tipo specifico, viene eseguito il blocco catch che gestisce l'errore corrispondente. Se viene generata un'eccezione di un tipo diverso da quello specificato, il blocco catch non viene eseguito e l'eccezione viene automaticamente espulsa dal blocco try verso un gestore catch corrispondente. Se un errore viene generato all'interno di una funzione, e la funzione non comprende un gestore catch, l'interprete di ActionScript esce da quella funzione e da tutte le funzioni di chiamata, finch non viene trovato un blocco catch. Nel corso di questo processo, i gestori finally vengono chiamati a tutti i livelli. Disponibilit: Flash Player 7; ActionScript 1.0

238

Capitolo 1: Elementi del linguaggio ActionScript

Parametri
error:Object

- L'espressione generata da un'istruzione throw, solitamente un'istanza della classe Errore o di una delle sue sottoclassi. Esempio

L'esempio seguente mostra come creare un'istruzione try..finally. Dal momento che il codice nel blocco finally viene sempre eseguito, di solito viene utilizzato per eseguire le eventuali operazioni di pulizia dopo l'esecuzione di un blocco try. Nell'esempio seguente setInterval() chiama una funzione ogni 1000 millisecondi (1 secondo). Se si verifica un errore viene generato un errore, che viene rilevato da un blocco catch. Il blocco finally viene sempre eseguito, a prescindere dal fatto che si sia verificato un errore. Dal momento che viene utilizzata la funzione setInterval(), necessario collocare clearInterval() nel blocco finally per garantire che l'intervallo venga cancellato dalla memoria.
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"); }

Nell'esempio seguente, il blocco finally viene utilizzato per eliminare un oggetto ActionScript, a prescindere dal fatto che si sia verificato un errore. Creare un nuovo file AS denominato Account.as:
class Account { var balance:Number = 1000; function getAccountInfo():Number { return (Math.round(Math.random() * 10) % 2); } }

Creare un documento FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
import Account; var account:Account = new Account(); try { var returnVal = account.getAccountInfo(); if (returnVal != 0) {

Istruzioni

239

throw new Error("Error getting account information."); } } finally { if (account != null) { delete account; } }

L'esempio seguente mostra un'istruzione try..catch. Il codice all'interno del blocco try viene eseguito. Se viene generata un'eccezione da parte di un codice qualsiasi all'interno del blocco try, il controllo passa al blocco catch, che visualizza il messaggio di errore in un campo di testo mediante il metodo Error.toString(). Creare un nuovo documento FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
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'esempio seguente mostra un blocco di codice try con pi blocchi catch tipizzati. A seconda del tipo di errore che si verificato, il blocco di codice try genera un tipo diverso di oggetto. In questo caso, myRecordSet un'istanza di una classe (ipotetica) denominata RecordSet il cui metodo sortRows() pu generare due tipi di errore: RecordSetException e MalformedRecord. Nell'esempio seguente, gli oggetti RecordSetException e MalformedRecord sono sottoclassi della classe Error. Ognuno definito nel relativo file di 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."; }

240

Capitolo 1: Elementi del linguaggio ActionScript

All'interno del metodo sortRows() della classe RecordSet, viene generato uno degli errori precedentemente definiti, a seconda del tipo di eccezione che si verificata. L'esempio seguente mostra il possibile aspetto di tale codice:
class RecordSet { function sortRows() { var returnVal:Number = randomNum(); if (returnVal == 1) { throw new RecordSetException(); } else if (returnVal == 2) { throw new MalformedRecord(); } } function randomNum():Number { return Math.round(Math.random() * 10) % 3; } }

Infine, in un altro file AS o script FLA, il codice seguente richiama il metodo sortRows() su un'istanza della classe RecordSet. Il metodo definisce i blocchi catch per ciascun tipo di errore che viene generato da 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()); }

Vedere anche
Error

Istruzioni

241

var, istruzione
var variableName [= value1][...,variableNameN[=valueN]]

Utilizzata per dichiarare le variabili locali. Se si dichiarano delle variabili all'interno di una funzione, tali variabili sono locali, vengono definite per la funzione e scadono al termine della chiamata della funzione. Pi precisamente, una variabile definita mediante var locale rispetto al blocco di codice che la contiene. I blocchi di codice sono contrassegnati mediante le parentesi graffe ({}). Se si dichiarano delle variabili fuori da una funzione, tali variabili sono disponibili durante tutta la linea temporale che contiene l'istruzione. Non possibile dichiarare come variabile locale una variabile che abbia come area di validit un altro oggetto.
my_array.length = 25; // ok var my_array.length = 25; // syntax error

Quando si utilizza var, la variabile pu essere definita mediante la tipizzazione forte dei dati. possibile dichiarare pi variabili in un'istruzione, separando le dichiarazioni mediante virgole (tuttavia, questa sintassi pu ridurre la chiarezza del codice):
var first:String = "Bart", middle:String = "J.", last:String = "Bartleby";

Nota: anche necessario utilizzare var per dichiarare le propriet all'interno delle definizioni di classe negli script esterni. I file di classe supportano inoltre aree di validit delle variabili pubbliche, private e statiche. Disponibilit: Flash Player 5; ActionScript 1.0 Parametri
variableName:String

- Un identificatore.

Esempio Il codice ActionScript seguente crea un nuovo array di nomi di prodotto. Array.push aggiunge un elemento alla fine dell'array. Se si desidera utilizzare la tipizzazione forte, essenziale utilizzare la parola chiave var. Senza var prima di product_array, vengono generati degli errori quando si tenta di utilizzare la tipizzazione forte.
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

242

Capitolo 1: Elementi del linguaggio ActionScript

while, istruzione
while(condition) { statement(s); }

Valuta una condizione e, se questa restituisce true, esegue un'istruzione o una serie di istruzioni prima di tornare a valutare la condizione. Dopo che la condizione ha restituito false, l'istruzione (o la serie di istruzioni) viene ignorata e il ciclo termina. L'istruzione while esegue le serie di operazioni seguenti. Ogni ripetizione dal punto 1 al punto 4 viene definita iterazione del ciclo. La condition viene nuovamente verificata all'inizio di ogni iterazione, come nei punti seguenti:

Viene valutata l'espressione condition.INEBREAK Se la condition restituisce true o un valore convertibile al valore booleano true, ad esempio un numero diverso da 0, passare al punto 3. In caso contrario, l'istruzione while viene completata e l'esecuzione riprende dall'istruzione successiva al ciclo while. Eseguire il blocco di istruzioni statement(s). Andare al punto 1.

La ripetizione ciclica viene solitamente utilizzata per eseguire un'azione finch la variabile counter inferiore al valore specificato. Alla fine di ogni ciclo, la variabile counter viene incrementata finch non viene raggiunto il valore specificato. A quel punto, condition non pi true e il ciclo termina. le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione while non sono necessarie se viene eseguita una sola istruzione. Disponibilit: Flash Player 4; ActionScript 1.0 Parametri
condition:Boolean

- Un'espressione che restituisce true o false.

Esempio Nell'esempio seguente, l'istruzione while viene utilizzata per provare un'espressione. Quando il valore di i inferiore a 20, il valore di i viene tracciato. Quando la condizione non pi true, il ciclo viene terminato.
var i:Number = 0; while (i < 20) { trace(i); i += 3; }

Istruzioni

243

Il risultato seguente viene visualizzato nel pannello Output.


0 3 6 9 12 15 18

Vedere anche
continue, istruzione

with (istruzione)
with (object:Object) { statement(s); }

Consente di specificare un oggetto (come un clip filmato) con il parametro object e valutare espressioni e azioni all'interno di quell'oggetto mediante il parametro statement(s). In questo modo, non necessario scrivere pi volte il nome o il percorso dell'oggetto. Il parametro object diventa il contesto in cui le propriet, le variabili e le funzioni del parametro statement(s) vengono lette. Ad esempio, se object my_array e due delle propriet specificate sono length e concat, queste propriet vengono automaticamente lette come my_array.length e my_array.concat. In un altro esempio, se object state.california, qualsiasi azione o istruzione interna all'istruzione with viene chiamata dall'interno dell'istanza california. Per trovare il valore di un identificatore nel parametro statement(s), ActionScript lo cerca in tutti i livelli della catena, secondo un ordine prestabilito, partendo dall'inizio della catena delle aree di validit specificata da object. La catena delle aree di validit utilizzata dall'istruzione with per trovare gli identificatori comincia con il primo elemento dell'elenco seguente e continua fino all'ultimo elemento:

L'oggetto specificato nel parametro object nell'istruzione with pi interna. L'oggetto specificato nel parametro object nell'istruzione with pi esterna. L'oggetto Attivazione. (Un oggetto provvisorio creato automaticamente quando viene chiamata una funzione che contiene le variabili locali chiamate nella funzione.) Il clip filmato contenente lo script in fase di esecuzione. L'oggetto Globale (oggetti incorporati quali Math e String).

244

Capitolo 1: Elementi del linguaggio ActionScript

Per impostare una variabile all'interno di un'istruzione with, necessario aver dichiarato la variabile fuori dall'istruzione with, oppure immettere il percorso completo della linea temporale in cui la variabile dovr risiedere. Se si imposta una variabile in un'istruzione with senza dichiararla, l'istruzione with cerca il valore in base alla catena delle aree di validit. Se la variabile non esiste gi, il nuovo valore viene impostato sulla linea temporale da cui l'istruzione with era stata chiamata. Invece di with(), possibile utilizzare i percorsi diretti. Se si ritiene che la digitazione dei percorsi sia poco pratica, possibile creare una variabile locale in cui memorizzare il percorso che potr essere riutilizzato nel codice, come nell'esempio ActionScript seguente:
var shortcut = this._parent._parent.name_txt; shortcut.text = "Hank"; shortcut.autoSize = true;

Disponibilit: Flash Player 5; ActionScript 1.0 Parametri


object:Object

- Un'istanza di un clip filmato oppure oggetto ActionScript.

Esempio
someOther_mc

L'esempio seguente imposta le propriet _x e _y dell'istanza someOther_mc, quindi indica a di andare al fotogramma 3 e arrestarsi.

with (someOther_mc) { _x = 50; _y = 100; gotoAndStop(3); }

Il frammento di codice seguente mostra come scrivere il codice precedente senza ricorrere a un'istruzione with.
someOther_mc._x = 50; someOther_mc._y = 100; someOther_mc.gotoAndStop(3);

Istruzioni

245

L'istruzione with utile per accedere a pi elementi contemporaneamente in un elenco delle catene delle aree di validit. Nell'esempio seguente, l'oggetto Math incorporato viene collocato all'inizio della catena delle aree di validit. L'impostazione di Math come oggetto predefinito risolve gli identificatori cos, sin e PI rispettivamente a Math.cos, Math.sin e Math.PI. Gli identificatori a, x, y e r non sono metodi o propriet dell'oggetto Math, ma poich sono presenti nell'area di attivazione della funzione polar(), risolvono alle variabili locali corrispondenti.
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);

Il risultato seguente viene visualizzato nel pannello Output.


area = 28.2743338823081 x = -3 y = 3

246

Capitolo 1: Elementi del linguaggio ActionScript

CAPITOLO 2

Classi ActionScript
La documentazione per le classi ActionScript comprende informazioni sulla sintassi e sull'utilizzo, nonch esempi di codice per metodi, propriet, gestori di eventi e listener appartenenti a una specifica classe in ActionScript (e quindi non funzioni o propriet globali). Le classi sono elencate in ordine alfabetico e comprendono nuove classi in Flash Player 8 reperibili nei pacchetti flash.*. In caso di dubbi di appartenenza di metodi o propriet alle classi, consultare l'indice.

Accessibility
Object | +-Accessibility public class Accessibility extends Object

La classe Accessibility gestisce la comunicazione con gli screen reader. Gli screen reader sono un tipo di tecnologia di supporto in grado di fornire agli utenti ipovedenti una versione audio del contenuto delle schermate. I metodi della classe Accessibility sono statici; questo significa che non necessario creare un'istanza della classe per utilizzarne i metodi. Per ottenere e impostare le propriet accessibili di un oggetto specifico (ad esempio un pulsante, un filmato o un campo di testo), utilizzare la propriet _accProps. Per determinare se il lettore viene eseguito in un ambiente che supporta strumenti di accessibilit, utilizzare il metodo System.capabilities.hasAccessibility. Disponibilit: ActionScript 1,0; Flash Player 6 Vedere anche
hasAccessibility (propriet capabilities.hasAccessibility), _accProps, propriet

247

Riepilogo delle propriet Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo dei metodi


Modificatori
static

Indicatore

Descrizione
attualmente attivo e se sta comunicando con il player.

isActive() : Boolean Indica se uno strumento di supporto all'accessibilit

static

updateProperties() : Rende attive tutte le modifiche apportate agli oggetti Void

_accProps_.

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

isActive (metodo Accessibility.isActive)


public static isActive() : valore booleano

Indica se uno strumento di supporto all'accessibilit attualmente attivo e se sta comunicando con il player. Utilizzare questo metodo quando si desidera che l'applicazione si comporti in modo diverso in presenza di uno screen reader o di un altro strumento di supporto all'accessibilit. Nota: se si chiama questo metodo entro uno o due secondi dall'apertura della finestra di Flash in cui viene riprodotto il documento, possibile che venga restituito un valore false anche se attivo un client Microsoft Active Accessibility (MSAA). Questo inconveniente causato dal meccanismo di comunicazione asincrono tra Flash e i client MSAA. Questa limitazione pu essere risolta chiamando il metodo uno o due secondi dopo il caricamento del documento. Disponibilit: ActionScript 1,0; Flash Player 6

248

Capitolo 2: Classi ActionScript

Valori restituiti
Boolean

- Un valore booleano: truese Flash Player sta comunicando con uno strumento di supporto all'accessibilit (generalmente uno screen reader); in caso contrario, false. Esempio L'esempio seguente verifica se un strumento di supporto all'accessibilit attualmente attivo:

if (Accessibility.isActive()) { trace ("An accessibility aid is currently active"); } else { trace ("There is currently no active accessibility aid"); }

Vedere anche
updateProperties (metodo Accessibility.updateProperties), _accProps, propriet, hasAccessibility (propriet capabilities.hasAccessibility)

updateProperties (metodo Accessibility.updateProperties)


public static updateProperties() : Void

Rende attive tutte le modifiche apportate agli oggetti _accProps_. Per informazioni sull'impostazione delle propriet di accessibilit, vedere __accProps. Se si modificano le propriet di accessibilit di pi oggetti, necessaria solo una chiamata ad Accessibility.updateProperties(); pi chiamate possono infatti influire negativamente sulle prestazioni e sui risultati degli screen reader. Disponibilit: ActionScript 1.0; Flash Player 6,0,65,0 Esempio Se si modifica un'immagine e si desidera aggiornarne la descrizione dell'accessibilit, possibile utilizzare il codice ActionScript seguente:
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

249

Vedere anche
isActive (metodo Accessibility.isActive), _accProps, propriet, hasAccessibility (propriet capabilities.hasAccessibility)

argomenti
Object | +-arguments public class arguments extends Object

Un oggetto arguments viene utilizzato per memorizzare gli argomenti di una funzione ed accedervi. All'interno del corpo di una funzione vi si pu accedere con la variabile arguments locale.
arguments[0],

Gli argomenti vengono memorizzati come elementi di array. Al primo si accede come al secondo come arguments[1] ecc. La propriet arguments.length indica il numero di argomenti passati alla funzione. Si noti che pu esservi una discrepanza fra il numero di argomenti passati e quanto dichiarato dalla funzione. Disponibilit: ActionScript 1,0; Flash Player 5 Vedere anche

Funzione

Riepilogo delle propriet


Modificatori Propriet
callee:Object caller:Object

Descrizione
Un riferimento alla funzione in corso di esecuzione. Un riferimento alla funzione che ha chiamato la funzione in corso di esecuzione, o null se non stata chiamata da un'altra funzione. Numero di argomenti passati alla funzione.

length:Number

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

250

Capitolo 2: Classi ActionScript

Riepilogo dei metodi Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

callee (propriet arguments.callee)


public callee : Object

Un riferimento alla funzione in corso di esecuzione. Disponibilit: ActionScript 1,0; Flash Player 5 Vedere anche
caller (propriet arguments.caller)

caller (propriet arguments.caller)


public caller : Object

Un riferimento alla funzione che ha chiamato la funzione in corso di esecuzione, o null se non stata chiamata da un'altra funzione. Disponibilit: ActionScript 1,0; Flash Player 6 Vedere anche
callee (propriet arguments.callee)

length (propriet arguments.length)


public length : Number

Numero di argomenti passati alla funzione. Pu essere inferiore o superiore rispetto a quanto dichiarato dalla funzione. Disponibilit: ActionScript 1,0; Flash Player 5

argomenti

251

Array
Object | +-Array public dynamic class Array extends Object

La classe Array consente di accedere agli array indicizzati e di manipolarli. Un array indicizzato un oggetto le cui propriet sono identificate da un numero che ne rappresenta la posizione nell'array stesso. Questo numero viene definito indice. Tutti gli array indicizzati sono con base zero, ovvero [0] il primo elemento dell'array, [1] il secondo, e cos via. Per creare un oggetto Array, utilizzare la funzione di costruzione new Array(). Per accedere agli elementi di un array, utilizzare l'operatore array access ([]). possibile memorizzare una vasta gamma di tipi di dati in un elemento di array, tra cui numeri, stringhe, oggetti e persino altri array. possibile creare un array multidimensionale creando un array indicizzato e assegnando un array indicizzato diverso a ognuno dei suoi elementi. Un array di questo tipo considerato multidimensionale poich pu essere utilizzato per rappresentare i dati in una tabella. L'assegnazione all'array avviene in base al riferimento anzich al valore: quando si assegna una variabile di array a un'altra variabile di array, entrambe fanno riferimento allo stesso array:
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 non deve essere utilizzata per creare gli array associativi, che sono strutture di dati diverse che contengono elementi con nome anzich elementi numerati. necessario utilizzare la classe Object per creare gli array associativi (chiamati anche hash). Bench ActionScript consenta di creare gli array associativi mediante la classe Array, non possibile utilizzare nessuno dei metodi o delle propriet della classe Array. Un array associativo un'istanza della classe Object e ciascuna coppia chiave-valore rappresentata da una propriet e dal relativo valore. Un altro motivo per dichiarare un array associativo usando il tipo di dati Object consiste nel fatto che possibile utilizzare un valore letterale di oggetto per compilare un array associativo (ma solo nel momento in cui viene dichiarato). L'esempio seguente crea un array associativo mediante un valore letterale di oggetto, accede agli elementi sia mediante l'operatore dot sia mediante l'operatore di accesso agli array, quindi aggiunge una nuova coppia chiave-valore mediante la creazione di una nuova propriet:
var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAssocArray.fname); // Output: John

252

Capitolo 2: Classi ActionScript

trace(myAssocArray["lname"]); // Output: Public myAssocArray.initial = "Q"; trace(myAssocArray.initial); // Output: Q

Disponibilit: ActionScript 1,0; Flash Player 5 Esempio Nell'esempio seguente, my_array contiene quattro mesi dell'anno:
var my_array:Array = new Array(); my_array[0] = "January"; my_array[1] = "February"; my_array[2] = "March"; my_array[3] = "April";

Riepilogo delle propriet


Modificatori
static

Propriet
er

Descrizione
ordinamento senza distinzione fra maiuscole e minuscole. Nei metodi di ordinamento, questa costante indica l'ordinamento discendente. Un numero intero non negativo che specifica il numero di elementi nell'array. Nei metodi di ordinamento, questa costante indica un ordinamento numerico (e non per carattere). indicizzato come risultato della chiamata al metodo sort()o sortOn(). Nei metodi di ordinamento, questa costante indica il requisito dell'ordinamento univoco.

CASEINSENSITIVE:Numb Nei metodi di ordinamento, questa costante indica un

static

DESCENDING:Number

length:Number

static

NUMERIC:Number

static

RETURNINDEXEDARRAY:N Specifica che un ordinamento restituisca un array umber

static

UNIQUESORT:Number

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Array

253

Riepilogo delle funzioni di costruzione


Indicatore
)

Descrizione

Array([value:Object] Consente di creare un array.

Riepilogo dei metodi


Modificatori Indicatore
]) : Array

Descrizione
elementi in un array e crea un nuovo array. separatore specificato tra gli elementi, li concatena e restituisce la stringa risultante. Rimuove l'ultimo elemento di un array e ne restituisce il valore. restituisce la nuova lunghezza dell'array. Inverte l'array in posizione. Rimuove il primo elemento di un array e lo restituisce. di elementi dell'array originale, senza modificare

concat([value:Object Concatena gli elementi specificati nei parametri con gli

join([delimiter:Stri Converte in stringhe gli elementi di un array, inserisce il ng]) : String

pop() : Object

push(value:Object) : Aggiunge uno o pi elementi alla fine di un array e Number reverse() : Void shift() : Object

slice([startIndex:Nu Restituisce un nuovo array composto da un intervallo mber], Array sort([compareFunctio Ordina gli elementi di un array. n:Object], [options:Number]) : Array sortOn(fieldName:Obj Ordina gli elementi di un array in base a uno o pi ect, [options:Object]) : Array splice(startIndex:Nu Aggiunge e rimuove gli elementi di un array. mber, [deleteCount:Number] , [value:Object]) : Array [endIndex:Number]) : quest'ultimo.

campi dell'array.

254

Capitolo 2: Classi ActionScript

Modificatori

Indicatore
toString() : String

Descrizione
Restituisce un valore di tipo stringa che rappresenta gli elementi dell'oggetto Array specificato. restituisce la nuova lunghezza dell'array.

unshift(value:Object Aggiunge uno o pi elementi all'inizio di un array e ) : Number

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

Funzione di costruzione Array


public Array([value:Object])

Consente di creare un array. possibile utilizzare la funzione di costruzione per creare diversi tipi di array: un array vuoto, un array con una lunghezza specifica ma i cui elementi hanno valori non definiti oppure un array i cui elementi hanno valori specifici. Uso 1: se non si specifica alcun parametro, viene creato con una lunghezza pari a 0. Uso 2: Se si specifica solo una lunghezza, viene creato un array con un numero di elementi pari alla lunghezza specificata (length). Il valore di ogni elemento viene impostato su undefined. Uso 3: se si utilizzano i parametri element per specificare i valori, viene creato un array con dei valori specifici. Disponibilit: ActionScript 1,0; Flash Player 5 Parametri
value:Object

[opzionale] - Pu essere

Un numero intero che specifica il numero di elementi nell'array. Un elenco di due o pi valori arbitrari. I valori possono essere di tipo booleano, numerico, stringa, oggetto o array. Il primo elemento di un array ha sempre l'indice o la posizione 0.

Nota: se alla funzione di costruzione Array viene passato un solo parametro numerico, questo viene considerato come parametro length e convertito in intero mediante la funzione Integer().

Array

255

Esempio Uso 1: l'esempio seguente crea un nuovo oggetto Array con una lunghezza iniziale pari a 0:
var my_array:Array = new Array(); trace(my_array.length); // Traces 0.

Uso 2: l'esempio seguente crea un nuovo oggetto Array con una lunghezza iniziale pari a 4:
var my_array:Array = new Array(4); trace(my_array.length); // Returns 4. 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.

Uso 3: l'esempio seguente crea il nuovo oggetto Array di nome go_gos_array con una lunghezza iniziale pari a 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.

Gli elementi iniziali dell'array go_gos_array vengono identificati, come mostrato nell'esempio seguente:
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";

Il codice seguente aggiunge un sesto elemento all'array go_gos_array e modifica il secondo:


go_gos_array[5] = "Donna"; go_gos_array[1] = "Nina" trace(go_gos_array.join(" + ")); // Returns Belinda + Nina + Kathy + Charlotte + Jane + Donna.

Vedere anche
[] (accesso array), operatore, length (propriet Array.length)

256

Capitolo 2: Classi ActionScript

CASEINSENSITIVE (propriet Array.CASEINSENSITIVE)


public static CASEINSENSITIVE : Number

Nei metodi di ordinamento, questa costante indica un ordinamento senza distinzione fra maiuscole e minuscole. Questa costante pu essere utilizzata per il parametro options nel metodo sort() o sortOn(). Il valore di questa costante 1. Disponibilit: ActionScript 1,0; Flash Player 7 Vedere anche
sort (metodo Array.sort), sortOn (metodo Array.sortOn)

concat( metodo Array.concat)


public concat([value:Object]) : Array

Concatena gli elementi specificati nei parametri con gli elementi in un array e crea un nuovo array. Se i parametri value specificano un array, anzich l'array vengono concatenati i suoi elementi. L'array my_array rimane invariato. Disponibilit: ActionScript 1,0; Flash Player 5 Parametri
value:Object [opzionale] - I numeri, gli elementi o le stringhe che devono essere concatenati

in un nuovo array. Se non si passa alcun valore, viene creato un duplicato di my_array. Valori restituiti
Array

- Un array che contiene gli elementi di questo array seguito dagli elementi dei parametri. Esempio Il codice seguente concatena due array:

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].

Il codice seguente concatena tre array:


var num1_array:Array = [1,3,5]; var num2_array:Array = [2,4,6];

Array

257

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].

Gli array nidificati non vengono appiattiti allo stesso modo degli array normali. Gli elementi di un array nidificato non vengono suddivisi in elementi separati nell'array x_array, come mostrato nell'esempio seguente:
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 trace(x_array[4]); // 2, 3 trace(x_array[5]); // 4

DESCENDING (propriet Array.DESCENDING)


public static DESCENDING : Number

Nei metodi di ordinamento, questa costante indica l'ordinamento discendente. Questa costante pu essere utilizzata per il parametro options nel metodo sort() o sortOn(). Il valore di questa costante 2. Disponibilit: ActionScript 1,0; Flash Player 7 Vedere anche
sort (metodo Array.sort), sortOn (metodo Array.sortOn)

join (metodo Array.join)


public join([delimiter:String]) : Stringa

Converte in stringhe gli elementi di un array, inserisce il separatore specificato tra gli elementi, li concatena e restituisce la stringa risultante. Un array nidificato sempre separato da un virgola (,) e non dal separatore passato dal metodo join(). Disponibilit: ActionScript 1,0; Flash Player 5

258

Capitolo 2: Classi ActionScript

Parametri
delimiter:String

[opzionale] - Un carattere o una stringa che separa gli elementi dell'array nella stringa restituita. Se si omette questo parametro, viene utilizzata una virgola (,) come separatore predefinito. Valori restituiti

String

- Una stringa.

Esempio L'esempio seguente crea un array con tre elementi: Earth, Moon e Sun. Quindi, unisce l'array tre volte: innanzi tutto mediante il separatore predefinito (una virgola [,] e uno spazio), quindi mediante un trattino (-) e infine mediante un segno pi (+).
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. trace(a_array.join(" + ")); // Displays Earth + Moon + Sun.

L'esempio seguente crea un array nidificato che contiene due array. Il primo ha tre elementi: Europa, Io e Callisto. Il secondo ha due elementi: Titan e Rhea. L'array viene unito mediante un segno pi (+), ma gli elementi all'interno di ciascun array nidificato rimangono separati da virgole (,).
var a_nested_array:Array = new Array(["Europa", "Io", "Callisto"], ["Titan", "Rhea"]); trace(a_nested_array.join(" + ")); // Returns Europa,Io,Callisto + Titan,Rhea.

Vedere anche
split (metodo String.split)

length (propriet Array.length)


public length : Number

Un numero intero non negativo che specifica il numero di elementi nell'array. Questa propriet viene aggiornata automaticamente quando vengono aggiunti dei nuovi elementi all'array. Quando si assegna un valore a un elemento di un array (ad esempio, my_array[index] = value), se index un numero e index+1 maggiore della propriet length, quest'ultima viene aggiornata a index+1.

Array

259

Nota: se alla propriet length si assegna un valore pi breve della lunghezza esistente, l'array viene troncato. Disponibilit: ActionScript 1,0; Flash Player 5 Esempio Il codice seguente mostra il modo in cui viene aggiornata la propriet length: La lunghezza iniziale pari a 0, e viene in seguito aggiornata a 1, 2 e 10. Se alla propriet length si assegna un valore pi breve della lunghezza esistente, l'array viene troncato.
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: // 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 (propriet Array.NUMERIC)


public static NUMERIC : Number

Nei metodi di ordinamento, questa costante indica un ordinamento numerico (e non per carattere). Includendola nel parametro options i metodi sort() e sortOn() ordineranno i numeri come valori numerici, non come stringhe di caratteri numerici. Senza la costante NUMERIC, l'ordinamento considera ogni elemento dell'array una stringa di caratteri e fornisce i risultati in ordine Unicode. Ponendo di avere ad esempio l'Array di valori [2005, 7, 35], se la costante NUMERIC non inclusa nel parametro options, l'Array verr ordinato come segue: [2005, 35, 7]. Se invece la costante NUMERIC inclusa, l'Array verr ordinato cos: [7, 35, 2005]. Si noti che questa costante si applica solo ai numeri compresi nell'array, non alle stringhe contenenti dati numerici, (come ["23", "5"]).

260

Capitolo 2: Classi ActionScript

Il valore di questa costante 16. Disponibilit: ActionScript 1,0; Flash Player 7 Vedere anche
sort (metodo Array.sort), sortOn (metodo Array.sortOn)

pop (metodo Array.pop)


public pop() : Object

Rimuove l'ultimo elemento di un array e ne restituisce il valore. Disponibilit: ActionScript 1,0; Flash Player 5 Valori restituiti
ObjectIl

valore dell'ultimo elemento dell'array specificato.

Esempio Il codice seguente crea l'array myPets_array, che contiene quattro elementi, quindi rimuove l'ultimo elemento:
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.

Vedere anche
push (metodo Array.push), shift (metodo Array.shift), unshift (metodo Array.unshift)

push (metodo Array.push)


public push(value:Object) : Number

Aggiunge uno o pi elementi alla fine di un array e restituisce la nuova lunghezza dell'array. Disponibilit: ActionScript 1,0; Flash Player 5 Parametri
value:ObjectUno

o pi valori da aggiungere all'array.

Valori restituiti
Number

- Un numero intero che rappresenta la lunghezza del nuovo array.

Array

261

Esempio L'esempio seguente crea l'array myPets_array con due elementi definiti, cio cat edog. La seconda riga aggiunge due elementi all'array. Dal momento che il metodo push() restituisce la nuova lunghezza dell'array, l'istruzione trace() nell'ultima riga invia la nuova lunghezza di myPets_array (4) al pannello Output.
var myPets_array:Array = new Array("cat", "dog"); var pushed:Number = myPets_array.push("bird", "fish"); trace(pushed); // Displays 4.

Vedere anche
pop (metodo Array.pop), shift (metodo Array.shift), unshift (metodo Array.unshift)

RETURNINDEXEDARRAY (propriet Array.RETURNINDEXEDARRAY)


public static RETURNINDEXEDARRAY : Number

Specifica che un ordinamento restituisca un array indicizzato come risultato della chiamata al metodo sort()o sortOn(). Questa costante pu essere utilizzata per il parametro options nel metodo sort() o sortOn(). In questo modo viene fornita la funzione di anteprima o di copia per un array che rappresenta i risultati dell'ordinamento e lascia intatto l'array originale. Il valore di questa costante 8. Disponibilit: ActionScript 1,0; Flash Player 7 Vedere anche
sort (metodo Array.sort), sortOn (metodo Array.sortOn)

reverse (metodo Array.reverse)


public reverse() : Void

Inverte l'array in posizione. Disponibilit: ActionScript 1,0; Flash Player 5

262

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente utilizza questo metodo per invertire l'array 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 (metodo Array.shift)


public shift() : Object

Rimuove il primo elemento di un array e lo restituisce. Disponibilit: ActionScript 1,0; Flash Player 5 Valori restituiti
Object

- Il primo elemento dell'array.

Esempio Il codice seguente crea l'array myPets_array, quindi rimuove il primo elemento dall'array e lo assegna alla variabile 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.

Vedere anche
pop (metodo Array.pop), push (metodo Array.push), unshift (metodo Array.unshift)

slice (metodo Array.slice)


public slice([startIndex:Number], [endIndex:Number]) : Array

Restituisce un nuovo array composto da un intervallo di elementi dell'array originale, senza modificare quest'ultimo. L'array restituito comprende l'elemento startIndex e tutti gli elementi fino a endIndex escluso. Se non si passa alcun parametro, viene creato un duplicato dell'array originale. Disponibilit: ActionScript 1,0; Flash Player 5

Array

263

Parametri
startIndex:Number [opzionale] - Un numero che specifica l'indice del punto iniziale della porzione. Se start un numero negativo, il punto iniziale comincia alla fine dell'array, dove 1 l'ultimo elemento. endIndex:Number

[opzionale] - Un numero che specifica l'indice del punto finale della porzione. Se si omette questo parametro, la porzione include tutti gli elementi compresi tra il punto iniziale e la fine dell'array. Se end un numero negativo, il punto finale viene specificato dalla fine dell'array, dove -1 l'ultimo elemento. Valori restituiti

Array

- Un array composto da un intervallo di elementi dell'array originale.

Esempio L'esempio seguente crea un array di cinque animali domestici e utilizza slice() per compilare un nuovo array che contiene solo gli animali a quattro zampe:
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'esempio seguente crea un array di cinque animali domestici, quindi utilizza slice() con un parametro start negativo per copiare gli ultimi due elementi dell'array:
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'esempio seguente crea un array di cinque animali domestici, quindi utilizza slice()con un parametro end negativo per copiare l'elemento centrale dell'array:
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 (metodo Array.sort)


public sort([compareFunction:Object], [options:Number]) : Array

Ordina gli elementi di un array. L'ordinamento viene effettuato in base ai valori Unicode. (ASCII un sottoinsieme del linguaggio Unicode.)

264

Capitolo 2: Classi ActionScript

Per impostazione predefinita, Array.sort() funziona nel modo descritto nell'elenco seguente:

L'ordinamento fa distinzione tra maiuscole e minuscole (quindi, ad esempio Z precede a). L'ordinamento ascendente (quindi, ad esempio a precede b). L'array viene modificato in modo che rispecchi l'ordinamento; gli eventuali elementi multipli che hanno campi di ordinamento identici vengono posizionati in modo consecutivo senza un ordine particolare. I campi numerici vengono ordinati come se fossero stringhe, pertanto 100 precede 99 poich "1" un valore di stringa inferiore a "9".

Per ordinare un array mediante delle impostazioni diverse da quelle predefinite, possibile utilizzare una delle opzioni di ordinamento descritte nella sezione relativa al parametro options oppure creare una funzione personalizzata che effettui l'ordinamento. Se si crea una funzione personalizzata, possibile utilizzarla chiamando il metodo sort(), con il nome della funzione personalizzata come primo parametro (compareFunction). Disponibilit: ActionScript 1,0; Flash Player 5 Parametri
compareFunction:Object

[opzionale] - Una funzione di confronto utilizzata per determinare il tipo di ordinamento degli elementi di un array. Dati gli elementi A e B, il risultato di compareFunction pu avere uno dei tre elementi seguenti: -1, se A deve comparire prima di B nella sequenza ordinata 0, se A uguale a B 1, se A deve comparire dopo B nella sequenza ordinata

options:Number [opzionale] - Uno o pi numeri o nomi di costanti definite, separati dall'operatore | (OR bit a bit), che modificano il comportamento dell'ordinamento predefinito. I valori seguenti sono accettabili per il parametro options:

Array.CASEINSENSITIVE Array.DESCENDING Array.UNIQUESORT

o1

o2 o4 o8

Array.RETURNINDEXEDARRAY Array.NUMERIC

o 16

Per ulteriori informazioni su questa directory, vedere il metodo Array.sortOn(). Nota: Array.sort()Array.sort() viene definito in ECMA-262, ma le opzioni di ordinamento degli array introdotte in Flash Player 7 sono estensioni specifiche per Flash della specifica ECMA-262.

Array

265

Valori restituiti
Array

- Il valore restituito dipende dal fatto che siano stati o meno passati dei parametri, come descritto nell'elenco seguente: Se si specifica il valore 4 o Array.Array.UNIQUESORT per options e due o pi elementi in corso di ordinamento hanno campi di ordinamento identici, viene restituito il valore 0 e l'array non viene modificato. Se si specifica il valore 8 o Array.RETURNINDEXEDARRAY per options, viene restituito un array che rispecchia i risultati dell'ordinamento e l'array non viene modificato. In caso contrario, non viene restituito alcun valore e l'array viene modificato in modo che rispecchi l'ordinamento.

Esempio Uso 1: l'esempio seguente mostra l'utilizzo di Array.sort() con e senza un valore passato per 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.

Uso 2: l'esempio seguente utilizza Array.sort() con una funzione di confronto: Le voci sono ordinate in formato nome:password. L'ordinamento deve avvenire usando solo la parte nome della voce come chiave:
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; }

266

Capitolo 2: Classi ActionScript

} 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: 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.

Vedere anche
| (OR bit a bit), operatore, sortOn (metodo Array.sortOn)

sortOn (metodo Array.sortOn)


public sortOn(fieldName:Object, [options:Object]) : Array

Ordina gli elementi di un array in base a uno o pi campi dell'array. L'array dovrebbe avere le propriet caratteristiche:

L'array di tipo indicizzato, non associativo. Ogni elemento dell'array contiene un oggetto con una o pi propriet. Tutti gli oggetti hanno almeno una propriet in comune, i cui valori possono essere utilizzati per ordinare l'array. La propriet viene denominata campo.

Se si passano pi parametri fieldName, il primo campo rappresenta il campo di ordinamento principale, il secondo rappresenta il campo di ordinamento successivo, e cos via. L'ordinamento viene effettuato in base ai valori Unicode. (ASCII un sottoinsieme del linguaggio Unicode.) Se qualcuno degli elementi che si stanno confrontando non contiene il campo specificato nel parametro fieldName, il campo viene considerato undefined e gli elementi vengono collocati consecutivamente senza un ordine particolare all'interno dell'array ordinato. Per impostazione predefinita, Array.sortOn() funziona come segue:

L'ordinamento fa distinzione tra maiuscole e minuscole (quindi, ad esempio Z precede a). L'ordinamento ascendente (quindi, ad esempio a precede b). L'array viene modificato in modo che rispecchi l'ordinamento; gli eventuali elementi multipli che hanno campi di ordinamento identici vengono posizionati in modo consecutivo senza un ordine particolare. I campi numerici vengono ordinati come se fossero stringhe, pertanto 100 precede 99 poich "1" un valore di stringa inferiore a "9".

Array

267

Flash Player 7 ha aggiunto il parametro options, utilizzabile per ignorare il comportamento predefinito per l'ordinamento. Per ordinare un array semplice (ad esempio, un array con un solo campo) o per specificare un ordinamento non supportato dal parametro options, utilizzare Array.sort(). Per passare pi flag, separarli con l'operatore OR bit a bit (|):
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);

In Flash Player 8 stata aggiunta la capacit supplementare di specificare un'opzione di ordinamento diversa per ciascun campo quando si ordinano pi campi. Il parametro options ora accetta un array di opzioni di ordinamento tale per cui ogni opzione corrisponde a un campo di ordinamento nel parametro fieldName. L'esempio seguente ordina il campo di ordinamento principale, a, mediante un ordinamento discendente, il campo di ordinamento secondario, b, mediante un ordinamento numerico, il campo di ordinamento terziario, c, mediante un ordinamento senza distinzione tra maiuscole e minuscole:
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);

Nota: gli array fieldName e options devono avere lo stesso numero di elementi, altrimenti l'array options viene ignorato. Inoltre, le opzioni Array.UNIQUESORTe Array.RETURNINDEXEDARRAY possono essere utilizzate solo come primo elemento dell'array, altrimenti vengono ignorate. Disponibilit: ActionScript 1,0; Flash Player 6 Parametri
fieldName:Object

- Una stringa che identifica un campo da utilizzare come valore di ordinamento, oppure un array in cui il primo elemento rappresenta il campo di ordinamento principale, il secondo rappresenta il campo di ordinamento secondario, e cos via.

options:Object [opzionale] - Uno o pi numeri o nomi di costanti definite, separati dall'operatore bitwise OR (|) (OR bit a bit), che modificano il comportamento dell'ordinamento. I valori seguenti sono accettabili per il parametro options:

Array.CASEINSENSITIVE Array.DESCENDING Array.UNIQUESORT

o1

o2 o4 o8

Array.RETURNINDEXEDARRAY Array.NUMERIC

o 16

I suggerimenti sul codice sono abilitati se si utilizza il flag sotto forma di stringa (ad esempio, DESCENDING) anzich sotto forma di numero (2).

268

Capitolo 2: Classi ActionScript

Valori restituiti
Array

- Il valore restituito dipende dal fatto che siano stati o meno passati dei parametri:

Se si specifica il valore 4 o Array.Array.UNIQUESORT per options e due o pi elementi in corso di ordinamento hanno campi di ordinamento identici, viene restituito il valore 0 e l'array non viene modificato. Se si specifica il valore 8 o Array.RETURNINDEXEDARRAY per options, viene restituito un array che rispecchia i risultati dell'ordinamento e l'array non viene modificato. In caso contrario, Flash non restituisce alcun valore e l'array viene modificato in modo che rispecchi l'ordinamento.

Esempio L'esempio seguente crea un nuovo array e lo ordina in base ai campi name e city. Il primo ordinamento utilizza name come primo valore di ordinamento e citycome secondo valore. Il secondo ordinamento utilizza city come primo valore di ordinamento e name come secondo valore.
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

Array

269

L'array di oggetti seguente viene utilizzato dagli esempi seguenti, che mostrano come utilizzare il parametro options:
var my_array:Array = new my_array.push({password: my_array.push({password: my_array.push({password: my_array.push({password: Array(); "Bob", age:29}); "abcd", age:3}); "barb", age:35}); "catchy", age:4});

Se si esegue un ordinamento predefinito sul campo password, si ottengono i risultati seguenti:


my_array.sortOn("password"); // Bob // abcd // barb // catchy

Se si esegue un ordinamento senza distinzione tra maiuscole e minuscole sul campo password, si ottengono i risultati seguenti:
my_array.sortOn("password", Array.CASEINSENSITIVE); // abcd // barb // Bob // catchy

Se si esegue un ordinamento discendente senza distinzione tra maiuscole e minuscole sul campo password, si ottengono i risultati seguenti:
my_array.sortOn("password", Array.CASEINSENSITIVE | Array.DESCENDING); // catchy // Bob // barb // abcd

Se si esegue un ordinamento predefinito sul campo age, si ottengono i risultati seguenti:


my_array.sortOn("age"); // 29 // 3 // 35 // 4

Se si esegue un ordinamento numerico sul campo age, si ottengono i risultati seguenti:


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

270

Capitolo 2: Classi ActionScript

Se si esegue un ordinamento numerico discendente sul campo age, si ottengono i risultati seguenti:
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

Quando si utilizza l'opzione di ordinamento Array.RETURNEDINDEXARRAY, necessario assegnare il valore restituito a un array diverso. L'array originale non viene modificato.
var indexArray:Array = my_array.sortOn("age", Array.RETURNINDEXEDARRAY);

Vedere anche
| (OR bit a bit), operatore, sort (metodo Array.sort)

splice (metodo Array.splice)


public splice(startIndex:Number, [deleteCount:Number], [value:Object]) : Array

Aggiunge e rimuove gli elementi di un array. Questo metodo modifica l'array senza crearne una copia. Disponibilit: ActionScript 1,0; Flash Player 5 Parametri
startIndex:Number

- Un numero intero che specifica l'indice dell'elemento dell'array in cui inizia l'inserimento o l'eliminazione. possibile indicare un numero intero negativo per specificare una posizione relativa alla fine dell'array (ad esempio, -1 l'ultimo elemento dell'array).

[opzionale] - Un numero intero che specifica il numero di elementi da eliminare. Questo numero include l'elemento specificato nel parametro startIndex. Se per il parametro deleteCount non specificato alcun parametro, il metodo elimina tutti i valori dall'elemento startIndex fino all'ultimo elemento dell'array. Se il valore 0, non viene eliminato alcun elemento.
deleteCount:Number value:Object

[opzionale] - Specifica i valori da inserire nell'array in corrispondenza del punto di inserimento specificato nel parametro startIndex.

Valori restituiti
Array

- Un array che contiene gli elementi che sono stati rimossi dall'array originale.

Array

271

Esempio L'esempio seguente crea un array e lo unisce mediante la posizione di indice 1 per il parametro startIndex. In tal modo vengono rimossi tutti gli elementi dall'array, a partire dal secondo elemento, e viene lasciato solo l'elemento in corrispondenza dell'indice 0 nell'array originale:
var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); trace( myPets_array.splice(1) ); // Displays dog,bird,fish. trace( myPets_array ); // cat

L'esempio seguente crea un array e lo unisce mediante l'elemento in corrispondenza dell'indice 1 per il parametro startIndex e il numero 2 per il parametro deleteCount. In tal modo vengono rimossi due elementi dall'array, a partire dal secondo elemento, e vengono lasciati il primo e l'ultimo elemento dell'array originale:
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'esempio seguente crea un array e lo unisce mediante l'elemento in corrispondenza dell'indice 1 per il parametro startIndex, il numero 0 per il parametro deleteCount e la stringa chair per il parametro value. In tal modo, dall'array originale non viene rimosso alcun elemento e la stringa chair viene aggiunta in corrispondenza dell'indice 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 (metodo Array.toString)


public toString() : Stringa

Restituisce un valore di tipo stringa che rappresenta gli elementi dell'oggetto Array specificato. Ogni elemento dell'array che comincia con l'indice 0 e termina con l'indice dal numero pi alto viene convertito in una stringa concatenata e separato per mezzo di virgole. Per specificare un separatore personalizzato, utilizzare il metodo Array.join(). Disponibilit: ActionScript 1,0; Flash Player 5 Valori restituiti
String

- Una stringa.

272

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente crea l'array my_array e lo converte in stringa.


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.

Questo esempio genera 1,2,3,4,5 come risultato dell'istruzione trace. Vedere anche
split (metodo String.split), join (metodo Array.join)

UNIQUESORT (propriet Array.UNIQUESORT)


public static UNIQUESORT : Number

Nei metodi di ordinamento, questa costante indica il requisito dell'ordinamento univoco. Questa costante pu essere utilizzata per il parametro options nel metodo sort() o sortOn(). L'opzione di ordinamento univoco abbandona l'operazione di ordinamento se due elementi o campi qualsiasi in fase di ordinamento hanno valori identici. Il valore di questa costante 4. Disponibilit: ActionScript 1,0; Flash Player 7 Vedere anche
sort (metodo Array.sort), sortOn (metodo Array.sortOn)

Classe Accessibility
unshift (metodo Array.unshift)
public unshift(value:Object) : Number

Aggiunge uno o pi elementi all'inizio di un array e restituisce la nuova lunghezza dell'array. Disponibilit: ActionScript 1.0; Flash Player 5 Parametri
value:Object

- Uno o pi numeri, elementi o variabili da inserire all'inizio dell'array.

Classe Accessibility

273

Valori restituiti
Number

- Un numero intero che rappresenta la nuova lunghezza dell'array.

Esempio L'esempio seguente mostra l'utilizzo del metodo 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.

Vedere anche
pop (metodo Array.pop), push (metodo Array.push), shift (metodo Array.shift)

AsBroadcaster
Object | +-AsBroadcaster public class AsBroadcaster extends Object

Fornisce le funzioni di notificazione eventi e gestione listener che si possono aggiungere agli oggetti definiti dall'utente. Questa classe destinata agli utenti esperti che desiderano creare meccanismi personalizzati di gestione degli eventi. possibile utilizzarla per rendere entit di trasmissione un oggetto qualunque e per creare uno o pi oggetti listener che ricevono una notifica ogni volta che l'oggetto di trasmissione chiama il metodo broadcastMessage(). Per la classe AsBroadcaster non disponibile alcuna funzione di costruzione. Per utilizzarla, eseguire questa procedura:

Selezionare o creare un effetto che funga da entit di trasmissione. Rendere evento di trasmissione l'oggetto chiamando il metodo statico AsBroadcaster.initialize(obj:Object), dove il parametro obj il nome dell'oggetto che stato selezionato per diventare broadcaster. Selezionare o creare uno o pi oggetti listener. Gli oggetti listener ricevono le notifiche ogni volta che un oggetto di trasmissione trasmette un messaggio Definire un metodo listener per ognuno degli oggetti listener. Il metodo listener esegue del codice ActionScript in risposta alla notifica dell'evento. Il nome del metodo deve corrispondere al nome dell'evento che verr trasmesso dall'oggetto di trasmissione.

274

Capitolo 2: Classi ActionScript

Registrare ogni oggetto listener con l'entit di trasmissione chiamando myBroadcaster.addListener(myListener), in cuimyBroadcaster il nome dell'oggetto dell'entit di trasmissione e myListener il nome dell'oggetto listener. Ogni entit di trasmissione memorizza un elenco di oggetti listener da notificare quando viene trasmesso un messaggio. Utilizzare il metodo addListener() per aggiungere dei listener all'elenco oppure removeListener() per rimuoverli. Infine, per trasmettere un messaggio, chiamare il metodo
myBroadcaster.broadcastMessage(eventName:String),

in cui myBroadcaster il nome dell'entit di trasmissione e eventName il nome dell'evento che corrisponde al nome del metodo listener.

Nota: un errore frequente consiste nell'utilizzare la maiuscola per la seconda lettera di AsBroadcaster. Quando si chiama il metodo AsBroadcaster.initialize(), assicurarsi che la seconda lettera sia minuscola. Un errore ortografico nella scrittura di AsBroadcaster ne impedisce l'esecuzione. Disponibilit: ActionScript 1.0; Flash Player 6 Riepilogo delle propriet
Modificatori Propriet
_listeners:Array [di

Descrizione
Un elenco di riferimenti a tutti gli oggetti listener registrati.

sola lettura]

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo dei metodi


Modificatori Firma
Obj:Object) : Boolean broadcastMessage(eve Invia un messaggio di evento a ogni oggetto compreso ntName:String) : Void

Descrizione
notifica degli eventi.

addListener(listener Registra un oggetto per la ricezione dei messaggi di

nell'elenco dei listener.

AsBroadcaster

275

Modificatori
static

Firma
t) : Void

Descrizione
listener a un determinato oggetto. ricevono messaggi di notifica degli eventi.

initialize(obj:Objec Aggiunge le funzioni di notifica degli eventi e gestione

removeListener(liste Rimuove un oggetto dall'elenco degli oggetti che nerObj:Object) : Boolean

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

addListener (metodo AsBroadcaster.addListener)


public addListener(listenerObj:Object) : Boolean

Registra un oggetto per la ricezione dei messaggi di notifica degli eventi. Questo metodo viene chiamato per l'oggetto di trasmissione e l'oggetto listener viene inviato come argomento. Disponibilit: ActionScript 1.0; Flash Player 6 Parametri
listenerObj:Object

- Il nome dell'oggetto listener che riceve la notifica degli eventi.

Valori restituiti
Boolean Void,

- Bench tecnicamente questo metodo restituisca un valore booleano, in pratica dal momento che restituisce sempre il valore true.

Esempio L'esempio seguente un estratto dall'esempio completo fornito nella sezione relativa al metodo AsBroadcaster.initialize().
someObject.addListener(myListener1); // Register myListener1 as listener. someObject.addListener(myListener2); // Register myListener2 as listener.

Vedere anche
initialize (metodo AsBroadcaster.initialize), removeListener (metodo AsBroadcaster.removeListener)

276

Capitolo 2: Classi ActionScript

broadcastMessage (metodo AsBroadcaster.broadcastMessage)


public broadcastMessage(eventName:String) : Void

Invia un messaggio di evento a ogni oggetto compreso nell'elenco dei listener. Quando il messaggio viene ricevuto dall'oggetto "in ascolto", Flash Player tenta di richiamare una funzione con lo stesso nome per tale oggetto. Si supponga che l'oggetto trasmetta un messaggio di evento simile al seguente:
obj.broadcastMessage("onAlert");

Quando il messaggio viene ricevuto, Flash Player richiama un metodo di nome onAlert() per l'oggetto listener ricevente. Nota: possibile passare gli argomenti alle funzioni listener aggiungendo degli argomenti supplementari al metodo broadcastMessage(). Gli eventuali argomenti che compaiono dopo il parametro eventName vengono ricevuti come argomenti dal metodo listener. Questo metodo pu essere chiamato solo da un oggetto che sia stato inizializzato mediante il metodo AsBroadcaster.initialize(). Disponibilit: ActionScript 1.0; Flash Player 6 Parametri
eventName:String

- Il nome dell'evento da trasmettere. Il nome di qualunque metodo listener deve corrispondere a questo parametro per poter ricevere l'evento trasmesso. possibile passare degli argomenti ai metodi listener includendo degli argomenti supplementari dopo eventName.

Esempio L'esempio seguente un estratto dall'esempio completo fornito nella sezione relativa al metodo AsBroadcaster.initialize():
someObject.broadcastMessage("someEvent"); // Broadcast the "someEvent" message.

L'esempio seguente un estratto dal secondo esempio completo fornito nella sezione relativa al metodo AsBroadcaster.initialize(). Mostra come inviare argomenti ai metodi listener.
someObject.broadcastMessage("someEvent", 3, "arbitrary string");

Vedere anche
initialize (metodo AsBroadcaster.initialize), removeListener (metodo AsBroadcaster.removeListener)

AsBroadcaster

277

initialize (metodo AsBroadcaster.initialize)


public static initialize(obj:Object) : Void

Aggiunge le funzioni di notifica degli eventi e gestione listener a un determinato oggetto. Questo metodo statico; deve essere chiamato mediante la classe AsBroadcaster (dove someObject il nome dell'oggetto da inizializzare come evento di trasmissione):
AsBroadcaster.initialize(someObject);

Nota: un errore frequente consiste nell'utilizzare la maiuscola per la seconda lettera di AsBroadcaster. Quando si chiama il metodo AsBroadcaster.initialize(), assicurarsi che la seconda lettera sia minuscola. Un errore ortografico nella scrittura di AsBroadcaster ne impedisce l'esecuzione. Questo metodo aggiunge la propriet _listeners insieme ai tre metodi seguenti all'oggetto specificato dal parametro obj insieme ai tre metodi seguenti:

obj.addListener() obj.removeListener() obj.broadcastMessage()

Disponibilit: ActionScript 1.0; Flash Player 6 Parametri


obj:Object

- Un oggetto che funge da oggetto di trasmissione.

Esempio L'esempio seguente crea un oggetto generico di nome someObject e lo trasforma in un'entit di trasmissione. L'output previsto costituito dalle stringhe mostrate nelle due istruzioni 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"); }

278

Capitolo 2: Classi ActionScript

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'esempio seguente mostra come passare degli argomenti supplementari a un metodo listener mediante il metodo broadcastMessage(). L'output previsto costituito dalle tre stringhe mostrate nelle tre istruzioni trace(), che includono anche gli argomenti passati mediante il metodo 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");

_listeners (propriet AsBroadcaster._listeners)


public _listeners : Array [read-only]

Un elenco di riferimenti a tutti gli oggetti listener registrati. Questa propriet destinata all'uso interno e non deve essere modificata in modo diretto. Gli oggetti vengono aggiunti e rimossi da questo array per mezzo di chiamate ai metodi addListener() e removelistener(). Questa propriet pu essere chiamata solo da un oggetto che sia stato inizializzato mediante il metodo AsBroadcaster.initialize(). Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente mostra come utilizzare la propriet length per determinare il numero di oggetti listener attualmente registrati nell'entit di trasmissione. Il codice seguente funziona se viene aggiunto al primo esempio completo nella sezione Esempi relativa ad AsBroadcaster.initialize().
trace(someObject._listeners.length); // Output: 2

AsBroadcaster

279

Per gli utenti esperti, l'esempio seguente mostra come utilizzare la propriet _listeners per elencare tutti i listener registrati con un'entit di trasmissione, insieme a tutte le propriet di ogni singolo oggetto listener. L'esempio seguente crea due diversi metodi listener per il primo oggetto listener.
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 // 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]); } }

Vedere anche
initialize (metodo AsBroadcaster.initialize)

280

Capitolo 2: Classi ActionScript

removeListener (metodo AsBroadcaster.removeListener)


public removeListener(listenerObj:Object) : Boolean

Rimuove un oggetto dall'elenco degli oggetti che ricevono messaggi di notifica degli eventi. Questo metodo pu essere chiamato solo da un oggetto che sia stato inizializzato mediante il metodo AsBroadcaster.initialize(). Disponibilit: ActionScript 1.0; Flash Player 6 Parametri - Il nome di un oggetto listener che registrato per ricevere la notifica degli eventi da un oggetto di trasmissione.
listenerObj:Object

Valori restituiti
Boolean false.

- Restituisce true se l'oggetto listener viene rimosso; in caso contrario, restituisce

Esempio L'esempio seguente mostra come rimuovere un listener dall'elenco di listener registrati. Il codice seguente funziona se viene aggiunto al primo esempio completo nella sezione Esempi relativa ad AsBroadcaster.initialize(). Le istruzioni trace() sono incluse solo per verificare che il numero di listener registrati sia ridotto di uno dopo la chiamata al metodo removeListener().
trace(someObject._listeners.length); // Output: 2 someObject.removeListener(myListener1); trace(someObject._listeners.length); // Output: 1

Vedere anche
addListener (metodo AsBroadcaster.addListener), initialize (metodo AsBroadcaster.initialize)

AsBroadcaster

281

BevelFilter (flash.filters.BevelFilter)
Object | +-flash.filters.BitmapFilter | +-flash.filters.BevelFilter public class BevelFilter extends BitmapFilter

La classe BevelFilter consente di aggiungere un effetto smusso a una serie di oggetti in Flash. L'effetto smusso dona agli oggetti come i pulsanti un aspetto tridimensionale. possibile personalizzare l'aspetto dello smusso mediante colori di evidenziazione e d'ombra diversi e modificando la quantit della sfocatura dello smusso, l'angolo dello smusso, la posizione dello smusso e l'effetto foratura. L'uso dei filtri dipende dall'oggetto al quale il filtro viene applicato:

Per applicare i filtri a clip filmato, campi di testo e pulsanti in fase di runtime, utilizzare la propriet filters. L'impostazione della propriet filters di un oggetto non modifica l'oggetto e pu essere annullata cancellando la propriet filters. Per applicare filtri a istanze BitmapData, utilizzare il metodo BitmapData.applyFilter(). Quando si chiama applyFilter su un oggetto BitmapData, viene acquisito l'oggetto BitmapData di origine e l'oggetto filter e si genera un'immagine filtrata.

possibile applicare effetti filtro a immagini e video anche in fase di creazione. Per ulteriori informazioni, consultare la documentazione dell'ambiente di creazione. Se si applica un filtro a un clip filmato o a un pulsante, la propriet cacheAsBitmap del clip filmato o pulsante viene impostata su true. Se si cancellano tutti i filtri, viene ripristinato il valore originale di cacheAsBitmap. Questo filtro supporta la modifica in scala sullo stage. Tuttavia, non supporta la modifica in scala, la rotazione e l'inclinazione generiche. Se lo stesso oggetto viene modificato in scala (se _xscale e _yscale non sono 100%), il filtro non viene modificato in scala. La modifica in scala viene apportata solo quando si ingrandisce lo stage. Non viene applicato un filtro se l'immagine risultante supera i 2880 pixel in larghezza o altezza. Se, ad esempio, si ingrandisce un clip filmato grande con filtro applicato, tale filtro viene disattivato se l'immagine risultante supera il limite di 2880 pixel. Disponibilit: ActionScript 1.0; Flash Player 8

282

Capitolo 2: Classi ActionScript

Vedere anche
filters (propriet MovieClip.filters), cacheAsBitmap (propriet MovieClip.cacheAsBitmap), filters (propriet Button.filters), cacheAsBitmap (propriet Button.cacheAsBitmap), filters (propriet TextField.filters), applyFilter (metodo BitmapData.applyFilter), MovieClip

Riepilogo delle propriet


Modificatori Propriet
angle:Number blurX:Number blurY:Number distance:Number

Descrizione
L'angolo dello smusso. La quantit di sfocatura orizzontale espressa in pixel. La quantit di sfocatura verticale espressa in pixel. La distanza di offset dello smusso. evidenziazione.

highlightAlpha:Numbe Il valore di trasparenza alfa del colore di r

highlightColor:Numbe Il colore di evidenziazione dello smusso. r knockout:Boolean

Applica un effetto di foratura (true), che rende trasparente il riempimento dell'oggetto e rivela il colore di sfondo del documento. Il numero di volte di applicazione del filtro Il valore di trasparenza alfa del colore d'ombra. Il colore d'ombra dello smusso. L'intensit dell'impressione o applicazione. Il tipo di smusso.

quality:Number shadowAlpha:Number shadowColor:Number strength:Number type:String

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

BevelFilter (flash.filters.BevelFilter)

283

Riepilogo delle funzioni di costruzione


Firma
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])

Descrizione

BevelFilter([distanc Inizializza una nuova istanza di BevelFilter con i parametri specificati.

Riepilogo dei metodi


Modificatori Firma
clone() : BevelFilter

Descrizione
Restituisce una copia di questo oggetto filtro.

Metodi ereditati dalla classe BitmapFilter


clone (metodo BitmapFilter.clone)

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

284

Capitolo 2: Classi ActionScript

angle (propriet BevelFilter.angle)


public angle : Number

L'angolo dello smusso. I valori accettabili sono quelli compresi tra 0 e 360 gradi. Il valore predefinito 45. Il valore angle rappresenta l'angolatura della sorgente luce teorica che cade sull'oggetto e determina la posizione dell'effetto relativo all'oggetto. Se la distanza impostata su 0, l'effetto non viene spostato dall'oggetto e, pertanto, la propriet angle non ha alcun effetto. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet angle di un'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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)

285

Funzione di costruzione 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])

Inizializza una nuova istanza di BevelFilter con i parametri specificati. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
distance:Number

[opzionale] - La distanza di offset dello smusso, espressa in pixel (a virgola mobile). Il valore predefinito 4. [opzionale] - L'angolo dello smusso, compreso tra 0 e 360 gradi. Il valore predefinito 45.

angle:Number

highlightColor:Number [opzionale] - Il colore di evidenziazione dello smusso, nel formato 0x00RRGGBB. Il valore predefinito 0xFFFFFF. highlightAlpha:Number [opzionale] - Il valore di trasparenza alfa del colore di evidenziazione. I valori validi sono compresi tra 0 e 1. Ad esempio, .25 imposta come valore di trasparenza 25%. Il valore predefinito 1. shadowColor:Number [opzionale] - Il colore dell'ombra dello smusso, nel formato 0xRRGGBB. Il valore predefinito 0x000000. shadowAlpha:Number [opzionale] - Il valore di trasparenza alfa del colore dell'ombra. I valori validi sono compresi tra 0 e 1. Ad esempio, .25 imposta come valore di trasparenza 25%. Il valore predefinito 1. blurX:Number

[opzionale] - La quantit di sfocatura orizzontale espressa in pixel. I valori validi sono compresi tra 0 e 255 (a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori. [opzionale] - La quantit di sfocatura verticale espressa in pixel. I valori validi sono compresi tra 0 e 255 (a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori.

blurY:Number

strength:Number

[opzionale] - L'intensit dell'impressione o applicazione. Pi elevato il valore, maggiore la quantit di colore impressa e maggiore il contrasto tra lo smusso e lo sfondo. I valori validi sono compresi tra 0 e 255. Il valore predefinito 1.

286

Capitolo 2: Classi ActionScript

[opzionale] - Il numero di volte di applicazione del filtro. Il valore predefinito 1, che equivale ad una bassa qualit. Il valore 2 equivale ad una qualit media, mentre 3 corrisponde ad una qualit elevata.
quality:Number type:String "full".

[opzionale] - Il tipo di smusso. I valori accettati sono "inner", "outer" e Il valore predefinito "inner".

Applica un effetto di foratura (true), che rende trasparente il riempimento dell'oggetto e rivela il colore di sfondo del documento. Il valore predefinito false (nessuna foratura).
knockout:Boolean

Esempio L'esempio seguente crea un'istanza di un nuovo BevelFilter e lo applica all'istanza 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);

BevelFilter (flash.filters.BevelFilter)

287

function createRectangle(w:Number, h:Number, bgColor:Number, name:String):MovieClip { 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 (propriet BevelFilter.blurX)


public blurX : Number

La quantit di sfocatura orizzontale espressa in pixel. I valori validi sono compresi tra 0 e 255 (a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet blurX dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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);

288

Capitolo 2: Classi ActionScript

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; }

blurY (propriet BevelFilter.blurY)


public blurY : Number

La quantit di sfocatura verticale espressa in pixel. I valori validi sono compresi tra 0 e 255 (a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet blurY dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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;

BevelFilter (flash.filters.BevelFilter)

289

var filter:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, .8, 0x0000FF, .8, 20, 20, 1, 3, "inner", false); rect.filters = new Array(filter); return rect; }

clone (metodo BevelFilter.clone)


public clone() : BevelFilter

Restituisce una copia di questo oggetto filtro. Disponibilit: ActionScript 1.0; Flash Player 8 Valori restituiti
flash.filters.BevelFilter - Una nuova istanza di BevelFilter con tutte le propriet dell'istanza originale di BevelFilter.

Esempio L'esempio seguente crea tre oggetti BevelFilter e li confronta. possibile creare l'oggetto filter_1 mediante la funzione di costruzione BevelFilter. Creare l'oggetto filter_2 impostandolo uguale a filter_1. Creare clonedFilter clonando filter_1. In questo modo mentre filter_2 viene valutata come uguale a filter_1, questo non avviene per clonedFilter, sebbene contenga gli stessi valori di 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

290

Capitolo 2: Classi ActionScript

// >> highlightColor: 16776960 // >> angle: 45 // >> 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 }

Per dimostrare ulteriormente le relazioni tra filter_1, filter_2 e clonedFilter, l'esempio seguente modifica la propriet knockout di filter_1. La modifica di knockout dimostra che il metodo clone() crea un'istanza basata sui valori di filter_1, invece di fare riferimento ad essi.
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

BevelFilter (flash.filters.BevelFilter)

291

distance (propriet BevelFilter.distance)


public distance : Number

La distanza di offset dello smusso. I valori validi sono espressi in pixel (a virgola mobile). Il valore predefinito 4. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet distance dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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; }

292

Capitolo 2: Classi ActionScript

highlightAlpha (priopriet BevelFilter.highlightAlpha)


public highlightAlpha : Number

Il valore di trasparenza alfa del colore di evidenziazione. Il valore viene specificato come valore normalizzato compreso tra 0 e 1. Ad esempio, .25 imposta come valore di trasparenza 25%. Il valore predefinito 1. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet highlightAlpha dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
import flash.filters.BevelFilter; 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; }

BevelFilter (flash.filters.BevelFilter)

293

highlightColor (propriet BevelFilter.highlightColor)


public highlightColor : Number

Il colore di evidenziazione dello smusso. I valori validi sono espressi nel formato esadecimale 0xRRGGBB. Il valore predefinito 0xFFFFFF. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet highlightColor dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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); } 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; }

294

Capitolo 2: Classi ActionScript

knockout (propriet BevelFilter.knockout)


public knockout : Boolean

Applica un effetto di foratura (true), che rende trasparente il riempimento dell'oggetto e rivela il colore di sfondo del documento. Il valore predefinito false (nessuna foratura). Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet knockout dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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; 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)

295

quality (propriet BevelFilter.quality)


public quality : Number

Il numero di volte di applicazione del filtro Il valore predefinito 1, che equivale ad una bassa qualit. Il valore 2 equivale ad una qualit media, mentre 3 corrisponde ad una qualit elevata. Il rendering dei filtri con valori bassi avviene pi rapidamente. Per la maggior parte delle applicazioni, il valore quality 1, 2 o 3 suficiente. Sebbene sia possibile utilizzare ulteriori valori numerici fino a 15 per ottenere effetti diversi, il rendering di valori superiori viene eseguito pi lentamente. Invece di incrementare il valore di quality, spesso possibile ottenere un effetto simile con un rendering pi veloce, aumentando semplicemente il valore di blurX e blurY. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet quality dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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); } 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; }

296

Capitolo 2: Classi ActionScript

shadowAlpha (propriet BevelFilter.shadowAlpha)


public shadowAlpha : Number

Il valore di trasparenza alfa del colore d'ombra. Questo valore viene specificato come valore normalizzato compreso tra 0 e 1. Ad esempio, .25 imposta come valore di trasparenza 25%. Il valore predefinito 1. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet shadowAlpha dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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; 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

shadowColor (propriet BevelFilter.shadowColor)


public shadowColor : Number

Il colore d'ombra dello smusso. I valori validi sono espressi nel formato esadecimale 0xRRGGBB. Il valore predefinito 0x000000. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet shadowColor dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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); 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; }

298

Capitolo 2: Classi ActionScript

strength (propriet BevelFilter.strength)


public strength : Number

L'intensit dell'impressione o applicazione. I valori validi sono compresi tra 0 e 255. Pi elevato il valore, maggiore la quantit di colore impressa e maggiore il contrasto tra lo smusso e lo sfondo. Il valore predefinito 1. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet strength dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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; 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)

299

type (propriet BevelFilter.type)


public type : String

Il tipo di smusso. I valori accettati sono "inner", "outer" e "full". Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet type dell'istanza MovieClip esistente (rect) quando l'utente fa clic su di essa:
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; }

300

Capitolo 2: Classi ActionScript

BitmapData (flash.display.BitmapData)
Object | +-flash.display.BitmapData public class BitmapData extends Object

La classe BitmapData consente di creare delle immagini bitmap trasparenti e opache con dimensioni arbitrarie e di manipolarle in vari modi in fase di runtime. Questa classe consente di separare le operazioni di rendering bitmap dalle routine interne di aggiornamento della visualizzazione di Flash Player. Manipolando direttamente un oggetto BitmapData possibile creare immagini molto complesse senza la necessit di ridisegnare costantemente il contenuto per ogni fotogramma partendo dai dati vettoriali. I metodi della classe BitmapData supportano una vasta gamma di effetti che non sono disponibili nell'interfaccia generica dei filtri. Un oggetto BitmapData contiene un array di dati pixel. Questi dati possono rappresentare un'immagine bitmap completamente opaca o un'immagine bitmap trasparente contenente dati per il canale alfa. Entrambi i tipi di oggetto BitmapData sono memorizzati sotto forma di buffer di interi a 32 bit. Ogni intero a 32 bit determina le propriet di un singolo pixel nell'immagine bitmap. Ogni intero a 32 bit una combinazione di quattro valori "canale" a 8 bit (da 0 a 255) che descrivono i valori per la trasparenza alfa e per il rosso, il verde e il blu (ARGB) del pixel. I quattro canali (rosso, verde, blu e alfa) vengono rappresentati come numeri se utilizzati con il metodo BitmapData.copyChannel() o le propriet DisplacementMapFilter.componentX e DisplacementMapFilter.componentY come nell'esempio seguente:

1 2 4 8

(rosso) (verde) (blu) (alfa)

Gli oggetti BitmapData possono essere associati ad un oggetto MovieClip mediante il metodo
MovieClip.attachBitmap().

possibile utilizzare un oggetto BitmapData per riempire un'area di un clip filmato mediante il metodo MovieClip.beginBitmapFill(). La larghezza e l'altezza massime di un oggetto BitmapData corrispondono a 2880 pixel. Disponibilit: ActionScript 1.0; Flash Player 8

BitmapData (flash.display.BitmapData)

301

Vedere anche
attachBitmap (metodo MovieClip.attachBitmap), beginBitmapFill (metodo MovieClip.beginBitmapFill)

Riepilogo delle propriet


Modificatori Propriet
lettura]
rectangle:Rectangle

Descrizione

height:Number [di sola L'altezza dell'immagine bitmap espressa in pixel.

[di sola lettura]


transparent:Boolean

Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap. Indica se l'immagine bitmap supporta la trasparenza per pixel. La larghezza dell'immagine bitmap espressa in pixel.

[di sola lettura]


width:Number [di sola

lettura]

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo delle funzioni di costruzione


Firma
ber, height:Number, [transparent:Boolean ], [fillColor:Number])

Descrizione
altezza.

BitmapData(width:Num Crea un nuovo oggetto BitmapData con specificati valori di larghezza e

302

Capitolo 2: Classi ActionScript

Riepilogo dei metodi


Modificatori Firma
applyFilter(sourceBitmap :BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter) : Number clone() : BitmapData

Descrizione
Usa un'immagine di origine ed un oggetto filtro per generare l'immagine filtrata.

Restituisce un nuovo oggetto BitmapData che un clone dell'istanza originale con una copia esatta dell'immagine bitmap contenuta.

Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto colorTransform:ColorTran ColorTransform.
colorTransform(rect:Rect angle, sform) : Void copyChannel(sourceBitmap :BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:Number, destChannel:Number) : Void copyPixels(sourceBitmap: BitmapData, sourceRect:Rectangle, destPoint:Point, [alphaBitmap:BitmapData] , [alphaPoint:Point], [mergeAlpha:Boolean]) : Void dispose() : Void

Trasferisce i dati da un canale di un altro oggetto BitmapData o dell'oggetto BitmapData corrente a un canale dell'oggetto BitmapData corrente.

Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore.

Libera la memoria utilizzata per memorizzare l'oggetto BitmapData.

Disegna un'immagine di origine o un clip filmato su un'immagine di destinazione, [colorTransform:ColorTra utilizzando il renderer di vettori di Flash Player. nsform],
draw(source:Object, [matrix:Matrix], [blendMode:Object], [clipRect:Rectangle], [smooth:Boolean]) : Void fillRect(rect:Rectangle, color:Number) : Void

Riempie un'area rettangolare di pixel con un determinato colore ARGB.

BitmapData (flash.display.BitmapData)

303

Modificatori

Firma
floodFill(x:Number, Void generateFilterRect(sourc eRect:Rectangle, filter:BitmapFilter) : Rectangle getColorBoundsRect(mask: Number, color:Number, [findColor:Boolean]) : Rectangle getPixel(x:Number, y:Number) : Number

Descrizione
Esegue un'operazione di riempimento su y) e riempiendo con un determinato colore. Determina il rettangolo di destinazione su cui agisce la chiamata a applyFilter(), dati un oggetto BitmapData, un rettangolo di origine e un oggetto filtro. Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap. Restituisce un numero intero che rappresenta un valore in pixel RGB da un oggetto BitmapData in un punto specifico (x, y). Restituisce un valore di colore ARGB che contiene dati di canale alfa e dati RGB.

y:Number, color:Number) : un'immagine partendo da una coordinata (x,

getPixel32(x:Number, y:Number) : Number hitTest(firstPoint:Point ,

Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un firstAlphaThreshold:Numb punto, un rettangolo o un'altra immagine er, secondObject:Object, bitmap.
[secondBitmapPoint:Point ], [secondAlphaThreshold:Nu mber]) : Boolean static loadBitmap(id:String) : BitmapData

Restituisce un nuovo oggetto BitmapData contenente la rappresentanzione di un'immagine bitmap del simbolo che viene identificato dall'ID di concatenamento della libreria. Esegue una fusione per ogni canale da un'immagine di origine a una di destinazione.

merge(sourceBitmap:Bitma pData, sourceRect:Rectangle, destPoint:Point, redMult:Number, greenMult:Number, blueMult:Number, alphaMult:Number) : Void

304

Capitolo 2: Classi ActionScript

Modificatori

Firma
noise(randomSeed:Number, [low:Number], [high:Number], [channelOptions:Number], [grayScale:Boolean]) : Void paletteMap(sourceBitmap: BitmapData, sourceRect:Rectangle, destPoint:Point, [redArray:Array], [greenArray:Array], [blueArray:Array], [alphaArray:Array]) : Void perlinNoise(baseX:Number , baseY:Number, numOctaves:Number, randomSeed:Number, stitch:Boolean, fractalNoise:Boolean, [channelOptions:Number], [grayScale:Boolean], [offsets:Object]) : Void pixelDissolve(sourceBitm ap:BitmapData, sourceRect:Rectangle, destPoint:Point, [randomSeed:Number], [numberOfPixels:Number], [fillColor:Number]) : Number scroll(x:Number, y:Number) : Void setPixel(x:Number, Void

Descrizione
Riempie un'immagine con pixel che rappresentano disturbi a caso.

Mappa nuovamente i valori dei canali di colore di un'immagine che ha fino a quattro array di dati della tavolozza, uno per ogni canale.

Genera un'immagine di disturbo Perlin.

Esegue una dissolvenza pixel da un'immagine di origine a una di destinazione oppure utilizzando la stessa immagine.

Scorre un'immagine di una certa quantit di pixel (x, y). Imposta il colore di un singolo pixel di un

y:Number, color:Number) : oggetto BitmapData.

BitmapData (flash.display.BitmapData)

305

Modificatori

Firma
setPixel32(x:Number, Void threshold(sourceBitmap:B itmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:Number, [color:Number], [mask:Number], [copySource:Boolean]) : Number

Descrizione
Imposta il colore e la trasparenza alfa di un

y:Number, color:Number) : singolo pixel di un oggetto BitmapData.

Prova i valori in pixel di un'immagine in base ad una soglia specificata e imposta i pixel che passano la prova a nuovi valori di colore

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

applyFilter (metodo BitmapData.applyFilter)


public applyFilter(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter) : Number

Usa un'immagine di origine ed un oggetto filtro per generare l'immagine filtrata. Questo metodo si basa sul comportamento degli oggetti filtro incorporati, che includono del codice che determina il rettangolo di destinazione su cui agisce un rettangolo di origine di input. Dopo l'applicazione di un filtro, l'immagine risultante pu apparire pi grande di quella di input. Ad esempio, se si utilizza una classe BlurFilter per sfocare un rettangolo di origine con dimensioni (50,50,100,100) e un punto di destinazione con dimensioni (10,10), l'area che viene modificata nell'immagine di destinazione risulta pi grande di (10,10,60,60) a causa della sfocatura. Questo comportamento si verifica internamente durante la chiamata a applyFilter().

306

Capitolo 2: Classi ActionScript

Se il parametro sourceRect del parametro sourceBitmapData una regione interna, ad esempio (50,50,100,100) in un'immagine 200 x 200, il filtro utilizza i pixel di origine fuori del parametro sourceRect per generare il rettangolo di destinazione. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
sourceBitmap:flash.display.BitmapData

- L'immagine bitmap di input da utilizzare. L'immagine di origine pu essere un oggetto BitmapData diverso oppure pu fare riferimento all'istanza BitmapData corrente. - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.

sourceRect:flash.geom.Rectangle

destPoint:flash.geom.Point - Il punto all'interno dell'immagine di destinazione (l'istanza

BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
filter:flash.filters.BitmapFilter - L'oggetto filtro utilizzato per eseguire l'operazione

di filtraggio. Ogni tipo di filtro dotato di determinati requisiti, come illustrato di seguito:

BlurFilter - Questo filtro pu utilizzare immagini di origine e di destinazione sia opache che trasparenti. Se i formati delle immagini non corrispondono, la copia dell'immagine di origine che viene creata durante il filtraggio corrisponde al formato dell'immagine di destinazione. BevelFilter, DropShadowFilter, GlowFilter - L'immagine di destinazione di questi filtri deve essere trasparente. Se si chiama DropShadowFilter o GlowFilter, viene creata un'immagine che contiene i dati del canale alfa dell'ombra esterna o del bagliore. L'ombra esterna non viene creata nell'immagine di destinazione. Se uno di questi filtri viene utilizzato con un'immagine di destinazione opaca, viene restituito un codice di errore con valore -6. ConvolutionFilter - Questo filtro pu utilizzare immagini di origine e di destinazione sia opache che trasparenti. ColorMatrixFilter - Questo filtro pu utilizzare immagini di origine e di destinazione sia opache che trasparenti. DisplacementMapFilter - questo filtro pu utilizzare immagini di destinazione sia opache che trasparenti, ma i formati di origine e di destinazione devono essere uguali.

Valori restituiti
Number - Un numero che indica se il filtro stato applicato correttamente. Se viene restituito 0, il filtro stato applicato correttamente. Se viene restituito un numero negativo, significa che si verificato un errore durante l'applicazione del filtro.

BitmapData (flash.display.BitmapData)

307

Esempio L'esempio seguente mostra come applicare un filtro smussatura ad un'istanza 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); }

Vedere anche
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 (propriet MovieClip.filters)

funzione di costruzione BitmapData


public BitmapData(width:Number, height:Number, [transparent:Boolean], [fillColor:Number])

Crea un nuovo oggetto BitmapData con specificati valori di larghezza e altezza. Se viene specificato un valore del parametro fillColor, ogni pixel nella bitmap viene impostato su tale colore. Per impostazione predefinita, l'immagine bitmap viene creata come opaca, a meno che si passi il valore true per il parametro transparent. Una volta creata un'immagine bitmap opaca, non possibile modificare in bitmap trasparente. Ogni pixel in un'immagine bitmap opaca utilizza solo 24 bit di informazioni dei canali di colore. Se si definisce l'immagine bitmap come transparent, ogni pixel utilizza 32 bit di informazioni dei canali di colore, compreso il canale di trasparenza alfa.

308

Capitolo 2: Classi ActionScript

La larghezza e l'altezza massime di un oggetto BitmapData corrispondono a 2880 pixel. Se per la larghezza e l'altezza si specifica un valore maggiore di 2880, non viene creata una nuova istanza. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
width:Number

- La larghezza dell'immagine bitmap espressa in pixel. - L'altezza dell'immagine bitmap espressa in pixel.

height:Number

[opzionale] - Specifica se l'immagine bitmap supporta la trasparenza per pixel. Il valore predefinito true (transparent). Per creare un'immagine bitmap completamente trasparente, impostare il valore del parametro transparent su true e il valore del parametro fillColor su 0x00000000 (o su 0).
transparent:Boolean fillColor:Number

[opzionale] - Un valore per il colore ARGB a 32 bit che viene utilizzato per riempire l'area dell'immagine bitmap. Il valore predefinito 0xFFFFFFFF (bianco uniforme). Esempio Nell'esempio seguente viene illustrato come creare un nuovo oggetto BitmapData. I valori dati sono quelli predefiniti per i parametri transparent e fillColor; possibile chiamare la funzione di costruzione senza alcun parametro e ottenere lo stesso risultato.

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 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

BitmapData (flash.display.BitmapData)

309

clone (metodo BitmapData.clone)


public clone() : BitmapData

Restituisce un nuovo oggetto BitmapData che un clone dell'istanza originale con una copia esatta dell'immagine bitmap contenuta. Disponibilit: ActionScript 1.0; Flash Player 8 Valori restituiti
flash.display.BitmapData

- Un nuovo oggetto BitmapData identico all'originale.

Esempio
bitmap_1

L'esempio seguente crea tre oggetti BitmapData e li confronta. possibile creare l'istanza mediante la funzione di costruzione BitmapData. Creare l'istanza bitmap_2 impostandolo uguale a bitmap_1. Creare l'istanza clonedBitmap clonando bitmap_1. In questo modo, bench bitmap_2 venga valutata come uguale a bitmap_1, questo non avviene per clonedBitmap, sebbene contenga gli stessi valori di 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] // >> 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]

310

Capitolo 2: Classi ActionScript

// // // // // // // // // }

>> >> >> >> >> >> >> >> >>

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 // >> width: 100 }

Per dimostrare ulteriormente le relazioni tra bitmap_1, bitmap_2 e clonedBitmap, l'esempio seguente modifica il valore dei pixel a (1,1) di bitmap_1. La modifica del valore dei pixel a (1, 1) dimostra che il metodo clone() crea un'istanza basata sui valori di bitmap_1 invece di fare riferimento ad essi.
import flash.display.BitmapData; var bitmap_1:BitmapData = new BitmapData(100, 80, false, 0x000000);

BitmapData (flash.display.BitmapData)

311

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 (metodo BitmapData.colorTransform)


public colorTransform(rect:Rectangle, colorTransform:ColorTransform) : Void

Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto ColorTransform. Se il rettangolo corrisponde ai bordi dell'immagine bitmap, questo metodo trasforma i valori del colore dell'intera immagine. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
rect:flash.geom.Rectangle - Un oggetto Rectangle che definisce l'area dell'immagine in cui viene applicato l'oggetto ColorTransform. colorTransform:flash.geom.ColorTransform

- Un oggetto ColorTransform che descrive

la trasformazione del colore da applicare. Esempio L'esempio seguente mostra come applicare un'operazione di trasformazione del colore ad un'istanza BitmapData.
import flash.display.BitmapData; 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());

312

Capitolo 2: Classi ActionScript

mc.onPress = function() { myBitmapData.colorTransform(myBitmapData.rectangle, new ColorTransform(1, 0, 0, 1, 255, 0, 0, 0)); }

Vedere anche
ColorTransform (flash.geom.ColorTransform), Rectangle (flash.geom.Rectangle)

copyChannel (metodo BitmapData.copyChannel)


public copyChannel(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:Number, destChannel:Number) : Void

Trasferisce i dati da un canale di un altro oggetto BitmapData o dell'oggetto BitmapData corrente a un canale dell'oggetto BitmapData corrente. Tutti i dati degli altri canali dell'oggetto BitmapData di destinazione vengono mantenuti. Il valore del canale di origine e il valore del canale di destinazione possono essere i seguenti:

1 2 4 8

(rosso) (verde) (blu) (alfa)

Disponibilit: ActionScript 1.0; Flash Player 8 Parametri


sourceBitmap:flash.display.BitmapData

- L'immagine bitmap di input da utilizzare. L'immagine di origine pu essere un oggetto BitmapData diverso oppure pu fare riferimento all'oggetto BitmapData corrente. - L'oggetto Rectangle di origine. Se si desidera solo copiare solo i dati del canale da un'area pi piccola all'interno dell'immagine bitmap, specificare un rettangolo di origine pi piccolo delle dimensioni complessive dell'oggetto BitmapData.

sourceRect:flash.geom.Rectangle

destPoint:flash.geom.Point

- L'oggetto Point di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi dati del canale. Per copiare i dati del canale da un'area ad un'altra all'interno dell'immagine di destinazione, specificare un punto diverso da (0,0). - Il canale di origine. Utilizzare un valore del gruppo (1,2,4,8) che rappresenti rispettivamente rosso, verde, blu e alfa.

sourceChannel:Number

destChannel:Number - Il canale di destinazione. Utilizzare un valore del gruppo (1,2,4,8) che rappresenti rispettivamente rosso, verde, blu e alfa.

BitmapData (flash.display.BitmapData)

313

Esempio L'esempio seguente mostra come ricopiare un canale ARGB di origine da un oggetto BitmapData su se stesso in una posizione diversa:
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); }

Vedere anche
Rectangle (flash.geom.Rectangle)

copyPixels (metodo BitmapData.copyPixels)


public copyPixels(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, [alphaBitmap:BitmapData], [alphaPoint:Point], [mergeAlpha:Boolean]) : Void

Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore. Il metodo copia un'area rettangolare di un'immagine di origine in un'area rettangolare delle stesse dimensioni in corrispondenza del punto di destinazione dell'oggetto BitmapData di destinazione. Se vengono inclusi i parametri alphaBitmap e alphaPoint, possibile utilizzare un'immagine secondaria come origine alfa per l'immagine di origine. Se l'immagine di origine contiene dei dati dell'alfa, entrambi i gruppi di dati dell'alfa vengono utilizzati per comporre i pixel dall'immagine di origine all'immagine di destinazione. Il parametro alphaPoint il punto all'interno dell'immagine alfa che corrisponde all'angolo superiore sinistro del rettangolo di origine. Gli eventuali pixel fuori dell'immagine di origine e dell'immagine alfa non vengono copiati nell'immagine di destinazione.

314

Capitolo 2: Classi ActionScript

La propriet mergeAlpha controlla se il canale alfa viene utilizzato quando un'immagine trasparente viene copiata in un'altra immagine trasparente. Per copiare i pixel (senza utilizzare l'alfa), impostare la propriet mergeAlpha su false. In questo modo tutti i pixel vengono copiati dall'origine alla destinazione. Per impostazione predefinita, la propriet mergeAlpha true. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
sourceBitmap:flash.display.BitmapData

- L'immagine bitmap di input da cui copiare i pixel. L'immagine di origine pu essere un'istanza BitmapData diversa oppure pu fare riferimento all'istanza BitmapData corrente. - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.

sourceRect:flash.geom.Rectangle

destPoint:flash.geom.Point -

Il punto di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi pixel. BitmapData alfa.

alphaBitmap:flash.display.BitmapData [opzionale] - Un'origine secondaria dell'oggetto alphaPoint:flash.geom.Point [opzionale] - Il punto all'interno dell'oggetto BitmapData alfa che corrisponde all'angolo superiore sinistro del parametro sourceRect. mergeAlpha:Boolean [opzionale] - Un valore booleano per utilizzare il canale alfa; impostare il valore su true. Per copiare i pixel (senza utilizzare l'alfa), impostare la propriet su false.

Esempio L'esempio seguente mostra come copiare pixel da un'istanza BitmapData ad un'altra.
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;

BitmapData (flash.display.BitmapData)

315

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 (metodo BitmapData.dispose)


public dispose() : Void

Libera la memoria utilizzata per memorizzare l'oggetto BitmapData. Quando questo metodo viene chiamato su un'immagine, i valori della relativa larghezza e altezza vengono impostati su 0. Dopo aver liberato la memoria dell'oggetto BitmapData, le chiamate di accesso a metodi e propriet sull'istanza non danno esito positivo e restituiscono il valore -1. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente mostra come liberare la memoria di un'istanza BitmapData risultante in un'istanza cancellata.
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 trace(myBitmapData.height); // -1 trace(myBitmapData.transparent); // -1 }

316

Capitolo 2: Classi ActionScript

draw (metodo BitmapData.draw)


public draw(source:Object, [matrix:Matrix], [colorTransform:ColorTransform], [blendMode:Object], [clipRect:Rectangle], [smooth:Boolean]) : Void

Disegna un'immagine di origine o un clip filmato su un'immagine di destinazione, utilizzando il renderer di vettori di Flash Player. Per controllare il risultato del rendering possibile utilizzare gli oggetti Matrix, ColorTransform, BlendMode e un oggetto Rectangle di destinazione. Facoltativamente, possibile specificare se la bitmap deve essere smussata quando viene modificata in scala. Ci valido solo se l'oggetto di origine un oggetto BitmapData. Questo metodo corrisponde al modo in cui gli oggetti vengono disegnati mediante il renderer di vettori standard per gli oggetti nell'interfaccia dello strumento di creazione. Un oggetto MovieClip di origine non utilizza nessuna delle relative trasformazioni sullo stage per questa chiamata. Viene considerato come se facesse parte della libreria o del file, senza trasformazioni di matrice, trasformazioni di colore e metodo di fusione. Se si desidera disegnare il clip filmato utilizzandone le propriet di trasformazione, possibile utilizzarne l'oggetto Transform per passare le varie propriet di trasformazione. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
source:Object

- L'oggetto BitmapData da disegnare.

matrix:flash.geom.Matrix

[opzionale] - Un oggetto Matrix utilizzato per modificare in scala, ruotare o convertire le coordinate della bitmap. Se non viene fornito alcun oggetto, l'immagine bitmap non viene trasformata. Se si deve passare questo parametro, ma non si desidera trasformare l'immagine, impostare il parametro su una matrice di identit creata utilizzando la funzione di costruzione predefinita new Matrix().

colorTransform:flash.geom.ColorTransform

[opzionale] - Un oggetto ColorTransform utilizzato per regolare i valori del colore della bitmap. Se non viene fornito alcun oggetto, i colori dell'immagine bitmap non viene trasformata. Se si deve passare questo parametro, ma non si desidera trasformare l'immagine, impostare il parametro su un oggetto ColorTransform creato utilizzando la funzione di costruzione predefinita new ColorTransform(). [opzionale] - Un oggetto BlendMode.

blendMode:Object

clipRect:flash.geom.Rectangle [opzionale] - Un oggetto Rectangle. Se questo valore non

viene fornito, si verificano dei troncamenti.


smooth:Boolean [opzionale] - Un valore booleano che determina se un oggetto BitmapData viene smussato durante la modifica in scala. Il valore predefinito false.

BitmapData (flash.display.BitmapData)

317

Esempio L'esempio seguente mostra come disegnare da un'istanza MovieClip di origine ad un oggetto 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); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; }

318

Capitolo 2: Classi ActionScript

fillRect (metodo BitmapData.fillRect)


public fillRect(rect:Rectangle, color:Number) : Void

Riempie un'area rettangolare di pixel con un determinato colore ARGB. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
rect:flash.geom.Rectangle color:Number

- L'area rettangolare da riempire.

- Il valore di colore ARGB che riempie l'area. I colori ARGB vengono spesso specificati in formato esadecimale (ad esempio, 0xFF336699). Esempio L'esempio seguente mostra come riempire un'area che viene definita da Rectangle all'interno di BitmapData con un colore.

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); }

Vedere anche
Rectangle (flash.geom.Rectangle)

floodFill (metodo BitmapData.floodFill)


public floodFill(x:Number, y:Number, color:Number) : Void

Esegue un'operazione di riempimento su un'immagine partendo da una coordinata (x, y) e riempiendo con un determinato colore. Il metodo floodFill() simile allo strumento "secchio di vernice" presente in molti programmi di illustrazione. Il colore un colore ARGB che contiene le informazioni sia sull'alfa che sui colori. Disponibilit: ActionScript 1.0; Flash Player 8

BitmapData (flash.display.BitmapData)

319

Parametri
x:Number y:Number

- La coordinata x dell'immagine. - La y coordinata dell'immagine.

color:Number

- Il colore ARGB da utilizzare come riempimento. I colori ARGB vengono spesso specificati in formato esadecimale (ad esempio, 0xFF336699). Esempio L'esempio seguente mostra come applicare un riempimento di colore in un'immagine partendo dal punto su cui l'utente fa clic all'interno dell'oggetto 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); }

generateFilterRect (metodo BitmapData.generateFilterRect)


public generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter) : Rettangolo

Determina il rettangolo di destinazione su cui agisce la chiamata a applyFilter(), dati un oggetto BitmapData, un rettangolo di origine e un oggetto filtro. Ad esempio, un filtro sfocatura agisce di solito su un'area pi vasta delle dimensioni dell'immagine originale. Un'immagine di 100 x 200 pixel che viene filtrata da un'istanza BlurFilter predefinita dove blurX = blurY = 4 genera un rettangolo di destinazione di (2,-2,104,204). Il metodo generateFilterRect() consente di determinare in anticipo le dimensioni di questo rettangolo di destinazione per stabilire correttamente le dimensioni dell'immagine di destinazione prima di un'operazione di filtraggio.

320

Capitolo 2: Classi ActionScript

Alcuni filtri troncano il rettangolo di destinazione in base alle dimensioni dell'immagine di origine. Ad esempio, un filtro DropShadow interno non genera un risultato pi grande della relativa immagine di origine. In questa API, l'oggetto BitmapData viene utilizzato come parametro bounds di origine e non come parametro rect di origine. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
sourceRect:flash.geom.Rectangle

- Un rettangolo che definisce l'area dell'immagine di - L'oggetto filtro utilizzato per calcolare il

origine da utilizzare come input.


filter:flash.filters.BitmapFilter

rettangolo di destinazione. Valori restituiti


flash.geom.Rectangle - Un rettangolo di destinazione calcolato mediante un'immagine, il parametro sourceRect e un filtro.

Esempio L'esempio seguente mostra come determinare il rettangolo di destinazione sui cui influisce il metdo applyfilter():
import flash.display.BitmapData; import flash.filters.BevelFilter; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xCCCCCCCC); 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 (metodo BitmapData.getColorBoundsRect)


public getColorBoundsRect(mask:Number, color:Number, [findColor:Boolean]) : Rettangolo

Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap.

BitmapData (flash.display.BitmapData)

321

Ad esempio, se si dispone di un'immagine di origine e si desidera determinare il rettangolo che contiene un canale alfa diverso da 0, passare {mask: 0xFF000000, color: 0x00000000} come parametri. All'interno dell'intera immagine viene effettuata la ricerca dei limiti di pixel di cui (value & mask) != color. Per determinare spazio bianco intorno ad un'immagine, passare {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} per trovare i limiti dei pixel non bianchi. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
mask:Number

- Un valore di colore esadecimale. - Un valore di colore esadecimale.

color:Number

findColor:Boolean

[opzionale] - Se il valore impostato su true, restituisce i limiti di un valore di colore in un'immagine. Se il valore impostato su false, restituisce i limiti del punto in cui questo colore non esiste in un'immagine. Il valore predefinito true. Valori restituiti

flash.geom.Rectangle

- L'area dell'immagine che del colore specificato.

Esempio L'esempio seguente mostra come determinare un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap.
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() { var colorBoundsRect:Rectangle = myBitmapData.getColorBoundsRect(0x00FFFFFF, 0x00FF0000, true); trace(colorBoundsRect); // (x=0, y=0, w=50, h=40) }

322

Capitolo 2: Classi ActionScript

getPixel (metodo BitmapData.getPixel)


public getPixel(x:Number, y:Number) : Number

Restituisce un numero intero che rappresenta un valore in pixel RGB da un oggetto BitmapData in un punto specifico (x, y). Il metodo getPixel() restituisce un valore di pixel non moltiplicato. Non viene restituita alcuna informazione sull'alfa. Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono gi moltiplicati per i dati dell'alfa. Ad esempio, se il valore di alfa 0, anche i canali RGB sono 0, independentemente dai relativi valori non moltiplicati. Questa perdita di dati pu provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi di Flash Player accettano e restituiscono valori non moltiplicati. La rappresentazione sotto forma di pixel interni non moltiplicata prima che venga restituita come valore. Durante un'operazione impostata, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
x:Number y:Number

- La posizione x del pixel. - La posizione y del pixel.

Valori restituiti
Number - Un numero che rappresenta un valore in pixel RGB. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, viene restituito il valore 0.

Esempio L'esempio seguente utilizza il metodo getPixel() per recuperare il valore RGB di un pixel in una specifica posizione x e y.
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

Vedere anche
getPixel32 (metodo BitmapData.getPixel32)

BitmapData (flash.display.BitmapData)

323

getPixel32 (metodo BitmapData.getPixel32)


public getPixel32(x:Number, y:Number) : Number

Restituisce un valore di colore ARGB che contiene dati di canale alfa e dati RGB. Questo metodo simile al metodo getPixel(), che restituisce un colore RGB senza dati relativi al canale alfa. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
x:Number y:Number

- La posizione x del pixel. - La posizione y del pixel.

Valori restituiti
Number

- Un numero che rappresenta un valore in pixel ARGB. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, viene restituito il valore 0. Se l'immagine bitmap stata creata come bitmap opaca e non trasparente, il metodo restituisce un codice di errore -1. Esempio

L'esempio seguente utilizza il metodo getPixel32() per recuperare il valore ARGB di un pixel in una specifica posizione x e y.
import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xFFAACCEE); 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

324

Capitolo 2: Classi ActionScript

Vedere anche
getPixel (metodo BitmapData.getPixel)

height (propriet BitmapData.height)


public height : Number [read-only]

L'altezza dell'immagine bitmap espressa in pixel. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente mostra che la propriet height dell'istanza BitmapData in sola lettura cercando di impostarla e dando esito negativo:
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

hitTest (metodo BitmapData.hitTest)


public hitTest(firstPoint:Point, firstAlphaThreshold:Number, secondObject:Object, [secondBitmapPoint:Point], [secondAlphaThreshold:Number]) : Boolean

Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un punto, un rettangolo o un'altra immagine bitmap. Durante l'esecuzione del rilevamento per zone non vengono considerati allungamenti, rotazioni o altre trasformazioni per nessun oggetto. Se un'immagine opaca, questo metodo la considera un rettangolo completamente opaco. Entrambe le immagini devono essere trasparenti per eseguire un rilevamento per zone a livello di pixel che consideri la trasparenza. Quando si verificano due immagini trasparenti, i parametri di soglia dell'alfa controllano quali valori di canale alfa (da 0 a 255) vengono considerati opachi. Disponibilit: ActionScript 1.0; Flash Player 8

BitmapData (flash.display.BitmapData)

325

Parametri
firstPoint:flash.geom.Point

- Un punto che definisce la posizione di un pixel

nell'istanza BitmapData corrente.


firstAlphaThreshold:Number

- Il valore di canale alfa pi alto che viene considerato opaco per la verifica di rilevamento delle zone attive. - Un oggetto Rectangle, Point o BitmapData.

secondObject:Object

secondBitmapPoint:flash.geom.Point

[opzionale] - Un punto che definisce la posizione di un pixel nel secondo oggetto BitmapData. Utilizzare questo parametro solo quando il valore di secondObject un oggetto BitmapData.

[opzionale] - Il valore di canale alfa pi alto che viene considerato opaco per il secondo oggetto BitmapData. Utilizzare questo parametro solo quando il valore di secondObject un oggetto BitmapData ed entrambi gli oggetti BitmapData sono trasparenti.
secondAlphaThreshold:Number

Valori restituiti
Boolean false.

Un valore booleano. Se viene rilevata una zona, il valore true; in caso contrario

Esempio L'esempio seguente mostra come determinare se un oggetto BitmapData entra in collisione con MovieClip.
import flash.display.BitmapData; import flash.geom.Point; 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); }

326

Capitolo 2: Classi ActionScript

} 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 (metodo BitmapData.loadBitmap)


public static loadBitmap(id:String) : BitmapData

Restituisce un nuovo oggetto BitmapData contenente la rappresentanzione di un'immagine bitmap del simbolo che viene identificato dall'ID di concatenamento della libreria. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
id:String

- Un identificatore di concatenamento di un simbolo presente nella libreria.

Valori restituiti
flash.display.BitmapData

- Una rappresentazione di immagine bitmap del simbolo.

Esempio L'esempio seguente mostra un'immagine bitmap con libraryBitmap dell'identificatore di concatenamento della propria libreria. necessario collegarlo ad un oggetto MovieClip per dargli una rappresentazione visiva.
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());

BitmapData (flash.display.BitmapData)

327

merge (metodo BitmapData.merge)


public merge(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, redMult:Number, greenMult:Number, blueMult:Number, alphaMult:Number) : Void

Esegue una fusione per ogni canale da un'immagine di origine a una di destinazione. La formula seguente viene utilizzata per ciascun canale:
new red dest = (red source * redMult) + (red dest * (256 - redMult) / 256;

I valori redMult, greenMult, blueMult e alphaMult sono i moltiplicatori utilizzati per ciascun canale di colore. L'intervallo di valori validi compreso tra 0 e 256. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
sourceBitmap:flash.display.BitmapData

- L'immagine bitmap di input da utilizzare. L'immagine di origine pu essere un oggetto BitmapData diverso oppure pu fare riferimento all'oggetto BitmapData corrente. - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.

sourceRect:flash.geom.Rectangle

destPoint:flash.geom.Point - Il punto all'interno dell'immagine di destinazione (l'istanza

BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
redMult:Number

- Un numero per cui moltiplicare il valore del canale rosso. - Un numero per cui moltiplicare il valore del canale verde. - Un numero per cui moltiplicare il valore del canale della trasparenza - Un numero per cui moltiplicare il valore del canale blu.

greenMult:Number blueMult:Number

alphaMult:Number

alfa. Esempio L'esempio seguente mostra come incorporare parte di un oggetto BitmapData in un altro.
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());

328

Capitolo 2: Classi ActionScript

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 (metodo BitmapData.noise method)


public noise(randomSeed:Number, [low:Number], [high:Number], [channelOptions:Number], [grayScale:Boolean]) : Void

Riempie un'immagine con pixel che rappresentano disturbi a caso. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
randomSeed:Number

- La scelta casuale da utilizzare.

low:Number [opzionale] - Il valore pi basso da generare per ogni canale (da 0 a 255). Il valore predefinito 0. high:Number [opzionale] - Il valore pi alto da generare per ogni canale (da 0 a 255). Il valore

predefinito 255.
channelOptions:Number [opzionale] - Un numero che pu essere una combinazione di qualsiasi valore dei quattro canali di colore: 1 (rosso), 2 (verde), 4 (blu) e 8(alfa). possibile utilizzare l'operatore OR | per combinare i valori di canale. Il valore predefinito (1 | 2 | 4). grayScale:Boolean

[opzionale] - Un valore booleano. Se il valore true, viene creata un'immagine in scala di grigi impostando tutti i canali di colore sullo stesso valore. La selezione del canale alfa non viene modificata se si imposta questo parametro su true. Il valore predefinito false.

Esempio L'esempio seguente mostra come applicare disturbo di pixel ad un oggetto BitmapData per una bitmap sia a colori sia in bianco e nero.
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);

BitmapData (flash.display.BitmapData)

329

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); }

paletteMap (metodo BitmapData.paletteMap)


public paletteMap(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, [redArray:Array], [greenArray:Array], [blueArray:Array], [alphaArray:Array]) : Void

Mappa nuovamente i valori dei canali di colore di un'immagine che ha fino a quattro array di dati della tavolozza, uno per ogni canale. Flash Player utilizza la formula seguente per generare l'immagine risultante. Una volta calcolati, i valori del rosso, del verde, del blu e della trasparenza alfa vengono sommati mediante l'aritmetica standard a interi a 32 bit. Il valore dei canali rosso, verde, blu e alfa di ogni pixel viene estratto sotto forma di valore indipendente compreso tra 0 e 255. I valori ottenuti vengono quindi utilizzati per la ricerca di nuovi valori di colore nell'array appropriato: redArray, greenArray, blueArray e alphaArray. Ognuno di questi quattro array solitamente contiene 256 valori. Una volta recuperati, tutti e quattro i nuovi valori di canale colore vengono combinati in un valore ARGB standard che viene applicato al pixel. Questo metodo consente di supportare gli effetti su pi canali. Ogni array di input pu contenere valori completi a 32 bit, e non avviene alcuno spostamento quando i valori vengono combinati. Questa routine non supporta il fissaggio di canali singoli. Se per un canale non viene specificato alcun array, il canale di colore viene semplicemente copiato dall'immagine di origine all'immagine di destinazione.

330

Capitolo 2: Classi ActionScript

Questo metodo pu essere utilizzato per numerosi effetti, come la mappatura delle tavolozze generiche (dove un canale viene convertito in un'immagine di colore falsa). possibile anche utilizzare questo metodo per una serie di algoritmi avanzati per la manipolazione dei colori, come gamma, curve, livelli e quantizzazione. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
sourceBitmap:flash.display.BitmapData

- L'immagine bitmap di input da utilizzare. L'immagine di origine pu essere un oggetto BitmapData diverso oppure pu fare riferimento all'oggetto BitmapData corrente. - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.

sourceRect:flash.geom.Rectangle

destPoint:flash.geom.Point

- Il punto all'interno dell'immagine di destinazione (l'oggetto BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.

redArray:Array

[opzionale] - Se redArray non null, red = redArray[source red value] else red = source rect value.
green value] else green = source green value. blueArray:Array

greenArray:Array [opzionale] - Se greenArray non null, green = greenArray[source

[opzionale] - Se blueArray non null, blue = blueArray[source

blue value] else blue = source blue value. alphaArray:Array [opzionale] - Se alphaArray non null, alpha = alphaArray[source alpha value] else alpha = source alpha value.

Esempio L'esempio seguente mostra come utilizzare una mappa della tavolozza per convertire del rosso uniforme in verde e verde uniforme in rosso in un unico oggetto BitmapData.
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);

BitmapData (flash.display.BitmapData)

331

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); }

perlinNoise (metodo BitmapData.perlinNoise)


public perlinNoise(baseX:Number, baseY:Number, numOctaves:Number, randomSeed:Number, stitch:Boolean, fractalNoise:Boolean, [channelOptions:Number], [grayScale:Boolean], [offsets:Object]) : Void

Genera un'immagine di disturbo Perlin. L'algoritmo di generazione del disturbo Perlin interpola e combina singole funzioni di disturbo casuale (definite ottave) in un'unica funzione che genera un disturbo casuale dall'aspetto pi naturale. Come accade nelle ottave musicali, ogni funzione di ottava il doppio della frequenza di quella che la precede. Il disturbo Perlin stato descritto come una "somma frattale di disturbo", dal momento che combina pi serie di disturbo con diversi livelli di dettaglio. Le funzioni di disturbo Perlin possono essere utilizzate per simulare fenomeni naturali e paesaggi, come la trama del legno, le nuvole e le catene montuose. Nella maggior parte dei casi, l'output di una funzione di disturbo Perlin non viene visualizzata direttamente ma viene utilizzata per modificare altre immagini e applicarvi delle variazioni pseudo casuali. Le funzioni semplici di disturbo casuale digitale spesso producono immagini con punti molto contrastati. Questo tipo di forte contrasto non tuttavia frequente in natura. L'algoritmo Perlin per il distrubo mescola pi funzioni di disturbo che operano a diversi livelli di dettaglio. L'algoritmo crea variazioni pi piccole tra valori di pixel adiacenti. Nota: L'algoritmo Perlin prende il nome da Ken Perlin, che lo ha sviluppato dopo aver generato la grafica computerizzata per il film Tron del 1982. Nel 1997 Perlin ha ricevuto un Oscar nella categoria "Technical Achievement" per la funzione del disturbo Perlin. Disponibilit: ActionScript 1.0; Flash Player 8

332

Capitolo 2: Classi ActionScript

Parametri
baseX:Number

- La frequenza da utilizzare nella direzione x. Ad esempio, per generare un disturbo con dimensioni adatte ad un'immagine 64 x 128, passare 64 come valore per baseX.

- La frequenza da utilizzare nella direzione y. Ad esempio, per generare un disturbo con dimensioni adatte ad un'immagine 64 x 128, passare 128 come valore per baseY.
baseY:Number numOctaves:Number - Il numero di ottave o singole funzioni di disturbo da combinare per creare questo disturbo. Un numero pi elevato di ottave crea immagini con maggiore dettaglio, ma richiede tempi di elaborazione pi lunghi. randomSeed:Number

- Il numero di scelta casuale da utilizzare. Se si mantengono inalterati tutti gli altri parametri, possibile generare diversi risultati pseudo casuali variando il valore di scelta casuale. La funzione del disturbo Perlin una funzione di mappatura e non una vera e propria funzione di generazione di numeri casuali, pertanto dalla stessa scelta casuale crea ogni volta gli stessi risultati.

stitch:Boolean

- Un valore booleano. Se il valore true, il metodo tenta di attenuare i bordi di transizione dell'immagine per creare delle texture uniformi da utilizzare come riempimenti bitmap affiancati. - Un valore booleano. Se il valore true, il metodo genera disturbo frattale; in caso contrario genera turbolenza. Un immagine con turbolenza presenta delle discontinuit visibili nel gradiente che possono fornire una migliore approssimazione per effetti visivi pi nitidi come le fiamme o le onde del mare.

fractalNoise:Boolean

channelOptions:Number [opzionale] - Un numero che indica uno o pi canali di colore. Per creare questo valore, possibile utilizzare o combinare uno qualsiasi dei valori dei quattro canali di colore: 1 (rosso), 2 (verde), 4 (blu) e 8(alfa). Si possono combinare i valori di canale utilizzando l'operatore logico OR; possibile, ad esempio, combinare i canali rosso e verde utilizzando il codice seguente: 1 | 2.

[opzionale] - Un valore booleano. Se il valore true, viene creata un'immagine in scala di grigi impostando ogni singolo canale di colore rosso, verde e blu per valori identici. Il valore del canale alfa non viene modificato se questo valore impostato su true. Il valore predefinito false.
grayScale:Boolean offsets:Object

[opzionale] - Un array di punti che corrispondono agli offset x e y di ciascuna ottava. Se si modificano questi valori di offset, possibile effettuare lo scorrimento fluido di un'immagine perlinNoise. Ogni punto nell'array di offset modifica la funzione di disturbo di un'ottava specifica.

BitmapData (flash.display.BitmapData)

333

Esempio L'esempio seguente mostra come applicare il disturbo Perlin ad un oggetto 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()); 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 (metodo BitmapData.pixelDissolve)


public pixelDissolve(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, [randomSeed:Number], [numberOfPixels:Number], [fillColor:Number]) : Number

Esegue una dissolvenza pixel da un'immagine di origine a una di destinazione oppure utilizzando la stessa immagine. Flash Player utilizza un valore randomSeed per generare una dissolvenza pixel casuale. Il valore restituito dalla funzione deve essere passato nelle successive chiamate per continuare la dissolvenza pixel fino al suo completamento. Se l'immagine di origine non uguale a quella di destinazione, i pixel vengono copiati dall'origine alla destinazione mediante tutte le propriet. In questo modo, possibile effettuare una dissolvenza da un'immagine vuota a un'immagine ricca di elementi. Se le immagini di origine e di destinazione sono uguali, i pixel vengono riempiti con il parametro color. In questo modo, possibile effettuare una dissolvenza in uscita da un'immagine ricca di elementi. Il parametro point di destinazione viene ignorato. Disponibilit: ActionScript 1.0; Flash Player 8

334

Capitolo 2: Classi ActionScript

Parametri
sourceBitmap:flash.display.BitmapData

- L'immagine bitmap di input da utilizzare. L'immagine di origine pu essere un oggetto BitmapData diverso oppure pu fare riferimento all'istanza BitmapData corrente. - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.

sourceRect:flash.geom.Rectangle

destPoint:flash.geom.Point - Il punto all'interno dell'immagine di destinazione (l'istanza

BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
randomSeed:Number

[opzionale] - La scelta casuale da utilizzare per avviare la dissolvenza pixel. Il valore predefinito 0. [opzionale] - Il valore predefinito 1/30 dell'area di origine

numberOfPixels:Number

(larghezza x altezza).
fillColor:Number

[opzionale] - Un valore di colore ARGB utilizzato per il riempimento di pixel il cui valore di orgine uguale al valore di destinazine. Il valore predefinito 0. Valori restituiti

Number

- Il nuovo valore di scelta causale da utilizzare per chiamate successive.

Esempio L'esempio seguente utilizza pixelDissolve() per convertire un oggetto BitmapData grigio in uno rosso dissolvendo 40 pixel alla volta finch tutti gli 8000 hanno cambiato colore:
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);

BitmapData (flash.display.BitmapData)

335

clearInterval(intervalId); if(totalDissolved < totalPixels) { intervalId = setInterval(dissolve, 10, newNum); } totalDissolved += 40; }

rectangle (propriet BitmapData.rectangle)


public rectangle : Rectangle [read-only]

Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap. La parte superiore e sinistra del rettangolo hanno valore zero; la larghezza e l'altezza sono uguali alla larghezza e all'altezza espresse in pixel dell'oggetto BitmapData. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente mostra che la propriet rectangle dell'istanza Bitmap in sola lettura cercando di impostarla e dando esito negativo:
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 (metodo BitmapData.scroll)


public scroll(x:Number, y:Number) : Void

Scorre un'immagine di una certa quantit di pixel (x, y). Le aree dei bordi fuori dell'area di scorrimento vengono lasciate invariate. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
x:Number y:Number

- Il valore dello scorrimento orizzontale. - Il valore dello scorrimento verticale.

336

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente mostra come scorrere un oggetto 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, 25, 80), 0x00FF0000); mc.onPress = function() { myBitmapData.scroll(25, 0); }

setPixel (BitmapData.setPixel method)


public setPixel(x:Number, y:Number, color:Number) : Void

Imposta il colore di un singolo pixel di un oggetto BitmapData. Durante l'operazione, il valore corrente del canale alfa dei pixel dell'immagine viene conservato. Il valore del parametro di colore RGB viene gestito come un valore di colore non moltiplicato. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
x:Number y:Number

- La posizione x del pixel il cui valore cambia - La posizione y del pixel il cui valore cambia. - Il colore RGB su cui impostare il pixel.

color:Number

Esempio L'esempio seguente utilizza il metodo setPixel() per assegnare il valore RGB ad un pixel in una specifica posizione x e y. possibile disegnare sull'immagine bitmap creata in 0x000000 tramite trascinamento.
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());

BitmapData (flash.display.BitmapData)

337

mc.onPress = function() { this.onEnterFrame = sketch; } mc.onRelease = function() { delete this.onEnterFrame; } function sketch() { myBitmapData.setPixel(_xmouse, _ymouse, 0x000000); }

Vedere anche
getPixel (metodo BitmapData.getPixel), setPixel32 (metodo BitmapData.setPixel32)

setPixel32 (metodo BitmapData.setPixel32)


public setPixel32(x:Number, y:Number, color:Number) : Void

Imposta il colore e la trasparenza alfa di un singolo pixel di un oggetto BitmapData. Questo metodo simile al metodo setPixel(); la differenza principale consiste nel fatto che il metodo setPixel32() accetta un valore di colore ARGB che contiene le informazioni sul canale alfa. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
x:Number y:Number

- La posizione x del pixel il cui valore cambia - La posizione y del pixel il cui valore cambia.

color:Number - Il colore RGB su cui impostare il pixel. Se stata creata un'immagine bitmap

opaca (non trasparente), la parte di trasparenza alfa di questo valore di colore viene ignorata. Esempio L'esempio seguente utilizza il metodo setPixel32() per assegnare il valore ARGB ad un pixel in una specifica posizione x e y. possibile disegnare sull'immagine bitmap creata in 0x000000 senza un valore alfa tramite trascinamento dopo aver premuto il pulsante del mouse.
import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xFFCCCCCC);

338

Capitolo 2: Classi ActionScript

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; } function sketch() { myBitmapData.setPixel32(_xmouse, _ymouse, 0x00000000); }

Vedere anche
getPixel32 (metodo BitmapData.getPixel32), setPixel (BitmapData.setPixel method)

threshold (metodo BitmapData.threshold)


public threshold(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:Number, [color:Number], [mask:Number], [copySource:Boolean]) : Number

Prova i valori in pixel di un'immagine in base ad una soglia specificata e imposta i pixel che passano la prova a nuovi valori di colore Se si utilizza il metodo threshold(), possibile isolare e sostituire le gamme di colore in un'immagine ed eseguire altre operazioni logiche su pixel di immagine. La logica della verifica di soglia la seguente:
if ((pixelValue & mask) operation (threshold & mask)) then set pixel to color else if (copySource) then set pixel to corresponding pixel value from sourceBitmap

BitmapData (flash.display.BitmapData)

339

Il parametro specifica operation l'operatore di confronto da utilizzare per la verifica di soglia. Ad esempio, se si utilizza "==", possibile isolare il valore di un colore specifico in un'immagine. Oppure utilizzando {operation: "<", mask: 0xFF000000, threshold: 0x7f000000, color: 0x00000000}, possibile impostare tutti i pixel di destinazione in modo che siano trasparenti quando l'alfa del pixel dell'immagine di origine inferiore a 0x7F. Questa tecnica utilizzabile per transizioni animate ed altri effetti. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
sourceBitmap:flash.display.BitmapData

- L'immagine bitmap di input da utilizzare. L'immagine di origine pu essere un oggetto BitmapData diverso oppure pu fare riferimento all'istanza BitmapData corrente. - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.

sourceRect:flash.geom.Rectangle

destPoint:flash.geom.Point - Il punto all'interno dell'immagine di destinazione (l'istanza

BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
operation:String

- Uno degli operatori di confronto seguenti, passati come String: "<", "<=", ">", ">=", "==", "!=" - Il valore su cui si verifica ciascun pixel per vedere se corrisponde a o supera la soglia.

threshold:Number

color:Number

[opzionale] - Il valore di colore su cui impostato un pixel per vedere se soddisfa la verifica di soglia. Il valore predefinito 0x00000000. [opzionale] - La maschera da utilizzare per isolare un componente di colore. Il valore predefinito 0xFFFFFFFF.

mask:Number

copySource:Boolean

[opzionale] - Un valore booleano. Se il valore true, i valori dei pixel dell'immagine di origine viene copiata nella destinazione anche se la verifica della soglia d esito negativo. Se il valore false, l'immagine di origine non viene copiata se la verifica della soglia d esito negativo. Il valore predefinito false. Valori restituiti

Number

- Il numero di pixel modificati.

340

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente mostra come cambiare il valore di colore di pixel il cui valore di colore superiore di o uguale ad una certa soglia.
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); mc.onPress = function() { myBitmapData.threshold(myBitmapData, new Rectangle(0, 0, 100, 40), new Point(0, 0), ">=", 0x00CCCCCC, 0x000000FF, 0x00FF0000, false); }

transparent (propriet BitmapData.transparent)


public transparent : Boolean [read-only]

Indica se l'immagine bitmap supporta la trasparenza per pixel. possibile impostare questo valore solo quando si crea un oggetto BitmapData passando a true per il parametro transparent. Dopo aver creato un oggetto BitmapData, possibile controllare se supporta la trasparenza per pixel verificando che il valore della propriet transparent sia true. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente mostra che la propriet transparent dell'istanza Bitmap in sola lettura cercando di impostarla e dando esito negativo:
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

BitmapData (flash.display.BitmapData)

341

width (propriet BitmapData.width)


public width : Number [read-only]

La larghezza dell'immagine bitmap espressa in pixel. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente mostra che la propriet width dell'istanza Bitmap in sola lettura cercando di impostarla e dando esito negativo:
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.width); // 100 myBitmapData.width = 999; trace(myBitmapData.width); // 100

BitmapFilter (flash.filters.BitmapFilter)
Object | +-flash.filters.BitmapFilter public class BitmapFilter extends Object

La classe base BitmapFilter per tutti gli effetti di filtro immagine. Tutte le classi BevelFilter, BlurFilter, ColorMatrixFilter, ConvolutionFilter e DisplacementMapFilter, DropShadowFilter, GlowFilter, GradientBevelFilter e GradientGlowFilter si estendono alla classe BitmapFilter. Questi effetti di filtro possono essere applicati a immagini bitmap o istanze MovieClip. possibile creare sottoclassi solo per quelle predecenti della classe BitmapFilter. Disponibilit: ActionScript 1.0; Flash Player 8

342

Capitolo 2: Classi ActionScript

Riepilogo delle propriet Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo dei metodi


Modificatori Firma
clone() : BitmapFilter

Descrizione
Restituisce un oggetto BitmapFilter che la copia esatta dell'oggetto BitmapFilter originale.

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

clone (metodo BitmapFilter.clone)


public clone() : BitmapFilter

Restituisce un oggetto BitmapFilter che la copia esatta dell'oggetto BitmapFilter originale. Disponibilit: ActionScript 1.0; Flash Player 8 Valori restituiti
flash.filters.BitmapFilter

- Un oggetto BitmapFilter.

BlurFilter (flash.filters.BlurFilter)
Object | +-flash.filters.BitmapFilter | +-flash.filters.BlurFilter public class BlurFilter extends BitmapFilter

BlurFilter (flash.filters.BlurFilter)

343

La classe BlurFilter consente di applicare un effetto di sfocatura a numerosi oggetti in Flash. L'effetto sfocatura attenua i dettagli di un'immagine. possibile produrre sfocature molto diverse da quelle che producono un effetto leggermente sfuocato fino alle sfocature gaussiane, che hanno un aspetto offuscato come quando si osserva un'immagine attraverso un vetro semiopaco. Quando la propriet quality di questo filtro impostata su 1, il risultato un effetto leggermente sfuocato. Quando il parametro quality di questo filtro impostato su 3, si avvicina ad un filtro di sfocatura gaussiana. L'uso dei filtri dipende dall'oggetto al quale il filtro viene applicato:

Per applicare i filtri a clip filmato, campi di testo e pulsanti in fase di runtime, utilizzare la propriet filters. L'impostazione della propriet filters di un oggetto non modifica l'oggetto e pu essere annullata cancellando la propriet filters. Per applicare filtri a istanze BitmapData, utilizzare il metodo BitmapData.applyFilter(). Quando si chiama applyFilter su un oggetto BitmapData, viene acquisito l'oggetto BitmapData di origine e l'oggetto filter e si genera un'immagine filtrata.

possibile applicare effetti filtro a immagini e video anche in fase di creazione. Per ulteriori informazioni, consultare la documentazione dell'ambiente di creazione. Se si applica un filtro a un clip filmato o a un pulsante, la propriet cacheAsBitmap del clip filmato o pulsante viene impostata su true. Se si cancellano tutti i filtri, viene ripristinato il valore originale di cacheAsBitmap. Questo filtro supporta la modifica in scala sullo stage. Tuttavia, non supporta la modifica in scala, la rotazione e l'inclinazione generiche. Se lo stesso oggetto viene modificato in scala (se _xscale e _yscale non sono 100%), l'effetto del filtro non viene modificato in scala. La modifica in scala viene apportata solo quando si ingrandisce lo stage. Non viene applicato un filtro se l'immagine risultante supera i 2880 pixel in larghezza o altezza. Se, ad esempio, si ingrandisce un clip filmato grande con filtro applicato, tale filtro viene disattivato se l'immagine risultante supera il limite di 2880 pixel. Disponibilit: ActionScript 1.0; Flash Player 8 Vedere anche
filters (propriet MovieClip.filters), cacheAsBitmap (propriet MovieClip.cacheAsBitmap), filters (propriet Button.filters), cacheAsBitmap (propriet Button.cacheAsBitmap), filters (propriet TextField.filters), applyFilter (metodo BitmapData.applyFilter)

344

Capitolo 2: Classi ActionScript

Riepilogo delle propriet


Modificatori Propriet
blurX:Number blurY:Number quality:Number

Descrizione
La quantit di sfocatura orizzontale. La quantit di sfocatura verticale. Il numero di operazioni di sfocatura da eseguire.

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo delle funzioni di costruzione


Firma
mber], [blurY:Number], [quality:Number])

Descrizione

BlurFilter([blurX:Nu Inizializza il filtro con i parametri specificati.

Riepilogo dei metodi


Modificatori Firma Descrizione

clone() : BlurFilter Restituisce una copia di questo oggetto filtro.

Metodi ereditati dalla classe BitmapFilter


clone (metodo BitmapFilter.clone)

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

BlurFilter (flash.filters.BlurFilter)

345

BlurFilter, funzione di costruzione


public BlurFilter([blurX:Number], [blurY:Number], [quality:Number])

Inizializza il filtro con i parametri specificati. I valori seguenti creano un'immagine morbida e sfocata. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
blurX:Number

[opzionale] - La quantit di sfocatura orizzontale da applicare. I valori validi sono compresi tra 0 e 255 (valore a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori. compresi tra 0 e 255 (valore a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori.

blurY:Number [opzionale] - La quantit di sfocatura verticale da applicare. I valori validi sono

quality:Number [opzionale] - Il numero di volte di applicazione del filtro. Il valore predefinito 1, che equivale ad una bassa qualit. Il valore 2 equivale ad una qualit media, mentre 3 corrisponde ad una qualit elevata e si avvicina ad una sfocatura gaussiana.

Esempio L'esempio seguente crea un'istanza di una nuova funzione di costruzione BlurFilter e la applica ad una forma piatta e rettangolare:
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);

346

Capitolo 2: Classi ActionScript

mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc._x = 20; mc._y = 20; return mc; }

blurX (propriet BlurFilter.blurX)


public blurX : Number

La quantit di sfocatura orizzontale. I valori validi sono compresi tra 0 e 255 (a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet blurX di un'istanza MovieClip esistente quando l'utente fa clic su di essa:
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)

347

blurY (propriet BlurFilter.blurY)


public blurY : Number

La quantit di sfocatura verticale. I valori validi sono compresi tra 0 e 255 (a virgola mobile). Il valore predefinito 4. I valori che sono potenze di 2, come 2, 4, 8, 16 e 32, vengono ottimizzati per eseguire il rendering pi rapidamente di altri valori. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente modifica la propriet blurY di un'istanza MovieClip esistente quando l'utente fa clic su di essa:
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 (metodo BlurFilter.clone)


public clone() : BlurFilter

Restituisce una copia di questo oggetto filtro. Disponibilit: ActionScript 1.0; Flash Player 8

348

Capitolo 2: Classi ActionScript

Valori restituiti
flash.filters.BlurFilter

- Una nuova istanza BlurFilter con tutte le propriet dell'istanza originale di BlurFilter. Esempio

L'esempio seguente crea tre oggetti BlurFilter e li confronta. possibile creare l'oggetto filter_1 mediante la funzione di costruzione BlurFilter. Si pu creare l'oggetto filter_2 impostandolo uguale a filter_1. Si pu creare clonedFilter clonando filter_1. In questo modo, bench filter_2 venga valutata come uguale a filter_1, questo non avviene per clonedFilter, sebbene contenga gli stessi valori di 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 }

Per dimostrare ulteriormente le relazioni tra filter_1, filter_2 e clonedFilter, l'esempio seguente modifica la propriet quality di filter_1. La modifica di quality dimostra che il metodo clone() crea una nuova istanza basata sui valori di filter_1, invece di fare riferimento ad essi.
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)

349

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 (propriet BlurFilter.quality)


public quality : Number

Il numero di operazioni di sfocatura da eseguire. II valori validi sono compresi tra 0 e 15. ll valore predefinito 1, che equivale ad una bassa qualit. Un valore 2 equivale ad una qualit media. Il valore 3 equivale ad una qualit alta e si avvicina a una sfocatura gaussiana. Per la maggior parte delle applicazioni, il valore quality 1, 2 o 3 suficiente. Anche se possibile utilizzare ulteriori valori numerici fino a 15 per incrementare il numero di volte di applicazione della sfocatura, determinando un effetto pi sfocato, opportuno sapere che il rendering dei valori pi alti viene eseguito pi lentamente. Invece di incrementare il valore di quality, spesso possibile ottenere un effetto simile con un rendering pi veloce, aumentando semplicemente il valore di blurX e blurY. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente crea un rettangolo e applica un filtro per la sfocatura al rettangolo con un valore quality di 1. Quando si fa clic sul rettangolo, il valore quality aumenta a 3 e il rettangolo diventa pi sfocato.
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);

350

Capitolo 2: Classi 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 un oggetto wrapper con la stessa funzionalit dell'oggetto Boolean standard di JavaScript. Utilizzare la classe Boolean per recuperare il tipo di dati di base o la rappresentazione in formato stringa di un oggetto Boolean. Per creare un oggetto Boolean prima di chiamarne i metodi, utilizzare la nuova funzione di costruzione Boolean(). Disponibilit: ActionScript 1.0; Flash Player 5 Riepilogo delle propriet Propriet ereditate dalla classe Object
constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo delle funzioni di costruzione


Firma
t])

Descrizione

Boolean([value:Objec Crea un oggetto Boolean.

Boolean

351

Riepilogo dei metodi


Modificatori Firma
toString() : String

Descrizione
Restituisce la rappresentazione in formato stringa ("true" o "false") dell'oggetto Boolean. Restituisce true se il tipo di valore di base dell'oggetto Boolean specificato true; false in caso contrario.

valueOf() : Boolean

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

Boolean, funzione di costruzione


public Boolean([value:Object])

Crea un oggetto Boolean. Se si omette il parametro value, l'oggetto Boolean viene inizializzato con il valore false. Se per il parametro value si specifica un valore, il metodo lo valuta e restituisce il risultato sotto forma di un valore booleano in base alle regole specificate nell'intera funzione Boolean(). Disponibilit: ActionScript 1.0; Flash Player 5 Parametri
value:Object

[opzionale] - Qualsiasi espressione. Il valore predefinito false.

Esempio Il codice seguente crea un nuovo oggetto Boolean vuoto di nome myBoolean:
var myBoolean:Boolean = new Boolean();

352

Capitolo 2: Classi ActionScript

toString (metodo Boolean.toString)


public toString() : Stringa

Restituisce la rappresentazione in formato stringa ("true" o "false") dell'oggetto Boolean. Disponibilit: ActionScript 1.0; Flash Player 5 Valori restituiti
String

- Una stringa; "true" o "false".

Esempio Questo esempio crea una variabile di tipo Boolean e utilizza toString() per convertire il valore in una stringa da utilizzare nell'istruzione 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 (metodo Boolean.valueOf)


public valueOf() : Boolean

Restituisce true se il tipo di valore di base dell'oggetto Boolean specificato true; false in caso contrario. Disponibilit: ActionScript 1.0; Flash Player 5 Valori restituiti
Boolean

- Un valore booleano.

Esempio L'esempio seguente mostra come funziona questo metodo e dimostra che il tipo di valore di base di un nuovo oggetto Boolean false:
var x:Boolean = new Boolean(); trace(x.valueOf()); // false x = (6==3+3); trace(x.valueOf()); // true

Boolean

353

Pulsante
Object | +-Button public class Button extends Object

Tutti i simboli di pulsante presenti in un file SWF sono istanze dell'oggetto Button. possibile assegnare un nome di istanza a un pulsante nella finestra di ispezione Propriet e utilizzare i metodi e le propriet della classe Button per gestire i pulsanti con ActionScript. I nomi di istanza dei pulsanti sono visualizzati in Esplora filmato e nella finestra di dialogo Inserisci percorso target del pannello Azioni. La classe Button eredita dalla classe Object. Disponibilit: ActionScript 1.0; Flash Player 6 Vedere anche
Oggetto

Riepilogo delle propriet


Modificatori Propriet
_alpha:Number

Descrizione
Il valore della trasparenza alfa del pulsante specificato da my_btn. La modalit di fusione per il pulsante. cache una rappresentazione interna sotto forma di bitmap del pulsante. Un valore booleano che specifica se un pulsante abilitato. Un array indicizzato che contiene ogni oggetto filtro attualmente associato al pulsante. Un valore booleano che specifica se attorno a un pulsante presente un rettangolo giallo quando il pulsante viene attivato mediante tastiera. L'altezza del pulsante espressa in pixel.

blendMode:Object

cacheAsBitmap:Boolea Se impostato su true, Flash Player memorizza nella n

enabled:Boolean

filters:Array

_focusrect:Boolean

_height:Number

354

Capitolo 2: Classi ActionScript

Modificatori

Propriet
_highquality:Number

Descrizione
Sconsigliata a partire da Flash Player 7: questa propriet stata sconsigliata a favore di Button._quality. Specifica il livello di antialiasing applicato al file SWF corrente. Associa contextMenu dell'oggetto ContextMenu con il pulsante di oggetto my_button. Il nome di istanza del pulsante specificato da my_btn. Un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. Propriet (globale); imposta o recupera la qualit di rendering utilizzata per un file SWF. La rotazione del pulsante, espressa in pixel, rispetto alla posizione originale. modifica in scala del pulsante.

menu:ContextMenu

_name:String _parent:MovieClip

_quality:String

_rotation:Number

scale9Grid:Rectangle L'area rettangolare che definisce le nove aree di

_soundbuftime:Number La propriet che specifica il numero di secondi per cui

un suono viene inserito nel prebuffer prima che ne inizi lo streaming.


tabEnabled:Boolean

Specifica se my_btn incluso nell'ordine di tabulazione automatico. Consente di personalizzare l'ordine di tabulazione in un file SWF. Restituisce il percorso target dell'istanza di pulsante specificata da my_btn. Un valore booleano che indica se altri pulsanti o clip filmato possono ricevere eventi associati al pulsante premuto del mouse. Recupera l'URL del file SWF che ha creato il pulsante.

tabIndex:Number

_target:String [di

sola lettura]
trackAsMenu:Boolean

_url:String [di sola

lettura]
useHandCursor:Boolea Un valore booleano che, se impostato su true (il n

valore predefinito), indica se viene visualizzato un puntatore a forma di mano quando il mouse passa sopra un pulsante. Un valore booleano che indica se il pulsante specificato da my_btn visibile. La larghezza del pulsante espressa in pixel.

_visible:Boolean

_width:Number

Pulsante

355

Modificatori

Propriet
_x:Number

Descrizione
Un numero intero che imposta la coordinata x di un pulsante relativa alle coordinate locali del clip filmato principale. Restituisce la coordinata x della posizione del mouse relativa al pulsante. La scala orizzontale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale. La coordinata y del pulsante relativa alle coordinate locali del clip filmato principale. Indica la coordinata y della posizione del mouse relativa al pulsante. La scala verticale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale.

_xmouse:Number [di

sola lettura]
_xscale:Number

_y:Number

_ymouse:Number [di

sola lettura]
_yscale:Number

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo degli eventi


Event
onDragOut = function() {} onDragOver = function() {} onKeyDown = function() {} onKeyUp = function() {} onKillFocus = function(newFocu s:Object) {} onPress = function() {}

Descrizione
Richiamato quando si fa clic con il pulsante del mouse sul pulsante e successivamente si trascina il puntatore fuori del pulsante. Richiamato quando si preme e trascina il pulsante del mouse fuori del pulsante e successivamente sopra di esso. Richiamato quando un pulsante stato attivato mediante tastiera e viene premuto un tasto. Richiamato quando un pulsante stato attivato e viene rilasciato un tasto. Richiamato quando un pulsante viene disattivato mediante tastiera.

Richiamato quando viene premuto un pulsante.

356

Capitolo 2: Classi ActionScript

Event
onRelease = function() {}

Descrizione
Richiamato quando viene rilasciato un pulsante.

onReleaseOutside Richiamato quando il mouse viene rilasciato mentre il puntatore si trova = function() {}

fuori del pulsante dopo che il pulsante stato premuto mentre il puntatore si trovava sul pulsante. Richiamato quando il puntatore viene spostato fuori dell'area del pulsante. Richiamato quando il puntatore viene spostato sopra dell'area del pulsante. Richiamato quando un pulsante viene attivato mediante tastiera.

onRollOut = function() {} onRollOver = function() {} onSetFocus = function(oldFocu s:Object) {}

Riepilogo dei metodi


Modificatori Firma
getDepth() : Number

Descrizione
Restituisce la profondit dell'istanza del pulsante.

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

_alpha (propriet Button._alpha)


public _alpha : Number

Il valore della trasparenza alfa del pulsante specificato da my_btn. I valori validi sono quelli compresi tra 0 (completamente trasparente) e 100 (completamente opaco). Il valore predefinito 100. Gli oggetti di un pulsante con la propriet _alpha impostata su 0 sono attivi, anche se sono invisibili. Disponibilit: ActionScript 1.0; Flash Player 6

Pulsante

357

Esempio Il codice seguente imposta la propriet _alpha di un pulsante di nome myBtn_btn sul 50% quando l'utente fa clic sul pulsante: Innanzitutto, selezionare l'istanza Button sullo stage. Quindi, assegnargli un nome di istanza di myBtn_btn. Infine, con il fotogramma 1 selezionato, inserire il codice seguente nel pannello Actions:
myBtn_btn.onRelease = function(){ this._alpha = 50; };

Vedere anche
_alpha (propriet MovieClip._alpha), _alpha (propriet TextField._alpha)

blendMode (propriet Button.blendMode)


public blendMode : Object

La modalit di fusione per il pulsante. Il metodo di fusione modifica l'aspetto del pulsante quando si trova in un livello superiore ad un altro oggetto sullo schermo. Flash Player applica la propriet blendMode su ogni singolo pixel del pulsante. Ciascun pixel composto da tre colori componenti (rosso, verde e blu) e ciascuno di essi presenta un valore compreso tra 0x00 e 0xFF. Flash Player confronta ciascun colore componente di un singolo pixel del pulsante con il corrispondente colore del pixel sullo sfondo. Ad esempio, se blendMode impostato su "lighten", Flash Player confronta il valore rosso del pulsante con il valore rosso dello sfondo e utilizza il pi chiaro dei due come valore del componente rosso del colore visualizzato. Nella seguente tabella sono descrittle impostazioni blendMode. Per impostare la propriet possibile utilizzare un numero intero da 1 a 14 oppure una stringa. Le illustrazioni nella tabella mostrano blendMode applicata ad un pulsante (2) se sovrapposto ad un altro oggetto (1) sullo schermo.
blendMode,

358

Capitolo 2: Classi ActionScript

Valore intero
1

Valore stringa Illustrazione


"normal"

Descrizione
Il pulsante appare in primo piano rispetto allo sfondo. I valori di pixel del pulsante sostituiscono quelli dello sfondo. Se il pulsante trasparente, lo sfondo visibile. Impone la creazione di un buffer temporaneo per la precomposizione di un pulsante. Questa operazione avviene automaticamente se in un pulsante presente pi di un oggetto secondario e per il quale viene selezionata un'impostazione blendMode diversa da "normal". Moltiplica i valori dei colori componenti del pulsante per quelli del colore di sfondo, quindi li normalizza dividendo per 0xFF, creando colori pi scuri. Viene comunemente utilizzata per ombre ed effetti di profondit. Ad esempio, se un colore componente, come il rosso, di un pixel nel pulsante e il corrispondente colore del pixel nello sfondo presentano entrambi il valore 0x88, il risultato della moltiplicazione 0x4840. Dividendo per 0xFF viene ottenuto il valore 0x48 per quel colore componente, che una tonalit pi scura di quella del pulsante o di quella dello sfondo.

"layer"

"multiply"

Pulsante

359

Valore intero
4

Valore stringa Illustrazione


"screen"

Descrizione
Moltiplica il complemento (opposto) del colore del pulsante per il complemento del colore di sfondo, creando un effetto di decolorazione. Questa impostazione viene utilizzata comunemente per evidenziare o rimuovere aree nere del pulsante. Seleziona il colore pi chiaro tra i colori componenti del pulsante e quelli dello sfondo (quelli con i valori superiori). Viene generalmente utilizzata per il tipo di sovrimpressione. Ad esempio, se il pulsante ha un pixel con un valore RGB di 0xFFCC33 e il pixel di sfondo ha un valore RGB di 0xDDF800, il valore RGB risultante per il pixel visualizzato 0xFFF833, perch 0xFF > 0xDD, 0xCC < 0xF8 e 0x33 > 0x00 = 33. Seleziona il colore pi scuro tra i colori componenti del pulsante e quelli dello sfondo (quelli con i valori inferiori). Viene generalmente utilizzata per il tipo di sovrimpressione. Ad esempio, se il pulsante ha un pixel con un valore RGB di 0xFFCC33 e il pixel di sfondo ha un valore RGB di 0xDDF800, il valore RGB risultante per il pixel visualizzato 0xDDCC00, perch 0xFF > 0xDD, 0xCC < 0xF8 e 0x33 > 0x00 = 33.

"lighten"

"darken"

360

Capitolo 2: Classi ActionScript

Valore intero
7

Valore stringa Illustrazione


"difference"

Descrizione
Confronta i colori componenti del pulsante con quelli del proprio sfondo e sottrae il colore pi scuro dei due componenti da quello pi chiaro. Viene generalmente utilizzata per i colori pi brillanti. Ad esempio, se il pulsante ha un pixel con un valore RGB di 0xFFCC33 e il pixel di sfondo ha un valore RGB di 0xDDF800, il valore RGB risultante per il pixel visualizzato 0x222C33, perch 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C, e 0x33 - 0x00 = 0x33). Aggiungere i valori dei colori componenti del pulsante a quelli del relativo sfondo, quindi applicare un valore ceiling di 0xFF. Questa impostazione generalmente utilizzata per animare una dissolvenza di schiarimento tra due oggetti. Ad esempio, se il pulsante ha un pixel con un valore RGB di 0xAAA633 e il pixel di sfondo ha un valore RGB di 0xDD2200, il valore RGB risultante per il pixel visualizzato 0xFFC833, perch 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 e 0x33 + 0x00 = 0x33.

"add"

Pulsante

361

Valore intero
9

Valore stringa Illustrazione


"subtract"

Descrizione
Sottrae il valore dei colori componenti del pulsante da quelli dello sfondo e applica il valore floor 0. Questa impostazione generalmente utilizzata per l'imazione di una dissolvenza con effetto di scurimento tra due oggetti. Ad esempio, se il pulsante ha un pixel con un valore RGB di 0xAA2233 e il pixel di sfondo ha un valore RGB di 0xDDA600, il valore RGB risultante per il pixel visualizzato 0x338400, perch 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 e 0x00 - 0x33 < 0x00. Inverte lo sfondo.

10

"invert"

11

"alpha"

Applica il valore di alfa di ciascun pixel del pulsante allo sfondo. Ci richiede il "livello" blendMode da applicare ad un pulsante principale. Ad esempio, nell'illustrazione, il pulsante principale, che uno sfondo bianco, presenta blendMode = "layer". Elimina lo sfondo basato sul valore di alfa del pulsante. Ci richiede l'impostazione "layer" blendMode da applicare ad un pulsante principale. Ad esempio, nell'illustrazione, il pulsante principale, che uno sfondo bianco, presenta blendMode = "layer".

12

"erase"

362

Capitolo 2: Classi ActionScript

Valore intero
13

Valore stringa Illustrazione


"overlay"

Descrizione
Regola il colore di ogni immagine bitmap che si basa sullo scurezza dello sfondo. Se lo sfondo pi chiaro del grigio del 50%, i colori del pulsante e dello sfondo vengono nascosti, determinando un colore pi chiaro. Se lo sfondo pi scuro del grigio del 50%, i colori del pulsante e dello sfondo vengono moltiplicati, determinando un colore pi chiaro. Questa impostazione viene generalmente utilizzata per gli effetti di ombreggiatura. Regola il colore di ogni immagine bitmap che si basa sullo scurezza del pulsante. Se il pulsante pi chiaro del grigio del 50%, i colori del pulsante e dello sfondo vengono nascosti, determinando un colore pi chiaro. Se il pulsante pi scuro del grigio del 50%, i colori del pulsante e dello sfondo vengono moltiplicati, determinando un colore pi chiaro. Questa impostazione viene generalmente utilizzata per gli effetti di ombreggiatura.

14

"hardlight"

Se si tenta di impostare la propriet blendMode su qualsiasi altro valore, Flash imposta la propriet su "normal". Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente mostra che se si imposta la propriet su un numero intero, Flash converte il valore nella corrispondete versione stringa:
my_button.blendMode = 8; trace (my_button.blendMode) // add

Per un esempio correlato, vedere la descrizione della propriet blendMode della classe MovieClip.

Pulsante

363

Vedere anche
blendMode (propriet MovieClip.blendMode)

cacheAsBitmap (propriet Button.cacheAsBitmap)


public cacheAsBitmap : Boolean

Se impostato su true, Flash Player memorizza nella cache una rappresentazione interna sotto forma di bitmap del pulsante. In questo modo possibile aumentare le prestazioni dei pulsanti con contenuti vettoriali complessi. Per un pulsante che ha cacheAsBitmap impostato su true, Flash Player memorizza la rappresentazione di un'immagine bitmap per ciascuno dei quattro stati del pulsante. Tutti i dati vettoriali per un pulsante con una bitmap memorizzata nella cache vengono disegnati sulla bitmap anzich sullo stage principale. La bitmap viene quindi copiata sullo stage principale sotto forma di pixel non allungati n ruotati, agganciati ai limiti di pixel pi vicini. I pixel vengono mappati uno ad uno con l'oggetto principale. Se i limiti della bitmap cambiano, questa viene ricreata anzich essere allungata. Non viene creata alcuna bitmap interna, a meno che la propriet cacheAsBitmap sia impostata su true. Il rendering non viene modificato dopo l'impostazione della propriet cacheAsBitmap di un pulsante su true, tuttavia il pulsante esegue automaticamente l'aggancio dei pixel. La velocit dell'animazione pu essere notevolmente aumentata, a seconda della complessit del contenuto vettoriale. La propriet cacheAsBitmap viene impostata automaticamente su true ogni volta che si applica un filtro a un pulsante (quando l'array filter non vuoto); e se a un pulsante applicato un filtro, la propriet cacheAsBitmap risulta true anche se viene impostata su false. Se tutti i filtri di un pulsante vengono rimossi, l'impostazione cacheAsBitmap ripristina l'ultimo valore impostato. Nei casi seguenti, un pulsante non utilizza una bitmap anche se la propriet cacheAsBitmap impostata su true e, al contrario, esegue il rendering dai dati vettoriali:

Quando la bitmap di dimensioni troppo estese (pi di 2880 pixel in una qualsiasi delle direzioni) Quando la bitmap non riesce ad allocare memoria a causa di un errore di memoria esaurita

364

Capitolo 2: Classi ActionScript

L'uso della propriet cacheAsBitmap pi adatto ai pulsanti che includono contenuto statico e non vengono modificati in scala e ruotati frequentemente. Con questo tipo di pulsanti, la propriet cacheAsBitmap pu consentire miglioramenti delle prestazioni in caso di conversione di un pulsante (quando viene modificata la posizione di x e y). Disponibilit: ActionScript 1.0; Flash Player 8 Esempio
myButton.

L'esempio seguente applica un'ombra esterna all'istanza Button esistente denominata Evidenzia, quindi, il valore di cacheAsBitmap, impostato su true quando si applica un filtro.

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 (propriet Button.enabled)


public enabled : Boolean

Un valore booleano che specifica se un pulsante abilitato. Quando un pulsante disabilitato, ovvero con la propriet enabled impostata su false, visibile ma non selezionabile con un clic. Il valore predefinito true. Questa propriet particolarmente utile se si desidera disabilitare parte della navigazione; ad esempio, possibile disabilitare un pulsante nella pagina visualizzata in modo che non sia possibile selezionarlo e ricaricare la pagina. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente mostra come possibile disabilitare e abilitare il clic sui pulsanti. Due pulsanti, myBtn1_btn e myBtn2_btn,, si trovano sullo stage, e viene aggiunto il codice ActionScript seguente per impedire di fare clic sul pulsante myBtn2_btn: Innanzitutto, selezionare le istanze dei due pulsanti sullo stage. Quindi, assegnare loro i nomi di istanza di myBtn1_btn e myBtn2_btn. Infine, inserire il codice seguente sul fotogramma 1 per attivare o disattivare i pulsanti.
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

Pulsante

365

myBtn1_btn.onRelease = function() { trace( "you clicked : " + this._name ); }; myBtn2_btn.onRelease = function() { trace( "you clicked : " + this._name ); };

filters (propriet Button.filters)


public filters : Array

Un array indicizzato che contiene ogni oggetto filtro attualmente associato al pulsante. Il pacchetto flash.filters contiene diverse classi che definiscono dei filtri speciali. I filtri possono essere applicati mediante lo strumento di creazione di Flash in fase di progettazione o in fase di runtime utilizzando codice ActionScript. Per applicare un filtro utilizzando codice ActionScript, necesario eseguire una copia temporanea dell'intero array Button.filters, modificare l'array temporaneo, quindi riassegnare il valore di questo array temporaneo all'array Button.filters. Non possibile aggiungere direttamente un nuovo oggetto filtro all'array Button.filters. Il codice seguente non ha alcun effetto sul pulsante di destinazione, denominato myButton:
myButton.filters[0].push(myDropShadow);

Per aggiungere un filtro utilizzando ActionScript, necessario procedere nel modo descritto di seguito (si presuppone che il clip filmato di destinazione sia denominato myButton):

Creare un nuovo oggetto filtro mediante la funzione di costruzione della classe di filtri scelta. Assegnare il valore dell'array myButton.filters all'array temporaneo, come uno denominato myFilters. Aggiungere il nuovo oggetto filtro all'array temporaneo myFilters. Assegnare il valore dell'array temporaneo all'array myButton.filters.

Se l'array filters vuoto, non utilizzare un array temporaneo. possibile, invece, assegnare direttamente un valore letterale array contenente uno o pi oggetti filtro personalizzati. Per modificare un oggetto filtro esistente, creato in fase di progettazione o di runtime, necesario utilizzare la tecnica di modifica di una copia dell'array filters:

Assegnare il valore dell'array myButton.filters all'array temporaneo, come uno denominato myFilters. Modificare la propriet mediante l'array temporaneo myFilters. Ad esempio, se si desidera impostare la propriet quality del primo filtro dell'array, possibile utilizzare il codice seguente: myList[0].quality = 1; Assegnare il valore dell'array temporaneo all'array myButton.filters.

366

Capitolo 2: Classi ActionScript

Per eliminare i filtri di un pulsante, impostare filters su un array vuoto ([]). Al momento del caricamento, se a un pulsante associato un filtro, viene contrassegnato in modo che sia memorizzato automaticamente nella cache come una bitmap trasparente. Da questo punto in avanti, a condizione che al pulsante sia associato un elenco di filtri valido, il pulsante viene memorizzato nella cache come bitmap. Questa bitmap viene utilizzata come immagine di origine per gli effetti filtro. Ogni pulsante di solito dispone di due gruppi di butmap: uno con il pulsante di orgine non filtrato originale e l'altro per le immagini finali (in ciascuno dei quattro stati del pulsante) dopo il filtraggio. Il gruppo di immagini finali viene utilizzato al momento del rendering. Se il pulsante non viene modificato, l'immagine finale non richiede alcun aggiornamento. Se si utilizza un array filters contenente pi filtri ed necessario tenere traccia del tipo di filtro assegnato a ogni indice dell'array, possibile mantenere l'array filters personalizzato e utilizzare una struttura di dati separata per tenere traccia del tipo di filtro associato a ogni indice dell'array. Non esiste un modo semplice per determinare il tipo di filtro associato a ogni indice dell'array filters. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio Nell'esempio seguente viene aggiunto un filtro di ombra esterna a un pulsante denominato 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;

Nell'esempio seguente viene modificata su 15 l'impostazione quality del primo filtro contenuto nell'array (questo esempio valido solo se al campo di testo stato associato almeno un oggetto filtro myButton):
var myList:Array = myButton.filters; myList[0].quality = 15; myButton.filters = myList;

Vedere anche , cacheAsBitmap (propriet Button.cacheAsBitmap)

Pulsante

367

_focusrect (propriet Button._focusrect)


public _focusrect : Boolean

Un valore booleano che specifica se attorno a un pulsante presente un rettangolo giallo quando il pulsante viene attivato mediante tastiera. Questa propriet pu sostituire la propriet _focusrect globale. Per impostazione predefinita, la propriet _focusrect di un'istanza di pulsante null; in altre parole, l'istanza di pulsante non sostituisce la propriet _focusrect globale. Se la propriet _focusrect di un'istanza di pulsante true o false, sostituisce l'impostazione della propriet _focusrect globale della singola istanza di pulsante. Nei file SWF di Flash Player 4 o Flash Player 5, la propriet _focusrect controlla la propriet globale. Si tratta di un valore booleano. Questo comportamento stato modificato in Flash Player 6 e versioni successive per consentire la personalizzazione della propriet _focusrect di un clip filmato singolo.
_focusrect

Se la propriet _focusrect impostata su false, per il pulsante la navigazione mediante tastiera limitata al tasto Tab. Tutti gli altri tasti vengono ignorati, compresi Invio e i tasti freccia. Per ripristinare la navigazione mediante tutta la tastiera, necessario impostare _focusrect su true. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio mostra come nascondere il rettangolo giallo attorno a un'istanza di pulsante specificata di un file SWF quando questa stata attivata mediante tastiera in una finestra del browser. Creare tre pulsanti di nome myBtn1_btn, myBtn2_btn e myBtn3_btn, quindi aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
myBtn2_btn._focusrect = false;

Configurare le impostazioni di pubblicazione per Flash Player 6 e provare il file SWF in una finestra del browser selezionando File > Anteprima pubblicazione > HTML. Rendere attivo il file SWF facendo clic su di esso nella finestra del browser e utilizzare il tasto Tab per rendere attiva ciascuna istanza. Se _focusrect disabilitata, non possibile eseguire il codice per questo pulsante premendo il tasto Invio o la barra spaziatrice.

368

Capitolo 2: Classi ActionScript

getDepth (metodo Button.getDepth)


public getDepth() : Number

Restituisce la profondit dell'istanza del pulsante. A ogni clip filmato, pulsante e campo di testo associata una profondit univoca che determina il modo in cui l'oggetto viene visualizzato davanti o dietro ad altri oggetti. Gli oggetti con profondit superiori compaiono in primo piano. Disponibilit: ActionScript 1.0; Flash Player 6 Valori restituiti
Number

- La profondit dell'istanza del pulsante.

Esempio Se si crea myBtn1_btn e myBtn2_btn sullo stage, possibile tracciarne la profondit mediante il codice ActionScript seguente:
trace(myBtn1_btn.getDepth()); trace(myBtn2_btn.getDepth());

Se si carica un file SWF di nome buttonMovie.swf in questo documento, possibile tracciare la profondit di un pulsante di nome myBtn4_btn all'interno del file SWF mediante un altro pulsante nel file SWF principale:
this.createEmptyMovieClip("myClip_mc", 999); myClip_mc.loadMovie("buttonMovie.swf"); myBtn3_btn.onRelease = function(){ trace(myClip_mc.myBtn4_btn.getDepth()); };

Come si noter, due di questi pulsanti hanno lo stesso valore di profondit, uno nel file SWF principale e uno nel file SWF caricato. Si tratta tuttavia di una situazione fuorviante, poich buttonMovie.swf stato caricato con profondit 999, che significa che anche il pulsante che esso contiene ha profondit 999 relativa ai pulsanti del file SWF principale. importante tenere presente che ogni clip filmato ha uno z-order interno; in altre parole, ogni clip filmato dotato di un proprio set di valori di profondit. possibile che i due pulsanti abbiano lo stesso valore di profondit, tuttavia i valori hanno un significato solo in relazione agli altri oggetti dello stesso z-order. In questo caso, i pulsanti hanno lo stesso valore di profondit ma i valori sono relativi a clip filmato diversi. Ad esempio, il valore di profondit del pulsante nel file SWF principale relativo allo z-order della linea temporale principale, mentre il valore di profondit del pulsante SWF caricato relativo allo z-order interno del clip filmato myClip_mc.

Pulsante

369

Vedere anche
getDepth (metodo MovieClip.getDepth), getDepth (metodo TextField.getDepth),

_height (propriet Button._height)


public _height : Number

L'altezza del pulsante espressa in pixel. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente imposta l'altezza e la larghezza specificate per un pulsante di nome my_btn.
my_btn._width = 500; my_btn._height = 200;

_highquality (propriet Button._highquality)


public _highquality : Number

Sconsigliata a partire da Flash Player 7: questa propriet stata sconsigliata a favore di Button._quality. Specifica il livello di antialiasing applicato al file SWF corrente. Specificare 2 (migliore qualit) per applicare un'alta qualit con lo smussamento bitmap sempre abilitato. Specificare 1 (alta qualit) per applicare l'antialiasing; le immagini bitmap vengono attenuate se il file SWF non contiene animazioni ed il valore predefinito. Specificare 0 (bassa qualit) per impedire l'antialiasing. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Aggiungere un'istanza di pulsante allo stage e denominarlo myBtn_btn. Disegnare un ovale sullo stage mediante lo strumento Ovale per cui sia stato impostato il colore del tratto e del riempimento. Selezionare il fotogramma 1 e aggiungere il codice ActionScript seguente mediante il pannello Azioni:
myBtn_btn.onRelease = function() { myBtn_btn._highquality = 0; };

Quando si fa clic su myBtn_btn, il tratto del cerchio appare irregolare. possibile aggiungere il codice ActionScript seguente per interessare tutto il file SWF:
_quality = 0;

370

Capitolo 2: Classi ActionScript

Vedere anche
_quality (propriet Button._quality), _quality, propriet

menu (propriet Button.menu)


public menu : ContextMenu

Associa contextMenu dell'oggetto ContextMenu con il pulsante di oggetto my_button. La classe ContextMenu consente di personalizzare il menu di scelta rapida che viene visualizzato quando l'utente fa clic con il pulsante destro del mouse (Windows) o fa clic tenendo premuto il tasto Ctrl (Macintosh) in Flash Player. Disponibilit: ActionScript 1.0; Flash Player 7 Esempio
myBtn_btn.

L'esempio seguente assegna un oggetto ContextMenu a un'istanza di pulsante di nome L'oggetto ContextMenu contiene una sole voce di menu ("Save...") a cui associata una funzione di gestore di callback di nome doSave. Aggiungere l'istanza di pulsante allo stage e denominarla 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 "); } myBtn_btn.menu = menu_cm;

Selezionare Controllo > Prova filmato per provare il file SWF. Con il puntatore sopra myBtn_btn, fare clic con il pulsante destro del mouse oppure fare clic tenendo premuto il tasto Ctrl. Viene visualizzato il menu di scelta rapida, con l'opzione Save. Quando si seleziona Save nel menu, viene visualizzato il pannello Output. Vedere anche
ContextMenu, ContextMenuItem, menu (propriet MovieClip.menu), menu (propriet TextField.menu)

Pulsante

371

_name (propriet Button._name)


public _name : String

Il nome di istanza del pulsante specificato da my_btn. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia tutti i nomi di istanza per le istanze di Button all'interno della linea temporale corrente di un file SWF.
for (i in this) { if (this[i] instanceof Button) { trace(this[i]._name); } }

onDragOut (gestore Button.onDragOut)


onDragOut = function() {}

Richiamato quando si fa clic con il pulsante del mouse sul pulsante e successivamente si trascina il puntatore fuori del pulsante. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente mostra come eseguire delle istruzioni quando il puntatore viene trascinato fuori da un pulsante. Creare un pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente in un fotogramma della linea temporale:
my_btn.onDragOut = function() { trace("onDragOut: "+this._name); }; my_btn.onDragOver = function() { trace("onDragOver: "+this._name); };

372

Capitolo 2: Classi ActionScript

onDragOver (gestore Button.onDragOver)


onDragOver = function() {}

Richiamato quando si preme e trascina il pulsante del mouse fuori del pulsante e successivamente sopra di esso. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente definisce una funzione per il gestore onDragOver che invia un'istruzione trace() al pannello Output. Creare un pulsante di nome my_btn, quindi immettere il codice ActionScript seguente nella linea temporale:
my_btn.onDragOut = function() { trace("onDragOut: "+this._name); }; my_btn.onDragOver = function() { trace("onDragOver: "+this._name); };

Quando si prova il file SWF, trascinare il puntatore fuori dell'istanza di pulsante. Quindi, tenendo premuto il pulsante del mouse, trascinarlo nuovamente su di essa. Il pannello Output tiene traccia dei movimenti. Vedere anche
onDragOut (gestore Button.onDragOut)

onKeyDown (gestore Button.onKeyDown)


onKeyDown = function() {}

Richiamato quando un pulsante stato attivato mediante tastiera e viene premuto un tasto. Il gestore di eventi onKeyDown viene richiamato senza parametri. I metodi Key.getAscii() e Key.getCode() consentono di determinare quale tasto stato premuto. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6

Pulsante

373

Esempio Nell'esempio seguente, una funzione che invia del testo al pannello Output viene definita per il gestore onKeyDown. Creare un pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente in un fotogramma della linea temporale:
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; }

Selezionare Controllo > Prova filmato per provare il file SWF. Assicurarsi di aver selezionato Controllo > Disattiva tasti di scelta rapida nell'ambiente di prova. Quindi, premere il tasto Tab finch il pulsante non diventa attivo (un rettangolo giallo viene visualizzato attorno all'istanza di my_btn) e iniziare a premere i tasti della tastiera. Quando vengono premuti, i tasti vengono visualizzati nel pannello Output. Vedere anche
onKeyUp (gestore Button.onKeyUp), getAscii (metodo Key.getAscii), getCode (metodo Key.getCode)

onKeyUp (gestore Button.onKeyUp)


onKeyUp = function() {}

Richiamato quando un pulsante stato attivato e viene rilasciato un tasto. Il gestore di eventi onKeyUp viene richiamato senza parametri. I metodi Key.getAscii() e Key.getCode() consentono di determinare quale tasto stato premuto. Disponibilit: ActionScript 1.0; Flash Player 6

374

Capitolo 2: Classi ActionScript

Esempio Nell'esempio seguente, una funzione che invia del testo al pannello Output viene definita per il gestore onKeyDown handler. Creare un pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente in un fotogramma della linea temporale:
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; }

Premere Ctrl+Invio per provare il file SWF. Assicurarsi di aver selezionato Controllo > Disattiva tasti di scelta rapida nell'ambiente di prova. Quindi, premere il tasto Tab finch il pulsante non diventa attivo (un rettangolo giallo viene visualizzato attorno all'istanza di my_btn) e iniziare a premere i tasti della tastiera. Quando vengono premuti, i tasti vengono visualizzati nel pannello Output. Vedere anche
onKeyDown (gestore Button.onKeyDown), getAscii (metodo Key.getAscii), getCode (metodo Key.getCode)

onKillFocus (gestore Button.onKillFocus)


onKillFocus = function(newFocus:Object) {}

Richiamato quando un pulsante viene disattivato mediante tastiera. Il gestore onKillFocus riceve un solo parametro, newFocus, che un oggetto che rappresenta il nuovo oggetto che viene attivato. Se non viene attivato alcun oggetto, newFocus contiene il valore null. Disponibilit: ActionScript 1.0; Flash Player 6

Pulsante

375

Parametri
newFocus:Object

- L'oggetto che viene attivato.

Esempio L'esempio seguente mostra come possibile eseguire le istruzioni quando un pulsante non pi l'elemento attivo. Creare un'istanza di pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
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; };

Provare il file SWF in una finestra del browser e provare a utilizzare il tasto Tab per spostarsi tra gli elementi della finestra. Quando l'istanza del pulsante non pi l'elemento attivo, il testo viene inviato nel campo di testo output_txt. Il metodo MovieClip.getNextHighestDepth() utilizzato nell'esempio richiede Flash Player 7 o una versione successiva. Se il file SWF include un componente della versione 2, utilizzare la classe DepthManager dei componenti della versione 2 invece del metodo MovieClip.getNextHighestDepth().

onPress (gestore Button.onPress)


onPress = function() {}

Richiamato quando viene premuto un pulsante. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onPress.
my_btn.onPress = function () { trace ("onPress called"); };

376

Capitolo 2: Classi ActionScript

onRelease (gestore Button.onRelease)


onRelease = function() {}

Richiamato quando viene rilasciato un pulsante. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onRelease.
my_btn.onRelease = function () { trace ("onRelease called"); };

onReleaseOutside (gestore Button.onReleaseOutside)


onReleaseOutside = function() {}

Richiamato quando il mouse viene rilasciato mentre il puntatore si trova fuori del pulsante dopo che il pulsante stato premuto mentre il puntatore si trovava sul pulsante. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onReleaseOutside.
my_btn.onReleaseOutside = function () { trace ("onReleaseOutside called"); };

onRollOut (gestore Button.onRollOut)


onRollOut = function() {}

Richiamato quando il puntatore viene spostato fuori dell'area del pulsante. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6

Pulsante

377

Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onRollOut.
my_btn.onRollOut = function () { trace ("onRollOut called"); };

onRollOver (gestore Button.onRollOver)


onRollOver = function() {}

Richiamato quando il puntatore viene spostato sopra dell'area del pulsante. necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onRollOver.
my_btn.onRollOver = function () { trace ("onRollOver called"); };

onSetFocus (gestore Button.onSetFocus)


onSetFocus = function(oldFocus:Object) {}

Richiamato quando un pulsante viene attivato mediante tastiera. Il parametro oldFocus indica l'oggetto che viene disattivato. Ad esempio, se l'utente preme il tasto Tab per passare da un campo di testo a un pulsante, oldFocus contiene l'istanza del campo di testo. Se in precedenza non stato attivato alcun oggetto, oldFocus contiene il valore null. Disponibilit: ActionScript 1.0; Flash Player 6 Parametri
oldFocus:Object

- L'oggetto che viene disattivato da tastiera.

378

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente mostra come eseguire le istruzioni quando l'utente di un file SWF passa da un pulsante a un altro mediante tastiera. Creare due pulsanti di nome btn1_btn e btn2_btn, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
Selection.setFocus(btn1_btn); trace(Selection.getFocus()); btn2_btn.onSetFocus = function(oldFocus) { trace(oldFocus._name + "lost focus"); };

Provare il file SWF premendo Ctrl+Invio. Assicurarsi di aver selezionato Controllo > Disattiva tasti di scelta rapida. L'elemento attivo btn1_btn. Quando l'elemento attivo passa da btn1_btn a btn2_btn, l'informazione viene visualizzata nel pannello Output.

_parent (propriet Button._parent)


public _parent : MovieClip

Un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. L'oggetto corrente l'oggetto che contiene il codice ActionScript che fa riferimento a _parent. Utilizzare _parent per specificare un percorso relativo dei clip filmati oppure oggetti che si trovano sopra il clip filmato oppure l'oggetto corrente. possibile utilizzare _parent per spostare verso l'alto pi livelli nell'elenco di visualizzazione, come illustrato di seguito:
this._parent._parent._alpha = 20;

Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Nell'esempio seguente, un pulsante di nome my_btn viene collocato in un clip filmato di nome my_mc. Il codice seguente mostra come utilizzare la propriet _parent per ottenere un riferimento al clip filmato my_mc:
trace(my_mc.my_btn._parent);

Il pannello Output visualizza:


_level0.my_mc

Vedere anche
_parent (propriet MovieClip._parent), _target (propriet MovieClip._target), _root, propriet

Pulsante

379

_quality (propriet Button._quality)


public _quality : String

Propriet (globale); imposta o recupera la qualit di rendering utilizzata per un file SWF. I caratteri del dispositivo sono sottoposti ad aliasing e pertanto non vengono modificati dalla propriet _quality. La propriet _quality pu essere impostata sui valori seguenti:

"LOW" Qualit di rendering bassa. Le immagini non vengono sottoposte ad aliasing e le bitmap non vengono smussate. "MEDIUM" Qualit di rendering media. Le immagini vengono sottoposte ad aliasing utilizzando una griglia di 2 x 2 pixel, ma le bitmap non vengono smussate. Si tratta di una funzionalit adatta per i filmati che non contengono testo. "HIGH" Qualit di rendering alta. Le immagini vengono sottoposte ad aliasing utilizzando una griglia di 4 x 4 pixel e le bitmap vengono smussate se il filmato statico. l'impostazione predefinita di Flash per la qualit di rendering. "BEST" Qualit di rendering molto alta. Le immagini vengono sottoposte ad aliasing utilizzando una griglia di 4 x 4 pixel e le bitmap vengono sempre smussate.

Nota: bench sia possibile specificare questa propriet per un oggetto Button, si tratta in realt di una propriet globale ed possibile specificarne il valore semplicemente come _quality. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Questo esempio imposta la qualit di rendering di un pulsante di nome my_btn su LOW:
my_btn._quality = "LOW";

_rotation (propriet Button._rotation)


public _rotation : Number

La rotazione del pulsante, espressa in pixel, rispetto alla posizione originale. I valori da 0 a 180 rappresentano la rotazione oraria, quelli da 0 a -180 la rotazione antioraria. I valori esterni a questo intervallo vengono aggiunti o sottratti a 360 per ottenere un valore interno all'intervallo. Ad esempio, l'istruzione my_btn._rotation = 450 uguale a my_btn._rotation = 90. Disponibilit: ActionScript 1.0; Flash Player 6

380

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente ruota due pulsanti sullo stage. Creare due pulsanti sullo stage di nome control_btn e my_btn. Assicurarsi che my_btn non sia perfettamente circolare, in modo da poterne osservare la rotazione. Quindi, immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
var control_btn:Button; var my_btn:Button; control_btn.onRelease = function() { my_btn._rotation += 10; };

A questo punto, creare un altro pulsante sullo stage di nome myOther_btn, verificando che non sia perfettamente circolare, per poterne osservare la rotazione. Immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale.
var myOther_btn:Button; this.createEmptyMovieClip("rotater_mc", this.getNextHighestDepth()); rotater_mc.onEnterFrame = function() { myOther_btn._rotation += 2; };

Il metodo MovieClip.getNextHighestDepth() utilizzato nell'esempio richiede Flash Player 7 o una versione successiva. Se il file SWF include un componente della versione 2, utilizzare la classe DepthManager dei componenti della versione 2 invece del metodo MovieClip.getNextHighestDepth(). Vedere anche
_rotation (propriet MovieClip._rotation), _rotation (propriet TextField._rotation)

scale9Grid (propriet Button.scale9Grid)


public scale9Grid : Rectangle

L'area rettangolare che definisce le nove aree di modifica in scala del pulsante. Se impostata su null, l'intero pulsante viene modificato in scala normalmente quando vengono applicate delle trasformazioni in scala. Quando si definisce una propriet scale9Grid per un pulsante, il pulsante viene suddiviso in una griglia con nove aree, in base al rettangolo scale9Grid che definisce la regione centrale della griglia. Esistono altre otto regioni nella griglia:

L'area nell'angolo superiore sinistro fuori del rettangolo L'area sopra il rettangolo L'area nell'angolo superiore destro fuori del rettangolo

Pulsante

381

L'area a sinistra del rettangolo L'area a destra del rettangolo L'area nell'angolo inferiore sinistro fuori del rettangolo L'area sotto il rettangolo L'area nell'angolo inferiore destro fuori del rettangolo

Le otto aree esterne al centro (definite dal rettangolo) sono paragonabili alla cornice di un quadro alla quale vengono applicate regole speciali quando la scala si modifica. Quando viene impostata la propriet scale9Grid e viene modificato in scala un pulsante, tutto il testo e i gradienti vengono modificati in scala normalmente; tuttavia, per altri tipi di oggetti valgono le regole seguenti:

Il contenuto dell'area centrale viene modificato in scala normalmente Il contenuto presente negli angoli non viene modificato in scala Il contenuto dell'area superiore e dell'area inferiore viene modificato in scala solo orizzontalmente. Il contenuto dell'area sinistra e dell'area destra viene modificato in scala solo verticalmente.

Se un pulsante viene ruotato, tutte le successive modifiche in scala sono normali e la propriet scale9Grid viene ignorata. Un utilizzo comune della propriet scale9Grid consiste nell'impostare un pulsante in cui le linee dei bordi mantengono la stessa larghezza quando si modifica in scala il pulsante. Per ulteriori informazioni, comprese le illustrazioni e l'esempio correlato vedere MovieClip.scale9Grid. Disponibilit: ActionScript 1.0; Flash Player 8 Vedere anche
Rectangle (flash.geom.Rectangle), scale9Grid (propriet MovieClip.scale9Grid)

_soundbuftime (propriet Button._soundbuftime)


public _soundbuftime : Number

La propriet che specifica il numero di secondi per cui un suono viene inserito nel prebuffer prima che ne inizi lo streaming. Nota: bench sia possibile specificare questa propriet per un oggetto Button, si tratta in realt di una propriet globale che si applica a tutti i suoni caricati ed possibile specificarne il valore semplicemente come _soundbuftime. Se si imposta questa propriet per un oggetto Button, in realt viene impostata la propriet globale.

382

Capitolo 2: Classi ActionScript

Per ulteriori informazioni e un esempio, vedere la propriet globale _soundbuftime. Disponibilit: ActionScript 1.0; Flash Player 6 Vedere anche
_soundbuftime, propriet

tabEnabled (propriet Button.tabEnabled)


public tabEnabled : Boolean

Specifica se my_btn incluso nell'ordine di tabulazione automatico. undefined per impostazione predefinita. Se la propriet tabEnabled undefined o true, l'oggetto viene incluso nell'ordine di tabulazione automatico. Se anche la propriet tabIndex impostata su un valore, l'oggetto viene incluso a sua volta nell'ordine di tabulazione personalizzato. Se tabEnabled false, l'oggetto non viene incluso nell'ordine di tabulazione automatico o personalizzato, nemmeno nel caso in cui la propriet tabIndex sia impostata. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Il codice ActionScript seguente viene utilizzato per impostare la propriet tabEnabled per un pulsante su quattro su false. Tuttavia, tutti e quattro i pulsanti (one_btn, two_btn, three_btn, e four_btn) vengono collocati in un ordine di tabulazione personalizzato mediante tabIndex. Bench tabIndex sia impostato su three_btn, three_btn non incluso in un ordine di tabulazione personalizzato o automatico poich tabEnabled impostato su false per tale istanza. Per impostare l'ordine di tabulazione dei quattro pulsanti, aggiungere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4;

Assicurarsi che i tasti di scelta rapida siano disabilitati quando si prova il file SWF selezionando Controllo > Disattiva tasti di scelta rapida nell'ambiente di prova. Vedere anche
tabIndex (propriet Button.tabIndex), tabEnabled (propriet MovieClip.tabEnabled), tabEnabled (propriet TextField.tabEnabled)

Pulsante

383

tabIndex (propriet Button.tabIndex)


public tabIndex : Number

Consente di personalizzare l'ordine di tabulazione in un file SWF. possibile impostare la propriet tabIndex su un'istanza di pulsante, di clip filmato o di campo di testo; undefined per impostazione predefinita. Se un qualunque oggetto visualizzato nel file SWF contiene una propriet tabIndex, l'ordine di tabulazione automatico viene disabilitato e viene calcolato in base alle propriet tabIndex degli oggetti presenti nel file SWF. L'ordine di tabulazione automatico include solo gli oggetti dotati delle propriet tabIndex. La propriet tabIndex pu essere un numero intero non negativo. Gli oggetti vengono ordinati in base alle relative propriet tabIndex, in ordine ascendente. Un oggetto con un valore tabIndex di 1 precede un oggetto con il valore tabIndex di 2. Se due oggetti hanno lo stesso valore tabIndex: quello che precede l'altro nell'ordine della scheda undefined. L'ordine di tabulazione personalizzato definito dalla propriet tabIndex flat. In altre parole, non viene prestata alcuna attenzione alle relazioni gerarchiche degli oggetti nel file SWF. Tutti gli oggetti del file SWF dotati delle propriet tabIndex vengono inseriti nell'ordine di tabulazione, il quale viene determinato dall'ordine dei valori di tabIndex. Se due oggetti hanno lo stesso valore di tabIndex, quello che precede l'altro undefined. Pertanto consigliabile non utilizzare lo stesso valore di tabIndex per pi oggetti. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Il codice ActionScript seguente viene utilizzato per impostare la propriet tabEnabled per un pulsante su quattro su false. Tuttavia, tutti e quattro i pulsanti (one_btn, two_btn, three_btn, e four_btn) vengono collocati in un ordine di tabulazione personalizzato mediante tabIndex. Bench tabIndex sia impostato su three_btn, three_btn non incluso in un ordine di tabulazione personalizzato o automatico poich tabEnabled impostato su false per tale istanza. Per impostare l'ordine di tabulazione dei quattro pulsanti, aggiungere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4;

Assicurarsi che i tasti di scelta rapida siano disabilitati quando si prova il file SWF selezionando Controllo > Disattiva tasti di scelta rapida nell'ambiente di prova.

384

Capitolo 2: Classi ActionScript

Vedere anche
tabEnabled (propriet Button.tabEnabled), tabChildren (propriet MovieClip.tabChildren), tabEnabled (propriet MovieClip.tabEnabled), tabIndex (propriet MovieClip.tabIndex), tabIndex (propriet TextField.tabIndex)

_target (propriet Button._target)


public _target : String [read-only]

Restituisce il percorso target dell'istanza di pulsante specificata da my_btn. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Aggiungere allo stage un'istanza di pulsante di nome my_btn , quindi aggiungere il codice seguente nel fotogramma 1 della linea temporale:
trace(my_btn._target); //displays /my_btn

Selezionare my_btn e convertirlo in clip filmato. Assegnare al nuovo clip filmato il nome di istanza my_mc. Eliminare il codice ActionScript esistente nel fotogramma 1 della linea temporale e sostituirlo con:
my_mc.my_btn.onRelease = function(){ trace(this._target); //displays /my_mc/my_btn };

Per convertire la notazione dalla barra al punto, modificare il codice di esempio precedente nel modo seguente:
my_mc.my_btn.onRelease = function(){ trace(eval(this._target)); //displays _level0.my_mc.my_btn };

In questo modo possibile accedere ai metodi e ai parametri dell'oggetto target:


my_mc.my_btn.onRelease = function(){ var target_btn:Button = eval(this._target); trace(target_btn._name); //displays my_btn };

Vedere anche
_target (propriet MovieClip._target)

Pulsante

385

trackAsMenu (propriet Button.trackAsMenu)


public trackAsMenu : Boolean

Un valore booleano che indica se altri pulsanti o clip filmato possono ricevere eventi associati al pulsante premuto del mouse. Se si trascina un pulsante e successivamente si rilascia su un secondo pulsante, l'evento onRelease viene registrato per il secondo pulsante. In questo modo possibile creare i menu. possibile impostare la propriet trackAsMenu su qualunque oggetto pulsante o clip filmato. Se la propriet trackAsMenu non stata definita, il comportamento predefinito false. possibile modificare la propriet trackAsMenuin qualsiasi momento; al pulsante modificato viene immediatamente associato il nuovo comportamento. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente mostra come registrare due pulsanti come menu. Collocare sullo stage due istanze di pulsante di nome one_btn e two_btn. Immettere il codice ActionScript seguente nella linea temporale:
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"); };

Provare il file SWF facendo clic su one_btn sullo stage Stage, tenendo premuto il pulsante del mouse e rilasciandolo su two_btn. Quindi, provare a escludere le due righe del codice ActionScript che contengono trackAsMenu e provare nuovamente il file SWF per osservare la differenza nel comportamento dei pulsanti. Vedere anche
trackAsMenu (propriet MovieClip.trackAsMenu)

386

Capitolo 2: Classi ActionScript

_url (propriet Button._url)


public _url : String [read-only]

Recupera l'URL del file SWF che ha creato il pulsante. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Creare sullo stage due istanze di pulsante di nome one_btn e two_btn. Immettere il codice seguente nel fotogramma 1 della linea temporale:
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); };

Quando si fa clic su ciascun pulsante, il nome del file SWF che contiene i pulsanti viene visualizzato nel pannello Output.

useHandCursor (propriet Button.useHandCursor)


public useHandCursor : Boolean

Un valore booleano che, se impostato su true (il valore predefinito), indica se viene visualizzato un puntatore a forma di mano quando il mouse passa sopra un pulsante. Se la propriet impostata su false, viene utilizzato il puntatore a forma di freccia. possibile modificare la propriet useHandCursorin qualsiasi momento; al pulsante modificato viene immediatamente associato il nuovo comportamento del cursore. La propriet useHandCursor pu essere estratta da un oggetto prototipo. Disponibilit: ActionScript 1.0; Flash Player 6

Pulsante

387

Esempio Creare due pulsanti sullo stage e assegnare loro i nomi di istanza myBtn1_btn e myBtn2_btn. Immettere il codice seguente nel fotogramma 1 della linea temporale:
myBtn1_btn.useHandCursor = false; myBtn1_btn.onRelease = buttonClick; myBtn2_btn.onRelease = buttonClick; function buttonClick() { trace(this._name); }

Quando il mouse sopra myBtn1_btn e si fa clic su di esso, non viene visualizzato il puntatore a forma di mano. Tuttavia, quest'ultimo viene visualizzato quando il mouse sopra myBtn2_btn e si fa clic su di esso.

_visible (propriet Button._visible)


public _visible : Boolean

Un valore booleano che indica se il pulsante specificato da my_btn visibile. I pulsanti non visibili, ovvero quelli con la propriet _visible impostata su false, sono disabilitati. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Creare due pulsanti sullo stage e assegnare loro i nomi di istanza myBtn1_btn e myBtn2_btn. Immettere il codice seguente nel fotogramma 1 della linea temporale:
myBtn1_btn.onRelease = function() { this._visible = false; trace("clicked "+this._name); }; myBtn2_btn.onRelease = function() { this._alpha = 0; trace("clicked "+this._name); };

Si noti che ancora possibile fare clic su myBtn2_btn dopo che il valore della trasparenza alfa stata impostato su 0. Vedere anche
_visible (propriet MovieClip._visible), _visible (propriet TextField._visible)

388

Capitolo 2: Classi ActionScript

_width (propriet Button._width)


public _width : Number

La larghezza del pulsante espressa in pixel. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente aumenta la propriet width di un pulsante di nome my_btn e visualizza la larghezza nel pannello Output. Immettere il codice seguente nel fotogramma 1 della linea temporale:
my_btn.onRelease = function() { trace(this._width); this._width ~= 1.1; };

Vedere anche
_width (propriet MovieClip._width)

_x (propriet Button._x)
public _x : Number

Un numero intero che imposta la coordinata x di un pulsante relativa alle coordinate locali del clip filmato principale. Se un pulsante si trova sulla linea temporale principale, le sue coordinate considerano l'angolo superiore sinistro dello stage come punto (0, 0). Se all'interno di un clip filmato che contiene delle trasformazioni, il pulsante utilizza il sistema di coordinate locali del clip filmato. Pertanto, se un clip filmato viene ruotato di 90 gradi in senso antiorario, il pulsante racchiuso nel clip eredita un sistema di coordinate che ruotato di 90 gradi in senso antiorario. Le coordinate del pulsante sono relative al punto di registrazione. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente imposta su 0 le coordinate di my_btn sullo stage. Creare un pulsante di nome my_btn, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
my_btn._x = 0; my_btn._y = 0;

Pulsante

389

Vedere anche
_xscale (propriet Button._xscale), _y (propriet Button._y), _yscale (propriet Button._yscale)

_xmouse (propriet Button._xmouse)


public _xmouse : Number [read-only]

Restituisce la coordinata x della posizione del mouse relativa al pulsante. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente visualizza la posizione xmouse per lo stage e un pulsante di nome my_btn che viene collocato sullo stage. Immettere il codice seguente nel fotogramma 1 della linea temporale:
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);

Vedere anche
_ymouse (propriet Button._ymouse)

_xscale (propriet Button._xscale)


public _xscale : Number

La scala orizzontale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale. Il punto di registrazione predefinito (0,0).

390

Capitolo 2: Classi ActionScript

Se si modifica in scala il sistema di coordinate locale, vengono cambiate anche le impostazioni delle propriet _x e _y definite in pixel. Ad esempio, quando il clip filmato principale viene modificato in scala del 50%, se si imposta la propriet _x, un oggetto nel pulsante viene spostato per la met dei pixel per cui verrebbe spostato se il file SWF fosse al 100% delle proprie dimensioni. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente modifica in scala un pulsante di nome my_btn. Quando si fa clic sul pulsante e lo si rilascia, le relative coordinate x e y aumentano del 10%. Immettere il codice seguente nel fotogramma 1 della linea temporale:
my_btn.onRelease = function(){ this._xscale ~= 1.1; this._yscale ~= 1.1; };

Vedere anche
_x (propriet Button._x), _y (propriet Button._y), _yscale (propriet Button._yscale)

_y (propriet Button._y)
public _y : Number

La coordinata y del pulsante relativa alle coordinate locali del clip filmato principale. Se un pulsante si trova sulla linea temporale principale, le sue coordinate considerano l'angolo superiore sinistro dello stage come punto (0, 0). Se all'interno di un altro clip filmato che contiene delle trasformazioni, il pulsante utilizza il sistema di coordinate locali del clip filmato. Pertanto, se un clip filmato viene ruotato di 90 gradi in senso antiorario, il pulsante racchiuso nel clip eredita un sistema di coordinate che ruotato di 90 gradi in senso antiorario. Le coordinate del pulsante sono relative al punto di registrazione. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente imposta su 0 le coordinate di my_btn sullo stage. Creare un pulsante di nome my_btn, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale:
my_btn._x = 0; my_btn._y = 0;

Pulsante

391

Vedere anche
_x (propriet Button._x), _xscale (propriet Button._xscale), _yscale (propriet Button._yscale)

_ymouse (propriet Button._ymouse)


public _ymouse : Number [read-only]

Indica la coordinata y della posizione del mouse relativa al pulsante. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente visualizza la posizione ymouse per lo stage e un pulsante di nome my_btn che viene collocato sullo stage. Immettere il codice seguente nel fotogramma 1 della linea temporale:
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);

Vedere anche
_xmouse (propriet Button._xmouse)

_yscale (propriet Button._yscale)


public _yscale : Number

La scala verticale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale. Il punto di registrazione predefinito (0,0). Disponibilit: ActionScript 1.0; Flash Player 6

392

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente modifica in scala un pulsante di nome my_btn. Quando si fa clic sul pulsante e lo si rilascia, le relative coordinate x e y aumentano del 10%. Immettere il codice seguente nel fotogramma 1 della linea temporale:
my_btn.onRelease = function(){ this._xscale ~= 1.1; this._yscale ~ 1.1; };

Vedere anche
_y (propriet Button._y), _x (propriet Button._x), _xscale (propriet Button._xscale)

Camera
Object | +-Camera public class Camera extends Object

La classe Camera progettata principalmente per l'uso con Macromedia Flash Communication Server, ma pu essere utilizzata in modo limitato anche senza server. La classe Camera consente di catturare il video da una videocamera collegata al computer su cui in esecuzione Macromedia Flash Player; ad esempio per monitorare una sorgente video da una Web camera collegata al sistema locale. (Flash fornisce funzioni audio simili; per ulteriori informazioni, consultare la sezione relativa alla classe Microphone.) Avvertenza: quando un file SWF tenta di accedere all'apparecchio restituito da Camera.get(), viene visualizzata una finestra di dialogo relativa alla riservatezza che consente all'utente di scegliere se consentire o negare l'accesso alla videocamera. Assicurarsi che per gli esempi della classe Camera le dimensioni dello stage siano almeno di 215 x 138 pixel, ovvero le dimensioni minime richieste da Flash per visualizzare la finestra di dialogo.) Gli utenti finali e amministratori possono anche disattivare l'accesso alla videocamera per sito o complessivamente. Per creare un riferimento a un oggetto Camera, utilizzare il metodo Camera.get(). Disponibilit: ActionScript 1.0; Flash Player 6

Camera

393

Riepilogo delle propriet


Modificatori Propriet
[di sola lettura]
bandwidth:Number [di

Descrizione
movimento che la videocamera sta rilevando. Un numero intero che specifica la quantit massima di ampiezza di banda utilizzabile dalla sorgente video in uscita corrente, espressa in byte. dati, espressa in fotogrammi al secondo. La velocit massima con cui si desidera che la videocamera catturi i dati, espressa in fotogrammi al secondo.

activityLevel:Number Un valore numerico che specifica la quantit di

sola lettura]

currentFps:Number [di La velocit con cui la videocamera sta catturando i

sola lettura]
fps:Number [di sola

lettura]

height:Number [di sola L'altezza della cattura corrente, espressa in pixel.

lettura]
index:Number [di sola

lettura]

Un numero intero con base zero che specifica l'indice della videocamera, presente anche nell'array restituito da Camera.names. Un valore numerico che specifica la quantit di movimento richiesta per richiamare Camera.onActivity(true). videocamera interrompe il rilevamento del movimento e quando viene richiamato il metodo Camera.onActivity (false). (true) o consentito (false) l'accesso alla videocamera nel pannello delle impostazioni di riservatezza di Flash Player. Una stringa che specifica il nome della videocamera corrente, restituito dall'hardware dell'apparecchio. Recupera un array di stringhe che rispecchiano i nomi di tutte le videocamere disponibili senza visualizzare il pannello delle impostazioni della riservatezza di Flash Player. Un numero intero che specifica il livello di qualit immagine richiesto, determinato dalla quantit di compressione applicata a ciascun fotogramma video. La larghezza della cattura corrente, espressa in pixel.

motionLevel:Number

[di sola lettura]

motionTimeOut:Number Il numero di millisecondi che trascorrono tra quando la

[di sola lettura]

muted:Boolean [di sola Un valore booleano che specifica se l'utente ha negato

lettura]

name:String [di sola

lettura]
static names:Array [di sola

lettura]

quality:Number [di

sola lettura]
width:Number [di sola

lettura]

394

Capitolo 2: Classi ActionScript

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo degli eventi


Event
onActivity = Boolean) {} onStatus = function(infoObj ect:Object) {}

Descrizione
Richiamato quando la videocamera inizia o termina il rilevamento del

function(active: movimento.

Richiamato quando l'utente consente o nega l'accesso alla videocamera.

Riepilogo dei metodi


Modificatori
static

Firma
get([index:Number]) : Camera

Descrizione
Restituisce un riferimento a un oggetto Camera per la cattura del video.

setMode([width:Numbe Imposta la videocamera sulla modalit di cattura che r], [height:Number], soddisfa al meglio i requisiti specificati. [fps:Number], [favorArea:Boolean]) : Void setMotionLevel([moti Specifica la quantit di movimento necessaria per onLevel:Number], [timeOut:Number]) : Void setQuality([bandwidt Imposta la quantit massima di ampiezza di banda al h:Number], [quality:Number]) : Void

richiamare Camera.onActivity(true).

secondo o la qualit di immagine richiesta della sorgente video in uscita corrente.

Camera

395

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

activityLevel (propriet Camera.activityLevel)


public activityLevel : Number [read-only]

Un valore numerico che specifica la quantit di movimento che la videocamera sta rilevando. I valori accettabili sono compresi tra 0 (non viene rilevato alcun movimento) e 100 (viene rilevata una grande quantit di movimento). Il valore di questa propriet pu essere utile per determinare se necessario passare un'impostazione a Camera.setMotionLevel(). Se la videocamera disponibile ma non la si sta ancora utilizzando poich non stata effettuata una chiamata a Video.attachVideo(), questa propriet viene impostata su -1. Se si effettua lo streaming solo di video locale non compresso, questa propriet viene impostata solo se stata assegnata una funzione al gestore di eventi Camera.onActivity. In caso contrario, undefined. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente rileva la quantit di movimento rilevata dalla videocamera mediante la propriet activityLevel e un'istanza ProgressBar. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un componente ProgressBar allo stage e denominarlo activity_pb. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
// 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); };

396

Capitolo 2: Classi ActionScript

my_cam.onActivity = function(isActive:Boolean) { var themeColor:String = (isActive) ? "haloGreen" : "haloOrange"; activity_pb.setStyle("themeColor", themeColor); };

Vedere anche
motionLevel (propriet Camera.motionLevel), setMotionLevel (metodo setMotionLevel)

bandwidth (propriet Camera.bandwidth)


public bandwidth : Number [read-only]

Un numero intero che specifica la quantit massima di ampiezza di banda utilizzabile dalla sorgente video in uscita corrente, espressa in byte. Il valore 0 indica che il video Flash pu utilizzare tutta l'ampiezza di banda necessaria per mantenere la qualit desiderata. Per impostare questa propriet, necessario utilizzare Camera.setQuality(). Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente modifica la quantit massima di larghezza di banda utilizzata dalla sorgente video della videocamera. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza di un componente NumericStepper allo stage e denominarla bandwidth_nstep. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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);

Camera

397

} bandwidth_nstep.addEventListener("change", changeBandwidth);

Il metodo MovieClip.getNextHighestDepth() utilizzato nell'esempio richiede Flash Player 7 o una versione successiva. Se il file SWF include un componente della versione 2, utilizzare la classe DepthManager dei componenti della versione 2 invece del metodo MovieClip.getNextHighestDepth(). Vedere anche
setQuality (metodo Camera.setQuality)

currentFps (propriet Camera.currentFps)


public currentFps : Number [read-only]

La velocit con cui la videocamera sta catturando i dati, espressa in fotogrammi al secondo. Questa propriet non pu essere impostata; tuttavia possibile utilizzare il metodo Camera.setMode() per impostare Camera.fps, una propriet correlata che specifica la frequenza di fotogrammi massima con cui si desidera che la videocamera catturi i dati. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente rileva la frequenza, espressa in fotogrammi al secondo, con cui la videocamera acquisisce i dati, mediante la propriet currentFps e un'istanza ProgressBar. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un componente ProgressBar allo stage e denominarlo fps_pb. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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)";

398

Capitolo 2: Classi ActionScript

Vedere anche
setMode (metodo Camera.setMode), fps (propriet Camera.fps)

fps (propriet Camera.fps)


public fps : Number [read-only]

La velocit massima con cui si desidera che la videocamera catturi i dati, espressa in fotogrammi al secondo. La velocit massima possibile dipende dalle capacit della videocamera: se l'apparecchio non supporta il valore impostato, la frequenza di fotogrammi specificata non viene raggiunta.

Per impostare un valore per questa propriet, utilizzare Camera.setMode(). Per determinare la velocit corrente con cui la videocamera cattura i dati, utilizzare la propriet Camera.currentFps.

Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente rileva la frequenza, espressa in fotogrammi al secondo, con cui la videocamera acquisisce i dati, mediante la propriet currentFps e un'istanza ProgressBar. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un componente ProgressBar allo stage e denominarlo fps_pb. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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)";

Nota: la funzione setMode() non garantisce l'impostazione fps richiesta; imposta la frequenza al secondo richiesta o quella pi elevata disponibile al momento. Vedere anche
currentFps (propriet Camera.currentFps), setMode (metodo Camera.setMode)

Camera

399

get (metodo Camera.get)


public static get([index:Number]) : Camera

Restituisce un riferimento a un oggetto Camera per la cattura del video. Per iniziare la cattura del video, associare l'oggetto Camera a un oggetto Video (vedere Video.attachVideo()). A differenza degli oggetti creati con la funzione di costruzione new, pi chiamate a fanno riferimento alla stessa videocamera. Pertanto, se lo script contiene le righe first_cam = Camera.get() e second_cam = Camera.get(), sia first_cam che second_cam fanno riferimento alla stessa videocamera (predefinita).
Camera.get()

In generale, non necessario passare un valore per index; sufficiente utilizzare per restituire un riferimento alla videocamera predefinita. Mediante il pannello delle impostazioni Videocamera (descritto pi avanti in questa sezione), l'utente pu specificare la videocamera predefinita utilizzata da Flash. Se si passa un valore per index, possibile che si stia tentando di fare riferimento a una videocamera diversa da quella specificata come predefinita dall'utente. index utilizzabile in rari casi: ad esempio se l'applicazione cattura il video da due videocamere contemporaneamente.
Camera.get()

Quando un file SWF tenta di accedere all'apparecchio restituito da Camera.get(), viene visualizzata una finestra di dialogo relativa alla riservatezza che consente all'utente di scegliere se consentire o negare l'accesso alla videocamera. Assicurarsi che le dimensioni dello stage siano almeno di 215 x 138 pixel, ovvero le dimensioni minime richieste da Flash per visualizzare la finestra di dialogo. Quando l'utente risponde a questa finestra di dialogo, il gestore di eventi Camera.onStatus restituisce un oggetto informazioni che indica la risposta. Per determinare se l'utente ha negato o consentito l'accesso alla videocamera senza elaborare questo gestore di eventi, utilizzare la propriet Camera.muted. L'utente pu anche specificare delle impostazioni di riservatezza permanenti per un determinato dominio facendo clic con il pulsante destro del mouse (Windows) oppure facendo clic tenendo premuto il tasto Ctrl (Macintosh) mentre viene riprodotto un file SWF, quindi selezionando Impostazioni, aprendo il pannello relativo alla riservatezza e selezionando Ricorda. Non possibile utilizzare ActionScript per impostare il valore di Consenti o Nega per un utente, tuttavia possibile visualizzare il pannello Riservatezza per l'utente mediante System.showSettings(0). Se l'utente seleziona Ricorda, la finestra di dialogo Riservatezza per i file SWF non viene pi visualizzata con il dominio in uso.

400

Capitolo 2: Classi ActionScript

Se Camera.get restituisce il valore null, significa che la videocamera attualmente utilizzata da un'altra applicazione oppure che nel sistema non installata alcuna videocamera. Per determinare se installata qualche camera, utilizzare Camera.names.length. Per visualizzare il pannello delle impostazioni Videocamera di Flash Player, che consente all'utente di scegliere la videocamera a cui fa riferimento Camera.get(), utilizzare System.showSettings(3). Il rilevamento dell'hardware delle videocamere un'operazione che richiede tempo. Quando viene rilevata almeno una videocamera, non viene eseguita un'altra ricerca dell'hardware finch l'istanza del player in esecuzione. Tuttavia, se non vengono rilevate videocamere, la ricerca viene eseguita ogni volta che viene effettuata la chiamata a Camera.get. Si tratta di una funzione utile se l'utente ha dimenticato di collegare la videocamera; se il file SWF fornisce un pulsante di tipo Riprova che chiama Camera.get, possibile rilevare la videocamera senza che l'utente chiuda e riapra il file SWF. Nota: la sintassi corretta Camera.get(). Per assegnare l'oggetto Camera a una variabile, utilizzare una sintassi analoga a active_cam = Camera.get(). Disponibilit: ActionScript 1.0; Flash Player 6 Parametri
index:Number [opzionale] - Un numero intero con base zero che specifica quale videocamera

ottenere, determinandola dall'array restituito dalla propriet Camera.names. Per ottenere la videocamera predefinita (consigliata per la maggior parte delle applicazioni), omettere questo parametro. Valori restituiti
Camera - Se index non specificato, questo metodo restituisce un riferimento alla videocamera predefinita oppure, se questa utilizzata da un'altra applicazione, alla prima videocamera disponibile. (Se installata pi di una videocamera, l'utente deve specificare la videocamera predefinita nel pannello delle impostazioni Videocamera di Flash Player.) Se non installata o disponibile alcuna videocamera, il metodo restituisce il valore null. Se index specificato, questo metodo restituisce un riferimento alla videocamera richiesta oppure restituisce null se non disponibile.

Camera

401

Esempio L'esempio seguente consente di selezionare una videocamera attiva da un'istanza ComboBox. La videocamera attiva corrente viene visualizzata in un'istanza Label. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza del componente Label allo stage e assegnarle il nome camera_lbl, quindi aggiungere un'istanza del componente ComboBox e assegnarle il nome name cameras_cb. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
var my_cam:Camera = Camera.get(); 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);

Vedere anche
index (propriet Camera.index), muted (propriet Camera.muted), names (propriet Camera.names), onStatus (Gestore Camera.onStatus), setMode (metodo Camera.setMode), showSettings (metodo System.showSettings), attachVideo (metodo Video.attachVideo)

height (propriet Camera.height)


public height : Number [read-only]

L'altezza della cattura corrente, espressa in pixel. Per impostare un valore per questa propriet, utilizzare Camera.setMode(). Disponibilit: ActionScript 1.0; Flash Player 6

402

Capitolo 2: Classi ActionScript

Esempio Il codice seguente visualizza la larghezza, l'altezza e i fotogrammi al secondo di un'istanza video in un'istanza del componente Label sullo stage. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza del componente Label allo stage e denominarla dimensions_lbl. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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;

Vedere l'esempio relativo a Camera.setMode(). Vedere anche


width (propriet Camera.width), setMode (metodo Camera.setMode)

index (propriet Camera.index)


public index : Number [read-only]

Un numero intero con base zero che specifica l'indice della videocamera, presente anche nell'array restituito da Camera.names. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente visualizza un array di videocamere in un campo di testo che viene creato in fase di runtime e che indica all'utente quale videocamera attualmente in uso. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza del componente Label allo stage e denominarla camera_lbl. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
var camera_lbl:mx.controls.Label; var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam);

Camera

403

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; }

Il metodo MovieClip.getNextHighestDepth() utilizzato nell'esempio richiede Flash Player 7 o una versione successiva. Se il file SWF include un componente della versione 2, utilizzare la classe DepthManager dei componenti della versione 2 invece del metodo MovieClip.getNextHighestDepth(). Vedere anche
names (propriet Camera.names), get (metodo Camera.get)

motionLevel (propriet Camera.motionLevel)


public motionLevel : Number [read-only]

Un valore numerico che specifica la quantit di movimento richiesta per richiamare Camera.onActivity(true). I valori accettabili sono compresi tra 0 e 100. Il valore predefinito 50. possibile visualizzare il video a prescindere dal valore del parametro motionLevel. Per ulteriori informazioni, vedere Camera.setMotionLevel(). Disponibilit: ActionScript 1.0; Flash Player 6

404

Capitolo 2: Classi ActionScript

Esempio L'esempio seguente rileva continuamente il livello di movimento di una sorgente video di una videocamera. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza del componente Label con il nome motionLevel_lbl, un'istanza NumericStepper con il nome motionLevel_nstep e un'istanza ProgressBar con il nome motion_pb. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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; 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); };

Camera

405

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);

Vedere anche
onActivity (gestore Camera.onActivity), onStatus (Gestore Camera.onStatus), setMotionLevel (metodo setMotionLevel), activityLevel (propriet Camera.activityLevel)

motionTimeOut (propriet Camera.motionTimeOut)


public motionTimeOut : Number [read-only]

Il numero di millisecondi che trascorrono tra quando la videocamera interrompe il rilevamento del movimento e quando viene richiamato il metodo Camera.onActivity (false). Il valore predefinito 2000 (2 secondi). Per impostare questo valore, necessario utilizzare Camera.setMotionLevel(). Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Nell'esempio seguente, l'alone dell'istanza ProgressBar cambia colore quando il livello di attivit scende sotto il livello di movimento. possibile impostare il numero di secondi per la propriet motionTimeout mediante un'istanza NumericStepper. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza del componente Label con il nome motionLevel_lbl, un'istanza NumericStepper con il nome motionTimeOut_nstep e un'istanza ProgressBar con il nome motion_pb. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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; };

406

Capitolo 2: Classi ActionScript

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;

Vedere anche
setMotionLevel (metodo setMotionLevel), onActivity (gestore Camera.onActivity)

muted (propriet Camera.muted)


public muted : Boolean [read-only]

Un valore booleano che specifica se l'utente ha negato (true) o consentito (false) l'accesso alla videocamera nel pannello delle impostazioni di riservatezza di Flash Player. Quando questo valore cambia, viene effettuata la chiamata a Camera.onStatus. Per ulteriori informazioni, vedere Camera.get(). Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Nell'esempio seguente, possibile che venga visualizzato un messaggio di errore se my_cam.muted restituisce true. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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);

Camera

407

trace("User denied access to Camera"); System.showSettings(0); } };

Vedere anche
get (metodo Camera.get), onStatus (Gestore Camera.onStatus)

name (propriet Camera.name)


public name : String [read-only]

Una stringa che specifica il nome della videocamera corrente, restituito dall'hardware dell'apparecchio. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente visualizza il nome della videocamera predefinita in un campo di testo: In Windows, questo nome lo stesso della periferica presente nell'elenco Scanner e fotocamere del Pannello di controllo. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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;

Il metodo MovieClip.getNextHighestDepth() utilizzato nell'esempio richiede Flash Player 7 o una versione successiva. Se il file SWF include un componente della versione 2, utilizzare la classe DepthManager dei componenti della versione 2 invece del metodo MovieClip.getNextHighestDepth(). Vedere anche
get (metodo Camera.get), names (propriet Camera.names)

408

Capitolo 2: Classi ActionScript

names (propriet Camera.names)


public static names : Array [read-only]

Recupera un array di stringhe che rispecchiano i nomi di tutte le videocamere disponibili senza visualizzare il pannello delle impostazioni della riservatezza di Flash Player. Questo array ha lo stesso comportamento di qualunque altro array ActionScript, e fornisce in modo implicito l'indice con base zero di ciascuna videocamera e il numero di videocamere presenti nel sistema (per mezzo di Camera.names.length). Per ulteriori informazioni, consultare la voce Camera.names della classe Array. Quando si chiama la propriet Camera.names viene eseguito un esame esteso dell'hardware e la creazione dell'array pu richiedere diversi secondi. Nella maggior parte dei casi possibile utilizzare semplicemente la videocamera predefinita. Nota: la sintassi corretta Camera.names. Per assegnare il valore return una variabile, utilizzare una sintassi analoga a cam_array = Camera.names. Per determinare il nome della videocamera corrente, utilizzare active_cam .name. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente utilizza la videocamera predefinita a meno che non siano presenti pi videocamere, nel qual caso l'utente pu scegliere quale videocamera impostare come predefinita. Se presente una sola videocamera, questa viene utilizzata. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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);

Vedere anche
get (metodo Camera.get), index (propriet Camera.index), name (propriet Camera.name)

Camera

409

onActivity (gestore Camera.onActivity)


onActivity = function(active:Boolean) {}

Richiamato quando la videocamera inizia o termina il rilevamento del movimento. Se si desidera rispondere a questo gestore di eventi, creare una funzione che ne elabori il valore dell'attivit. Per specificare la quantit di movimento richiesta per richiamare Camera.onActivity(true) e l'intervallo di tempo privo di attivit che deve trascorrere prima che venga richiamato Camera.onActivity(false), utilizzare Camera.setMotionLevel(). Disponibilit: ActionScript 1.0; Flash Player 6 Parametri
active:Boolean

- Un valore booleano impostato su true quando la videocamera inizia a rilevare movimento e false quando il movimento si interrompe. Esempio L'esempio seguente visualizza true o false nel pannello Output quando la videocamera avvia o interrompe il rilevamento del movimento:

// Assumes a Video object named "myVideoObject" is on the Stage active_cam = Camera.get(); myVideoObject.attachVideo(active_cam); active_cam.setMotionLevel(10, 500); active_cam.onActivity = function(mode) { trace(mode); }

Vedere anche
setMotionLevel (metodo setMotionLevel)

onStatus (Gestore Camera.onStatus)


onStatus = function(infoObject:Object) {}

Richiamato quando l'utente consente o nega l'accesso alla videocamera. Se si desidera rispondere a questo gestore di eventi, creare una funzione che elabori l'oggetto informazioni generato dalla videocamera.

410

Capitolo 2: Classi ActionScript

Quando un file SWF tenta di accedere alla videocamera, viene visualizzata una finestra di dialogo relativa alla riservatezza che consente all'utente di scegliere se consentire o negare l'accesso.

Se l'utente consente l'accesso, la propriet Camera.muted impostata su false e questo gestore di eventi richiamato con un oggetto informazioni la cui propriet di codice "Camera.Unmuted" e la cui propriet di livello "Status". Se l'utente nega l'accesso, la propriet Camera.muted impostata su true e questo gestore di eventi richiamato con un oggetto informazioni la cui propriet di codice "Camera.Muted" e la cui propriet di livello "Status".

Per determinare se l'utente ha negato o consentito l'accesso alla videocamera senza elaborare questo gestore di eventi, utilizzare la propriet Camera.muted. Nota: se l'utente sceglie di autorizzare o negare in modo permanente l'accesso a tutti i file SWF di un dominio specifico, il gestore non viene richiamato per i file SWF del dominio a meno che l'utente non modifichi l'impostazione della riservatezza in un secondo momento. Per ulteriori informazioni, vedere Camera.get(). Disponibilit: ActionScript 1.0; Flash Player 6 Parametri
infoObject:Object

- Un parametro definito in base al messaggio di stato.

Esempio Il codice ActionScript seguente viene utilizzato per visualizzare un messaggio ogni volta che l'utente autorizza o nega l'accesso alla videocamera:
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; } }

Vedere anche
get (metodo Camera.get), muted (propriet Camera.muted), showSettings (metodo System.showSettings), onStatus (gestore System.onStatus)

Camera

411

quality (propriet Camera.quality)


public quality : Number [read-only]

Un numero intero che specifica il livello di qualit immagine richiesto, determinato dalla quantit di compressione applicata a ciascun fotogramma video. I valori accettabili per quality sono compresi tra 1 (qualit minima, compressione massima) e 100 (qualit massima, nessuna compressione). Il valore predefinito 0, che indica che se necessario la qualit dell'immagine pu variare per evitare di superare l'ampiezza di banda disponibile. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente utilizza un'istanza NumericStepper per specificare la quantit di compressione applicata alla sorgente video della videocamera. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza NumericStepper con il nome quality_nstep. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
var quality_nstep:mx.controls.NumericStepper; var my_cam:Camera = Camera.get(); var my_video:Video; my_video.attachVideo(my_cam); 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);

Vedere anche
setQuality (metodo Camera.setQuality)

412

Capitolo 2: Classi ActionScript

setMode (metodo Camera.setMode)


public setMode([width:Number], [height:Number], [fps:Number], [favorArea:Boolean]) : Void

Imposta la videocamera sulla modalit di cattura che soddisfa al meglio i requisiti specificati. Se la videocamera non dotata di una modalit nativa che soddisfa tutti i parametri passati, viene selezionata una modalit di cattura che sintetizza nel modo pi simile possibile la modalit richiesta. Talvolta questa manipolazione comporta il ritaglio dell'immagine e l'eliminazione di alcuni fotogrammi. Per impostazione predefinita, vengono eliminati dei fotogrammi, se necessario, per mantenere le dimensioni dell'immagine. Per ridurre al minimo il numero di fotogrammi eliminati, e di conseguenza ridurre le dimensioni dell'immagine, passare false per il parametro favorArea. Quando si seleziona una modalit nativa, se possibile Flash tenta di mantenere il rapporto proporzionale richiesto. Ad esempio, se si esegue il comando active_cam.setMode(400, 400, 30), e i valori per la larghezza e l'altezza massime della videocamera sono 320 e 288, sia la larghezza che l'altezza vengono impostate su 288; impostando queste propriet sullo stesso valore, viene rispettato il rapporto proporzionale richiesto. Per determinare i valori assegnati a queste propriet dopo che stata selezionata la modalit pi simile ai valori richiesti, utilizzare Camera.width, Camera.height e Camera.fps. Disponibilit: ActionScript 1.0; Flash Player 6 Parametri
width:Number

[opzionale] - La larghezza della cattura richiesta, espressa in pixel. Il valore predefinito 160. [opzionale] - L'altezza della cattura richiesta, espressa in pixel. Il valore predefinito 120. [opzionale] - La velocit con cui la videocamera deve catturare i dati, espressa in fotogrammi al secondo. Il valore predefinito 15.

height:Number

fps:Number

favorArea:Boolean [opzionale] - Un valore booleano che specifica come manipolare la larghezza, l'altezza e la frequenza dei fotogrammi se la videocamera non dispone di una modalit nativa che soddisfa i requisiti specificati. Il valore predefinito true, Il valore predefinito true, che indica che viene privilegiata la conservazione delle dimensioni di acquisizione; mediante questo parametro viene selezionata la modalit pi simile ai valori width e height, anche se ci incide negativamente sulle prestazioni poich riduce la frequenza dei fotogrammi. Per aumentare al massimo la frequenza dei fotogrammi sacrificando l'altezza e la larghezza della videocamera, passare il valore false per il parametro favorArea.

Camera

413

Esempio L'esempio seguente imposta la modalit di acquisizione della videocamera. possibile digitare una frequenza dei fotogrammi in un'istanza TextInput e premere Invio o Return per applicarla. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza del componente TextInput con il nome fps_ti. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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);

Vedere anche
fps (propriet Camera.fps), height (propriet Camera.height), width (propriet Camera.width), currentFps (propriet Camera.currentFps)

setMotionLevel (metodo setMotionLevel)


public setMotionLevel([motionLevel:Number], [timeOut:Number]) : Void

Specifica la quantit di movimento necessaria per richiamare Camera.onActivity(true). Facoltativamente imposta il numero di millisecondi che devono trascorrere senza alcuna attivit prima che il movimento venga considerato terminato e venga effettuata la chiamata a Camera.onActivity(false).

414

Capitolo 2: Classi ActionScript

Nota: possibile visualizzare il video a prescindere dal valore del parametro sensitivity, che determina solo quando e in quali circostanze viene effettuata la chiamata a Camera.onActivity, non se si sta catturando o visualizzando il video.

Per impedire che la videocamera rilevi qualunque movimento, passare il valore 100 per sensitivity; Camera.onActivity; in questo modo non viene mai effettuata la chiamata a Camera.onActivity. (Questo valore si utilizza solitamente nei test; ad esempio per disabilitare un'azione impostata per essere eseguita quando viene effettuata la chiamata a Camera.onActivity) Per determinare la quantit di movimento attualmente rilevata dalla videocamera, utilizzare la propriet Camera.activityLevel. I valori della sensibilit al movimento corrispondono direttamente ai valori dell'attivit. L'assenza totale di movimento equivale al valore di attivit 0, mentre il moto costante equivale al valore 100. In assenza di movimento, il valore dell'attivit inferiore a quello della sensibilit al movimento; in presenza di movimento, i valori dell'attivit superano frequentemente quelli della sensibilit al movimento. Questo metodo ha uno scopo simile a quello di Microphone.setSilenceLevel(); entrambi vengono utilizzati per specificare quando deve essere richiamato il gestore di eventi onActivity. Tuttavia, questi metodi hanno un impatto decisamente diverso sulla pubblicazione dello streaming.
Microphone.setSilenceLevel()

studiato per ottimizzare l'ampiezza di banda. Quando uno streaming audio considerato silenzioso, non viene inviato alcun dato audio. Viene invece inviato un messaggio singolo che indica che il silenzio cominciato.

Camera.setMotionLevel()

studiato per rilevare il movimento e non influisce sull'uso dell'ampiezza di banda Anche se lo streaming video non rileva alcun movimento, viene comunque inviato il video.

Disponibilit: ActionScript 1.0; Flash Player 6 Parametri


motionLevel:Number [opzionale] Un valore numerico che specifica la quantit di movimento richiesta per richiamare Camera.onActivity(true). I valori accettabili sono compresi tra 0 e 100. Il valore predefinito 50. timeOut:Number [opzionale] Un parametro numerico che specifica la quantit di millisecondi che devono trascorrere senza alcuna attivit prima che Flash consideri cessata ogni attivit e richiami il gestore di eventi Camera.onActivity(false). Il valore predefinito 2000 (2 secondi).

Camera

415

Esempio L'esempio seguente invia dei messaggi al pannello Output quando l'attivit video comincia o si interrompe. Impostare la sensibilit al movimento da 30 a un valore pi alto o pi basso per osservare come valori diversi incidono sul rilevamento del movimento.
// 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);

Vedere anche
motionLevel (propriet Camera.motionLevel), motionTimeOut (propriet Camera.motionTimeOut), onActivity (gestore Camera.onActivity), activityLevel (propriet Camera.activityLevel)

setQuality (metodo Camera.setQuality)


public setQuality([bandwidth:Number], [quality:Number]) : Void

Imposta la quantit massima di ampiezza di banda al secondo o la qualit di immagine richiesta della sorgente video in uscita corrente. Di solito questo metodo si applica solo quando si trasmette il video mediante Flash Communication Server. Utilizzare questo metodo per specificare quale elemento della sorgente video in uscita pi importante per l'applicazione tra l'uso dell'ampiezza di banda o la qualit dell'immagine.

Per indicare che l'ampiezza di banda ha la precedenza, passare un valore per bandwidth e 0 per frameQuality. Il video viene trasmesso con la migliore qualit di immagine possibile per l'ampiezza di banda specificata. Se necessario, la qualit dell'immagine pu essere ridotta per evitare di superare l'ampiezza di banda. In generale, con l'aumentare del movimento diminuisce la qualit. Per indicare che la qualit ha la precedenza, passare 0 per bandwidth e un valore numerico frameQuality. Viene utilizzata l'ampiezza di banda necessaria per mantenere la qualit specificata. Se necessario, la frequenza dei fotogrammi viene ridotta per mantenere la qualit dell'immagine. In generale, con l'aumentare del movimento aumenta anche l'ampiezza di banda.

416

Capitolo 2: Classi ActionScript

Per specificare che l'ampiezza di banda e la qualit hanno la stessa importanza, passare dei valori numerici per entrambi i parametri. Il video viene trasmesso in modo da raggiungere la qualit specificata e non superare l'ampiezza di banda indicata. Se necessario, la frequenza dei fotogrammi viene ridotta per mantenere la qualit dell'immagine senza superare l'ampiezza di banda specificata.

Disponibilit: ActionScript 1.0; Flash Player 6 Parametri


bandwidth:Number

[opzionale] - Un numero intero che specifica la quantit massima di ampiezza di banda utilizzabile dalla sorgente video in uscita corrente, espressa in byte al secondo. Per specificare che il video Flash pu utilizzare tutta la larghezza di banda necessaria per mantenere il valore di frameQuality, passare 0 per bandwidth. Il valore predefinito 16384.

[opzionale] - Un numero intero che specifica il livello di qualit immagine richiesto, determinato dalla quantit di compressione applicata a ciascun fotogramma video. I valori accettabili sono compresi tra 1 (qualit minima, compressione massima) e 100 (qualit massima, nessuna compressione). Per specificare che la qualit dell'immagine pu variare secondo le necessit per evitare di superare la larghezza di banda, passare 0 per quality. Il valore predefinito 0.
quality:Number

Esempio Gli esempi seguenti illustrano come utilizzare questo metodo per controllare l'utilizzo della larghezza di banda e la qualit dell'immagine.
// 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);

Vedere anche
get (metodo Camera.get), quality (propriet Camera.quality), bandwidth (propriet Camera.bandwidth)

Camera

417

width (propriet Camera.width)


public width : Number [read-only]

La larghezza della cattura corrente, espressa in pixel. Per impostare un valore per questa propriet, utilizzare Camera.setMode(). Disponibilit: ActionScript 1.0; Flash Player 6 Esempio Il codice seguente visualizza la larghezza, l'altezza e i fotogrammi al secondo di un'istanza video in un'istanza del componente Label sullo stage. Creare una nuova istanza video selezionando Nuovo video dal menu Opzioni librerie. Aggiungere un'istanza allo stage e denominarla my_video. Aggiungere un'istanza del componente Label allo stage e denominarla dimensions_lbl. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale:
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;

Vedere l'esempio relativo a Camera.setMode(). Vedere anche


height (propriet Camera.height), setMode (metodo Camera.setMode)

capabilities (System.capabilities)
Object | +-System.capabilities public class capabilities extends Object

418

Capitolo 2: Classi ActionScript

La classe Capabilities determina le funzionalit del sistema e del player su cui risiede il file SWF che consentono di personalizzare il contenuto in base ai diversi formati. Ad esempio, il display di un telefono cellulare (100 pixel quadrati, bianco e nero) diverso da uno schermo a colori per PC da 1000 pixel quadrati. Per offrire il contenuto appropriato al maggior numero possibile di utenti, possibile utilizzare l'oggetto System.capabilities per determinare il tipo di dispositivo utilizzato da ogni singolo utente. possibile specificare al server di inviare file SWF diversi a seconda delle funzionalit del dispositivo oppure indicare al file SWF di alterare la propria presentazione in base alle funzionalit del dispositivo. possibile inviare informazioni sulle funzionalit mediante il metodo GET o POST. L'esempio seguente mostra una stringa server per un computer dotato di supporto MP3, impostato su una risoluzione dello schermo di 1600 x 1200 pixel e su cui sono in esecuzione Windows XP e 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"

Tutte le propriet dell'oggetto System.capabilities sono di sola lettura. Disponibilit: ActionScript 1.0; Flash Player 6 Riepilogo delle propriet
Modificatori
static

Propriet
olean [di sola lettura]

Descrizione
videocamera e al microfono dell'utente stato negato (true) o consentito (false) dall'amministratore. esecuzione in un ambiente che supporta la comunicazione tra Flash Player e gli strumenti di supporto all'accessibilit, ed false in caso contrario. Specifica se il sistema dotato di funzionalit audio.

avHardwareDisable:Bo Un valore booleano che specifica se l'accesso alla

static

hasAccessibility:Boo Un valore booleano, che true se il player in lean [di sola lettura]

static

hasAudio:Boolean [di

sola lettura]
static hasAudioEncoder:Bool Specifica se Flash Player in grado di codificare lo ean [di sola lettura]

streaming audio.

capabilities (System.capabilities)

419

Modificatori
static

Propriet
lean [di sola lettura]

Descrizione
esecuzione in un sistema che supporta il video incorporato; false in caso contrario. Indica se sul sistema installato un editor del metodo di input (IME, Input Method Editor). Specifica se il sistema dotato di decodificatore MP3. Un valore booleano, che true se il player in esecuzione in un sistema che supporta la stampa; false in caso contrario.

hasEmbeddedVideo:Boo Un valore booleano, che true se il player in

static

hasIME:Boolean [di

sola lettura]
static hasMP3:Boolean [di

sola lettura]
static hasPrinting:Boolean

[di sola lettura]

static

hasScreenBroadcast:B Un valore booleano, che true se il player supporta lo oolean [di sola lettura] sviluppo di applicazioni di broadcast su schermo da

eseguire mediante Flash Communication Server; false in caso contrario.


static hasScreenPlayback:Bo Un valore booleano, che true se il player supporta la olean [di sola lettura]

riproduzione di applicazioni di broadcast su schermo eseguite mediante Flash Communication Server; false in caso contrario. di riprodurre l'audio in streaming; false in caso contrario. di riprodurre il video in streaming; false in caso contrario. streaming video. Un valore booleano che indica se il player una release ufficiale (false) o una speciale versione di debug (true). Indica la lingua del sistema su cui in esecuzione il player. lettura al disco rigido dell'utente stato negato (true) o consentito (false) dall'amministratore. Una stringa che indica il produttore di Flash Player, espresso nel formato "Macromedia OSName" (OSName pu essere "Windows", "Macintosh", "Linux" o "Other OS Name").

static

hasStreamingAudio:Bo Un valore booleano, che true se il player in grado olean [di sola lettura]

static

hasStreamingVideo:Bo Un valore booleano, che true se il player in grado olean [di sola lettura]

static

hasVideoEncoder:Bool Specifica se Flash Player in grado di codificare lo ean [di sola lettura]

static

isDebugger:Boolean

[di sola lettura]


language:String [di

static

sola lettura]
static :Boolean [di sola

localFileReadDisable Un valore booleano che specifica se l'accesso in

lettura]
static manufacturer:String

[di sola lettura]

420

Capitolo 2: Classi ActionScript

Modificatori
static

Propriet
os:String [di sola

Descrizione
Una stringa che indica il sistema operativo corrente.

lettura]
static pixelAspectRatio:Num Un numero intero che indica il rapporto proporzionale ber [di sola lettura] static

dei pixel dello schermo.

playerType:String [di Una stringa che indica il tipo di player.

sola lettura]
static screenColor:String

Una stringa che indica il colore dello schermo. Un numero che indica la risoluzione dpi (dots per inch, punti per pollice), espressa in pixel. massima dello schermo. massima dello schermo. Una stringa con codifica URL che specifica i valori per ciascuna propriet System.capabilities. Una stringa che contiene le informazioni sulla piattaforma e la versione di Flash Player (ad esempio "WIN 8,0,0,0").

[di sola lettura]


static screenDPI:Number [di

sola lettura]
static mber [di sola lettura] static

screenResolutionX:Nu Un numero intero che indica la risoluzione orizzontale

screenResolutionY:Nu Un numero intero che indica la risoluzione verticale mber [di sola lettura]

static

serverString:String

[di sola lettura]


static version:String [di

sola lettura]

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo dei metodi Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

capabilities (System.capabilities)

421

avHardwareDisable (propriet capabilities.avHardwareDisable)


public static avHardwareDisable : Boolean [read-only]

Un valore booleano che specifica se l'accesso alla videocamera e al microfono dell'utente stato negato (true) o consentito (false) dall'amministratore. La stringa server AVD. Disponibilit: ActionScript 1.0; Flash Player 7 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.avHardwareDisable);

Vedere anche
get (metodo Camera.get), get (metodo Microphone.get), showSettings (metodo System.showSettings)

hasAccessibility (propriet capabilities.hasAccessibility)


public static hasAccessibility : Boolean [read-only]

Un valore booleano, che true se il player in esecuzione in un ambiente che supporta la comunicazione tra Flash Player e gli strumenti di supporto all'accessibilit, ed false in caso contrario. La stringa server ACC. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasAccessibility);

Vedere anche
isActive (metodo Accessibility.isActive), updateProperties (metodo Accessibility.updateProperties),

422

Capitolo 2: Classi ActionScript

hasAudio (propriet capabilities.hasAudio)


public static hasAudio : Boolean [read-only]

Specifica se il sistema dotato di funzionalit audio. Un valore booleano, che true se il player in esecuzione in un sistema dotato di funzionalit audio, ed false in caso contrario. La stringa server A. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasAudio);

hasAudioEncoder (propriet capabilities.hasAudioEncoder)


public static hasAudioEncoder : Boolean [read-only]

Specifica se Flash Player in grado di codificare lo streaming audio. Un valore booleano, che true se il player in grado di codificare uno streaming audio (ad esempio, quello catturato da un microfono); false in caso contrario. La stringa server AE. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasAudioEncoder);

hasEmbeddedVideo (propriet capabilities.hasEmbeddedVideo)


public static hasEmbeddedVideo : Boolean [read-only]

Un valore booleano, che true se il player in esecuzione in un sistema che supporta il video incorporato; false in caso contrario. La stringa server EV. Disponibilit: ActionScript 1.0; Flash Player 6,00,65,0 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasEmbeddedVideo);

capabilities (System.capabilities)

423

hasIME (propriet capabilities.hasIME)


public static hasIME : Boolean [read-only]

Indica se sul sistema installato un editor del metodo di input (IME, Input Method Editor). Un valore true indica che il player in esecuzione su un sistema su cui installato un IME; un valore false indica che non installato alcun IME. La stringa server IME. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente imposta l'IME su ALPHANUMERIC_FULL se il player viene eseguito su un sistema su cui l'IME installato.
if(System.capabilities.hasIME) { trace(System.IME.getConversionMode()); System.IME.setConversionMode(System.IME.ALPHANUMERIC_FULL); trace(System.IME.getConversionMode()); }

hasMP3 (propriet capabilities.hasMP3)


public static hasMP3 : Boolean [read-only]

Specifica se il sistema dotato di decodificatore MP3. Un valore booleano, che true se il player in esecuzione in un sistema dotato di decodificatore MP3; false in caso contrario. La stringa server MP3. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasMP3);

hasPrinting (propriet capabilities.hasPrinting)


public static hasPrinting : Boolean [read-only]

Un valore booleano, che true se il player in esecuzione in un sistema che supporta la stampa; false in caso contrario. La stringa server PR. Disponibilit: ActionScript 1.0; Flash Player 6,00,65,0 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasPrinting);

424

Capitolo 2: Classi ActionScript

hasScreenBroadcast (propriet capabilities.hasScreenBroadcast)


public static hasScreenBroadcast : Boolean [read-only]

Un valore booleano, che true se il player supporta lo sviluppo di applicazioni di broadcast su schermo da eseguire mediante Flash Communication Server; false in caso contrario. La stringa server SB. Disponibilit: ActionScript 1.0; Flash Player 6,0,79,0 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasScreenBroadcast);

hasScreenPlayback (propriet capabilities.hasScreenPlayback)


public static hasScreenPlayback : Boolean [read-only]

Un valore booleano, che true se il player supporta la riproduzione di applicazioni di broadcast su schermo eseguite mediante Flash Communication Server; false in caso contrario. La stringa server SP. Disponibilit: ActionScript 1.0; Flash Player 6,0,79,0 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasScreenPlayback);

hasStreamingAudio (propriet capabilities.hasStreamingAudio)


public static hasStreamingAudio : Boolean [read-only]

Un valore booleano, che true se il player in grado di riprodurre l'audio in streaming; false in caso contrario. La stringa server SA. Disponibilit: ActionScript 1.0; Flash Player 6,00,65,0 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasStreamingAudio);

capabilities (System.capabilities)

425

hasStreamingVideo (propriet capabilities.hasStreamingVideo)


public static hasStreamingVideo : Boolean [read-only]

Un valore booleano, che true se il player in grado di riprodurre il video in streaming; false in caso contrario. La stringa server SV. Disponibilit: ActionScript 1.0; Flash Player 6,00,65,0 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasStreamingVideo);

hasVideoEncoder (propriet capabilities.hasVideoEncoder)


public static hasVideoEncoder : Boolean [read-only]

Specifica se Flash Player in grado di codificare lo streaming video. Un valore booleano, che true se il player in grado di codificare uno streaming video (ad esempio, quello proveniente da una webcam); false in caso contrario. La stringa server VE. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.hasVideoEncoder);

isDebugger (propriet capabilities.isDebugger)


public static isDebugger : Boolean [read-only]

Un valore booleano che indica se il player una release ufficiale (false) o una speciale versione di debug (true). La stringa server DEB. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.isDebugger);

426

Capitolo 2: Classi ActionScript

language (propriet capabilities.language)


public static language : String [read-only]

Indica la lingua del sistema su cui in esecuzione il player. Questa propriet specificata sotto forma di codice della lingua ISO 639-1 costituito da due lettere minuscole. Nel caso del cinese, un tag secondario del codice nazionale ISO 3166 a due lettere maiuscole distingue tra il cinese semplificato e quello tradizionale. Per i nomi delle lingue vengono utilizzati i tag inglesi. Ad esempio, fr specifica il francese. Questa propriet stata sottoposta a due tipi di modifica in Flash Player 7. Innanzi tutto, il codice di lingua per i sistemi inglesi non include pi il codice nazionale. In Flash Player 6, tutti i sistemi inglesi restituiscono il codice di lingua e il tag secondario del codice nazionale a due lettere (en-US). In Flash Player 7, i sistemi inglesi restituiscono solo il codice di lingua (en). Secondariamente, nei sistemi Microsoft Windows questa propriet ora restituisce la lingua dell'interfaccia utente (UI). In Flash Player 6 su piattaforma Microsoft Windows, System.capabilities.language restituisce la versione localizzata dell'utente, che controlla le impostazioni per la formattazione della data, dell'ora, della valuta e dei numeri. In Flash Player 7 su piattaforma Microsoft Windows, questa propriet ora restituisce la lingua dell'interfaccia utente (UI), che fa riferimento alla lingua utilizzata per tutti i menu, le finestre di dialogo, i messaggi di errore e i file della Guida in linea. Di seguito sono riportati i valori possibili:
Lingua
Ceco (Czech) Danese (Danish) Olandese (Dutch) Inglese (English) Finlandese (Finnish) Francese (French) Tedesco (German) Ungherese (Hungarian) Italiano Giapponese (Japanese) Coreano (Korean) Norvegese (Norwegian) Altre/sconosciute Polacco (Polish)

Tag
cs da nl en fi fr de hu it ja ko no xu pl

capabilities (System.capabilities)

427

Lingua
Portoghese (Portoguese) Russo (Russian) Cinese semplificato (Simplified Chinese) Spagnolo (Spanish) Svedese (Swedish) Cinese tradizionale (Traditional Chinese) Turco (Turkish)

Tag
pt ru zh-CN es sv zh-TW tr

Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.language);

localFileReadDisable (propriet capabilities.localFileReadDisable)


public static localFileReadDisable : Boolean [read-only]

Un valore booleano che specifica se l'accesso in lettura al disco rigido dell'utente stato negato (true) o consentito (false) dall'amministratore. Se impostata su true,, Flash Player non in grado di leggere i file (compreso il primo file SWF con cui viene lanciato) dal disco rigido dell'utente. Ad esempio, i tentativi di leggere un file presente nel disco rigido dell'utente mediante XML.load(), LoadMovie() o LoadVars.load() danno esito negativo se questa propriet impostata su true. Se la propriet impostata su true, anche la lettura delle librerie condivise di runtime viene bloccata, tuttavia la lettura degli oggetti condivisi locali viene consentita senza fare riferimento al valore di questa propriet. La stringa server LFD. Disponibilit: ActionScript 1.0; Flash Player 7 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.localFileReadDisable);

428

Capitolo 2: Classi ActionScript

manufacturer (propriet capabilities.manufacturer)


public static manufacturer : String [read-only]

Una stringa che indica il produttore di Flash Player, espresso nel formato "Macromedia OSName" (OSName pu essere "Windows", "Macintosh", "Linux" o "Other OS Name"). La stringa server M. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.manufacturer);

os (propriet capabilities.os)
public static os : String [read-only]

Una stringa che indica il sistema operativo corrente. La propriet os pu restituire le stringhe seguenti: "Windows XP", "Windows 2000", "Windows NT", "Windows 98/ME", "Windows 95", "Windows CE" (disponibile solo nel Flash Player SDK e non nella versione desktop), "Linux" e "MacOS". La stringa server OS. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.os);

pixelAspectRatio (propriet capabilities.pixelAspectRatio)


public static pixelAspectRatio : Number [read-only]

Un numero intero che indica il rapporto proporzionale dei pixel dello schermo. La stringa server AR. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.pixelAspectRatio);

capabilities (System.capabilities)

429

playerType (propriet capabilities.playerType)


public static playerType : String [read-only]

Una stringa che indica il tipo di player. Questa propriet pu avere uno dei seguenti valori:

"StandAlone"

per il lettore Flash Player autonomo

"External" per la versione di Flash utilizzata dal player esterno o la modalit di prova del

filmato.

"PlugIn"

per il plug-in Flash Player per browser per il controllo ActiveX di Flash Player utilizzato da Microsoft Internet

"ActiveX"

Explorer La stringa server PT. Disponibilit: ActionScript 1.0; Flash Player 7 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.playerType);

screenColor (propriet capabilities.screenColor)


public static screenColor : String [read-only]

Una stringa che indica il colore dello schermo. Questa propriet pu avere i valori "color", "gray" e "bw", che rappresentano rispettivamente il colore, la scala di grigi e il bianco e nero. La stringa server COL. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.screenColor);

430

Capitolo 2: Classi ActionScript

screenDPI (propriet capabilities.screenDPI)


public static screenDPI : Number [read-only]

Un numero che indica la risoluzione dpi (dots per inch, punti per pollice), espressa in pixel. La stringa server DP. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.screenDPI);

screenResolutionX (propriet capabilities.screenResolutionX)


public static screenResolutionX : Number [read-only]

Un numero intero che indica la risoluzione orizzontale massima dello schermo. La stringa server R (che restituisce sia la larghezza che l'altezza dello schermo). Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.screenResolutionX);

screenResolutionY (propriet capabilities.screenResolutionY)


public static screenResolutionY : Number [read-only]

Un numero intero che indica la risoluzione verticale massima dello schermo. La stringa server R (che restituisce sia la larghezza che l'altezza dello schermo). Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.screenResolutionY);

capabilities (System.capabilities)

431

serverString (propriet capabilities.serverString)


public static serverString : String [read-only]

Una stringa con codifica URL che specifica i valori per ciascuna propriet System.capabilities. L'esempio seguente mostra una stringa con codifica 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 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.serverString);

version (propriet capabilities.version)


public static version : String [read-only]

Una stringa che contiene le informazioni sulla piattaforma e la versione di Flash Player (ad esempio "WIN 8,0,0,0"). La stringa server V. Disponibilit: ActionScript 1.0; Flash Player 6 Esempio L'esempio seguente traccia il valore di questa propriet di sola lettura:
trace(System.capabilities.version);

Color
Object | +-Color public class Color extends Object

Sconsigliata a partire da Flash Player 8: questa classe Color stata sconsigliata a favore della classe flash.geom.ColorTransform.

432

Capitolo 2: Classi ActionScript

La classe Color consente di impostare il valore RGB del colore e il valore di trasformazione del colore dei clip filmato e di recuperarli una volta che sono stati impostati. Per creare un oggetto Color prima di chiamarne i metodi, utilizzare la funzione di costruzione new Color(). Disponibilit: ActionScript 1.0; Flash Player 5 Riepilogo delle propriet Propriet ereditate dalla classe Object
constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo delle funzioni di costruzione


Firma Descrizione
Crea un oggetto Color per il clip filmato specificato dal parametro target_mc.

Color(target:Object) Classe sconsigliata.

Riepilogo dei metodi


Modificatori Firma
getRGB() : Number

Descrizione
Classe sconsigliata. Restituisce la combinazione R+G+B attualmente utilizzata dall'oggetto color. Classe sconsigliata. Restituisce il valore di trasformazione impostato dall'ultima chiamata a Color.setTransform(). Specifica un colore RGB per un oggetto Color. Imposta le informazioni di trasformazione del colore per un oggetto Color.

getTransform() : Object

setRGB(offset:Number Classe sconsigliata. ) : Void

setTransform(transfo Classe sconsigliata. rmObject:Object) : Void

Color

433

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

Color, funzione di costruzione


public Color(target:Object)

La classe Color sconsigliata a partire da Flash Player 8. Crea un oggetto Color per il clip filmato specificato dal parametro target_mc. possibile utilizzare i metodi di questo oggetto Color per modificare il colore di un clip filmato target. Disponibilit: ActionScript 1.0; Flash Player 5 Parametri
target:Object

- Il nome dell'istanza di un clip filmato.

Esempio L'esempio seguente crea un oggetto Color di nome my_color per il clip filmato my_mc e ne imposta il valore RGB sul colore arancione:
var my_color:Color = new Color(my_mc); my_color.setRGB(0xff9933);

getRGB (metodo Color.getRGB)


public getRGB() : Number

La classe Color sconsigliata a partire da Flash Player 8. Restituisce la combinazione R+G+B attualmente utilizzata dall'oggetto color. Disponibilit: ActionScript 1.0; Flash Player 5 Valori restituiti
Number

- Un numero che rappresenta il valore numerico RGB per il colore specificato.

434

Capitolo 2: Classi ActionScript

Esempio Il codice seguente recupera il valore RGB dell'oggetto Color my_color, converte il valore in una stringa esadecimale e lo assegna alla variabile myValue. Per un esempio del funzionamento di questo codice, aggiungere un'istanza di clip filmato allo stage, quindi assegnarle il nome di istanza my_mc:
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

Vedere anche
setRGB (metodo Color.setRGB)

getTransform (metodo Color.getTransform)


public getTransform() : Object

La classe Color sconsigliata a partire da Flash Player 8. Restituisce il valore di trasformazione impostato dall'ultima chiamata a Color.setTransform(). Disponibilit: ActionScript 1.0; Flash Player 5 Valori restituiti
Object - Un oggetto le cui propriet contengono i valori correnti dell'offset e percentuale del colore specificato.

Esempio L'esempio seguente ottiene l'oggetto transform, quindi per i colori e l'alfa di my_mc imposta delle nuove percentuali relative ai valori correnti. Per un esempio di funzionamento di questo codice, collocare un clip filmato a pi colori sullo stage con il nome di istanza my_mc. Quindi, collocare il codice seguente sul fotogramma 1 nella linea temporale principale e selezionare Controllo > Prova filmato:
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);

Per consultare delle descrizioni dei parametri di un oggetto trasformazione colore, vedere Color.setTransform().

Color

435

Vedere anche
setTransform (metodo Color.setTransform)

setRGB (metodo Color.setRGB)


public setRGB(offset:Number) : Void

La classe Color sconsigliata a partire da Flash Player 8. Specifica un colore RGB per un oggetto Color. Se si chiama questo metodo, le eventuali impostazioni precedenti di Color.setTransform() vengono ignorate. Disponibilit: ActionScript 1.0; Flash Player 5 Parametri
offset:Number

- 0x RRGGBB Il colore esadecimale o RGB da impostare. RR, GG e BB sono composti da due cifre esadecimali che specificano l'offset di ciascun componente di colore. 0x indica al compilatore ActionScript che il numero un valore esadecimale. Esempio

Questo esempio imposta il valore di colore RGB per il clip filmato my_mc. Per un esempio di funzionamento di questo codice, collocare un clip filmato sullo stage con il nome di istanza my_mc. Quindi, collocare il codice seguente sul fotogramma 1 nella linea temporale principale e selezionare Controllo > Prova filmato:
var my_color:Color = new Color(my_mc); my_color.setRGB(0xFF0000); // my_mc turns red

Vedere anche
setTransform (metodo Color.setTransform)

setTransform (metodo Color.setTransform)


public setTransform(transformObject:Object) : Void

La classe Color sconsigliata a partire da Flash Player 8. Imposta le informazioni di trasformazione del colore per un oggetto Color. Il parametro colorTransformObject un oggetto generico che viene creato dalla funzione di costruzione new Object. dotato di parametri che specificano i valori percentuali e di offset dei componenti rosso, verde, blu e alfa (trasparenza) di un colore, nel formato 0xRRGGBBAA.

436

Capitolo 2: Classi ActionScript

I parametri di un oggetto trasformazione colore corrispondono alle impostazioni della finestra di dialogo Effetto avanzato e sono definiti nel modo seguente:

ra rb ga gb ba bb aa ab

la percentuale relativa al componente rosso (da -100 a 100). l'offset relativo al componente rosso (da -255 a 255). la percentuale relativa al componente verde (da -100 a 100). l'offset relativo al componente verde (da -255 a 255). la percentuale relativa al componente blu (da -100 a 100). l'offset relativo al componente blu (da -255 a 255). la percentuale relativa all'alfa (da -100 a 100). l'offset relativo all'alfa (da -255 a 255).

possibile creare un parametro di colorTransformObject nel modo seguente: 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; Per creare un parametro di colorTransformObject anche possibile utilizzare la sintassi seguente: 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 Parametri
transformObject:Object

- Un oggetto creato con la funzione di costruzione new Object. Questa istanza della classe Object deve avere le seguenti propriet che specificano i valori di trasformazione del colore: ra, rb, ga, gb, ba, bb, aa, ab. Queste propriet vengono illustrate di seguito.

Color

437

Esempio Questo esempio crea un oggetto new Color per un file SWF di destinazione, crea un oggetto generico di nome myColorTransform con le propriet definite in precedenza e utilizza il metodo setTransform() per passare colorTransformObject ad un oggetto Color. Per utilizzare questo codice in un documento Flash (FLA), collocarlo sul fotogramma 1 della linea temporale principale e posizionare un clip filmato sullo stage con il nome di istanza my_mc, come accade nel codice seguente: // 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);

Vedere anche
Oggetto

ColorMatrixFilter (flash.filters.ColorMatrixFilter)
Object | +-flash.filters.BitmapFilter | +-flash.filters.ColorMatrixFilter public class ColorMatrixFilter extends BitmapFilter

La classe ColorMatrixFilter consente di applicare una trasformazione di matrice 4 x 5 ai valori di colore RGBA e alfa di ogni pixel dell'immagine di input per produrre un risultato con una nuova serie di valori di colore RGBA e alfa. In questo modo, sono possibili le modifiche della saturazione, la rotazione della tonalit, la luminanza ad alfa e altri effetti vari. Questo filtro pu essere applicato alle istanze delle immagini bitmap e dei clip filmato. L'uso dei filtri dipende dall'oggetto al quale il filtro viene applicato:

Per applicare i filtri a clip filmato in fase di runtime, utilizzare la propriet filters. L'impostazione della propriet filters di un oggetto non modifica l'oggetto e pu essere annullata cancellando la propriet filters.

438

Capitolo 2: Classi ActionScript

Per applicare filtri a istanze BitmapData, utilizzare il metodo BitmapData.applyFilter(). Quando si chiama applyFilter() su un oggetto BitmapData, viene acquisito l'oggetto BitmapData di origine e l'oggetto filter e si genera un'immagine filtrata.

possibile applicare effetti filtro a immagini e video anche in fase di creazione. Per ulteriori informazioni, consultare la documentazione dell'ambiente di creazione. Se si applica un filtro a un clip filmato o a un pulsante, la propriet cacheAsBitmap del clip filmato o pulsante viene impostata su true. Se si cancellano tutti i filtri, viene ripristinato il valore originale di cacheAsBitmap. Si utilizzano le formule seguenti in cui i valori da [0] a [19] corrispondono agli elementi da 0 a 19 nella matrice delle propriet di array composta da 20 elementi.
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]

Questo filtro separa ogni singolo pixel sorgente nei relativi componenti di rosso, verde, blu e alfa sotto forma di srcR, srcG, srcB, srcA. Come ultima operazione, ricombina ogni componente di colore in un singolo pixel e scrive il risultato. I calcoli vengono eseguiti su valori di colore non moltiplicati. Se l'elemento grafico di input consiste in valori di colore premoltiplicati, per questa operazione tali valori vengono automaticamente convertiti in valori di colore non moltiplicati. Sono disponibili le seguenti due modalit ottimizzate. Solo alfa. Quando al filtro si passa una matrice che regola solo il componente alfa, come mostrato di seguito, il filtro ottimizza la prestazione:
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)

Versione pi veloce. Disponibile solo con i precessori abilitati da acceleratore SSE/Altivec (ad esempio, Pentium 3 e versioni successive e Apple G4 e versioni successive). L'acceleratore viene utilizzato quando i termini del moltiplicatore sono compresi tra -15.99 e 15.99 e i termini dell'addizionatore a[4], a[9], a[14], e a[19] sono compresi tra -8000 e 8000.

ColorMatrixFilter (flash.filters.ColorMatrixFilter)

439

Non viene applicato un filtro se l'immagine risultante supera i 2880 pixel in larghezza o altezza. Se, ad esempio, si ingrandisce un clip filmato grande con filtro applicato, tale filtro viene disattivato se l'immagine risultante supera il limite di 2880 pixel. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente utilizza BitmapFilter per gestire la saturazione del colore di un'immagine in base alla posizione del puntatore del mouse. Se si posiziona il puntatore nell'angolo superiore sinistro (0,0), l'immagine non deve essere modificata. Quando si sposta il puntatore verso destra, i canali verde e blu vengono rimossi dall'immagine. Se si sposta verso il basso, viene rimosso il canale rosso. Se il puntatore viene posizionato nella parte inferiore destra dello stage, l'immagine dovrebbe essere completamente nera. Questo esempio presume che l'immagine presente nella libreria abbia l'identificatore di concatenamento impostato su "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();

Vedere anche
getPixel (metodo BitmapData.getPixel), applyFilter (metodo BitmapData.applyFilter), filters (propriet MovieClip.filters), cacheAsBitmap (propriet MovieClip.cacheAsBitmap)

440

Capitolo 2: Classi ActionScript

Riepilogo delle propriet


Modificatori Propriet
matrix:Array

Descrizione
Un array di 20 elementi per la trasformazione di colore 4x5.

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo delle funzioni di costruzione


Firma
trix:Array)

Descrizione
specificati.

ColorMatrixFilter(ma Inizializza una nuova istanza di ColorMatrixFilter con i parametri

Riepilogo dei metodi


Modificatori Firma
clone() : ColorMatrixFilter

Descrizione
Restituisce una copia di questo oggetto filtro.

Metodi ereditati dalla classe BitmapFilter


clone (metodo BitmapFilter.clone)

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

ColorMatrixFilter (flash.filters.ColorMatrixFilter)

441

clone (metodo ColorMatrixFilter.clone)


public clone() : ColorMatrixFilter

Restituisce una copia di questo oggetto filtro. Disponibilit: ActionScript 1.0; Flash Player 8 Valori restituiti
flash.filters.ColorMatrixFilter

- Un'istanza new ColorMatrixFilter con tutte le

propriet dell'originale. Esempio L'esempio seguente crea una nuova istanza ColorMatrixFilter, quindi la clona utilizzando il metodo clone. La propriet matrix non pu essere modificata direttamente (ad esempio, clonedFilter.matrix[2] = 1;). Piuttosto, necessario ottenere un riferimento all'array, eseguire la modifica, quindi reimpostare il valore mediante 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);

ColorMatrixFilter, funzione di costruzione


public ColorMatrixFilter(matrix:Array)

Inizializza una nuova istanza di ColorMatrixFilter con i parametri specificati. Disponibilit: ActionScript 1.0; Flash Player 8 Parametri
matrix:Array

- Un array di 20 elementi organizzati in una matrice 4 x 5.

442

Capitolo 2: Classi ActionScript

matrix (propriet ColorMatrixFilter.matrix)


public matrix : Array

Un array di 20 elementi per la trasformazione di colore 4x5. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente crea una nuova istanza ColorMatrixFilter, quindi modifica la relativa propriet matrix. La propriet matrix non pu essere modificata variando direttamente il valore (ad esempio, clonedFilter.matrix[2] = 1;). Piuttosto, necessario ottenere un riferimento all'array, eseguire la modifica al riferimento, quindi reimpostare il valore mediante 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 consente di rettificare matematicamente tutti i valori di colore di un clip filmato. La funzione di regolazione del colore o trasformazione del colore pu essere applicata a tutti e quattro i canali: rosso, verde, blu o trasparenza alfa.

ColorTransform (flash.geom.ColorTransform)

443

Quando si applica un oggetto ColorTransform a un clip filmato, viene calcolato un nuovo valore per ciascun canale di colore nel modo seguente:

Nuovo valore rosso = (valore rosso precedente * redMultiplier) + redOffset Nuovo valore verde = (valore verde precedente * greenMultiplier) + greenOffset Nuovo valore blu = (valore blu precedente * blueMultiplier) + blueOffset Nuovo valore alfa = (valore alfa precedente * alphaMultiplier) + alphaOffset

Se dopo il calcolo uno dei valori dei canali di colore risulta maggiore di 255, viene impostato su 255. Se inferiore a 0, viene impostato su 0. necessario utilizzare la funzione di costruzione new ColorTransform() per creare un oggetto ColorTransform prima di poter chiamare i metodi dell'oggetto ColorTransform. Le trasformazioni del colore non si applicano al colore di sfondo di un clip filmato (ad esempio, un oggetto SWF caricato), ma solo agli elementi grafici e ai simboli associati al clip filmato. Disponibilit: ActionScript 1.0; Flash Player 8 Vedere anche
getTransform (metodo Color.getTransform), setTransform (metodo Color.setTransform), Transform (flash.geom.Transform)

Riepilogo delle propriet


Modificatori Propriet
er alphaOffset:Number

Descrizione
del canale di trasparenza alfa. Un numero da -255 a 255 che viene aggiunto al valore del canale trasparenza di alfa dopo che questo stato moltiplicato per il valore alphaMultiplier. del canale blu. Un numero da -255 a 255 che viene aggiunto al valore del canale blu dopo che questo stato moltiplicato per il valore blueMultiplier. del canale verde. Un numero da -255 a 255 che viene aggiunto al valore del canale verde dopo che questo stato moltiplicato per il valore greenMultiplier.

alphaMultiplier:Numb Un valore decimale che viene moltiplicato per il valore

blueMultiplier:Numbe Un valore decimale che viene moltiplicato per il valore r blueOffset:Number

greenMultiplier:Numb Un valore decimale che viene moltiplicato per il valore er greenOffset:Number

444

Capitolo 2: Classi ActionScript

Modificatori

Propriet

Descrizione
del canale rosso.

redMultiplier:Number Un valore decimale che viene moltiplicato per il valore

redOffset:Number

Un numero da -255 a 255 che viene aggiunto al valore del canale rosso dopo che questo stato moltiplicato per il valore redMultiplier. Il valore di colore RGB per un oggetto ColorTransform.

rgb:Number

Propriet ereditate dalla classe Object


constructor (propriet Object.constructor), __proto__ (Oggetto.__proto__ propriet), prototype (propriet Object.prototype), __resolve (Object.__resolve, propriet)

Riepilogo delle funzioni di costruzione


Firma
ultiplier:Number], [greenMultiplier:Num ber], [blueMultiplier:Numb er], [alphaMultiplier:Num ber], [redOffset:Number], [greenOffset:Number] , [blueOffset:Number], [alphaOffset:Number] )

Descrizione
canali di colore e alfa specificati.

ColorTransform([redM Crea un oggetto ColorTransform per un oggetto display con i valori dei

Riepilogo dei metodi


Modificatori Firma
ransform) : Void toString() : String

Descrizione
colore additivo. Formatta e restituisce una stringa che descrive tutte le propriet dell'oggetto ColorTransform.

concat(second:ColorT Applica al clip filmato una seconda trasformazione di

ColorTransform (flash.geom.ColorTransform)

445

Metodi ereditati dalla classe Object


addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch)

alphaMultiplier (propriet ColorTransform.alphaMultiplier)


public alphaMultiplier : Number

Un valore decimale che viene moltiplicato per il valore del canale di trasparenza alfa. Se si imposta il valore della trasparenza alfa di un clip filmato direttamente mediante la propriet MovieClip._alpha, viene modificato il valore della propriet alphaMultiplier dell'oggetto ColorTransform del clip filmato. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente crea colorTrans per l'oggetto ColorTransform e ne modifica il valore alphaMultiplier da 1 a .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);

446

Capitolo 2: Classi ActionScript

mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; }

Vedere anche
_alpha (propriet MovieClip._alpha)

alphaOffset (propriet ColorTransform.alphaOffset)


public alphaOffset : Number

Un numero da -255 a 255 che viene aggiunto al valore del canale trasparenza di alfa dopo che questo stato moltiplicato per il valore alphaMultiplier. Disponibilit: ActionScript 1.0; Flash Player 8 Esempio L'esempio seguente crea colorTrans per l'oggetto ColorTransform e ne modifica il valore alphaOffset da 0 a -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; }

ColorTransform (flash.geom.ColorTransform)

447

blueMultiplier (propriet ColorTransform.blueMultiplier)


public blueMultiplier : Number

Un valo