Clonage de variable

Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 28 févr. 2008 à 22:26
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 29 févr. 2008 à 12:12
Amis Flasheur bonsoir.

Actuellement en train de réalisé mon tout premier pathfinding pour un jeu en 3d isométrique un problème se pose.
Pour vous éviter un long paragraphe de code incompréhensible et vous évitant ainsi de tenter de parcourir les mystères de mon cervau qui a sûrement un raisonement complètement incohérant j'ai donc simplifier le problème car je sais d'où il vient mais pas comment le régler.

Voici le petit bout de code simplifier :
MaVar = new Object();
MaVar.un = "var1";
AutreVar = new Object();
AutreVar.un = "test de changement";
trace(MaVar.un);

Ce bout de code renvoi "test de changement". Hors ce que je souhaiterais c'est copier l'objet MaVar puis que les modifications que j'apporte à mon nouvel objet ne soit pas pris en compte par le premier.

En somme réalisé un clonage de variable sans qu'elles soit lié.

Note : Je dévellope encore en as1/as2, je ne sais pas si la syntaxe à changer en as3. Merci d'être indulgent :D

En vous remerciant d'avance.

Blacknight
http://www.flash-nouvelle.com/ Give Life To Your Imagination !

2 réponses

Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
28 févr. 2008 à 22:33
Oups je met a jour mon code j'ai oublier une petite ligne.
Voici donc le code complet :

MaVar = new Object();
MaVar.un = "var1";
AutreVar = new Object();
AutreVar = MaVar;
AutreVar.un = "test de changement";
trace(MaVar.un);

Blacknight
http://www.flash-nouvelle.com/ Give Life To Your Imagination !
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
29 févr. 2008 à 12:12
Alors, solution provisoire trouvé grâce à l'aide de Corben.

Je suis passé par une fonction intermédiaire et un beau for (à l'arrache donc)
Code final :
function Clone(Obj:Object) {
 ObjClone = new Object();
 for (var i in Obj) {
  ObjClone[i] = Obj[i];
 }
 return ObjClone;
}
MaVar = new Object();
MaVar.un = "var1";
AutreVar = new Object();
AutreVar = Clone(MaVar);
trace(MaVar.un+newline+AutreVar.un)
AutreVar.un = "test de changement";
trace(newline+MaVar.un+newline+AutreVar.un);


Faute de mieux je m'en contenterai pour le moment.
Si quelqu'un a mieux a me proposé, je suis preneur

Bon code !




Blacknight
http://www.flash-nouvelle.com/ Give Life To Your Imagination !
0
Rejoignez-nous