Personalmente, uso eventi personalizzati semplicemente per la facilità d'uso. Posso fare in modo che una classe invii un evento quando succede qualcosa (diciamo che un'animazione finisce o si verifica un errore in un download) e qualsiasi numero di altre classi esegue un numero qualsiasi di altre funzioni in base a quell'evento. Inoltre, codice per la riusabilità. L'obiettivo di ogni classe è la completa indipendenza in modo che possa essere eseguito in qualsiasi progetto senza la necessità di altri pacchetti. Quindi, anziché avere una chiamata di classe a un metodo di un'altra classe, invio un evento dalla prima classe che la seconda classe ascolta e quindi esegue quel metodo. Poi, quando ho bisogno di quella prima lezione per un altro progetto, posso semplicemente copiarlo/incollarlo senza doverlo modificare e senza perdere alcuna funzionalità.
MODIFICA: Inoltre, vale la pena notare che a volte le persone fanno ciò che descrivono per evitare di dover passare in argomenti di eventi.
Supponiamo che tu abbia un pulsante sul palco e devi poterlo fare clic, ma devi anche essere in grado di chiamare manualmente quel metodo. Alcune persone non si rendono conto che è possibile passare un evento nullo e avere solo il metodo singolo. Oppure si può impostare come un argomento di default null, vedere sotto:
private function onClickHandler(e:MouseEvent = null):void{
//as long as you never reference "e" within this method, this method can be used both for MouseEvent listeners and manually calling it elsewhere in the code
}
Questa tecnica può aiutare a evitare di avere un gestore di eventi che chiama solo un altro metodo e nient'altro. A questo punto della mia programmazione, ogni singolo gestore di eventi AS3 che scrivo imposta l'argomento dell'evento su null per impostazione predefinita. Rende solo le cose più facili in seguito.
fonte
2012-11-27 18:04:32
bene, fare un riferimento ogni volta che è necessario attivare un metodo, rendendo la vita più facile per il garbage collector =) (avrà meno cose di cui preoccuparsi). – Ziul