acudo a uds una vez mas, con el fin de solicitar ayuda en mis primeras incursiones en AS3;
estoy tratando de avanzar con un desarrollo de un juego de batalla naval (no muy exitante, verdad?
ya comprendi como draguear y soltar un movieClip en una posicion especifica, pero lo que quiero es poder soltar dicho movieClip en cualquier cuadrante de la grilla, y que se "pegue" al cuadro mas cercano;
en el escenario tengo una grilla construida por un movieClip duplicado varias veces hasta formar un tablero; cada uno de ellos tiene asignado un nombre de instancia (sq1, sq2, etc), y tengo otros movieClips que hacen las veces de flota de barcos (mcNave, mcPortaviones, etc);
el codigo que me funciona bien es el siguiente:
Código :
[as]
import flash.display.Sprite;
import flash.events.MouseEvent;
var casilleros:Array=[sq1, sq2, sq3, sq4, sq5, sq6, sq7, sq8, sq9, sq10, sq11, sq12, sq13, sq14, sq15, sq16, sq17, sq18, sq19, sq20, sq21, sq22, sq23, sq24, sq25, sq26, sq27, sq28];
var flota:Array=[mcNave, mcPortaviones];
for (var i:int=0; i<flota.length; i++){
   flota[i].addEventListener(MouseEvent.MOUSE_DOWN,Arrastrar);
   flota[i].addEventListener(MouseEvent.MOUSE_UP,Soltar);
}
trace("Nave"+mcNave.x, "Portaviones"+mcPortaviones.x);
function Arrastrar(e:MouseEvent){
   e.target.startDrag()
}
function Soltar(e:MouseEvent){
   e.target.stopDrag();
   for (var i:int=0; i<flota.length; i++){
      if(flota[i].hitTestObject(casilleros[0])){
         flota[i].x=casilleros[0].x;
         flota[i].y=casilleros[0].y;
      } else {
         if(flota[i].hitTestObject(casilleros[1])){
         flota[i].x=casilleros[1].x;
         flota[i].y=casilleros[1].y;
         }
      }
      trace("Nave"+mcNave.x, "Portaviones"+mcPortaviones.x);
   }
}
[/as]de esta manera, cada "barco" se ubica en un cuadrante determinado;
pero lo que quiero es no tener que hacer un "else" para cada casillero.
el tema es que cuando armo un bucle para generar las diferentes instancias del tablero, al soltar cada uno de los "barcos", se "pegan" al ultimo cuadrante de la grilla;
agradeceria mucho cualquier tipo de asistencia para poder resolver mi problema;
saludos,
sebas.
