Je souhaite passer les arguments de configuration à une classe. Ce sont tous les variables facultatives qui entrent dans la configuration de la classe - et devraient pouvoir fonctionner dans n'importe quel ordre. Pour le moment je passe juste à travers les vars optionnels de façon régulière. En supposant que le constuctor était comme suit:as3: utiliser un objet pour passer des arguments dans n'importe quel ordre - configuration de classe
private var _reqVar:String;
private var _optVar1:String;
private var _optVar2:String;
public function Constructor(reqVar:String, optVar1:String = "empty", optVar2:String = "empty){
// set the variable to equal the arguments here...
}
le problème est pour l'utilisateur final, où instancier la isnt classe particulièrement lisible (en particulier lorsque la liste des arguments peut se développer assez grand)
Idéalement je voudrais comme pour passer les arguments si semblable à ceci:
var instance:ClassType = new ClassType(reqVar, {width:100, height:100, speed:4, lives:3})
qui est là encore assez simple. où je trébuche sur sont les points suivants:
- assignant l'argument du var de la même clé (je sais en php pour référencer un nom de variable à partir d'une clé que vous pouvez utiliser $$ key = valeur $, est-il un équivalent en AS3?)
- affiche une erreur (en utilisant la méthode du « jet ») pour les noms de variables non pris en charge par la classe
toute aide appréciée.
Star d'or pour vous bon monsieur! Merci beaucoup. – Beans
Je viens de marquer cela comme sans réponse car j'ai une autre question - cela ne semble pas pouvoir définir les valeurs que les vars sont déclarées privées - dès que je les déclare comme publiques cela fonctionne très bien. Doit on s'y attendre? Évidemment, je voudrais les garder privés si possible de contrôler l'intégrité des valeurs. – Beans
Bon point Haricots. Je suis nouveau à AS3 moi-même et ne m'étais pas rendu compte que hasOwnProperty est limité aux propriétés, comme le nom implique :) :) J'ai mis à jour ma réponse pour qu'elle fonctionne maintenant avec n'importe quelle variable. –