Return to Snippet

Revision: 25288
at March 25, 2010 15:04 by Maverick_ex


Initial Code
//Función valor absoluto
function abs( value:Number ):Number
{
return value < 0 ? -value : value;
}

//Funcion que se ejecuta cuando se pulsa el botón del ratón
function drag(event:MouseEvent):void {
	leyenda.visible=false;
	letrero.visible = false;
	event.currentTarget.startDrag();
	centro.visible = true;
	destino.addEventListener(MouseEvent.MOUSE_MOVE, updateAfterEvent);
}

//Funcion que se ejecuta cuando se dejde pulsar el botón del ratón
function drop(event:MouseEvent):void {
	event.currentTarget.stopDrag();
	leyenda.visible=true;
	destino.removeEventListener(MouseEvent.MOUSE_MOVE, updateAfterEvent);
	actualizarPunto();
	dibujarCirculo();
}

//Funcion que se ejecuta cuando se pulsa el botón del ratón y se mueve
function updateAfterEvent(event:MouseEvent):void{
	actualizarPunto();
	dibujarCirculo();
	textoCentro.text = "Centro: (0, "+centroY.toFixed(0)+")";
	textoAngulo.text = "Angulo de giro: "+angulo.toFixed(1);
}

//Dibuja el circulo
function dibujarCirculo(){
	mc.graphics.clear();
 	mc.graphics.lineStyle(1,0xFFFFFF);
  	mc.graphics.drawCircle(centroY*-1+250,150,radio);
}

//Calcula posición del centro y el ángulo de giro
function actualizarPunto(){
	pX = 150-destino.y;
	pY = (destino.x-250)*-1;
	texto.text = "Destino: ("+pX.toFixed(0)+", "+pY.toFixed(0)+")";
	
	if (pX!=0){
		centroY = (pX*pX+pY*pY)/(2*pY);
	}else{
		centroY = 0;
	}
	
	sacaAngulo();
	
	centro.x=centroY*-1+250;
	centro.y = 150;
	radio = abs(centroY);
}

function sacaAngulo(){
	var destY:Number= pY-centroY;
	
	angulo = (Math.atan(destY/pX))*(180/Math.PI);

	//Primer  y segundo cuadrante
	if (pX>=0 && pY<0)
		angulo=angulo+360;
		//Segundo cuadrante
		else if (y>0)
				angulo=angulo+180;
			else
				angulo=angulo+180;
					
	if(pY==0){
	 	 angulo=5;
	 }else if(pY>0){
	 	 angulo+=90;	
	 }else{
	 	 angulo=360-angulo+90;	
	 }
}

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

var angulo:Number = 0;
var pX:Number = 150-destino.y;
var pY:Number = (destino.x-250)*-1;
var mc:MovieClip = new MovieClip();
var centroY:Number = 0;
var radio:Number = 0;
centro.visible = false;
leyenda.visible = false;
texto.mouseEnabled = false;
textoCentro.mouseEnabled = false;
textoAngulo.mouseEnabled = false;
destino.buttonMode = true;
actualizarPunto();
dibujarCirculo();
this.addChildAt(mc, 0);

Initial URL

                                

Initial Description

                                

Initial Title
Trayectoria curva

Initial Tags

                                

Initial Language
ActionScript 3