TransformToolControl.as

package com.senocular.display {
    
    import flash.display.InteractiveObject;
    import flash.display.MovieClip;
    import flash.geom.Matrix;
    import flash.geom.Point;
    
    
public class TransformToolControl extends MovieClip {
        
        
// Variables
        protected var _transformTool:TransformTool;
        protected var _referencePoint:Point;
        protected var _relatedObject:InteractiveObject;
            
        
// Properties
        
        
/**
         
* Reference to TransformTool instance using the control
         
* This property is defined after using TransformTool.addControl
         
* prior to being added to the TransformTool display list
         
* (it can be accessed after the TransformTool.CONTROL_INIT event)
         
*/
        
public function get transformTool():TransformTool {
            return _transformTool;
        }
        
public function set transformTool(t:TransformTool):void {
            _transformTool 
= t;
        }
        
        
/**
         
* The object "related" to this control and can be referenced
         
* if the control needs association with another object.  This is
         
* used with the default move control to relate itself with the
         
* tool target (cursors also check for this)
         
*/
        
public function get relatedObject():InteractiveObject {
            return _relatedObject;
        }
        
public function set relatedObject(i:InteractiveObject):void {
            _relatedObject 
= i ? i : this;
        }
        
        
/**
         
* A point of reference that can be used to handle transformations
         
* A TransformTool instance will use this property for offsetting the
         
* location of the mouse to match the desired start location of the transform
         
*/
        
public function get referencePoint():Point {
            return _referencePoint;
        }
        
public function set referencePoint(p:Point):void {
            _referencePoint 
= p;
        }
        
        
/**
         
* Constructor
         
*/
        
public function TransformToolControl() {
            _relatedObject 
= this;
        }
        
        
/**
         
* Optionally used with transformTool.maintainHandleForm to 
         
* counter transformations applied to a control by its parents
         
*/
        
public function counterTransform():void {
            transform.matrix 
= new Matrix();
            var concatMatrix:Matrix 
= transform.concatenatedMatrix;
            concatMatrix.invert();
            transform.matrix 
= concatMatrix;
        }
    }
}
posted @ 2009-10-09 22:38  ddw1997  阅读(425)  评论(0编辑  收藏  举报