Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/10/2008, 11:15
bernattorras
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Problema con un bucle!

Hola, estoy haciendo un flash que lea el numero de elementos y la posición que hay en una base de datos y los coloque en el escenario en función a los resultados...

ej:
hay 4 bolas en la base de datos, la primera a la posición x=10, y=20, la segunda ...
el flash mira cuantas bolas hay (4) y al pulsar un boton, entra en un bucle (mientras i sea menor o igual al numero de bolas) que llama a una funcion que crea una bola en el escenario y la coloca segun la posición de la base de datos, y luego incementa i+1.


Si pongo que al pulsar el boton me llame a la funcion y me sume 1 a i, el programa funciona perfectamente, pero a la que intento ponerle el while para que no tenga que ir pulsando el boton tantas veces como elementos haya, me encuentro en que solo me aparece el último elemento en el escenario.

CODIGO:

var i:Number
var maxbolas:Number
maxbolas=4; //numero de elementos de la base de datos
i=0; // contador

recibir = function () {
myData = new LoadVars();
myData.numbola = i; // para enviar a php
myData.onLoad = function() {

_root.x_bola = myData.pos_x; // la posicion x del elemento "i"
_root.y_bola = myData.pos_y; // la posicion y del elemento "i"

// función para crear movieclip con un numero de referencia y con una imagen "bola.pnf"

createEmptyMovieClip("bola"+i,i+1);
_root["bola"+i].createEmptyMovieClip("ref",i+2);
_root["bola"+i].ref.createTextField("referencia", i+2, 10, 50, 50, 50);
_root["bola"+i].ref.referencia.text=_root.i;
_root["bola"+i].ref.createEmptyMovieClip("foto",i+3);
loadMovie("bola.png", _root["bola"+i].ref.foto);
_root["bola"+i]._x=_root.x_bola; //posicion de la bola recibida del php
_root["bola"+i]._y=_root.y_bola; //posicion de la bola recibida del php
_root["bola"+i].onPress=function(event){_root["bola"+i].startDrag();}
_root["bola"+i].onRelease=function(event){_root["bola"+i].stopDrag();}

};
myData.sendAndLoad("consulta_boles2.php", myData, "POST");
};

enviar_btn.onPress = function() {
while(i<=maxboles-1){
i+=1;
recibir();
}

};


El codigo es un poco coñazo, pero lo que no acabo de entender es que al pulsar el boton, si quito el wile (quedando solo el i=i+1; recibir();) me añade un elemento cada vez que lo pulso (hasta llegar a i=maxbolas+1), pero al ponerle el while, solo me carga el último elemento...

Cúal es el problema? Carga un elemento encima del otro?

Muchas gracias!

Última edición por bernattorras; 14/10/2008 a las 11:21