Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2012, 22:59
Avatar de Beatzoo
Beatzoo
 
Fecha de Ingreso: septiembre-2009
Ubicación: Retire Hill
Mensajes: 27
Antigüedad: 15 años, 2 meses
Puntos: 0
Parar una función (o modificarla) (AS3)

Hola,

Tengo este código que me permite dibujar una línea en el stage. Tengo tres botones: uno (btn_l_alzada) para iniciar la función, otro (btn_limpiar) para borrar las líneas y un tercero (btn_stop) que es el que no consigo que me funcione, pues se supone que es el que, una vez pulsado, evite el trazo de la línea en el escenario. Es una aplicación drag and drop y si no evito que la línea deje de dibujarse al pulsar dicho botón, cualquier objeto que arrastre por el escenario va a ir precedido de dicha línea.

Código AS3:
Ver original
  1. btn_l_alzada.addEventListener(MouseEvent.CLICK, drawAlzada);
  2.  
  3. function drawAlzada(event:MouseEvent):void{
  4.  
  5. var line:Sprite;
  6. line = new Sprite();
  7. addChild(line);
  8.  
  9. stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
  10. stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
  11. btn_limpiar.addEventListener(MouseEvent.CLICK, clearLines);
  12. btn_stop.addEventListener(MouseEvent.CLICK,stopLines);
  13.  
  14. function mouseDownHandler(event:MouseEvent):void {
  15.     line.graphics.lineStyle(6);
  16.     line.graphics.moveTo(mouseX,mouseY);
  17.     stage.addEventListener(MouseEvent.MOUSE_MOVE,movement);}
  18.  
  19.  
  20. function mouseUpHandler(event:MouseEvent):void {
  21.     stage.removeEventListener(MouseEvent.MOUSE_MOVE,movement);}
  22.  
  23.  
  24. function movement(event:MouseEvent):void {
  25.     line.graphics.lineTo(mouseX,mouseY);}
  26.  
  27.  
  28. function clearLines(event:MouseEvent):void {
  29.     line.graphics.clear();}
  30.  
  31. function stopLines(event:MouseEvent):void {
  32.         line.graphics.lineStyle();
  33.     line.graphics.moveTo(mouseX,mouseY);
  34.     stage.addEventListener(MouseEvent.MOUSE_MOVE,movement);}
  35.    
  36.  
  37.  
  38. }


Había intentado con este código en el botón btn_stop:

Código AS3:
Ver original
  1. function stopLines(event:MouseEvent):void {
  2.         line.graphics.lineStyle();
  3.     line.graphics.moveTo(mouseX,mouseY);
  4.     stage.addEventListener(MouseEvent.MOUSE_MOVE,movement);}

Dejar sin valor el

Código AS3:
Ver original
  1. line.graphics.lineStyle();

hace que no se dibuje ninguna línea, pero ya no sé como hacerlo para conseguir el propósito.

Muchas gracias y un saludo.