免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享

第二课:面向对象编程基础

本文来自:★flash之路-flash技术交流★ 转帖请注明出处! 作者:网雨霏霏 您是第3917个浏览者

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
flashroad友情提示:
“点评”不是“回帖”!

【前言】

虽然AS从AS1.0开始就标榜面向对象,但其实,只有到了AS3.0时代,才是真正的面向对象编程。之前的AS1和AS2都是面向过程的。两者的区别:

1、面向过程:

将要实现的步骤一步一步的罗列出来,代码执行时总是有条不紊的从头到尾挨着运行

2、面向对象:

整个代码被分出数段,各段代码都有自己单独的作用。在需要的时候直接调用某段代码【不是机械的从头到尾逐一运行代码】


当然,AS2也可以编写面向对象的程序,但是本教程从头到尾使用的却都是面向过程的思路编程【因为,如果要面向对象,就必须使用外部类,而AS2的外部类,学习起来很郁闷,远不如AS3的灵活、强大】。


而本节课只是讨论了一下对象和类的区别

一、对象

1、初步认识对象
从现实世界看,世界上所有的事物都是对象。大到宇宙,小到分子、原子,都可以看成是对象。可以这样说,对象就是现实世界中某个实际存在着的事物。如一棵树,一朵花,一辆车,一本书。

在flash软件内, 对象就是我们在flash中能看到的一切东西(舞台是一个对象;时间轴、影片剪辑、按钮、文本、位图都是对象)。

2、给对象下定义
生活中,某一个人是一个对象。ta是男人还是女人,皮肤白还是黑,身体是否健康,这都是这个人的状态特征。
学习,工作,作饭,洗衣是这个人的行为。身份证是这个唯一的标识。

在FLASH中,某一个影片剪辑是一个对象。它的宽度、高度、透明度、颜色、坐标等状态特征(这些我们管它叫作对象的属性)
这个影片剪辑又有播放和停止 , 可以被拖动, 可以添加子对象,可以设置它们的深度等行为 (这些我们把它叫作对象的方法)   
而每个对象被创建时在内存中储存的地址,就是它们唯一的标识,表现为对该对象的引用。

因此,flash软件内,对象就是一切有具体状态、行为和唯一标识的数数据集合

3、面向对象编程
    ActionScript是一种面向对象的编程语言。通常我们会认为编程就是连续地写一系列指令,计算机按顺序地执行它。 而面向对象编程则是将程序分成各个块,分散到对象上。上节课我们己说过:在ActionScript2.0中我们可以将代码写在关键帧(包括空白关键帧)、影片剪辑、按钮元件上。即便是将程序完全写在关键帧上,它也必须要对象的事件驱动才能执行。
               
二、类  

在理解了面向对象编程后,我们必需要对一些概念有所了解。
举个例子:在我们的家中,所有的东西都可以叫做对象。比如,电视机、电冰箱、书桌、衣柜等等。
大家很容易发现,这些东西总有那么几个有相似之处。比如:电视机、电冰箱都需要用电;书桌、衣柜都是用木头做成的.。。。。。。。

我们便把家里的东西分成了几类,并为每一类东西取上一个名字。比如,电器类、木器类等。这样我们就理解了另一个重要的概念----"类".

类是具有相同属性和方法的一组对象的集合。


三、事件:
1、神马是事件
在面向对象的编程中,并不是将代码按顺序交给计算机去执行。上面己经谈到了,代码被分散到了对象上。那么要计算机执行这些代码就需要事件来触发。
       通俗地讲就是:当某件事情发生时就去做一些事情。(这个某件发生的事情就是事件)
在flash中,常常会放上一个按钮。比如“开始”按钮。程序设计者可能是这样的思路:当按钮按下时就播放动画。那么“当按钮按下时”就是按钮对象的事件。

2、事件的书写方法
在ActionScript2.O中,代码可以写在关键帧和元件上。那么事件也有两种书写的方式,不过事件在关健帧中和元件中的书写方法是不一样的。下面是书写的格式

事件在关健帧中的写法:

元件名称.事件名称 = function(){

要执行的语句
....
}


事件在元件上的写法:
on(事件名称){
要执行的语句
.....

}

3、事件举例【初学者可能看不懂,不要紧,本例只是让你对事件有一个模糊认识。后面的课程中我们还会详解】

        
A、事件在关健帧中的写法:
(1)制作按钮:
在舞台上绘制一个圆角矩形。选中它,按F8键转换为按钮元件,然后打开属性面板,设置实例名为play_btn


(2)新建一个图层2,使用椭圆工具绘制一个圆,然后在35帧按F6键插入关键帧,移动圆的位置。制作“形状补间动画”,让圆从左到右移动。
(3)让按钮始终在动画播放时显示:
单击图层1(按钮就在这个图层里),在第35帧处按F5键插入帧
(4)因为影片测试时会自动重复播放,所以,我们要实现单击按钮再播放的效果,就必须事先加一个停止播放的代码。这个代码必须加在帧上(如果加在按钮上,则必须单击按钮时才能让影片不播放,显然与我们的初衷不符)。

新建一个图层,命名为as,(为了提高设计的效率,我们通常将含有代码的帧都放在一个新的图层里,并将图层命名为as)这不是必须的,你完全可以给它取个其它名字。
单击第一帧,按F9键打开动作面板,输入下面代码:

stop()


这是让动画停止播放的代码。
(5)现在要实现点击按钮时播放图层2中的补间动画,则在stop()下面一行中加入下面的命令:
play_btn.onRelease = function() {
play();
};

测试影片,当点击按钮后,图层2中的补间动画就开始播放了。

回到场景中,可以看到,在as图层时间轴的第1帧上,有一个a字,这说明在这一帧上有代码。



B、事件在元件上的写法:
(1)将帧动作只保留第一行的stop()  其它的代码全部删除。
(2)然后,用选择工具单击舞台上的按钮元件,按F9键打开"动作面板",输入如下代码:
on(release){
Play();
}


测试影片,得到相同的效果。

  
4、事件的两种书写方法总结
(1)在帧动作面板中同元件动作面板中事件的名称不一样,如上例,在帧动作中是:onRelease
而在元件上则是:release
注意大小写!
(2)在帧上写事件,必须给对象设置一个实例名(给按钮对象设置了实例名play_btn);在元件上写事件无需实例名

您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

友情提示:单击下列任意一个表情,即可瞬间自动回复本帖!

好贴......
郁闷......
开心......
擦汗......
鄙视......
狂怒
谢谢
爱你呦
拜托了
嗯嗯
OMG
求关注
伤心......
无奈.....
无奈.....
无奈.....
无奈.....
无奈.....
哈哈哈
NO
OK
what
我来了

最近访问本帖者列表:

flashroad
访问时间:2018-08-10 12:21

打赏

取消

感谢您的支持,我会继续努力的!

扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by 爱秀代码,分享从这里开始,精彩与您同在

点评
B Color Smilies

您还可以输入:个字符
X

X

 

B Color Image Link Quote Code Smilies
高级模式 | 发新话题

您需要登录后才可以回帖 登录|立即注册

快速
返回顶部
返回首页