All pastes #926766 Raw Edit

Untitled

public text v1 · immutable
·published 2008-03-03 20:51 UTC
rendered paste body
package Engine
{
	import flash.geom.Point;
	import flash.display.*;
	import flash.net.URLRequest;
	import flash.geom.Rectangle;
	import flash.geom.Point;
	import flash.events.Event;
	
	public class GraphicsManager
	{
		private static var m_images:Array = new Array();
		private static var m_graphicsobjects:Array = new Array();
		private static var m_loader:Loader;
		private static var m_imageToSplit:Image;
		private static var m_tileSize:Point;
		private static var m_loadedImage:Image;

		public static function GetImage(i_filename:String):Image
		{
			for each (var cur:Image in m_images)
			{
				if (cur.ImageName() == i_filename)
				{
					trace("curImagename is" + i_filename);
					return cur;
				}
			}
			LoadImage(i_filename,false);
			return GetImage(i_filename);
		}
		
		// returns false if file can't be found
		public static function LoadImage(i_filename:String, i_bool:Boolean):void
		{
			// create new loader for each image
			m_loader = new Loader();
			m_loadedImage = new Image();
			m_loader.load(new URLRequest( i_filename ));
			m_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoadedComplete);
			m_loadedImage.SetImageName(i_filename);
		}
		
		public static function ImageLoadedComplete(event:Event):void
		{
			trace("Image Load Complete");
			m_loadedImage.SetImageData(m_loader.content);
			m_images.push(m_loadedImage);
		}
		
		public static function StartSplitImage(event:Event):void
		{
			trace("ImageComplete");
			var y:int;
			var x:int;
			var splitImage:Image;
			


			var b:DisplayObject = m_imageToSplit.ImageData();

			trace(m_imageToSplit.ImageData().height);
			
			trace("split x [" + b.height + m_tileSize.x + "] width [" + m_imageToSplit.ImageData().width);
			for (var imgY:int=0; imgY<m_imageToSplit.ImageData().width;imgY+=m_tileSize.x)
			{
				for (var imgX:int=0; imgX<m_imageToSplit.ImageData().height;imgX+=m_tileSize.y)
				{
					splitImage = new Image();
//					splitImage.ImageData() = new DisplayObject();
					var bitmapData:BitmapData = new BitmapData(m_tileSize.x, m_tileSize.y);
					//splitImage.ImageData() = new BitmapData(i_tileSize.x * i_tileSize.y);
					
					for (y=0; y<m_tileSize.y; y++)
					{
						for (x=0; x<m_tileSize.x; x++)
						{
							
							splitImage.ImageData().setPixel(x,y, m_imageToSplit.ImageData().getPixel(x,y));
							
//							bitmapData.copyPixels(m_imageToSplit.ImageData(), new Rectangle(imgY,imgX,m_tileSize.x, m_tileSize.y), new Point(0,0));
							trace("split Success1");
//							m_graphicsobjects.push(splitImage);

						}
			}
				}
			}
		}
		
		public static function SplitImage(i_filename:String, i_tileSize:Point):void
		{
			m_imageToSplit = GetImage(i_filename);
			m_tileSize = i_tileSize;
			m_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, StartSplitImage);
			trace("EndingSplitImage");
			
			
		}
		
		public static function GetSplitImage(i_filename:String, i_index:int):Image
		{
			return m_graphicsobjects[i_index];
		}
		
	}
}