package
{
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.DisplayObject;
import flash.display.Stage;
import flash.display.Sprite;
import flash.utils.*;
/**
* ...
* @author JavidJafari
*/
public class Rotator extends Sprite
{
public var myDisplayObject:DisplayObject;
private var positionY:Number = 0;
private var positionX:Number = 0;
private var offset:Number = 1;
public function Rotator(displayObject:DisplayObject,theStage:Stage,Offset:Number=1)
{
offset = Offset;
delta();
myDisplayObject = displayObject;
myDisplayObject.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
theStage.addEventListener(MouseEvent.MOUSE_UP,onUp);
}
public function delta()
{
//positionY
var y1:Number = mouseY;
var y2:Number;
//positionX
var x1:Number = mou***;
var x2:Number;
setTimeout(set_loop,20);
function set_loop()
{
//
y2 = mouseY;
positionY = y1 - y2;
//
x2 = mou***;
positionX = x1 - x2;
delta();
}
}
private function onDown(e:MouseEvent)
{
myDisplayObject.addEventListener(Event.ENTER_FRAME,onMove);
}
private function onUp(e:MouseEvent)
{
myDisplayObject.removeEventListener(Event.ENTER_FRAME,onMove);
}
private function onMove(e:Event)
{
//rotationX
if (positionX > 0)
{
myDisplayObject.rotationY += Math.abs(positionX);
}
if (positionX < 0)
{
myDisplayObject.rotationY -= Math.abs(positionX);
}
//rotationY
if (positionY < 0)
{
myDisplayObject.rotationX += Math.abs(positionY);
}
if (positionY > 0)
{
myDisplayObject.rotationX -= Math.abs(positionY);
}
}
}
}