皮皮狼系列教程:菜鸟也学类(1)

      闪了一下 2004-8-20 17:24
前言:我写东西一直虎头蛇尾。起个开头,坚持不了多少时间。基本上就慢慢停了。这次老婆生宝宝。看来又写不长了。看看吧!写多少是多少。能够赶在生出来之前写完。最好了。

我写东西一般菜鸟都看的懂。因为我就是菜鸟嘛。



类。对象。实例。对新手来说是一个非常讨厌的东西。特别的as的初学者。好不容易学了几个命令。能够做几个特效。正要准备继续。在类这里难住了:类到底是个身东西啊。对象是什么啊?

我一次讲解3个概念:对象、属性、方法。

对象:
任何东西都看作是一个对象。人、动物、桌子、空气、圆、点、速度、班级等。只要大家想象的出的名词,都可以看作对象。

属性:
任何对象都有属性。拿人来说。人有身高、体重、血型、人种、等等。只要大家想象得到的属于这个人的一些特点。都可以看作属性。称为:人的身高、人的体重、人的血型等,可以用一个通俗的方法判断:可以用“的”连接的名词。都可以看作是人的属性。


方法:
任何对象都有方法。还是以人为例子。人可以吃饭。可以睡觉。可以自杀。可以生孩子。(哈哈)。这些都是人的方法。大家可以通俗的认为人可以做的事情都可以看作人的方法。

我们可以这样的认为:是属性和方法构成了对象。。例如人。人如果没有身高属性。算是人?人没有体重,算是什么人?方法也是如此。如果一个人不能够吃饭。不能睡觉。不能自杀。可以说也不能称之为人。

有的同学可能要反驳:不对!失眠症患者就不睡觉。这里你所说的是一个个体。而我说的是整个人类。这里就引出了另外两个概念:类和实例

类是一个统称。实例是一个个体。人类和一个单独的人是不一样的。人类是一个统称。人是人类的一个实例。对于一个人类的实例:某一个人。他就可以有不同的属性。例如:张三的身高=160,张三的睡觉方法永远不能实施。因为他失眠。

作为人类。
身高属性不是一个确定值。但是作为属性一定有这个属性。
方法对于个人可能一辈子不会出现。例如生孩子。但是作为类一定有这个方法。


举例说明吧!我们用三行语句作最简单的一个电子表。

时间对象。就是一个类。(这里我们淡化类和对象的区别,就是说看作类和对象是同一个概念)对象的名字叫作Date.

大家可以打开as 面板。看到左边的树状命令列表。
依次打开:内置类----核心----Date-----方法。就可以看到Date的所有方法了。
有的同学可能奇怪:不是说所有的对象都有属性吗?怎么没有看到属性?
有的对象是没有属性的。(这个话有其实点问题。但是大家可以临时这么理解)

下面我们就开始使用这个对象了:
我们在as面板输入这样两行语句:

mydate=new Date(); //建立一个mydate是一个时间对象。
trace(mydate.toString()); //mydate的toString()方法,把data转换为字符串输出到输出面板

得到结果:
Fri Aug 20 10:45:20 GMT+0800 2004

在这里。mydate 不是一个简单的变量。而是一个时间对象的一个实例。maydate存储的是:语句mydate=new Date(); 执行的那一刻的时间。大家可以认为是一个比较复杂的变量。

正是因为mydate是一个时间对象的实例。所以他才有时间对象的各种方法。例如:toString() 方法。换句话说。不是随便一个变量都能toString()的。

那么大家可以试验一下 时间对象的所有的方法。反正方法列表恨容易找了。。哈哈。
这里留作练习。其实大家看看那些名字就可以知道。

时间对象的方法一共分两类。以get开头的和以set开头的。其中get类的可以象;这样使用:

mydate=new Date();
trace("星期"+mydate.getDay()+" "+mydate.getFullYear()+"年。");


下面我们做一个电子表了;
1。画一个动态文本框。给文本框起变量名为“showtime”
2。在第一帧写下如下代码:
_root.onEnterFrame = function() {
    mydate = new Date();
    showtime = mydate.getHours()+":"+mydate.getMinutes()+":"+mydate.getSeconds();
};

这样每帧都得到新的时间。显示在文本框。

当然如果大家喜欢继续作。就可以完成一个能够转动的秒表。这样的教程到处有。我就不多说了。

总结:
1。通常情况。我们用new 这个单词:

变量名=new 类名();这样的语法创建一个类的实例。


2。变量名一旦被创建。他就是这个类的一个实例。他就具有所有的类的方法和属性。我们可以用:

变量名.方法名();这样的语法来调用这个实例的方法。

3。ps:请注意变量名与方法名之间的“.”。这个点翻译为“的”。标示是一种“从属”的关系。例如:
张三=new 人();//张三是人的一个实例。
张三.吃饭(毒药);//张三的。吃饭。
张三.死亡()。//张三的。死了。


虽然这种翻译有点象汉奸。大家先这么将就着吧!

继续讲解一个声音类。有的同学可能有意见:时间类的set类方法还没有讲解呢!哈哈。先不要着急。我们先看声音类的属性。方法。与时间类有什么不同。

打开as面板。依次打开面板左边树状目录:内置类----媒体---- sound----方法

这次复杂了。看来声音对象比时间对象复杂啊。声音对象具有属性、方法、事件、对象等四个分类。每一个看上去都比较头痛。呵呵。我们从简单的入手了。我们只学习几个简单的:

当然要先做一点准备工作:
1。导入一个声音到库。(不要说不会啊!)
2。Ctrl+L打开库,在库中右击你的声音文件图标。选择“链接”在对话框中。在为动作脚本导出前面打勾。在标示符后面的文本框里边填写“music”如图所示:

图片如下:

3。在第一帧键入如下代码:

mysound=new Sound(); //创建一个声音对象。这个语法是不是恨熟悉啊?mysound是一个声音的实例。
mysound.attachSound("music");// 把库里的music绑定到 mysound声音的上边。
mysound.start(); //mysound对象的。开始声音播放


有了这个东西。结合上节课的时间对象我们就可以做一个简单的闹钟了。



未完待续
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}