Hosting & Domini

 
HOME DOMINI HOSTING SERVER SUPPORTO

Creazione di script con ActionScript > Creazione di funzioni personalizzate

Creazione di funzioni personalizzate


È possibile definire funzioni per eseguire una serie di istruzioni sui valori passati. Le funzioni possono inoltre restituire valori. Una volta definita, una funzione può essere chiamata da qualsiasi linea temporale, inclusa la linea temporale di un filmato caricato.

Una funzione può essere considerata come una scatola nera: viene chiamata con dei valori di input (argomenti), esegue alcune operazioni, quindi produce un output (restituisce un valore). È consigliabile, quando si scrive una funzione, inserire commenti rilevanti relativi ai valori di input e di output e allo scopo della funzione stessa. In tal modo non è necessario che chi usa la funzione ne conosca nei dettagli il funzionamento.


 
Definizione di una funzione

Come le variabili, le funzioni sono associate al clip filmato che le definisce. Quando una funzione viene ridefinita, la nuova definizione sostituisce quella esistente.

Per definire una funzione usare l'azione function seguita dal nome della funzione, dagli argomenti da passare alla funzione e dalle istruzioni ActionScript che indicano le operazioni eseguite dalla funzione.

Nel seguente esempio è definita la funzione di nome Circle con l'argomento radius:

function Circle(radius) {
	this.radius = radius;
	this.area = Math.PI * radius * radius;
}

Nota: La parola chiave this, usata nel corpo della funzione, è un riferimento al clip filmato a cui la funzione appartiene.

È possibile definire una funzione anche creando un valore letterale di funzione, ossia una funzione senza nome, dichiarata in un'espressione anziché in un'istruzione. È possibile usare un valore letterale di funzione per definire una funzione, restituire il valore corrispondente e assegnarlo a una variabile all'interno di un'espressione, come nell'esempio seguente:

area = (function () {return Math.PI * radius *radius;})(5);


 
Passaggio di argomenti a una funzione

Gli argomenti sono gli elementi sui quali viene eseguito il codice della funzione. Nel presente manuale i termini argomento e parametro sono intercambiabili. Ad esempio la seguente funzione riconosce gli argomenti initials e finalScore.

function fillOutScorecard(initials, finalScore) {
	scorecard.display = initials;
	scorecard.score = finalScore;
}

Quando la funzione viene chiamata è necessario che gli argomenti richiesti siano passati alla funzione. La funzione sostituisce i valori passati agli argomenti elencati nella definizione della funzione. Nell'esempio seguente scorecard è il nome dell'istanza di un clip filmato, mentre display e score sono campi di testo di input nell'istanza. La seguente chiamata di funzione assegna alla variabile display il valore "JEB" e alla variabile score il valore 45000:

fillOutScorecard("JEB", 45000);

L'argomento initials nella funzione fillOutScorecard è simile a una variabile locale, esiste durante la chiamata della funzione e scompare al momento dell'uscita dalla funzione. Se si omettono argomenti in una chiamata di funzione, gli argomenti omessi vengono passati come undefined. Se in una chiamata di funzione si forniscono argomenti aggiuntivi non richiesti dalla dichiarazione della funzione, questi vengono ignorati.


 
Uso di variabili locali in una funzione

Le variabili locali sono strumenti utili per organizzare il codice e renderlo più comprensibile. Quando una funzione usa variabili locali può nascondere le proprie variabili a tutti gli altri script del filmato. Le variabili locali hanno come area di validità il corpo della funzione e scompaiono all'uscita dalla funzione. Gli argomenti passati a una funzione vengono considerati come variabili locali.

Nota: Se si modificano variabili globali in una funzione, documentare le modifiche tramite commenti nello script.


 
Restituzione di valori da una funzione

È possibile usare l'azione return affinché una funzione restituisca un valore. L'azione return interrompe la funzione sostituendo ad essa il valore dell'azione return. Se Flash non incontra un'azione return prima della fine di una funzione, viene restituita una stringa vuota. Ad esempio, la seguente funzione restituisce il quadrato dell'argomento x:

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

Alcune funzioni eseguono una serie di operazioni senza restituire un valore. Ad esempio, la funzione seguente inizializza un gruppo di variabili globali:

function initialize() {
	boat_x = _root.boat._x;
	boat_y = _root.boat._y;
	car_x = _root.car._x;
	car_y = _root.car._y;
}


 
Chiamata di una funzione

Per chiamare una funzione tramite il pannello Azioni in Modalità normale, usare l'azione evaluate. Passare gli argomenti richiesti racchiudendoli tra parentesi. È possibile chiamare una funzione in qualsiasi linea temporale da qualsiasi linea temporale, compreso un filmato caricato. Ad esempio, l'istruzione seguente chiama la funzione sqr nel clip filmato MathLib della linea temporale principale, passa alla funzione l'argomento 3 e memorizza il risultato nella variabile temp:

var temp = _root.MathLib.sqr(3);

In Flash 4 per simulare la chiamata di una funzione è possibile creare uno script in un fotogramma dopo la fine del filmato, quindi chiamarlo passando il nome dell'etichetta del fotogramma all'azione call. Ad esempio, uno script che inizializza variabili e si trova in un fotogramma con etichetta initialize può essere chiamato con la sintassi seguente:

call("initialize");

Questo tipo di script non è una funzione vera e propria, in quanto non può accettare argomenti né restituire un valore. L'azione call è ancora disponibile in Flash 5, ma il suo uso è sconsigliato.



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