J'ai une méthode vararg que j'aimerais utiliser comme proxy pour une autre méthode vararg, mais je ne suis pas sûre de savoir comment le faire. Voici le code de base:Habillage d'une méthode Vararg dans ActionScript
class MyClass {
public function a(...args:*):* {
// other code
b(args);
// other code
}
public function b(...args:*):* {
// do stuff with args
}
}
Je suis le portage du code de Java, où le système de type sait que les arguments sont en fait censés être des chaînes, pas de tableaux, il peut donc comprendre invoquer b() par passer directement les arguments, et tout fonctionne comme prévu. Mais en ActionScript, le tableau d'arguments est enveloppé dans un autre tableau lorsqu'il est appelé par la méthode proxy. Ainsi, lorsque b() est appelé directement, la matrice n'a qu'un seul niveau de profondeur. Mais quand b() est invoqué par a(), le tableau a deux niveaux de profondeur.
Est-ce que quelqu'un connaît un truc pour contourner ce problème?
(NOTE: dans mon vrai code, a() et b() sont en fait dans des classes séparées, et je ne veux vraiment pas du tout toucher à l'implémentation de b(). le contenu de mon cœur, mais b() ne devrait pas changer.)
Wow. C'est sauvage. Je n'avais aucune idée que c'était possible. Merci un million !!! – benjismith
'arguments' est toujours là, il manque juste la propriété' caller': http://livedocs.adobe.com/flex/3/langref/arguments.html – hasseg
Oh? J'ai essayé et j'ai continué à comprendre que c'était indéfini. – Sciolist