在具體講解CLASS構(gòu)造前,想花點(diǎn)篇幅幫小鳥(niǎo)們理解下CLASS是什么東東。 還是來(lái)舉個(gè)例子,有一個(gè)機(jī)械戰(zhàn)士的MC,這個(gè)MC里有機(jī)械戰(zhàn)士完整的構(gòu)造,手腳、身體、武器…… 但這個(gè)機(jī)械戰(zhàn)士仍然不能動(dòng),因?yàn)樗皇且痪邫C(jī)械,沒(méi)有大腦程序告訴它該怎么走動(dòng),怎么攻擊…… 而我們做的“機(jī)械戰(zhàn)士控制.as”的CLASS,綁定在這個(gè)戰(zhàn)士身上。 這個(gè)CLASS可以看作為一個(gè)封閉的黑匣子,里面裝載了指導(dǎo)機(jī)械人行動(dòng)的程序,包括怎么移動(dòng)、怎么攻擊、怎么做事情A、怎么做事情B。 而這一切都是封閉在黑匣子里的,影響不到外界程序,外接程序也影響不到它。是個(gè)獨(dú)立的東西。 這個(gè)黑匣子可以裝載到任何一個(gè)機(jī)械戰(zhàn)士身上,任何一個(gè)機(jī)械戰(zhàn)士軀體的MC一旦綁定上這個(gè)CLASS,就能立即行動(dòng)起來(lái)。 而且我們可以給這個(gè)CLASS做個(gè)外界可以調(diào)用的接口。 就像黑匣子上裝了個(gè)可以給外界摁的按鈕,你摁一次它就發(fā)一次絕招。
象上一節(jié)說(shuō)的,CLASS模式做游戲可以團(tuán)隊(duì)開(kāi)發(fā)。我可以讓別人幫我做CLASS,做好我拿來(lái)用。我不需要知道他代碼怎么寫(xiě)的,我只需要知道這個(gè)CLASS能讓這個(gè)機(jī)械人按照什么規(guī)則行動(dòng),有什么按鈕可以讓我摁。 封裝性的好處由此顯示出來(lái)了。
再闖關(guān)游戲里,經(jīng)常出現(xiàn)比如畫(huà)面上主角一人對(duì)N個(gè)敵人的場(chǎng)面。這些敵人每個(gè)都可以綁定同一個(gè)CLASS。就是說(shuō)寫(xiě)了一個(gè)CLASS分別裝載到N個(gè)實(shí)例化的MC中去,而不用每個(gè)敵人都各自寫(xiě)一段代碼。
可能其中兩個(gè)敵人的生命和攻擊力不同。這也很簡(jiǎn)單,在CLASS里做一個(gè)接收外部傳入生命和攻擊力兩個(gè)參數(shù)的功能,在敵人MC綁定CLASS后,再傳生命和攻擊力兩個(gè)變量的值到MC里即可。
不過(guò)要說(shuō)明,CLASS并不是只能實(shí)例化在MC上,還可以裝在例如Object之類(lèi)的上面。 比如我們很常用的一個(gè)FLASH本來(lái)就有的CLASS:SOUND
mySound=new Sound() mySound.attachSound("a.mp3") mySound.start(0,1)
這里我們就可以看作Sound類(lèi)實(shí)例化了在mySound的上,而attachSound和start都是Sound類(lèi)的“按鈕”,可以讓外部操控這個(gè)裝載了Sound類(lèi)的mySound。我們并不知道Sound這個(gè)CLASS內(nèi)部代碼是如何的,但我們知道按鈕可以用來(lái)干什么,用的也不是很爽嗎?
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁(yè) 下一頁(yè) CLASS是什么東東? [2]
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|