Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 2015
-
28 févr. 2008 à 22:26
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDerniè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
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 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