package com.senocular.display
{
import flash.display.DisplayObject;
import flash.display.InteractiveObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class TransformToolMoveShape extends TransformToolInternalControl
{
private var lastTarget: DisplayObject;
function TransformToolMoveShape( name: String, interactionMethod: Function )
{
super( name, interactionMethod );
}
override public function draw( event: Event = null ): void
{
var currTarget: DisplayObject;
var moveUnderObjects: Boolean = _transformTool.moveUnderObjects;
if ( moveUnderObjects )
{
hitArea = _transformTool.target as Sprite;
currTarget = null;
relatedObject = this;
} else {
hitArea = null;
currTarget = _transformTool.target;
relatedObject = _transformTool.target as InteractiveObject;
}
if ( lastTarget != currTarget )
{
if ( lastTarget )
{
lastTarget.removeEventListener( MouseEvent.MOUSE_DOWN, mouseDown, false );
}
if ( currTarget )
{
currTarget.addEventListener( MouseEvent.MOUSE_DOWN, mouseDown, false, 0, true );
}
var cursor:TransformToolCursor = _transformTool.moveCursor;
cursor.removeReference( lastTarget );
cursor.addReference( currTarget );
lastTarget = currTarget;
}
}
private function mouseDown( event: MouseEvent ): void
{
dispatchEvent( new MouseEvent( MouseEvent.MOUSE_DOWN ) );
}
}
}