di: Davide Beltrame 18 Settembre 2009
Tra le novità introdotte nel Flash Player 10 (e nella CS4), se ne annovera una molto interessante per gli sviluppatori, benchè poco conosciuta e "pubblicizzata": si tratta del tipo di oggetto Vector, che può essere considerato un "parente" dell'Array e che, in molti casi, può sostituirlo con miglioramenti, anche notevoli, a livello di performance.
In questo articolo esaminiamo i punti in comune e le princiapli differenze tra Vector ed Array.
Nota: l'oggetto Vector è disponibile solo in ActionScript 3 ed è compatibile solo con il Flash Player 10 e successivi.
La differenza più importante tra questi i due tipi risiede nel fatto che Array può contenere diversi tipi di oggetti, mentre Vector può contenere oggetti solo di un tipo (quindi solo numeri, o solo stringe, o solo Sprite, etc.) e questo tipo va specificato in fase di dichiarazione. Se per dichiarare un array è sufficiente la sintassi:
var array:Array = new Array()
Nella dichiarazione di un vettore bisogna specificare il tipo di oggetto, in questo modo:
var vettore:Vector.<Number> = new Vector.<Number>()
In questo caso abbiamo definito un vettore con elementi di solo tipo numerico. Vediamo meglio cosa comporta questa differenza: usando un Array, possiamo scrivere un codice simile a questo:
var array:Array = new Array(); array[0] = "Ciao"; array[1] = 0; array[2] = root;
Non riceveremo errori di compilazione, e otterremo una collezione di tre diversi tipi di oggetto: una stringa ("ciao"), un numero (0) e un oggetto DisplayObject (il riferimento a root).
Una operazione del genere non è possibile con un Vector dichiarato di tipo Number e, lanciando il codice seguente:
var vettore:Vector.<Number> = new Vector.<Number>(); vettore[0] = "Ciao"; vettore[1] = 0; vettore[2] = root;
otterremo due errori di compilazione, uno per l'elemento stringa e uno per l'elemento DisplayObject, perchè il contenuto accettato da vettore deve essere esclusivamente numerico.
Ovviamente, oltre ai tipi del Flash Player, si può specificare come oggetto una classe personalizzata.
var vettore:Vector.<Classe> = new Vector.<Classe>();
|
Creare l'effetto Time Machine di Leopard in Actionscript 3.0 |
Guida ActionScript 3 di baseApprendere, in poche lezioni, le nozioni fondamentali per gestire... |
Guida FlashDevelopInstallare e usare FlashDevelop, potente ambiente di sviluppo open... |
Guida Flash Builder 4Un percorso alla scoperta delle potenzialità più importanti... |
Ogni martedì, guide, articoli, FAQ, movie, audio su Macromedia Flash e Actionscript direttamente nella tua casella di posta
Iscriviti alla newsletter
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |