Flash 脚本游戏开发教程第四课

时间:2016-02-08 18:41:40   收藏:0   阅读:169

本来不想写这节的,因为这节的内容很多书上或者网上资料都有,而且写的比我要详细正规得多。但后来想想,还是写吧!

而且后面几节要结合接宝的范例游戏,具体分析它的几个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里比平时大家写的,多了private和public,还有static这三个词
啥意思捏?

简单简单的说下:
private与public定义的变量和方法都能在CLASS内一样使用,没啥区别
而不同的地方就是,public定义的变量和方法能够被外界读取设置和使用,而private则不能,只能在封闭的CLASS内使用。

比如public var d:Number=1设置了变量d是public型的
然后在第三部分写下:

public function set _d(sss:Number):Void {
        d = sss;
    }
public function get _d():Number {
        return (d);
    }

当CLASS实例化在了一个MC后
trace(MC._d)就得到1
输入MC._d=2后,MC内的d就变成2啦~而private设定的变量,你从外部既不能读取也不能赋值。
自己仔细体会下

同理,例如:

public function 发绝招{
}

就像上几节图里那个封闭盒子上的发绝招按钮,实例化到MC后,就可以直接
MC.发绝招()
来让MC执行 发绝招() 这个function

而static定义的变量,怎么跟大家描述呢……它不存在于CLASS的实例化里。
而且static定义的变量,是被所有CLASS实例共享的。
还是来个例子吧:
舞台ATTACH个MC,绑定的ccc.as类。类里有个static变量s=1。ccc类里初始化函数init()里让s++,这时候s就等于2了是吧?
然后继续在舞台ATTACH个MC,绑定的ccc.as类,这个MC的s就直接等于2了。然后它在初始化函数里同样执行了s++,这时候两个MC里的s都同时变成了3
这就是所有CLASS实例共享static变量。

怎么说呢,CLASS撰写方面,我自己也不是很行,可能还存在少许的理解误区或者缺少技巧经验。希望老鸟也指导下。
关于这节,我建议新鸟鸟们最好自己再找点正规教材自己学习下。

单靠这节写的些鸟文,小鸟对CLASS还不能很好的认识。正常。

所有的知识只有通过实战才能真正的理解。
在下节里,我会详细的开始教那个接宝游戏怎么做。具体的代码怎么写。CLASS怎么写怎么用。手把手的教鸟们学做这个范例游戏。

原文:http://www.jb51.net/flash/actionscript/2006.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!