WEB开发网
开发学院图形图像Flash flash位图技术研究篇(2):渲染缓冲区 阅读

flash位图技术研究篇(2):渲染缓冲区

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示: 我们简单分析一下,这个地图类,flash位图技术研究篇(2):渲染缓冲区(2),地图类包括的属性有地图数据,图的数据,填充的区域仅仅是我们规定的缓冲区大小,这样做法,有地图的坐标,宽度等等

我们简单分析一下,这个地图类,地图类包括的属性有地图数据,图的数据,有地图的坐标,宽度等等。

这个类中,我们引入一个创建图的方法。

public function CreateMap(bufferwidth:Number,bufferheight:Number):void

这个方法带三个参数,bufferwidth是指缓冲区的宽度,

bufferheight指缓冲区的高度

然后,我们所做的事情,包括,创建一个渲染的缓冲区,指定他的大小

如:

buffer=new BitmapData(bufferwidth,bufferheight,false,0xFFFFFFFF);//设置缓冲区

这样就可以指定了一个填充的缓冲区。

复制像素到缓冲区:

由于缓冲区上面的域并没有什么信息数据,为了能让这个缓冲区有内容,我们使用复制像素的做法,复制我们所需要的像素。他就像一个“回”上面的口字可以看作我们的视框,而下面就是一张底图,每次我们移动图形的时候,复制的仅仅是我们所看到区域,填充的区域仅仅是我们规定的缓冲区大小。这样做法,有利于我们的内存使用。

如:

   buffer.copyPixels(mapdata,new Rectangle(rect.x,rect.y,bufferwidth,bufferheight),new Point(0,0));//矩形的坐标变化,会裁剪出不同的位图数据

看一下完整的代码:

   1. public function CreateMap(bufferwidth:Number,bufferheight:Number):void  
   2.         {     
   3.             buffer=new BitmapData(bufferwidth,bufferheight,false,0xFFFFFFFF);//设置缓冲区  
   4.             buffer.fillRect(new Rectangle(0,0,bufferwidth,bufferheight),0x0000FF00);//填充缓冲区  
   5.             trace(rect.y);  
   6.               
   7.             if (rect.x<0 )  
   8.             {  
   9.                 rect.x=0;  
  10.             }  
  11.             trace(mapWidth);  
  12.             if (rect.x+buffer.width>mapWidth)  
  13.             {  
  14.                 rect.x=mapWidth-buffer.width;  
  15.             }  
  16.             if (rect.y<=0)  
  17.             {  
  18.                 rect.y=0;  
  19.             }  
  20.             if (rect.y+buffer.height>mapHeight)  
  21.             {  
  22.                 rect.y=mapHeight-buffer.height;  
  23.             }  
  24.             buffer.copyPixels(mapdata,new Rectangle(rect.x,rect.y,bufferwidth,bufferheight),new Point(0,0));//矩形的坐标变化,会裁剪出不同的位图数据  
  25.             FillMap(buffer);//填充位图数据  
  26.   
  27.         }  

Tags:flash 位图 技术

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