C'est normal, l'argument d'une fonction ne sert qu'à l'intérieur de cette fonction, sauf si tu le retourne d'une manière ou d'une autre, mais c'est autre chose...
Par conséquent, ce n'est pas directement "etat1" qui est envoyé en paramètre à ta fonction test1(), mais sa valeur seulement.
Tu as plusieurs solutions :
1) Tu fais ça très proprement et tu rajoute une méthode à ta propre Class issu de Boolean de Flash pour faire ce que tu veux (inverser la valeur booléenne), une methode que tu appèlera sur ta variable, mais si tu ne connais pas la programmation objet un minimum, ne t'y aventures pas...
2) Tu créé une fonction qui retourne une valeur, l'inverse de celle passée en argument :
Code :
function inverseBoolean(monBoolean:Boolean):Boolean { var inverse:Boolean; monBoolean ? inverse = false : inverse = true ; // C'est un if/else raccourci, dont la syntaxe est ( CONDITION ) ? ( instruction si VRAI) : (instruction si FAUX); // On aurais pu directement mettre ça : var inverse:Boolean = monBoolean ? false : true ; // Puis la fonction retourne inverse; return inverse; } var maVariable:Boolean = true; // Tu devras utiliser ta fonction ainsi : maVariable = inverseBoolean(maVariable)
|
3) Meme solution mais sans passer par un retour, beaucoup plus crade mais bon...
Code :
function inverseBoolean(conteneur:Object, booleanName:String):Void { // Le conteneur est là si jamais la variable ciblé n'est pas dans le même que celui ou tu appel la fonction... conteneur[booleanName] ? conteneur[booleanName] = false : conteneur[booleanName] = true; } var maVariable:Boolean = true; // Tu devras utiliser ta fonction ainsi : inverseBoolean(this, "maVariable" )
|
Message édité par abais le 24-12-2010 à 09:28:50
---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.