flash位图技术研究篇:缓冲技术
2010-03-02 00:00:00 来源:WEB开发网一 双重缓冲区绘图技术概念
双重缓冲区技术能够使程序的绘图更加快速和平滑,有效减少绘制时的图像闪烁。该技术的基本原理是先将图像绘制到内存中的一块画布上,一旦所有的绘制操作都完成了,再将内存中的画布推到窗体的或者控件的表面将其显示出来。通过这种操作后的程序能使用户感觉其更加快速和美观。
很久之前,我曾经玩过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. }
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接