Ciao Gandall,
il Metodo addEventListener serve ad agganciare un Listener per un Evento ad un Oggetto, in questo modo quando si verifica quel determinato Evento che stavamo aspettando verrà richiamata la Funzione collegata.
Il contesto più semplice per capire questo meccanismo è il caso in cui vogliamo reagire al Click dell'utente su un particolare pulsante, scriveremo così:
codice:
nomePulsante.addEventListener(MouseEvent.CLICK, clickato);
function clickato (me:MouseEvent) {
....
}
Nell'esempio qui sopra abbiamo un pulsante identificato dal nome nomePulsante e a questo pulstante abbiamo assegnato un Listener per l'Evento del Mouse di tipo Click.
Quando faremo click su quel determinato Pulsante verrà eseguita la Funzione clickato.
Allo stesso modo nel tuo codice viene assegnato un Listener per un Evento di tipo fullScreen all'intero Stage, quando lo Stage passerà allo stato Full Screen o quando uscirà dallo stato Full Screen verrà eseguita la Funzione check_screen_mode.
Tutte le Funzioni richiamate con questo meccanismo ricevono un Parametro e devono essere in grado di gestirlo: nel mio esempio la Funzione clickato riceve un Parametro che ho chiamato me (il nome puoi sceglierlo a piacere) che è un Oggetto di tipo MouseEvent; nel tuo codice la Funzione check_screen_mode riceve un Parametro che si chiama fe (anche qui il nome puoi cambiarlo a piacimento) che è un Oggetto di tipo FullScreenEvent.
Questo sistema è molto valido perché ci permette di avere, all'interno della Funzione richiamata, un riferimento all'Evento originale che ha fatto partire il comando.
Nella Funzione clickato dell'esempio qui sopra potrò utilizzare il riferimento me per avere informazioni sull'Evento del Mouse. Nel tuo codice puoi utilizzare il riferimento fe per avere informazioni sull'Evento di visualizzazione.
L'Evento di tipo FullScreenEvent che stai utilizzando ha una Proprietà chiamata fullScreen, questa Proprietà è un dato di tipo Booleano (vero/falso).
Quando lo Stage passa alla modalità di visualizzazione Full Screen viene scatenato l'Evento, ma anche quando lo Stage esce dalla modalità Full Screen viene scatenato lo stesso Evento. La differenza tra i due casi sarà proprio il valore della Proprietà fullScreen: nel primo caso troveremo true (vero), nel secondo caso troveremo false (falso).
Ecco che con un solo Listener siamo in grado di gestire entrambi i casi: quando lo Stage passa a Full Screen la Proprietà fullScreen dell'Evento è true e verrà eseguito il codice all'interno del blocco if, quando lo Stage esce dalla modalità Full Screen il valore della Proprietà fullScreen sarà false e verrà eseguito il codice all'interno del blocco else.
Passiamo adesso alla parola this.
this è un riferimento al Contesto in cui si trova, semplicemente significa questo, questa istanza.
Immagino che le poche righe di codice che hai postato si trovino all'interno di un file .AS che definisce una Classe, all'interno di una Classe la parola this si riferisce all'Istanza che stai utilizzando.
Per fare un esempio ho bisogno di un contesto più ampio, guarda una Classe di Esempio:
codice:
package {
public class esempioThis {
public function esempioThis() {
trace(this);
}
}
}
Questa Classe non fa altro che scrivere il valore di this nel Pannello di Output. Per utilizzare la Classe qui sopra utilizzaremo un codice simile a quello che segue:
codice:
import esempioThis;
var es:esempioThis = new esempioThis();
Il secondo blocco di codice importa la Classe che ci interessa e poi ne crea un'Istanza (con il comando new).
Nel momento in cui l'Istanza viene creata viene eseguito il codice all'interno del suo Metodo Costruttore, che si trova nel primo blocco di codice, quindi nel Pannello di Output potremo leggere questo:
codice:
[object esempioThis]
Questo Object esempioThis è proprio l'Istanza appena creata. Dal secondo Blocco di codice possiamo riferirci a questa Istanza utilizzando il nome della Variabile con cui l'abbiamo instanziata es, ma nel primo bloco di codice, visto che ci troviamo proprio all'interno della Classe che definisce l'Oggetto dobbiamo riferirci all'Istanza utilizzando la parola chiave this.
Spero che questo intervento ti sia utile e che sia facilmente comprensibile.