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 類支持基本功能(如對象的 xy 位置),也支持更高級的對象屬性(如它的轉換矩陣)。

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() 方法。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章