iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
Modern Web

再談 PixiJS,那些先前不一定有提到的部分與地雷系列 第 5

[Re:PixiJS - Day05] 可視物件的繼承關係

  • 分享至 

  • xImage
  •  

用可視物件的 繼承關係 來理解各個可視物件與行為滿方便的
研究了目前 5.3.2 版本的繼承關係,並畫了一張繼承圖:

(準備這張圖片時與寫文章時有一點時間差異,版號不是最新的,但沒有太大影響)

約略講幾個底層類別的特性:

DisplayObject:

  • 互動:buttonMode、interactive、hitArea
  • 定位與變形:x、y、scale、pivot、skew、transform、rotation、angle
  • zIndex:可被放入容器內,因此可用 zIndex 控制深度
  • cacheAsBitmap:可被快取成圖片
  • renderablevisiblealpha:跟物件是否可被看到有關
  • filters:可加上濾鏡

可視物件最底層的 DisplayObject 實作了這些功能
因此可理解為:所有場景上看得到的東西,都存在這些方法與特性

註1:DisplayObject 是抽象類別,沒有 width 與 height
註2:rotation 與 angle 成對,可使用弧度角度,不用特別寫算式轉換
註3:renderable、visible、alpha 的差異會有另一篇會提到

目前討論到的最底層的可視物件為 DisplayObject
DisplayObject 還繼承自別的類別,由於並不是可視物件,先暫時不討論


Container:

繼承自 DisplayObject,
並實作了 children 相關的方法

前幾天落落長的物件深度,便提到了不少 Container 的方法
[Re:PixiJS - Day03] 可視物件的深度 - childIndex / zIndex

在類別圖裡可看出,常用的 Sprite、Graphics、Text都是 Container 的實作
也表示 Sprite、Graphics、Text 都可以設定 childIndex

文字物件 可以放東西,而且還能排序?
如果有這個疑惑,這是下一篇會探討的行為


繼承樹裡有相當多類別,
不少類別尚未使用過,因此不會每個類別皆討論到

會討論的方向為:

  1. DisplayObjectContainer 等較底層類別的討論
  2. GraphicsSprite 等常使用的類別

上一篇
[Re:PixiJS - Day04] 元件被遮罩裁切後的寬高
下一篇
[Re:PixiJS - Day06] 顯示物件的奇妙行為與 Clone() 方法
系列文
再談 PixiJS,那些先前不一定有提到的部分與地雷45
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言