Comunidad de diseño web y desarrollo en internet online

Problemas con drop y drag

Citar            
MensajeEscrito el 19 Oct 2012 12:45 pm
Chicos quisiera hacerles una consulta, tengo un arreglo de movieclips:

Código ActionScript :

var elements:Array = new Array(a10,a20,a30,a40,a50,a60,a70,a80,a90);


para llamar la función lo hago así

Código ActionScript :

a10.addEventListener(MouseEvent.MOUSE_DOWN,drag);
a10.addEventListener(MouseEvent.MOUSE_UP,drop);


Los cuales debo arrastrarlos y colocarlos en un lugar específico, esto funciona bien

pero en el caso de que deje el movieclip en un lugar erróneo este debe volver a su lugar de origen, y esto no está sucediendo :(

este es el código de la función drag:

Código ActionScript :

function drag(e:MouseEvent)
{
   this.addChild(e.currentTarget as DisplayObject);
   try
   {
      e.currentTarget.startDrag();
/*      startX = e.currentTarget.x;
      startY = e.currentTarget.y;*/
   }
   catch (e:Error)
   {
   }
   e.currentTarget.nameZone = 0;
}



y este para drop:

Código ActionScript :

function drop(e:MouseEvent)
{
   try
   {
      e.currentTarget.stopDrag();
   }
   catch (e:Error)
   {

   }
   if(e.currentTarget.dropTarget.parent.name.substring(0,5)!="dZone"){
//se supone q aquí retorna al lugar de origen, pero no funciona.
      e.currentTarget.x=e.currentTarget.startX;
      e.currentTarget.y=e.currentTarget.startY;
   }
   else{
         e.currentTarget.nameZone=e.currentTarget.dropTarget.parent.name.substring(5,6);
         
   }
}


agradezco su ayuda,
saludos

Por danielillapp

35 de clabLevel



Genero:Femenino  

Aprendiz de la vida y AS3

chrome
Citar            
MensajeEscrito el 19 Oct 2012 04:43 pm
debes guardar la posición inicial en algún lado...

Código ActionScript :

function drag(e:MouseEvent){
  e.currentTarget.xIni = e.currentTarget.x;
  e.currentTarget.yIni = e.currentTarget.y;
}
function drop(e:MouseEvent){
  if(//lo que uses para moverlo al punto que quieras//){
   }else{
    e.currentTarget.x = e.currentTarget.xIni;
    e.currentTarget.y = e.currentTarget.yIni;
  }
}

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 19 Oct 2012 05:37 pm

nasho escribió:

debes guardar la posición inicial en algún lado...

Código ActionScript :

function drag(e:MouseEvent){
  e.currentTarget.xIni = e.currentTarget.x;
  e.currentTarget.yIni = e.currentTarget.y;
}
function drop(e:MouseEvent){
  if(//lo que uses para moverlo al punto que quieras//){
   }else{
    e.currentTarget.x = e.currentTarget.xIni;
    e.currentTarget.y = e.currentTarget.yIni;
  }
}



gracias, me faltaba esto:
e.currentTarget.xIni = e.currentTarget.x;
e.currentTarget.yIni = e.currentTarget.y;
saludos

Por danielillapp

35 de clabLevel



Genero:Femenino  

Aprendiz de la vida y AS3

chrome

 

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