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];
}
}
}