Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2701 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  sauvegarde variable as3

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sauvegarde variable as3

n°2043111
JeanSeb78
Posté le 19-12-2010 à 13:06:18  profilanswer
 

Bonjour à tous,
 
C'est ma première question sur ce forum !
Voilà mon problème : j'ai une fonction "test1" qui fait passer une variable "etat1" de false à true et inversement. Le problème, c'est que si je met ma variable "etat1" en paramètre de cette fonction, je n'arrive pas à sauvegarder la valeur de cette variable (flash va considérer que "etat1" est toujours true).
 
var etat1:Boolean=true;
 
function test1(etat:Boolean){
if (etat==true){
etat=false;}
else{
etat=true;}
}
 
test1(etat1);
 
Par contre si je fais :  
 
function test1(){
if (etat1==true){
etat1=false;}
else{
etat1=true;}
}
 
test1();
 
cette fois, ça marche, la variable "etat1" est bien sauvegardée.
Y a t'il un moyen de corriger ça ?
Merci beaucoup si vous pouvez m'aider !!!

mood
Publicité
Posté le 19-12-2010 à 13:06:18  profilanswer
 

n°2043439
abais
Posté le 21-12-2010 à 09:48:49  profilanswer
 

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 :
  1. function inverseBoolean(monBoolean:Boolean):Boolean
  2. {
  3.    var inverse:Boolean;
  4.    monBoolean ? inverse = false : inverse = true ;
  5.    // C'est un if/else raccourci, dont la syntaxe est ( CONDITION ) ? ( instruction si VRAI) : (instruction si FAUX);
  6.    // On aurais pu directement mettre ça :
  7.    var inverse:Boolean = monBoolean ? false : true ;
  8.    // Puis la fonction retourne inverse;
  9.    return inverse;
  10. }
  11.  
  12. var maVariable:Boolean = true;
  13.  
  14. // Tu devras utiliser ta fonction ainsi :
  15. maVariable = inverseBoolean(maVariable)


3) Meme solution mais sans passer par un retour, beaucoup plus crade mais bon...

Code :
  1. function inverseBoolean(conteneur:Object, booleanName:String):Void
  2. {
  3.    // Le conteneur est là si jamais la variable ciblé n'est pas dans le même que celui ou tu appel la fonction...
  4.    conteneur[booleanName] ? conteneur[booleanName] = false : conteneur[booleanName] = true;
  5. }
  6.  
  7. var maVariable:Boolean = true;
  8.  
  9. // Tu devras utiliser ta fonction ainsi :
  10. 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.
n°2044610
JeanSeb78
Posté le 27-12-2010 à 16:50:07  profilanswer
 

Super, Merci beaucoup !
J'ai utilisé la deuxième solution qui est simple et efficace !
A +, joyeux noël, et vivement Pâques !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  sauvegarde variable as3

 

Sujets relatifs
Probleme de variable (corrigé)Casse-tête Script sauvegarde server
Creer fichier avec le nom d'une variableSupprimer les espaces dans une variable
[PERL] remplacement caractères dans une variable.Submit Image et transmission de variable.
AS3 : preloader greviste...Renvoi d'un pointeur sur une variable automatique
utiliser une variable dans une formuleComment modifier le background d'une variable à partir d'une autre
Plus de sujets relatifs à : sauvegarde variable as3


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR