2010-05-09 5 views
3

Je n'arrive pas à comprendre comment surcharger une fonction dans Flash en utilisant Haxe. Je sais que Flash n'autorise pas les surcharges mais peut accepter des paramètres de fonction sans qu'un type soit déclaré, mais je ne suis pas sûr de la façon de répliquer cette astuce dans Haxe.Surcharge de la fonction Flash dans Haxe

EDIT: Comme cela ne semble pas possible, existe-t-il des astuces connues pour contourner cette limitation?

+0

Qu'est-ce que * exactement * essayez-vous d'accomplir? Vous parlez de surcharge de méthode et d'inférence de type, mais on ne sait pas très bien ce que vous essayez de faire. Fournir un code pseudo serait utile ... – heavilyinvolved

Répondre

1

Il a été récemment une discussion à ce sujet sur la liste de diffusion Haxe: http://lists.motion-twin.com/pipermail/haxe/2010-May/035650.html

Le poste le plus pertinent est par l'auteur Haxe: http://lists.motion-twin.com/pipermail/haxe/2010-May/035659.html

La tl, version dr est parce que Flash 9 ne supporte pas qu'ils supprimé la possibilité de le faire pour toutes les plates-formes.

+0

Ces articles ne sont pas exactement liés à ce que les questions sont. Ces articles parlent des méthodes d'une sous-classe remplaçant les méthodes de la superclasse avec une signature de méthode différente. – davr

0

Vous pouvez utiliser un truc similaire à ce qui est fait dans AS3, si je lis correctement votre question. Si vous déclarez que la fonction doit prendre des paramètres dynamiques, vous pouvez faire différentes choses en fonction du type d'exécution des paramètres transmis. par exemple.

public function bar(param1:Dynamic, param2:Dynamic):Dynamic 
{ 
    if(Std.is(param1, Float) && Std.is(param2, Float)) 
    doStuffWithFloats(param1, param2); 
    else if(Std.is(param1, String) && Std.is(param2, String)) 
    doStuffWithStrings(param1, param2); 
}