as3 各显示对象的层级关系

Bitmap  DisplayObject  EventDispatcher  Object


Sprite  DisplayObjectContainer  InteractiveObject  DisplayObject  EventDispatcher  Object


 Loader  DisplayObjectContainer  InteractiveObject  DisplayObject  EventDispatcher  Object 


Shape  DisplayObject  EventDispatcher  Object.


MovieClip  Sprite  DisplayObjectContainer  InteractiveObject  DisplayObject  EventDispatcher  Object


1、EventDispatcher 类是可调度事件的所有类的基类。EventDispatcher 类实现 IEventDispatcher 接口,并且是 DisplayObject 类的基类。EventDispatcher 类允许显示列表上的任何对象都是一个事件目标,同样允许使用 IEventDispatcher 接口的方法。

2、DisplayObject 类是可放在显示列表中的所有对象的基类。该显示列表管理在 Flash Player 或 Adobe AIR 中显示的所有对象。使用 DisplayObjectContainer 类排列显示列表中的显示对象。DisplayObjectContainer 对象可以有子显示对象,然而其它显示对象(如 Shape 和 TextField 对象)是“叶”节点,只有父级和同级,没有子级。

DisplayObject 类支持基本功能(如对象的 x 和 y 位置),也支持更高级的对象属性(如它的转换矩阵)。

DisplayObject 是一种抽象基类;因此,不能直接调用 DisplayObject。调用 new DisplayObject() 会引发ArgumentError 异常。

所有显示对象都继承自 DisplayObject 类。

3、InteractiveObject 类是用户可以使用鼠标和键盘与之交互的所有显示对象的抽象基类。

4、DisplayObjectContainer 类是可用作显示列表中显示对象容器的所有对象的基类。

5、Loader 类和sprite的不同就因为 Loader 对象只能有一个子显示对象 -- 其加载的显示对象。调用以下方法将引发异常:addChild()addChildAt()removeChild()removeChildAt() 和 setChildIndex()。要删除被加载的显示对象,必须从其父 DisplayObjectContainer 子级数组中删除 Loader 对象。  

Loader 类会覆盖其继承的以下方法,因为 Loader 对象只能有一个子显示对象 -- 其加载的显示对象。调用以下方法将引发异常:addChild()addChildAt()removeChild()removeChildAt() 和 setChildIndex()。要删除被加载的显示对象,必须从其父 DisplayObjectContainer 子级数组中删除 Loader 对象。  

6、MovieClip 不同于 Sprite 对象,MovieClip 对象拥有一个时间轴。

7、BitmapData 类处理 Bitmap 对象的数据(像素)。BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图,或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。

8、Bitmap 类表示用于表示位图图像的显示对象。可以利用 Bitmap() 构造函数,可以创建包含对 BitmapData 对象的引用的 Bitmap 对象。创建了 Bitmap 对象后,使用父 DisplayObjectContainer 实例的 addChild() 或addChildAt() 方法将位图放在显示列表中。
没有addChild方法,不继承于DisplayObjectContainer  

一个 Bitmap 对象可在若干 Bitmap 对象之中共享其 BitmapData 引用,与转换属性或旋转属性无关。由于能够创建引用相同 BitmapData 对象的多个 Bitmap 对象,因此,多个显示对象可以使用相同的复杂 BitmapData 对象,而不会因为每个显示对象实例使用一个 BitmapData 对象而产生内存开销。

Bitmap 对象可通过以下两种方式之一将 BitmapData 对象绘制到屏幕上:使用矢量渲染器作为填充位图形状,或使用更快的像素复制例程。像素复制例程的速度比矢量渲染器要快很多,但 Bitmap 对象必须满足某些条件才能使用该例程:

  • 不能将拉伸、旋转或倾斜效果应用于 Bitmap 对象。
  • 不能将颜色转换应用于 Bitmap 对象。
  • 不能将混合模式应用于 Bitmap 对象。
  • 不能通过蒙版或 setMask() 方法进行剪裁。
  • 图像本身不能是遮罩。
  • 目标坐标必须位于一个整像素边界上。

注意:Bitmap 类不是 InteractiveObject 类的子类,因此它无法调度鼠标事件。但是,可以使用包含 Bitmap 对象的显示对象容器的 addEventListener() 方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值