Y el movimiento de las fichas funciona OK, pero.... cual es el problema entonces? Simple, no puedo fusionar los dos codigos en uno, cada uno por separado funcionan, pero fusionados no, y hace dias que estoy con esto y no puedo solucionarlo, si alguien me puede dar una mano, y decimre cual es el error voy a estar muy agradecido!
El problema es que no me detecta la funcion onRelease que genero mediante el while (si creo una escena sin actionscript, y hago los cuadrados manualmente, y les seteo las variables, y le pongo el codigo arriba, el puzzle anda los mas bien).
Y me llama la atencion porque justo eso no funciona en el while.
Bueno sin tanto parlateo, les comento, la escena consta de un solo movieclip llamado quad_0 como instancia, para que halla un espacio vacio, para poder mover las fichas, bueno espero que me puedan ayudar, aca les dejo el codigo, salu2 D0M41N.
Código :
stop(); var width_var:Number = 50; var height_var:Number = 45; var total_rows:Number = 3; var total_cols:Number = 6; var quadnumb:Number = 0; var total_quads:Number = total_rows * total_cols; var cols:Number = total_cols; var rows:Number = total_rows; var theWidth:Number = width_var; var theHeight:Number = height_var; var tmpCols:Number=0; var tmpRows:Number=0; while(tmpCols<cols) { tmpRows=0; while(tmpRows<rows) { quadnumb++; var xPos:Number = tmpCols * theWidth; var yPos:Number = tmpRows * theHeight; this.createEmptyMovieClip("quad_"+quadnumb, this.getNextHighestDepth()); this["quad_"+quadnumb].loadMovie("quads/img_"+quadnumb+".jpg"); this["quad_"+quadnumb]._x=xPos; this["quad_"+quadnumb]._y=yPos; this["quad_"+quadnumb].posCol=tmpCols; this["quad_"+quadnumb].posRow=tmpRows; this["quad_"+quadnumb].xvargo=xPos; this["quad_"+quadnumb].yvargo=yPos; with (this["quad_"+quadnumb]) { onRelease = function() { if (go!=2) { if (_parent.quad_0.posCol==posCol) { if (posRow==_parent.quad_0.posRow1 or posRow==_parent.quad_0.posRow2) { xvargo = _parent.quad_0._x; yvargo = _parent.quad_0._y; go = 1; AposCol = _parent.quad_0.posCol; AposRow = _parent.quad_0.posRow; _parent.quad_0._x = _x; _parent.quad_0._y = _y; _parent.quad_0.posCol = posCol; _parent.quad_0.posRow = posRow; posCol = AposCol; posRow = AposRow; } } if (_parent.quad_0.posRow==posRow) { if (posCol==_parent.quad_0.posCol1 or posCol==_parent.quad_0.posCol2) { xvargo = _parent.quad_0._x; yvargo = _parent.quad_0._y; go = 1; AposCol = _parent.quad_0.posCol; AposRow = _parent.quad_0.posRow; _parent.quad_0._x = _x; _parent.quad_0._y = _y; _parent.quad_0.posCol = posCol; _parent.quad_0.posRow = posRow; posCol = AposCol; posRow = AposRow; } } } } onEnterFrame = function() { if (xvargo==_x and yvargo==_y) { go=1; } else { go=2; if (_x<xvargo) { _x+=5; } if (_y<yvargo) { _y+=5; } if (_x>xvargo) { _x-=5; } if (_y>yvargo) { _y-=5; } } } } tmpRows++; } tmpCols++; } quad_0._x+=width_var; var quad:Number = 0; while(quad<total_quads) { quad++; if (this["quad_"+quad]._y == this.quad_0._y) { if (this["quad_"+quad]._x == this.quad_0._x) { removeMovieClip(this["quad_"+quad]); } } }