Relegate

Crée le : Dimanche 12 Juin 2005
Dernière révision : jeudi 14 juillet 2005 15:29:27

Téléchargement et utilisation

Relegate.zip

Cette classe est une extension de la classe Delegate de Macromedia Flash MX 2004. Son avantage est que contrairement à la classe Delegate, la classe Relegate permet de passer des arguments lors de la création de la délégation pour que ces arguments soient passés au final à la méthode cible de la délégation.

Je l'ai mise en téléchargement ici parce que c'est la meilleure manière de répondre à cette question récurrente sur les forums qui à pour sujet le passage d'arguments au travers de la méthode Delegate.

Utilisation

Son utilisation ne diffère en rien de celle de Delegate documentée par Macromedia. Seulement il faut évidemment prendre en compte que la méthode supporte désormais la passage d'arguments.

import net.tekool.utils.Relegate;

function onLoadXml
(
    success:Boolean,
    arg1:String,
    arg2:String,
    arg3:String
)
{
    trace('success : ' + String(success));
    trace('arg1 : ' + arg1);
    trace('arg2 : ' + arg2);
    trace('arg3 : ' + arg3);
}

var xGoogle:XML = new XML();
xGoogle.onLoad = Relegate.create(this,onLoadXml,'arg1', 'arg2', 'arg3');
xGoogle.load('http://www.google.fr');

Télécharger l'exemple appliqué

Vous remarquerez ici que 'arg1, 'arg2' et 'arg3' ont bien été passés à la méthode cible de la délégation tout en préservant le passage de l'argument success renvoyé nativement par le gestionnaire d'évènement de l'objet XML lors de l'appel à l'évènement XML.onLoad.

Attention: Si c'est un énorme avantage de pouvoir conserver les arguments retournés par la méthode originelle sur laquelle se fait la délégation, cela peut rapidement devenir source d'erreur. D'autant plus que le compilateur ne peux pas faire de correspondance entre les arguments supplémentaires passés dans Relegate et ceux utlisés dans la méthode cible. Vérifiez donc bien à chaque fois le nombre et l'ordre de la déclaration des arguments utilisés dans la méthode cible de la délégation.

  wordpress rss rss français rss english xhtml 1.1 css 2.0 wdg