范例接宝游戏中得分显示类和时间控制类的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()里的代码,想通了其实很简单哦~~ 不多说了,懂了后就跟我看时间控制类的(不懂就继续看,直到看懂为止)
下面是时间控制类:
class game.Time_control extends MovieClip{ private var t:Number public var time:Number //------------------------------------------ /* function Time_control(){ init() } */这段被注销掉了,因为我不要它一出现在舞台就开始倒计时。什么时候倒计时,游戏控制类会给本类发出命令(调用本类中的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 }//初始化,并开始倒计时 }
有了前两节的基础,这节显的很简单……(感觉好像应该先教这节啊……- -……是不是难度顺序颠倒了??) 下节会讲最后的,也是很重要的类-游戏控制类,尽请期待~!
经典论坛交流: http://bbs.blueidea.com/thread-2799019-1-1.html
本文链接:http://www.blueidea.com/tech/multimedia/2008/6128.asp
出处:蓝色理想
责任编辑:bluehearts
◎进入论坛RIA设计与应用版块参加讨论
|