Comunidad de diseño web y desarrollo en internet online

Problemas con push()

Citar            
MensajeEscrito el 02 Nov 2006 03:21 pm
Tengo el siguiente código:
convex_hull_btn.onPress = function(){
var punto = new Point()
var Points = new Array();
pivot.x = Number.POSITIVE_INFINITY;
pivot.y = Number.POSITIVE_INFINITY;
for (var i = 0; i < kreisArr[index].length - 1; i++){
punto.x = kreisArr[index][i]._x;
punto.y = kreisArr[index][i]._y;
Points.push(dot);
if(punto.y < pivot.y){
pivot = punto;
}
else if(punto.y == pivot.y){
if(punto.x < pivot.x){
pivot = punto;
}
}
}
}
Quiesiera saber por qué despues de hacer un push en el array Points, todos los anteriores puntos que ya se habían insertado se convierten en el nuevo, es decir a cada nueva inserción todos los puntos tienen el mismo valor en "x" y en "y" que el último valor insertado. No logro entender que hago mal. ¿podeis ayudarme? muchisimas gracias.

Por hasame

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Nov 2006 04:18 pm
Pues suponiendo que a "Punto" lo llames "dot", lo que estás haciendo es pasarle un valor por referencia. No estás añadiendo un nuevo punto sino el valor de la variable. Mira en la ayuda de flash por un método Point.clone o algo así que es lo que te hace falta.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.