WEB开发网
开发学院图形图像Flash flash位图技术研究篇:缓冲技术 阅读

flash位图技术研究篇:缓冲技术

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示:一 双重缓冲区绘图技术概念双重缓冲区技术能够使程序的绘图更加快速和平滑,有效减少绘制时的图像闪烁,flash位图技术研究篇:缓冲技术,该技术的基本原理是先将图像绘制到内存中的一块画布上,一旦所有的绘制操作都完成了,二、小实验第一件事情,我们填充颜色,再将内存中的画布推到窗体的或者控件的表面将其显示出来,通过这种操作后的

一 双重缓冲区绘图技术概念

双重缓冲区技术能够使程序的绘图更加快速和平滑,有效减少绘制时的图像闪烁。该技术的基本原理是先将图像绘制到内存中的一块画布上,一旦所有的绘制操作都完成了,再将内存中的画布推到窗体的或者控件的表面将其显示出来。通过这种操作后的程序能使用户感觉其更加快速和美观。

很久之前,我曾经玩过c++关于贴图的一些应用。例如,我要在窗口外加载一张图片,首先我需要一些加载外部的文件,其次我要知道怎样才能将这张图贴到窗口去,做法是使用c++一些位图操作类进行操作如   BitBlt类这个类可以操作一些像素

BitBlt (hdc, x, y, cxSource, cySource, hdcMem, 0, 0, SRCCOPY) ;

这个做法是通过操作内存的位图数据来进行。

同样在操作内存位图,flash已经提供了两个有用的类,一个BitmapData,一个是Bitmap类。其中BitmapData类提供了很多关于操作位图的方法,这样为我们实现缓冲技术有了很大的帮助。

开始之前,我们做几个小实验,这样我们会发觉日后会有很多有趣的事情发生。

二、小实验

第一件事情,我们填充颜色,研究一下怎样填充颜色。

2.1 填充颜色

首先我们建立一个继承Sprite的子类:

   1. package   
   2. {  
   3.     import flash.display.*;  
   4.     import flash.display.Bitmap;  
   5.     import flash.display.BitmapData;  
   6.     import flash.events.*;  
   7.     public class Example2 extends Sprite  
   8.     {  
   9.         private var backBuffer:BitmapData=new BitmapData(550,400,false);//建立一个缓冲区  
  10.         private var clearColor:uint=0x0000FF;//指定填充的颜色  
  11.   
  12.         public function Example2()  
  13.         {  
  14.             init();  
  15.         }  
  16.         private function init():void  
  17.         {  
  18.             backBuffer.fillRect(backBuffer.rect, clearColor);//填充  
  19.             var iamge:Bitmap=new Bitmap(backBuffer);//建立一个位图  
  20.             addChild(iamge);//显示位图  
  21.         }  
  22.     }  
  23. }

1 2 3 4 5  下一页

Tags:flash 位图 技术

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