Bug AS2 : propriétés virtuelles avec get et set
Par -Alexandre LEGOUT aka LAlex- le mardi, septembre 16 2003, 10:43 - Divers - Lien permanent
Je fini par me demander si je ne vais pas créer une catégorie "Bug MX 2004" :?
Robin Debreuil (toujours lui) relaie l'info trouvée par Peter Hall sur un bug présent dans les propriétés virtuelles crées avec les instruction function get et function set en AS2. En fait, lorsque l'on appelle la méthode setter, la méthode getter est appelée juste aprés !!! 8O Plus d'infos sur la mailing list Flashcoders.
Commentaires
Hello
serait ce encore un truc comme le MovieClip.onLoad () sur flash MX qui passait pas à part si on lui donne un nom de fonction déclarée au paravant ?
En revenant sur ce comportement bizarre, un moyen d'éviter l'execution de la fonction get au sein de la fonction set pourrait se faire en testant arguments.caller.
Exemple:
public function get prop ():Number{
if (arguments.caller) return;
trace("called getter!");
return __prop;
}
En cherchant à comparer arguments.caller à prop, Flash part en boucle infinie, ce qui semble bien confirmer que c'est la fonction prop (set) qui appel get.
Quand on ne fait que lire la propriété getter/setter, arguments.caller retourne null, il est donc possible d'interrompre la fonction get de cette facon.
Fil des commentaires de ce billet