All pastes #926562 Raw Edit

Stuff

public text v1 · immutable
·published 2008-03-03 19:20 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;

		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();
			var loadedImg:Image = new Image();
			m_loader.load(new URLRequest( i_filename ));
			m_loader.addEventListener(Event.COMPLETE, LoadImageComplete);

			loadedImg.SetImageAndName(m_loader, i_filename);
			m_images.push(loadedImg);
			trace("loaded one image");			

		}
		
		public static function LoadImageComplete(event:Event)
		{
			trace("ImageComplete");
			var y:int;
			var x:int;
			var splitImage:Image;
			
			var imgY:int;
			var imgX:int;
			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 (imgY=0; imgY<m_imageToSplit.ImageData().width;imgY+=m_tileSize.x)
			{
				trace("split");
				for (imgX=0; imgX<m_imageToSplit.ImageData().height;imgX+=m_tileSize.y)
				{
					splitImage = new Image();
//					splitImage.ImageData() = new BitmapData(i_tileSize.x * i_tileSize.y);
					/*
					for (y=0; y<i_tileSize.y; y++)
					{
						for (x=0; x<i_tileSize.x; x++)
						{
							
							//splitImage.ImageData().setPixel(x,y, img.ImageData().getPixel(x,y));
							*/
							splitImage.ImageData().copyPixels(m_imageToSplit.ImageData(), new Rectangle(imgY,imgX,m_tileSize.x, m_tileSize.y), new Point(0,0));
							m_graphicsobjects.push(splitImage);
							trace("split");
//						}
		//			}
				}
			}
		}
		
		public static function SplitImage(i_filename:String, i_tileSize:Point):void
		{
			m_imageToSplit = GetImage(i_filename);
			m_tileSize = i_tileSize;
				
			trace("EndingSplitImage");
			
			
		}
		
		public static function GetSplitImage(i_filename:String, i_index:int):Image
		{
			return m_graphicsobjects[i_index];
		}
		
	}
}