Desiderate realizzare inutilmente una serie di azioni ai vari tempi senza codice duplicante durante il vostro film.
|
|
Generi una funzione ed allora denominila (cioè, invochi) per nome ogni volta che dovete eseguire quelle azioni.
Ci è più del one-way per generare (cioè, definire o dichiarare) una funzione. Qui è come generare una funzione chiamata:
il functionName di funzione () {// dichiarazione va qui}
per denominare (cioè, esegua) la funzione chiamata, si riferisce per
nome, come:
functionName();
Qui è come generare una costante letterale di funzione:
functionName = funzione () {// dichiarazione va qui};
Anche se richiesto non rigorosamente, è considerato una pratica la migliore includere un punto e virgola dopo il sostegno riccio di chiusura quando definisce una costante letterale di funzione.
Raggruppando le dichiarazione in una funzione permette che definiate una volta la funzione ma la eseguiate altretante volte poichè gradireste. Ciò è utile quando dovete realizzare le azioni simili ai vari tempi senza duplicare lo stesso codice nei posti multipli. Mantenere il vostro codice ha centralizzato nelle funzioni lo rende più facile capire (perché potete scrivere una volta la funzione ed allora ignorare i particolari quando usando esso) e più facile effettuare (perché potete fare i cambiamenti in un posto piuttosto che nei posti multipli).
Ci sono due sensi comuni di definizione delle funzioni di ActionScript: come le funzioni o costanti letterali chiamate di funzione (a.k.a. funzioni anonime). Ciascuno di questi sensi di dichiarare una funzione ha relativo proprio uso.
La dichiarazione chiamata di funzione è la scelta più comune (quando non definiscono una funzione da usare come metodo) e presenta almeno un vantaggio sopra le costanti letterali di funzione: le funzioni chiamate sono accessibili presso l'intero keyframe (o il on() o l'alimentatore del onClipEvent()) anche se vengono dopo la chiamata alla funzione.
Per esempio, anche se la funzione del writeMessage() non è dichiarata fino a che dopo che sia invocata, la funzione è ancora disponibile:
//invochi la funzione del writeMessage(), che è dichiarata più successivamente nel writeMessage(dello scritto);
//dichiari (definisca) la funzione del writeMessage()
mentre un writeMessage chiamato di funzione di funzione ()
{trace("Hello, amico."); }
//funzione è disponibile prima o dopo è stato writeMessage(dichiarato);
In opposizione, una costante letterale di funzione è accessibile soltanto dalle linee del codice che vengono dopo la dichiarazione:
//interpretatore di ActionScript non possa trovare una funzione con questo nome,// ed in modo da niente accade (viene a mancare silenziosamente). writeMessage2();
//dichiari (definisca) la funzione di writeMessage2()
mentre una funzione anonima letterale writeMessage2 = funzione ()
{trace("Hello, amico."); };
//tuttavia, la funzione è disponibile dalle linee del codice dopo che sia stato writeMessage2(dichiarato);
Tuttavia, ci sono parecchi motivi usare le costanti letterali di funzione:
Potete assegnare una costante letterale di funzione ad una variabile globale in moda da potere raggiungere la funzione da tutto il timeline.
Le costanti letterali di funzione offrono un senso conveniente, compatto ed intuitivo definire i metodi per gli oggetti.
Le costanti letterali di funzione possono essere trattate come altre variabili, in quanto possono essere passate ad altre funzioni o fare i loro riassegnare valori.
Qui, assegniamo una costante letterale di funzione come proprietà _ dell'oggetto globale:
_ global.launchBookExamples = funzione ()
{getURL("http://www.person13.com/ascb", "_ spazio in bianco");
}; \
Di conseguenza, dovunque sopra da tutto il timeline, potete eseguire la funzione semplicemente usando il relativo nome. Per esempio, potreste fissare questo scritto ad un tasto:
myButton.onRelease = funzione () {launchBookExamples();
};
Qui, definiamo la funzione poichè un metodo di una clip di film (dove onEnterFrame() è un metodo speciale e incorporato per le clip di film che dovete definire prima che possa essere usato):
myClip_mc.onEnterFrame = funzione () {trace("Hooray per i
metodi!"); };
Naturalmente, potete definire i metodi su ordinazione pure semplicemente assegnando la costante letterale di funzione ad una nuova proprietà dell'oggetto:
myClip_mc.myCustomMethod = funzione () {trace("Hooray per
i metodi!"); };
È inoltre degno notare che potete regolare un metodo uguale ad un altro metodo. Questa tecnica è usata spesso per assegnare le stesse azioni ad una clip o ad un tasto di film per due eventi differenti. Potete definire una funzione anonima ed assegnarli ad uno dei metodi dell'alimentatore di evento ed allora semplicemente assegnate un metodo dell'alimentatore di evento all'altro. Un esempio comune di questo è quando desiderate definire le stesse azioni per quando un utente libera un tasto o una clip di film e quando liberano la parte esterna:
//definisca un metodo del onRelease() per una clip di
film myMovieClip.onRelease = funzione () {trace("Hooray per i
metodi!"); };
//assegni la stessa definizione di metodo al metodo del onReleaseOutside() come bene myMovieClip.onReleaseOutside = myMovieClip.onRelease;
Le funzioni possono anche essere passate come dati. Potete passare convenientemente una costante letterale di funzione ad un'altra funzione che richiede una funzione come una delle relative discussioni, quale setInterval() o al metodo di Array.sort():
//insieme un intervallo che denomina una funzione che
incrementi una variabile, una i e lle esposizioni//
setInterval(function di valore () {trace(++i);}, 1000);
Le funzioni sono conforme alle stesse limitazioni di portata delle variabili. Le funzioni di Timeline sono accessibili soltanto mentre il timeline su cui sono definite esiste. Una funzione di timeline può essere una funzione chiamata o una funzione anonima assegnata ad una variabile di timeline. Ulteriormente, le funzioni di timeline possono essere denominate soltanto usando il percorso adeguato dell'obiettivo. Quando accedete alla funzione dallo stesso timeline, non dovete includere il percorso dell'obiettivo, ma quando desiderate accedere alla funzione da un altro timeline, dovete assicurarsi voi fornire il percorso corretto.
//invoca esplicitamente una funzione che è definita sul timeline. principale _ root.myFunction();
Se la vostra funzione è usata all'interno dello stesso timeline soltanto, non dovete preoccuparsi per le edizioni di portata. Tuttavia, se intendete usare la funzione durante molti timelines, due soluzioni sono impiegate generalmente:
Definisca la funzione come funzione globale. Se rendete ad una funzione una funzione globale, potete denominarli per nome da tutto il timeline nel film senza dovere preoccuparsi per portata:
_ global.myFunction = funzione () {le funzioni
trace("Global sono divertimento!"); };
Definisca la funzione come metodo (statico) di a di un codice categoria globale. Tutti i codici categoria incorporati sono globali per difetto e se definite un codice categoria con un costruttore globale, quindi persino i vostri codici categoria su ordinazione possono essere globali. Questa tecnica è realmente una variazione sul prima, ma rispetto al vantaggio che i codici categoria offrono voi ad un senso di organizzazione delle vostre funzioni in un senso potenzialmente espressivo (per esempio, il codice categoria incorporato di per la matematica organizza molte funzioni matematiche).
Online: 495 users browsing the articles directory
|
|