范例接寶游戲中得分顯示類和時間控制類的CLASS講解
事實上這兩部分比較簡單 所以并在一起講解了 講解前先點開FLA文件,把這兩個MC看看,對MC構造了解了,才能寫CLASS嘛~
看下得分顯示類的代碼:
class game.Score_view extends MovieClip { private var w1:MovieClip; private var w2:MovieClip; private var w3:MovieClip; private var w4:MovieClip; private var w5:MovieClip; private var w6:MovieClip; private var i:Number //構造函數 function Score_view() { init(); } //公-私有方法 public function init() { onEnterFrame = Control; } private function Control() { for (i=1; i<=6; i++) { if (i<=int(String(_root.score).length)) { this["w"+i].gotoAndStop(int(String(_root.score).substr(i*(-1), 1))+1); } else { this["w"+i].gotoAndStop(1); } } } }
原理很簡單,就是讓這個MC一直onEnterFrame著,按照總得分來不斷操控MC里的6個數字MC變化 仔細思考下Control()里的代碼,想通了其實很簡單哦~~ 不多說了,懂了后就跟我看時間控制類的(不懂就繼續(xù)看,直到看懂為止)
下面是時間控制類:
class game.Time_control extends MovieClip{ private var t:Number public var time:Number //------------------------------------------ /* function Time_control(){ init() } */這段被注銷掉了,因為我不要它一出現在舞臺就開始倒計時。什么時候倒計時,游戲控制類會給本類發(fā)出命令(調用本類中的Go()的function) //------------------------------------------- public function set _time(ttt:Number):Void{ time=ttt } public function get _time():Number{ return(time) } //=========================================== private function TimeGo(){ t++ if(t%30==0) time-- if(time==0) { delete onEnterFrame _root.game_c.endGame() } }//倒計時代碼,當時間=0,通知游戲控制類作出endGame()的行為。 public function Go(){ t=1 time=30 onEnterFrame=TimeGo }//初始化,并開始倒計時 }
有了前兩節(jié)的基礎,這節(jié)顯的很簡單……(感覺好像應該先教這節(jié)啊……- -……是不是難度順序顛倒了??) 下節(jié)會講最后的,也是很重要的類-游戲控制類,盡請期待~!
經典論壇交流: http://bbs.blueidea.com/thread-2799019-1-1.html
本文鏈接:http://www.95time.cn/tech/multimedia/2008/6128.asp
出處:藍色理想
責任編輯:bluehearts
◎進入論壇RIA設計與應用版塊參加討論
|