AS3.0中容易搞混的名詞

學習AS3.0的時候, 覺得是比AS2.0好學多

因為寫的地方被強制限定在影格, 不會影格也有, 影片裡也有, 包在裡面的影片又有.

宣告也變的嚴謹多了, 雖然同樣的事情在3.0中要寫比較多行,

但是考慮到事後的維護跟效率上卻明顯改善許多.

題外話,

學AS3.0的時候一直沒有真正體會到物件導向的精神

也從來沒寫過封包程式(package, 把程式碼寫在外部as檔案, 需要的時候在呼叫)

所以在寫類別(class)的時候很容易就搞得頭昏腦脹.

其原因之一就是類別(class), 方法(method),  function,  屬性(property)  這四個名詞.

剛開始記憶這些名詞的意義的時候可能會去背相關的解釋, 但是不實戰了解的話

就容易分不清楚到底差別在哪裡.  事實上很簡單,  寫封包程式的時候一定會先定義類別

然後在類別裡去定義方法,  寫好後在場景裡呼叫類別進來後就是function

但是如果一開始就寫在影格上的話也是可以定義function, 這兩者有一點點不一樣

所以容易搞不清楚.  而屬性其實就是寫在類別裡的變數(variable)


換言之, 即使不會寫自訂類別, 其實也一直都在使用類別. 那些以大寫開頭的類別

比如 MovieClip 就是一個寫好的類別. 而用此類別建立的物件, 都繼承了該類別中

定義好的方法, 寫在場景裡就是句號. 後面接的那些常見的屬性, 如.alpha, .scaleCX…etc.

那也許會問, 那我知道這些跟寫自訂類別有啥關係嗎??

有, 因為如果今天你想要自己創造一個原本沒有的屬性, 就需要知道這四個名詞之間的相互關係

以比喻來說的話,

人類就是一個被定義好的物件, 而人類的職業就有點像是類別(class)

像是戰士(method)懂得作戰, 使用大劍(function), 魔術士具有魔法, 不管戰士或是魔術士都繼承了人類的

所有屬性(property)(皮膚顏色, 打的死…).  假使我們想讓戰士等級提升變的可以

使用其他技能(假設學會射箭), 就得給戰士一個轉職寶物(自訂類別), 這樣戰士就可以

使出百步穿楊的技能(定義好的弓箭手類別(class)中的精準命中技能(function)).

而戰士也具備有戰士原有的技能.

而在實作裡面來說就是

假使我們建立了一個影片片段來做一段火箭的動畫, 由於是從MovieClip類別中建立,

所以一開始就具備了MC的所有屬性(.x, .y, .alpha…) 那假使今天我想建立一個屬性

可以設定火箭的加速度(比如 .spped), 由於影片片段原本沒有speed屬性, 所以就必須

在外部檔案(當然寫在裡面也可以) 另外自訂一個類別, 並建立speed 這個屬性

這就是物件導向語法的基本概念(講基本結果自己也是弄老半天才搞懂….)

  1. 九月 21st, 2009

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: