En AS3, bien qu'un objet est été supprimé, il peut encore exister viá sa référence au sein d'un autre objet. Démonstration :
Source / Exemple :
import flash.utils.* ;
import flash.events.* ;
// Création d'un objet générique...
var myObject :Object= new Object() ;
// Insertion d'une sous classe d'EventDispatcher
myObject.timer= new Timer(1000,1) ;
myObject.timer.addEventListener( TimerEvent.TIMER, traceTarget ) ;
// Lancement du Timer
myObject.timer.start() ;
// Effacement du Timer
delete myObject.timer ;
// Vérification de la non existence du Timer
trace( "(1) myObject.timer?", myObject.timer ) ; // (1) myObject.timer? undefined
// Callback de l'Event
function traceTarget( e:Event )
:void{
// Vérification de l'existence du Timer
trace( "(2) e.target?", e.target ) ; // (2) e.target? [object Timer]
}
Conclusion :
Peut connu mais bien pratique.
Est une arme a double tranchant car augmente la mémoire si mal géré ou au contraire l'allège en évitant par exemple, la création de membre dont le seul but serait la diffusion d'un évenement à un moment T : Chargement de clip, de texte, etc...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.