2010-04-27 5 views
2

J'ai une fonction, par exempleparamètres par défaut dans ActionScript 3.0

test de fonctionnement (p1: int = 7, p2: Boolean = true, p3: uint = 0xFFFF00, p4: Number = 55,5) {
// instructions
}

Comment changer ne p4, par exemple, et les paramètres p1, p3, p3 était toujours par défaut?
La prochaine fois que je veux changer par exemple seulement p2, et les paramètres p1, p3, p4 était encore par défaut?
etc.

Répondre

0

Vous ne pouvez pas. Vous pouvez laisser p3 et p4 à l'extérieur et ils utiliseront la valeur par défaut si vous voulez seulement spécifier p2. Mais alors vous devrez entrer une valeur pour p1 aussi.

+0

Je pense que l'idée Daniel Hai est super. Résolu mon problème. :) – Bogdan

1

vous pouvez toujours faire quelque chose comme (mais je ne pense pas que ce soit une bonne idée):

private function test(a1:Object=null, a2:Object=null, a3:Object = null, a4:Object = null):void { 
    var p1:int  = (a1 !== null ? int(a1) : 3); 
    var p2:Boolean = (a2 !== null ? Boolean(a2) : true); 
    var p3:uint  = (a3 !== null ? uint(a3) : 0xFFFF00); 
    var p4:Number = (a4 !== null ? Number(a4) : 55.5); 
} 

cette façon si vous voulez que quelque chose soit par défaut, vous pouvez simplement passer null:

avec:

test(null,false,null,null); 

mais encore une fois, il est une mauvaise idée. Peut-être faire du paramètre un objet - on dirait que vous passez dans un objet colortransform - qui a déjà une transparence rgb + alpha +? (juste une conjecture sauvage)

+0

C'est une très bonne idée. Tout est OK. J'ai remplacé dans la classe de fonction: void à: Array et dans la ligne a écrit return [p1, p2, p3, p4]; Trace de fonction d'appel suivant (test (null, false, null, 125)); Tout est super. Merci. – Bogdan