Hosting & Domini

 
HOME DOMINI HOSTING SERVER SUPPORTO

Creazione di script con ActionScript > Informazioni sulle variabili

Informazioni sulle variabili


Una variabile è un contenitore di informazioni. Il contenitore resta invariato, ma il contenuto può variare. Modificando il valore di una variabile durante la riproduzione di un filmato è possibile registrare e salvare informazioni sulle azioni eseguite dall'utente, registrare valori che cambiano durante la riproduzione o verificare la validità di una condizione.

Quando si definisce una variabile per la prima volta è opportuno assegnarle sempre un valore noto. Questa operazione è detta inizializzazione di una variabile e viene spesso eseguita nel primo fotogramma del filmato. L'inizializzazione di variabili semplifica la gestione e il confronto dei valori della variabile durante la riproduzione del filmato.

Le variabili possono contenere qualsiasi tipo di dati: numerico, stringa, booleano, oggetto o clip filmato. Il tipo di dati contenuto nella variabile determina la modalità di modifica del valore della variabile, quando questa viene assegnata in uno script.

I tipi di informazioni memorizzabili in una variabile includono un URL, un nome utente, il risultato di un'operazione matematica, il numero di volte che si è verificato un evento e lo stato di selezione di un pulsante. A ogni istanza di filmato e clip filmato è associato il proprio insieme di variabili e a ogni variabile è assegnato il proprio valore che è indipendente da quello delle variabili in altri filmati o clip filmato.


 
Assegnazione di un nome a una variabile

Il nome di una variabile deve soddisfare le seguenti regole:

Il nome deve essere un identificatore
Il nome non può essere una parola chiave o un valore booleano (true o false).
Il nome deve essere univoco entro la propria area di validità Consultare Assegnazione di un'area di validità a una variabile.


 
Assegnazione di un tipo a una variabile

In Flash non è necessario definire esplicitamente il tipo di valore contenuto da una variabile, sia esso un numero, una stringa o un altro tipo di dati. Il tipo di dati della variabile viene determinato automaticamente al momento dell'assegnazione:

x = 3;

Nell'espressione x = 3 Flash valuta l'elemento a destra dell'operatore e lo riconosce come tipo di dati numerico. Una successiva assegnazione può convertire il tipo di dati di x. Ad esempio, x = "hello" assegna a x il tipo di dati stringa. Una variabile alla quale non è stato assegnato un valore ha come tipo di dati undefined.

In ActionScript, quando un'espressione lo richiede, i tipi di dati vengono convertiti automaticamente. Ad esempio, quando si passa un valore all'azione trace, trace converte automaticamente il valore in stringa e lo invia alla finestra Output. Nelle espressioni con operatori, ActionScript converte i tipi di dati a seconda delle necessità. Ad esempio, quando viene usato con una stringa, l'operatore + prevede che anche l'altro operando sia una stringa:

"Next in line, number " + 7

ActionScript converte il numero 7 nella stringa "7" e lo concatena alla fine della prima stringa. Il risultato è la stringa seguente:

"Next in line, number 7"

Durante il debug degli script è spesso utile determinare il tipo di dati di un'espressione o di una variabile, per individuare il motivo di determinati funzionamenti. Tale operazione è eseguibile tramite l'operatore typeof, come nell'esempio seguente:

trace(typeof(variableName));

Per convertire una stringa in un valore numerico usare la funzione Number. Per convertire un valore numerico in una stringa usare la funzione String. Vedere le singole voci corrispondenti nel Dizionario di ActionScript dictionary: panoramica.


 
Assegnazione di un'area di validità a una variabile

L'area di validità di una variabile è la porzione di codice in cui la variabile è nota e può essere oggetto di riferimenti. In ActionScript le variabili possono essere di tipo globale o locale. Una variabile globale è condivisa tra tutte le linee temporali. Una variabile locale è disponibile soltanto all'interno del blocco di codice di appartenenza (delimitato dalle parentesi graffe).

L'istruzione var consente di dichiarare una variabile locale in uno script. Ad esempio, le variabili i e j vengono spesso usate come contatori di ciclo. Nell'esempio seguente i viene usata come variabile locale ed esiste esclusivamente all'interno della funzione makeDays:

function makeDays(){
	var i
	for( i = 0; i < monthArray[month]; i++ ) {

		_root.Days.attachMovie( "DayDisplay", i, i + 2000 );

		_root.Days[i].num = i + 1;
		_root.Days[i]._x = column * _root.Days[i]._width;
		_root.Days[i]._y = row * _root.Days[i]._height;

		column = column + 1;

		if (column == 7 ) {

			column = 0;
			row = row + 1;
		}
	}
}

Le variabili locali consentono inoltre di evitare conflitti di denominazione, che possono generare errori nel filmato. Se ad esempio si usa come variabile locale name è possibile memorizzare nella variabile un nome utente in un contesto e un'istanza di clip filmato in un altro contesto. Poiché tali variabili vengono eseguite in aree di validità diverse non si verificheranno conflitti.

