| 范例接宝游戏中宝物类的CLASS讲解 先补充个游戏里的结构: 
_root下有三个空MC: pl,item和xs 
pl这个空MC是用来attach人物的 
item这个空MC是用来attach宝物的 
xs这个MC是用来attach显示得分的 为什么要这么做呢?……因为管理方便呀~以后你会慢慢体会到的。 严重警告:第7课未搞懂看明白者,请回上节反复研究,直至搞懂。不然继续往下看会让你体内真气逆行,任、督二脉自锁,全身犹如蚂蚁咬,饭吃不下,觉睡不着,放P恶臭,对FLASH丧失学习信心…… (……) 好了,能看到这行的,说明你已经是个消化第7节内容的鸟了。这一节我也话不多说,直接放代码了。用你第7节学到的内容自我检验下。
 金币10和50共用的CLASS class items.Jin extends MovieClip {static var basic_speed:Number = 3; //下落基础速度
 public var score:Number = 10;    //得分
 public var speed:Number;    //下落速度
 private var hit:MovieClip;    //声明碰撞检测的MC
 private var depth:Number;    //当宝物被人物获得,显示得分的MC的深度
 //---构造函数---
 function Jin() {
 init();
 }
 //隐式设置-获取方法
 public function set _score(kkk:Number):Void {
 score = kkk;
 }//得分10还是50,传入这个参数就能解决
 public function _bspeed(){
 basic_speed= 3;
 trace(basic_speed)
 }//这个要说明下,静态变量basic_speed每实例化一个MC都会自我增加,所以基础速度越来越快。这个方法是让basic_speed变回原始的3。用于每回合开始时初始化使用。
 public function set _speed(sss:Number):Void {
 speed = sss;
 }
 //共有-私有方法
 private function init() {
 _x = 50+random(450);
 _y = -15;
 speed = basic_speed+random(50)/10;//下落速度是由基础速度+随机增量
 basic_speed+=0.03
 //trace(basic_speed)
 onEnterFrame = Move;
 }
 private function Move() {
 _y += speed;
 if (_y>380) {
 this.removeMovieClip();
 }
 /////////////////////////////////
 if (hit.hitTest(_root.pl.player.hit)) {
 getItem();
 }
 ///////////////////////////////// 碰撞检测哦~
 }
 public function getItem() {
 _root.music_control.snd("jin");//声音控制,以后会讲到
 _root.score += score;
 depth = _root.xs.getNextHighestDepth();
 var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++);//ATTACH显示得分的MC
 a.aaa.score = "+"+score;
 a._x = _x;
 a._y = _y;
 this.removeMovieClip();
 }
 }
 然后是两个宝物的CLASS,继承了金币的类,只不过改写了被人物吃到后的效果 爱心 class items.Bao1 extends items.Jin {public function getItem() {
 _root.music_control.snd("bao");
 depth = _root.xs.getNextHighestDepth();
 var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++);
 a.aaa.score = "TIME";
 a._x = _x;
 a._y = _y;
 ////////
 _root.time_c._time += 8;
 ///////调时间控制类的public方法,后面会讲到
 this.removeMovieClip();
 }
 }
 五角星 class items.Bao2 extends items.Jin {public var score:Number = 30;
 public function getItem() {
 //_root.score+=score
 _root.music_control.snd("bao");
 ///////
 for (var i in _root.item) {
 if (_root.item[i]._name.substr(0, 3) != "bao") {
 _root.item[i].getItem();
 }
 }
 _root.score += score;
 depth = _root.xs.getNextHighestDepth();
 var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++);
 a.aaa.score = "+"+score;
 a._x = _x;
 a._y = _y;
 ///////
 this.removeMovieClip();
 }
 }
 宝物这类,和人物类有点相似的。下节会把时间控制类和分数控制类一起讲掉。大家快把这节的内容消化了吧~
 经典论坛交流:本文链接:http://www.blueidea.com/tech/multimedia/2008/6055.asphttp://bbs.blueidea.com/thread-2799019-1-1.html
   出处:蓝色理想
责任编辑:bluehearts
 ◎进入论坛RIA设计与应用版块参加讨论
	      |