为什么BitmapData被简单地归类为Bitmap.data?

时间:2011-12-09 07:30:05

标签: flash actionscript-3

但是,我不常使用位图类。但注意到这两个类(Bitmap和BitmapData)的存在让我感到奇怪..为什么BitmapData可能只是Bitmap.getData或Bitmap.data?

有任何线索吗?

由于 Vishwas

2 个答案:

答案 0 :(得分:3)

BitmapBitmapData的直观表示。它继承自DisplayObject,意味着它具有定位属性,例如xy以及widthheight之类的大小。

BitmapData拥有大量与图像表示严格相关的属性和方法,而不是可见图像本身。在实际渲染它所代表的内容之前,您可以使用BitmapData进行大量工作。合并这两个类是没有意义的。以下是一些原因:

  1. Bitmap的多个实例可以引用BitmapData的单个实例,从而节省大量内存并提高性能。在我的游戏引擎中,DisplayList中只有一个Bitmap实例,但是所有游戏实体都有自己对一块BitmapData的引用,它将作为它的视觉效果。
  2. 我不想创建一个完整的Bitmap实例(很大)只是为了使用它的BitmapData。只需要一个明显更轻的重量级就可以完成你需要的工作。
  3. Bitmap的单个实例可以从无限量的BitmapData实例中获取部分信息,然后渲染它们。对于Bitmap和BitmapData来说,考虑到这一点似乎不是一个逻辑,因为从OOP的角度来看,这个单独的类应该只代表一个图形。
  4. 他们不是一回事。他们可以互相工作,并且有实际和共同的用途。
  5. 还有更多原因,但这些只是少数原因。

答案 1 :(得分:1)

BitmapData是图像数据的核心表示;每个像素的图像中有4个通道:alpha,red,green和blue。使用它,您可以操纵每个像素。

Bitmap类是DisplayObject的子类,它是用于在显示列表中呈现位图数据的内容。