package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class Linea extends Sprite {
var tiempo:Timer = new Timer(60,0);
var contenedor:Sprite;
var cuadro1:Sprite;
var cuadro2:Sprite;
var x1:int = 0;
var y1:int = 0;
var x2:int = 100;
var y2:int = 100;
var color:uint = 0;
public function Linea(xx,yy,lon,color):void {
//Sujetador
this.color = color;
this.x1 = xx;
this.y1 = yy;
this.x2 = xx + lon;
this.y2 = yy;
//
cuadro1=new Sprite ;
cuadro1.graphics.beginFill(0xffffff);
cuadro1.graphics.lineStyle(1,0,1);
cuadro1.graphics.moveTo(0,0);
cuadro1.graphics.lineTo(0,5);
cuadro1.graphics.lineTo(5,5);
cuadro1.graphics.lineTo(5,0);
cuadro1.graphics.lineTo(0,0);
//Sujetador 2
cuadro2=new Sprite;
cuadro2.graphics.beginFill(0xffffff);
cuadro2.graphics.lineStyle(1,0,1);
cuadro2.graphics.moveTo(0,0);
cuadro2.graphics.lineTo(0,5);
cuadro2.graphics.lineTo(5,5);
cuadro2.graphics.lineTo(5,0);
cuadro2.graphics.lineTo(0,0);
//
contenedor=new Sprite ;
contenedor.graphics.lineStyle(2,color,.7);
contenedor.graphics.moveTo(x1,y1);
contenedor.graphics.lineTo(x2,y2);
//contenedor.x=xx;
//contenedor.y=yy;
addChild(contenedor);
addChild(cuadro1);
addChild(cuadro2);
//
cuadro1.x=x1-2.5;
cuadro1.y=y1-2.5;
cuadro2.x=x2-2.5;
cuadro2.y=y2-2.5;
//
cuadro1.addEventListener(MouseEvent.MOUSE_DOWN, onMueveCuadro1);
cuadro2.addEventListener(MouseEvent.MOUSE_DOWN, onMueveCuadro1);
//
cuadro1.addEventListener(MouseEvent.MOUSE_UP, onMueveCuadro2);
cuadro2.addEventListener(MouseEvent.MOUSE_UP, onMueveCuadro2);
}
function onMueveCuadro1(e:MouseEvent):void {
e.target.startDrag();
tiempo.addEventListener(TimerEvent.TIMER, onMueve);
tiempo.start();
//trace("inicio",e.target.name,e.target.x, e.target.y);
}
function onMueveCuadro2(e:MouseEvent):void {
tiempo.stop();
e.target.stopDrag();
pintaLinea();
}
function onMueve(e:TimerEvent):void {
pintaLinea();
}
function pintaLinea () {
this.removeChild(contenedor);
contenedor=new Sprite;
contenedor.graphics.lineStyle(2,color,1);
contenedor.graphics.moveTo(cuadro1.x+2.5,cuadro1.y+2.5);
contenedor.graphics.lineTo(cuadro2.x+2.5,cuadro2.y+2.5);
addChild(contenedor);
swapChildrenAt(2, 0);
}
}
}