Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2010, 16:33
mariovi40
 
Fecha de Ingreso: marzo-2008
Mensajes: 75
Antigüedad: 16 años, 1 mes
Puntos: 1
startdrag o manual

Hola compañeros y amigos,
Con startdrag puedo mover un punto sin problema, pero los puntos que tengo, tienen lineas, ya que son parte de una grafica. Opte por usar handlers para controlar cuando se mueva el punto, entonces quito las 2 lineas que llegan, y pongo 2 lineas nuevas hacia la nueva posicion. Funciona bien esta grafica, arrastro un punto y las dos lineas laterales se mueven junto con el.

PROBLEMA: cuando drageo demasiado rapido el punto, se pirde el enfoque del punto y por lo mismo no corre el handler que mueve el punto y sus dos lineas.

PREGUNTA: como puedo usar el startdrag para esto? es que el stardrag funciona de maravilla pero solo muevo el punto, pero no las dos lineas. Que estoy haciendo mal?
el codigo para muestra del dibujo de las lineas es:
function moveSquares(e:MouseEvent):void
{
. . .
if (isDragging)
{
elx = e.target.x.toFixed(0);// / 20 -1;
elx = roundToNearest(10, elx);
v1 = elx / 20 + 1;
v2 = elx / 20;
v3 = elx / 20 -1;
//borro linea anterior
line.graphics.lineStyle(1, 0x000AD0);
line.graphics.moveTo(puntos[v1].x, puntos[v1].y);
line.graphics.lineStyle(1, 0xDEFACE);
line.graphics.lineTo(puntos[v2 ].x, puntos[v2 ].y);
//borro linea posterior
line.graphics.lineStyle(1, 0x000AD0);
line.graphics.moveTo(puntos[v3].x, puntos[v3].y);
line.graphics.lineStyle(1, 0xDEFACE);
line.graphics.lineTo(puntos[v2 ].x, puntos[v2 ].y);
//dibujo ambas lineas en su nueva posicion
line.graphics.lineStyle(1, 0x000AD0);
line.graphics.moveTo(puntos[v3].x, puntos[v3].y);
line.graphics.lineTo(puntos[v2 ].x, drawBoard.mouseY);
line.graphics.moveTo(puntos[v1].x, puntos[v1].y);
line.graphics.lineTo(puntos[v2 ].x, drawBoard.mouseY);

es = e.target.x.toFixed(0) / 20 -1;
//esta que sigue acerca el punto al lugar del cursor
puntos[elx / 20].y = drawBoard.mouseY;