前面說了CLASS的基本應用,可能有鳥鳥們要問了,我做個function一樣可以用啊,或者在MC里敲代碼,跟你寫CLASS一樣。 那為什么還要寫CLASS。
那下面我就來寫點CLASS的另外個重要的特性-“繼承”
先來個小例子:
隔壁阿三寫了個類“機器人控制.as”,里面寫了若干行的代碼,包括“移動、跳躍”兩個個功能。 我現(xiàn)在也想寫個類“超級流氓機器人.as”,里面包括“移動、跳躍、攻擊”三個功能。
和阿三寫的類比較起來,“移動、跳躍”兩個功能是一樣的啦,我想寫的類只多了個“攻擊”功能~ 于是可以偷懶了。
在我寫的類“超級流氓機器人.as”第一行加句簡單的代碼,就可以把阿三寫的類完全COPY過來。(代碼語法命令后面的課程會講的) 然后我的“超級流氓機器人.as”文件里,內(nèi)容就只有段寫“攻擊的代碼”。
看到這里,鳥鳥們又要問了,為什么不直接ctrl+c然后ctrl+v把阿三寫的類復制過來,然后在里面加?
- 別人寫的代碼,復雜的要死,反正我腦子轉(zhuǎn)不過來,不想去分析別人的東西。分析別人寫的代碼,痛苦的來~
- 日后我再要寫個“移動、跳躍、翻滾”的代碼,我不是還要再ctrl+c然后ctrl+v?多麻煩!
- 假使我用ctrl+c然后ctrl+v的方法做了,但突然發(fā)現(xiàn)“移動”功能里有個錯誤要改……郁悶吧?你要一個個.as文件改了。而如果是繼承的方法做的,你只要讓阿三把他寫的類修改了,你自己寫的兩個類就一點不需要改動了,因為“移動”部分的功能,是直接繼承過來的嘛~
說到這里,順帶再提下,F(xiàn)LASH里我們經(jīng)常也在用類,只是你感覺不到。 做游戲用到最多,同時也是FLASH里最重要的類,就是~~~~~~~~~“MovieClip類”! 鳥鳥們不知不覺的就一直在用MovieClip類,比如你有沒有經(jīng)常寫:mc.onEnterFrame.. onEnterFrame就是MovieClip類里的一個方法,只要是個MC(自動被綁上了MovieClip類),就都能用onEnterFrame。
現(xiàn)在回到第一節(jié)說的那個天上掉寶地下人物接的游戲。
人物有兩個:小李和鳴人 經(jīng)過分析,這兩個人物基本控制部分是一樣的,然后就區(qū)別在兩個人的各自的特殊技能不一樣。
于是我們可以這么做:
- 先建個“人物基本控制.as”類
- 建個“小李.as”類,第一行一句代碼繼承“人物基本控制.as”類,然后在正文內(nèi)容里寫上小李特殊技能
- 建個“鳴人.as”類,第一行一句代碼繼承“人物基本控制.as”類,然后在正文內(nèi)容里寫上鳴人特殊技能
見圖:
大家可以看到,“人物基本控制.as”類也是繼承了MovieClip類,因為要用到MovieClip類里的功能嘛~比如人物移動要用到onEnterFrame,MC._x,MC._y這點功能。
類的繼承,還可以覆蓋繼承過來類里的方法。 比如A類有move、jump、attack三個方法 我要寫個B類,也包括這三個方法,但是attack這個方法和A類的attack有點不同,而move、jump這兩個方法則和A類里的一模一樣。 于是我們寫B(tài)類,第一行先寫句話繼承了A類。然后在正文里把attack方法重寫一次,就自動覆蓋掉了繼承過來的A類的attack方法。其它的方法就不用寫了,因為直接繼承過來了。
讓我們來換個思路做上面那個例子。 直接寫了“小李.as”類,然后讓“鳴人.as”類繼承小李類,正文里只需要把特殊技能方法重寫遍就OK了。
見圖:
看了那么多概念,小鳥們要想,咋還不教具體怎么寫CLASS呢? 別急啊,下節(jié)里會簡單的教些的。 其實我對這種死東西教學還是比較頭大的,鳥鳥們也可以自己網(wǎng)上搜下具體CLASS撰寫格式、規(guī)矩和變量、方法類型?隙ū任医痰囊敿。因為我在CLASS方面也只能算只比小鳥略微胖點點的中鳥啊,哈哈
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2799019-1-1.html
本文鏈接:http://www.95time.cn/tech/multimedia/2008/5804.asp
出處:藍色理想
責任編輯:bluehearts
上一頁 CLASS是什么東東? [1] 下一頁
◎進入論壇RIA設計與應用版塊參加討論
|