Actionscript 3.0 for beginners: lesson #5

giovedì 22 gennaio, 2009

Chi ha iniziato a sviluppare codice con linguaggi di scripting come Javascript o lo stesso Actionscript, potrebbe non conoscere affatto il concetto di tipo dato. Con alcuni linguaggi ad alto livello, infatti, si è abituati - nella migliore delle ipotesi - a dichiarare le variabili senza assegnargli un tipo dato specifico, senza contare quei linguaggi che non richiedono nessuna dichiarazione (come ad esempio il PHP – non nella versione strict 5). Chi viene dal C, al contrario, non saprebbe nemmeno come fare ad usare una variabile senza dichiararla in modo rigoroso.
Nell’esempio qui sotto vediamo la dichiarazione di due variabili senza specificare il tipo dato che conterranno:

Actionscript:
  1. var mio_numero = 0;
  2. var mia_stringa = "stringa di testo";

Lo stesso Actionscript, come annunciato, prevede la non dichiarazione dei tipi e delle variabili! Quest’ultimo comportamento va forzato eliminando la spunta nella casella “Modalità rigorosa” della finestra di Impostazioni Actionscript 3.0:

Flash CS3

Così facendo un codice come questo qui sotto non produrrà nessun errore:

Actionscript:
  1. var mio_numero = 3;
  2. mio_nove = 9;
  3. trace( mio_nove + mio_numero + 5 );

Alla riga 2 la variabile mio_nove non solo non contiene il tipo, ma non è nemmeno stata dichiarata tramite la keyword var. Nonostante sia stata mantenuta la possibilità di dichiarare le variabili in questa modalità “blanda”, è estremamente più corretto, utile ed efficacie specificare il tipo dato associato alla nostra variabile:

Actionscript:
  1. var mio_numero:uint = 0;
  2. var mia_stringa:string = "stringa di testo";

Questo è il modo corretto per dichiarare le variabili, utile per migliorare le performance e la solidità della nostra applicazione.

Vantaggi nell’uso dei tipi

C’era un tempo in cui un programmatore doveva risparmiare memoria a livello bit! Quando il codice aveva pochi Kilobyte a disposizione, usare 8 bit per mantenere i mesi dell’anno era davvero uno spreco immane. Con 4 bit, infatti, possiamo memorizzare 16 valori, dallo 0 (0000) al 15 (1111). Oggi, evidentemente, i tempi sono cambiati. Un personal computer dispone in media di qualche Giga di RAM (il mio ne ha 8!). Diventa quindi di uso comune non fare più attenzione al “consumo” di RAM e risorse.
Ad un esame più attento, poi, il problema del consumo maggiore di RAM non riguarda solo uno “spreco” fine a se stesso; una cattiva gestione dei tipi può rendere il codice più lento in quanto obbliga compilatore, interprete ed eseguibile finale a lavorare su tipi più “capienti” del necessario.

Actionscript 3.0 ha introdotto alcuni tipi dati nuovi che permettono di sviluppare applicazioni sicuramente più performanti grazie all’indicazione – preventiva – della tipologia di dato da trattare. Un esempio classico riguarda i cicli for. Partendo da questa tabella:

  • Number: (64 bit) da -9.007.199.254.740.992 a 9.007.199.254.740.992 (per gli interi)
  • int: (32 bit) da -2.147.483.648 (-231) a 2.147.483.647 (231 - 1)
  • uint: (32 bit) da 0 a 4.294.967.295 (232 - 1)

Scrivere:

Actionscript:
  1. for( var i:Number = 0; i <100; i++) {
  2.  // ...
  3. }

rappresenta palesemente uno “spreco di risorse”, molto meglio e sufficiente sarebbe:

Actionscript:
  1. for( var i:uint = 0; i <100; i++) {
  2.  // ...
  3. }

In linea generale sarebbe buona regola fare riferimento a questa tabella:

  • Number: qualsiasi valore numerico, con o senza decimali
  • int: numero intero senza decimali
  • uint: numero intero senza segno, vale a dire un numero intero non negativo

Questo significa che se dobbiamo memorizzare valori interi, cioè non decimali, positivi, uint è il tipo dato perfetto! Se abbiamo necessità anche del "segno", cioè valori interi negativi, possiamo avvalerci di int. Nei casi di numeri molto molto grandi e con decimali, allora il tipo Number è l'unica soluzione a nostro disposizione.

Post correlati

Questo articolo ti è stato utile?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Loading ...

4 commenti a: “Actionscript 3.0 for beginners: lesson #5”

  1. 25 lug, 2009 Alessandro:

    Ciao sto impazzendo.
    Volevo sapere una volta per tutte se c'è modo con AS3 di entrare in una scena tramite un bottone?
    Ovvero:
    Ho 2 Scene
    La prima si chiama HOME.
    La seconda GALLERY
    Io dalla HOME voglio andare nella GALLERY.

    Ti prego...HELPAMI!!!!

  2. 03 ago, 2009 Giovambattista Fazioli:

    @Alessandro: certo che puoi farlo! Basta che usi i classici comandi gotoAndPlay(): il primo parametro è il nome della scena, di solito omesso quando si usa una scena sola. Vedi qui per un esempio

  3. 03 ago, 2009 Alessandro:

    @Giovambattista Fazioli: Ciao grazie mille per avermi risposto.
    soltanto che io sto cercando il cambio scena da ActionScript 3.0, mentre invece quello che, molto
    gentilmente mi hai indicato tu è per ActionScript 2.0

    Ti ringrazio ancora..

  4. 03 ago, 2009 Giovambattista Fazioli:

    @Alessandro: si ma è lo stesso anche per AS 3

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre>         // blocco generico
[code][/code]       // blocco generico
[as][/as]           // Actionscript
[css][/css]         // CSS Style Sheet
[html][/html]       // HTML
[js][/js]           // Javascript
[objc][/objc]       // Objective-C
[php][/php]         // PHP
[sql][/sql]         // SQL