继续回来写教程。本来不想写这节的,因为这节的内容很多书上或者网上资料都有,而且写的比我要详细正规得多。但后来想想,还是写吧!为啥?凑篇幅呗~啊哈哈~而且后面几节要结合接宝的范例游戏,具体分析它的几个CLASS,所以,还是用一节把CLASS的写法说一下。可能我对CLASS的写法也不是很正规,有老鸟看了后,最好也能指点一下。
先来个CLASS基本的模式。文件名:Time_control.as class Time_control { //第一部分:声明本CLASS要用到的变量 static var a:Number=2; private var b:Number; private var c:Number=1; public var d:Number; //第二部分:构造函数 function Time_control() { init(); } //第三部分:隐式设置-获取法 public function set _d(sss:Number):Void { d = sss; } public function get _d():Number { return (d); } //第四部分:私有和公有方法 private function init() { //一般写点初始化的内容 } private function aa() { } public function bb() { } } 如果是要继承类,比如继承MovieClip类,第一行就改写成:
class Time_control extends MovieClip { 下面简单解释下各个部分(……我最不擅长解释说明这类东西)CLASS类都是以 class 类名称 { 内容 } 的形式,而且类名称和文件名要相同。
CLASS的内容分四部分 第一部分:声明本CLASS所用到的变量,这里要提的是,和在SWF里定义变量不同。SWF里你可以用比如a=1这种自动变量形式,而在CLASS里你必须写明a的类型是Number,再定义变量值是1。 第二部分:是CLASS的构造函数,什么意思呢?就是当CLASS的实例出现后,自动执行这个function里的内容,一般都是些初始化的内容。function的名称要和CLASS类的名称一样哦~而且这里初始化一般都是用个init()函数,init函数具体在后面回自己定义。为什么要这样而不直接把初始化内容写在构造函数内呢?因为当继承其它类的时候,构造函数是不能继承的,还得自己再写一次,而init函数是可以继承的,于是……呵呵,懒人懒办法嘛~直接把内容写在构造函数里的话,每次继承就还要重写次,用自定义init函数的话, |