在具体讲解CLASS构造前想花点篇幅帮小鸟们理解下CLASS是什么东东
还是来举个例子有个机械战士MC这个MC里有机械战士完整构造手脚、身体、武器……
但这个机械战士仍然不能动它只是具机械没有大脑告诉它该如何走动如何攻击……
而我们做“机械战士控制.as”CLASS绑定在这个战士身上
这个CLASS可以看作为个封闭黑匣子里面装载了指导机械人行动包括如何移动、如何攻击、如何做事情A、如何做事情B
而这切都是封闭在黑匣子里影响不到外界外接也影响不到它是个独立东西
这个黑匣子可以装载到任何个机械战士身上任何个机械战士躯体MC旦绑定上这个CLASS就能立即行动起来
而且我们可以给这个CLASS做个外界可以接口
就像黑匣子上装了个可以给外界摁按钮你摁次它就发次绝招
象上节说CLASS模式做游戏可以团队(Team)开发我可以让别人帮我做CLASS做好我拿来用我不需要知道他代码如何写我只需要知道这个CLASS能让这个机械人按照什么规则行动有什么按钮可以让我摁
封装性好处由此显示出来了
再闯关游戏里经常出现比如画面上主角人对N个敌人场面这些敌人每个都可以绑定同个CLASS就是说写了个CLASS分别装载到N个例子化MC中去而不用每个敌人都各自写段代码
可能其中两个敌人生命和攻击力区别这也很简单在CLASS里做个接收外部传入生命和攻击力两个参数功能在敌人MC绑定CLASS后再传生命和攻击力两个变量值到MC里即可
不过要介绍说明CLASS并不是只能例子化在MC上还可以装在例如Object的类上面
比如我们很常用个FLASH本来就有CLASS:SOUND
mySound= Sound
mySound.attachSound("a.mp3")
mySound.start(0,1)
这里我们就可以看作Sound类例子化了在mySound上而attachSound和start都是Sound类“按钮”可以让外部操控这个装载了Sound类mySound我们并不知道Sound这个CLASS内部代码是如何但我们知道按钮可以用来干什么,用也不是很爽吗?
前面说了CLASS基本应用可能有鸟鸟们要问了我做个function样可以用啊或者在MC里敲代码跟你写CLASS样
那为什么还要写CLASS啊?
那下面我就来写点CLASS另外个重要特性-“继承” 网页教学网
先来个小例子:
隔壁阿 3写了个类“机器人控制.as”里面写了若干行代码包括“移动、跳跃”两个个功能
我现在也想写个类“超级流氓机器人.as”里面包括“移动、跳跃、攻击” 3个功能
和阿 3写类比较起来“移动、跳跃”两个功能是样啦我想写类只多了个“攻击”功能~
于是可以偷懒了
在我写类“超级流氓机器人.as”第行加句简单代码就可以把阿 3写类完全COPY过来(代码语法命令后面课程会讲)
然后我“超级流氓机器人.as”文件里内容就只有段写“攻击代码” 网页教学网
看到这里鸟鸟们又要问了为什么不直接ctrl+c然后ctrl+v把阿 3写类复制过来然后在里面加?
别人写代码复杂要死反正我脑子转不过来不想去分析别人东西分析别人写代码痛苦来~
日后我再要写个“移动、跳跃、翻滚”代码我不是还要再ctrl+c然后ctrl+v?多麻烦!
假使我用ctrl+c然后ctrl+v思路方法做了但突然发现“移动”功能里有个要改……郁闷吧?你要个个.as文件改了而如果是继承思路方法做你只要让阿 3把他写类修改了你自己写两个类就点不需要改动了“移动”部分功能是直接继承过来嘛~
说到这里顺带再提下FLASH里我们经常也在用类只是你感觉不到
做游戏用到最多同时也是FLASH里最重要类就是~~~~~~~~~“MovieClip类”!
鸟鸟们不知不觉就直在用MovieClip类比如你有没有经常写:mc.onEnterFrame..
onEnterFrame就是MovieClip类里个思路方法只要是个MC(自动被绑上了MovieClip类)就都能用onEnterFrame Webjx.Com
现在回到第节说那个天上掉宝地下人物接游戏
人物有两个:小李和鸣人
经过分析这两个人物基本控制部分是样然后就区别在两个人各自特殊技能不样
于是我们可以这么做:
先建个“人物基本控制.as”类
建个“小李.as”类第行句代码继承“人物基本控制.as”类然后在正文内容里写上小李特殊技能
建个“鸣人.as”类第行句代码继承“人物基本控制.as”类然后在正文内容里写上鸣人特殊技能
见图:
大家可以看到“人物基本控制.as”类也是继承了MovieClip类要用到MovieClip类里功能嘛~比如人物移动要用到onEnterFrameMC._xMC._y这点功能
类继承还可以覆盖继承过来类里思路方法
比如A类有move、jump、attack 3个思路方法
我要写个B类也包括这 3个思路方法但是attack这个思路方法和A类attack有点区别而move、jump这两个思路方法则和A类里模样
于是我们写B类第行先写句话继承了A类然后在正文里把attack思路方法重写次就自动覆盖掉了继承过来A类attack思路方法其它思路方法就不用写了直接继承过来了
让我们来换个思路做上面那个例子
直接写了“小李.as”类然后让“鸣人.as”类继承小李类正文里只需要把特殊技能思路方法重写遍就OK了
见图:
看了那么多概念小鸟们要想咋还不教具体如何写CLASS呢?
别急啊下节里会简单教些
其实我对这种死东西教学还是比较头大鸟鸟们也可以自己网上搜下具体CLASS撰写格式、规矩和变量、思路方法类型肯定比我教要详细我在CLASS方面也只能算只比小鸟略微胖点点中鸟啊哈哈
最新评论