WEB开发网
开发学院图形图像Flash flash位图技术研究篇(3):移动缓冲区域 阅读

flash位图技术研究篇(3):移动缓冲区域

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示: 总体的效果图:地图类:1.package2.{3.4.importflash.display.Sprite;5.importflash.display.*;6.importflash.events.*;7.importflash.geom.*;8.9.publicclassMapextendsS

总体的效果图:

flash位图技术研究篇(3):移动缓冲区域

地图类:

   1. package   
   2. {  
   3.   
   4.     import flash.display.Sprite;  
   5.     import flash.display.*;  
   6.     import flash.events.*;  
   7.     import flash.geom.*;  
   8.   
   9.     public class Map extends Sprite  
  10.     {  
  11.         private var mapWidth:Number;//地图的宽度  
  12.         private var mapHeight:Number;//地图高度  
  13.         private var mapX:Number;//地图的x坐标  
  14.         private var mapY:Number;//地图的y坐标  
  15.   
  16.         private var mapArray:Array;  
  17.         private var mapdata:BitmapData;  
  18.         public var sprite:Sprite=new Sprite();//做一个容器使用  
  19.         public var rect:Rectangle;//地图的矩形外形  
  20.         public var bitmap:Bitmap;  
  21.         private var buffer:BitmapData;//缓冲区  
  22.   
  23.         public function Map(mapdata:BitmapData,mapX:Number,mapY:Number)  
  24.         {  
  25.             this.mapdata=mapdata;  
  26.             //this.mapX=mapX;  
  27.             //this.mapY=mapY;  
  28.             this.mapWidth=mapdata.width;  
  29.             this.mapHeight=mapdata.height;  
  30.             bitmap=new Bitmap(mapdata);  
  31.             rect=bitmap.getRect(bitmap);//获取地图的矩形  
  32.         }  
  33.         public function get MapInfo():BitmapData  
  34.         {  
  35.             return mapdata;  
  36.         }  
  37.         public function CreateMap(bufferwidth:Number,bufferheight:Number):void  
  38.         {     
  39.             buffer=new BitmapData(bufferwidth,bufferheight,false,0xFFFFFFFF);//设置缓冲区  
  40.             buffer.fillRect(new Rectangle(0,0,bufferwidth,bufferheight),0x0000FF00);//填充缓冲区  
  41.             trace(rect.y);  
  42.               
  43.             if (rect.x<0 )  
  44.             {  
  45.                 rect.x=0;  
  46.             }  
  47.             trace(mapWidth);  
  48.             if (rect.x+buffer.width>mapWidth)  
  49.             {  
  50.                 rect.x=mapWidth-buffer.width;  
  51.             }  
  52.             if (rect.y<=0)  
  53.             {  
  54.                 rect.y=0;  
  55.             }  
  56.             if (rect.y+buffer.height>mapHeight)  
  57.             {  
  58.                 rect.y=mapHeight-buffer.height;  
  59.             }  
  60.             buffer.copyPixels(mapdata,new Rectangle(rect.x,rect.y,bufferwidth,bufferheight),new Point(0,0));//矩形的坐标变化,会裁剪出不同的位图数据  
  61.             FillMap(buffer);//填充位图数据  
  62.   
  63.         }  
  64.         public function FillMap(data:BitmapData):void  
  65.         {     
  66.             sprite.graphics.clear();  
  67.             sprite.graphics.beginBitmapFill(data,null,false,false);  
  68.             sprite.graphics.drawRect(0,0,data.width,data.height);  
  69.             sprite.graphics.endFill();  
  70.             addChild(sprite);  
  71.                
  72.         }  
  73.     }  
  74. } 

上一页  1 2 3 4 

Tags:flash 位图 技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接