Return to Snippet

Revision: 45299
at April 28, 2011 23:35 by burnandbass


Updated Code
package  bassta.debug {
	
	import com.greensock.transform.TransformManager;
	import com.greensock.events.TransformEvent;
	import com.greensock.transform.TransformItem;
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;

       ///demo http://burnandbass.com/demo15/

		
	public class MagicDebugger {

		private static var t:TransformManager;
		private static var c:Vector.<DisplayObjectContainer> = new Vector.<DisplayObjectContainer>
		
		public function MagicDebugger() {
			throw new Error("Use only with it's static methods");
		}
		
		public static function create(debuggedObject:DisplayObjectContainer):void{
			
			if(c.indexOf(debuggedObject) == -1){
					
				c.push(debuggedObject);
					
				t = new TransformManager();
				t.allowDelete = true;
				t.allowMultiSelect = true;
				t.arrowKeysMove = true;
				t.forceSelectionToFront = false;
				t.lockScale = false;
				t.scaleFromCenter = false;
							
				var i:int = debuggedObject.numChildren;
				for ( i >= 0; i--; ) {
					var s:DisplayObject = debuggedObject.getChildAt(i);
					t.addItem(s);
					t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_MOVE, outputChange);
					t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_ROTATE, outputChange);
					t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_SCALE, outputChange);
					t.getItem(s).addEventListener(TransformEvent.MOVE, outputChange);
				}
			} else {
				trace("Duplication Found");
			}
		}

		private static function outputChange(event:TransformEvent):void{
			var currentItem:TransformItem = (event.currentTarget as TransformItem);
			trace("Child [ " + currentItem.targetObject.name + " ] with bounds: { x: " 
				  + Math.ceil(currentItem.x)
				  + ", y:" + Math.ceil(currentItem.y) 
				  + ", width: " + Math.ceil(currentItem.width) 
				  + ", height: " + Math.ceil(currentItem.height)
				  + ", rotation: " + Math.ceil(currentItem.rotation) + " }");
		}
		
		public static function releaseManager():void{
			t.destroy();
			c.splice(0,c.length);
		}
		
		//getter, return the manager
		
		public static function manager():TransformManager{
			return t;
		}

	}//end
}

Revision: 45298
at April 28, 2011 23:24 by burnandbass


Updated Code
package  bassta.debug {
	
	import com.greensock.transform.TransformManager;
	import com.greensock.events.TransformEvent;
	import com.greensock.transform.TransformItem;
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;
		
	public class MagicDebugger {

		private static var t:TransformManager;
		private static var c:Vector.<DisplayObjectContainer> = new Vector.<DisplayObjectContainer>
		
		public function MagicDebugger() {
			throw new Error("Use only with it's static methods");
		}
		
		public static function create(debuggedObject:DisplayObjectContainer):void{
			
			if(c.indexOf(debuggedObject) == -1){
					
				c.push(debuggedObject);
					
				t = new TransformManager();
				t.allowDelete = true;
				t.allowMultiSelect = true;
				t.arrowKeysMove = true;
				t.forceSelectionToFront = false;
				t.lockScale = false;
				t.scaleFromCenter = false;
							
				var i:int = debuggedObject.numChildren;
				for ( i >= 0; i--; ) {
					var s:DisplayObject = debuggedObject.getChildAt(i);
					t.addItem(s);
					t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_MOVE, outputChange);
					t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_ROTATE, outputChange);
					t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_SCALE, outputChange);
					t.getItem(s).addEventListener(TransformEvent.MOVE, outputChange);
				}
			} else {
				trace("Duplication Found");
			}
		}

		private static function outputChange(event:TransformEvent):void{
			var currentItem:TransformItem = (event.currentTarget as TransformItem);
			trace("Child [ " + currentItem.targetObject.name + " ] with bounds: { x: " 
				  + Math.ceil(currentItem.x)
				  + ", y:" + Math.ceil(currentItem.y) 
				  + ", width: " + Math.ceil(currentItem.width) 
				  + ", height: " + Math.ceil(currentItem.height)
				  + ", rotation: " + Math.ceil(currentItem.rotation) + " }");
		}
		
		public static function releaseManager():void{
			t.destroy();
			c.splice(0,c.length);
		}
		
		//getter, return the manager
		
		public static function manager():TransformManager{
			return t;
		}

	}//end
}

Revision: 45297
at April 28, 2011 06:36 by burnandbass


Initial Code
package  bassta.debug {
	
	import bassta.structure.Initializer;
	import com.greensock.transform.TransformManager;
	import com.greensock.events.TransformEvent;
	import com.greensock.transform.TransformItem;
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;
	import bassta.display.*;
	
	//
	
	import flash.utils.ByteArray;
    import flash.net.FileReference;
    import com.greensock.plugins.VolumePlugin;
	
	public class MagicDebugger {

		private static var t:TransformManager;

		public function MagicDebugger() {
			throw new Error("Use only with it's static methods");
		}
		
		public static function create(debuggedObject:DisplayObjectContainer):void{
						
			t = new TransformManager();
			t.allowDelete = true;
			t.allowMultiSelect = true;
			t.arrowKeysMove = true;
			t.forceSelectionToFront = false;
			t.lockScale = false;
			t.scaleFromCenter = false;
						
			var i:int = debuggedObject.numChildren;
			for ( i >= 0; i--; ) {
				var s:DisplayObject = debuggedObject.getChildAt(i);
				t.addItem(s);
				t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_MOVE, outputChange);
				t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_ROTATE, outputChange);
				t.getItem(s).addEventListener(TransformEvent.FINISH_INTERACTIVE_SCALE, outputChange);
				t.getItem(s).addEventListener(TransformEvent.MOVE, outputChange);
			}
		}

		private static function outputChange(event:TransformEvent):void{
			var currentItem:TransformItem = (event.currentTarget as TransformItem);
			trace("Child [ " + currentItem.targetObject.name + " ] with bounds: { x: " 
				  + Math.ceil(currentItem.x)
				  + ", y:" + Math.ceil(currentItem.y) 
				  + ", width: " + Math.ceil(currentItem.width) 
				  + ", height: " + Math.ceil(currentItem.height)
				  + ", rotation: " + Math.ceil(currentItem.rotation) + " }");
		}
		
		public static function releaseManager():void{
			t.destroy();
		}
		
		//getter, return the manager
		
		public static function manager():TransformManager{
			return t;
		}

	}//end
}

Initial URL
http://burnandbass.com/demo15/

Initial Description
You need the greensock's TransformManager class, it is paid, but worth it. I use this class for debugging purposes, to move at runtime objects at the scene.

Use MagicDevugger.create(passSomeSprite); and you can transform all children of passSomeSprite

Initial Title
Drag/drop/scale/move DebugUtil with TransformManager

Initial Tags


Initial Language
ActionScript 3