周云的FLASH小游戏开发教室--CLASS是什么东西(下)
上节说了CLASS的基本应用,可能有鸟鸟们要问了,我做个function一样可以用啊,或者在MC里敲代码,跟你写CLASS一样。
那为什么还要写CLASS啊?
那这节我就来写点CLASS的另外个重要的特性-“继承”
先来个小例子:
隔壁阿三写了个类“机器人控制.as”,里面写了若干行的代码,包括“移动、跳跃”两个个功能。
我现在也想写个类“超级流氓机器人.as”,里面包括“移动、跳跃、攻击”三个功能。
和阿三写的类比较起来,“移动、跳跃”两个功能是一样的啦,我想写的类只多了个“攻击”功能~
于是可以偷懒了。
在我写的类“超级流氓机器人.as”第一行加句简单的代码,就可以把阿三写的类完全COPY过来。(代码语法命令后面的课程会讲的)
然后我的“超级流氓机器人.as”文件里,内容就只有段写“攻击的代码”。
看到这里,鸟鸟们又要问了,为什么不直接ctrl+c然后ctrl+v把阿三写的类复制过来,然后在里面加?
呵呵。
1.别人写的代码,复杂的要死,反正我脑子转不过来,不想去分析别人的东西。分析别人写的代码,痛苦的来~
2.日后我再要写个“移动、跳跃、翻滚”的代码,我不是还要再ctrl+c然后ctrl+v?多麻烦!
3.假使我用ctrl+c然后ctrl+v的方法做了,但突然发现“移动”功能里有个错误要改……郁闷吧?你要一个个.as文件改了。而如果是继承的方法做的,你只要让阿三把他写的类修改了,你自己写的两个类就一点不需要改动了,因为“移动”部分的功能,是直接继承过来的嘛~
说到这里,顺带再提下,FLASH里我们经常也在用类,只是你感觉不到。
做游戏用到最多,同时也是FLASH里最重要的类,就是~~~~~~~~~“MovieClip类”!
鸟鸟们不知不觉的就一直在用MovieClip类,比如你有没有经常写:mc.onEnterFrame..
onEnterFrame就是MovieClip类里的一个方法,只要是个MC(自动被绑上了MovieClip类),就都能用onEnterFrame。
现在回到第一节说的那个天上掉宝地下人物接的游戏。
人物有两个:小李和鸣人
经过分析,这两个人物基本控制部分是一样的,然后就区别在两个人的各自的特殊技能不一样。
于是我们可以这么做:
1.先建个“人物基本控制.as”类
2.建个“小李.as”类,第一行一句代码继承“人物基本控制.as”类,然后在正文内容里写上小李特殊技能
3.建个“鸣人.as”类,第一行一句代码继承“人物基本控制.as”类,然后在正文内容里写上鸣人特殊技能
见图
大家可以看到,“人物基本控制.as”类也是继承了MovieClip类,因为要用到MovieClip类里的功能嘛~比如人物移动要用到onEnterFrame,MC._x,MC._y这点功能。
类的继承,还可以覆盖继承过来类里的方法。
比如A类有move、jump、attack三个方法
我要写个B类,也包括这三个方法,但是attack这个方法和A类的attack有点不同,而move、jump这两个方法则和A类里的一模一样。
于是我们写B类,第一行先写句话继承了A类。然后在正文里把attack方法重写一次,就自动覆盖掉了继承过来的A类的attack方法。其它的方法就不用写了,因为直接继承过来了。
让我们来换个思路做上面那个例子。
直接写了“小李.as”类,然后让“鸣人.as”类继承小李类,正文里只需要把特殊技能方法重写遍就OK了。
见图
看了那么多概念,小鸟们要想,咋还不教具体怎么写CLASS呢?
别急啊,下节里会简单的教些的。
其实我对这种死东西教学还是比较头大的,鸟鸟们也可以自己网上搜下具体CLASS撰写格式、规矩和变量、方法类型。肯定比我教的要详细。因为我在CLASS方面也只能算只比小鸟略微胖点点的中鸟啊,哈哈
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1013.html