È sempre consigliabile usare variabili locali nel corpo di una funzione, in modo che la funzione possa essere eseguita come entità di codice indipendente. Una variabile locale è modificabile soltanto all'interno del blocco di codice di appartenenza. Se un'espressione di una funzione usa una variabile globale è possibile che un elemento esterno alla funzione modifichi il valore della variabile, con conseguente modifica della funzione stessa.


 
Dichiarazione di variabili

Per dichiarare variabili globali, usare l'azione setVariables o l'operatore di assegnazione (=). Entrambi i metodi producono lo stesso risultato.

Per dichiarare variabili locali , usare l'azione var nel corpo di una funzione. L'area di validità delle variabili locali corrispondente al blocco, al di fuori del quale non sono più valide. La validità delle variabili locali non dichiarate all'interno di un blocco termina alla fine dello script di appartenenza.

Nota: Anche l'azione callcrea una nuova area di validità delle variabili locali per lo script chiamato. All'uscita dallo script chiamato, l'area di validità delle variabili locali termina. Questa operazione è tuttavia sconsigliata, in quanto l'azione call è stata sostituita dall'azione with, più compatibile con la sintassi del punto.

Per verificare il valore di una variabile usare l'azione trace per inviarne il valore alla finestra Output. Ad esempio, trace(hoursWorked) invia il valore della variabile hoursWorked alla finestra Output in modalità di prova filmato. In modalità di prova filmato è inoltre possibile verificare e impostare i valori delle variabili nella finestra Debugger. .Per ulteriori informazioni, vedere Risoluzione dei problemi relativi ad ActionScript: panoramica.


 
Uso di variabili in uno script

Prima di usare una variabile in un'espressione è necessario dichiararla nello script. Se si usa una variabile non dichiarata, come nell'esempio seguente, il valore della variabile sarà undefined e lo script genererà un errore:

getURL(myWebSite);
myWebSite = "http://www.shrimpmeat.net";

L'istruzione che dichiara la variabile myWebSite deve precederne l'uso, in modo che la variabile dell'azione getURL sia sostituibile da un valore.

È possibile modificare più volte il valore di una variabile in uno script. Il tipo di dati contenuto in una variabile determina come e quando essa viene modificata. I tipi di dati di base, quali stringhe e numeri, vengono passati come valore. Ciò significa che il contenuto effettivo della variabile viene passato alla variabile.

Nell'esempio seguente x è impostato su 15 e tale valore viene copiato in y. Quando x diventa 30 il valore di y resta 15, in quanto ynon ricerca il proprio valore in x ma contiene il valore di x copiato.

var x = 15;
var y = x;
var x = 30;

In quest'altro esempio, la variabile in contiene il valore di base 9. Il valore effettivo viene passato alla funzione sqrt che restituisce il valore 3:

function sqrt(x){
  return x * x;
}

var in = 9;
var out = sqr(in);

Il valore della variabile in non cambia.

Poiché il tipo di dati oggetto può contenere una quantità di dati talmente estesa e complessa, una variabile con tale tipo di dati non contiene il valore effettivo, ma soltanto un riferimento al valore. Questo riferimento equivale a un alias che punta al contenuto della variabile. Quando la variabile richiede il proprio valore, il riferimento recupera il contenuto e restituisce la risposta senza trasferire il valore alla variabile.

Il seguente è un esempio di passaggio per riferimento:

var myArray = ["tom", "dick"];
var newArray = myArray;
myArray[1] = "jack";
trace(newArray);

Il codice precedente crea un oggetto Array di nome myArray che contiene due elementi. La variabile newArray viene creata e le viene assegnato un riferimento a myArray. Quando il secondo elemento di myArray viene modificato, ha effetto su tutte le variabili che contengono un riferimento a tale elemento. L'azione trace invia quindi ["tom", "jack"] alla finestra Output.

Nell'esempio seguente myArray contiene un oggetto Array che viene passato alla funzione zeroArray come riferimento. La funzione zeroArray converte il contenuto della matrice in myArray.

function zeroArray (array){
  var i;
  for (i=0; i < array.length; i++) {
    array[i] = 0;
  }
} 

var myArray = new Array();
myArray[0] = 1;
myArray[1] = 2;
myArray[2] = 3;

var out = zeroArray(myArray)

La funzione zeroArray accetta come argomento un oggetto Array e imposta su 0 tutti gli elementi di tale matrice. La funzione può modificare la matrice in quanto viene passata come riferimento.

I riferimenti a tutti gli oggetti diversi dai clip filmato sono detti riferimenti fissi in quanto se un oggetto è destinatario di un riferimento non può essere eliminato. Un riferimento a un clip filmato è un tipo di riferimento speciale detto riferimento removibile. I riferimenti removibili non richiedono l'esistenza dell'oggetto destinatario del riferimento. Se un clip filmato viene eliminato con un'azione quale removeMovieClip, i riferimenti a tale clip non saranno più operativi.



Home | Mappa del sito | Condizioni di utilizzo | Privacy
 
Copyright © Hostek Srl. P.Iva 05434210489