第6章面向对象的编程.ppt_第1页
第6章面向对象的编程.ppt_第2页
第6章面向对象的编程.ppt_第3页
第6章面向对象的编程.ppt_第4页
第6章面向对象的编程.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章面向对象的编程,本章要点 6.1 “小球随机碰撞方形边框”动画 6.2 “猜字母游戏”动画 6.3 “指针钟”动画 6.4 “MP3播放器”动画 习题6,6.1 “小球随机碰撞方形边框”动画,6.1.1 什么是面向对象的编程 1什么是面向对象的编程 在20世纪80年代提出了面向对象的程序设计(Object Oriented Programming,OOP),它能够有效地改进结构化程序设计中存在的问题。它采用面向对象的方法来解决问题,不再将问题分解为过程,而是将问题分解为对象。在结构化的程序设计中,要解决某一个问题,是将问题进行分解,然后用许多功能不同的函数来实现,数据与函数是分离的。面向

2、对象的程序设计方法的思考方式是面向问题结构的,它认为现实世界是由对象组成的,要解决某个问题,必须要首先确定这个问题是由哪些对象组成的。 对象是现实世界中可以独立存在的、可以被区分的一个实体(也可以是一些概念上的实体),它有自己的属性、作用于对象的操作(即作用于对象的方法)和对象响应的动作(即事件)。对象之间的相互作用通过消息传送来实现。因此面向对象编程的设计模式为“对象+消息”。 在面向对象的编程中,有几个很重要的基本概念:类、对象、属性、方法、实例和继承等。“类”可以打一个比喻,月饼模子可以看成是一个“类”,扣出的月饼是对象,每个月饼都继承了模子(类)的属性。比如模子的形状是菱形,那扣出来的

3、月饼就是菱形。每个月饼还具有它自己的特有属性,例如,某个月饼的馅有蛋黄,某个月饼的馅有枣泥。通过一些方法可以改变这些属性,例如把月饼切成四份等。,6.1 “小球随机碰撞方形边框”动画,在面向对象的编程中,对象拥有它的属性和方法。属性就是一些有特殊用途的变量,方法实际上就是函数,是为了完成对对象属性进行操作的函数,通过函数改变变量的值,就是改变了对象的属性。对象是类的实例,程序是由对象组成的。面向对象的程序设计是将问题抽象成许多类,将对象属性和方法封装成一个整体,供程序设计者使用。 Flash元件库中的元件就是“类”,由元件在舞台工作区内产生的影片剪辑实例,通过实例的“属性”面板为一个影片剪辑实

4、例起一个名字,这个过程就是做一次new操作,将一个元件对象(类)实例化,产生对象。 2创建对象 可以使用new操作符通过Flash内置对象类来创建一个对象。“myDate = new date();”这条语句就是使用了Flash MX 2004的日期内置类创建了一个新对象(也叫实例化)。这里,对象myDate可以使用内置对象date()的getDate()等方法和属性。 使用new 操作符来创建一个对象需要使用构造函数(构造函数是一种简单的函数,它用来创建某一类型的对象)。Actionscript 的内置对象也是一种提前写好的构造函数。,6.1 “小球随机碰撞方形边框”动画,3访问对象 可以使

5、用点操作符来访问对象的属性,在点操作符的左边写入对象名,点操作符右边写入要使用的对象。例如下面程序中,Sound1是对象,setVolume()是方法,通过点操作符来连接。 Sound1=new sound(this);/实例化一个声音对象Sound1 Sound1.setVolume(60);/设置声音对象Sound1的音量为60 4实例分析 (1)在第1帧舞台工作区中创建一个绿色圆形的影片剪辑实例,实例名称为“BALL”。 (2)使用Flash MX 2004的内置类Color来实例化一个myball实例。 (3)在第1帧舞台工作区中放置一个名称为“AN1”的按钮实例,在第1帧的“动作-帧

6、”面板内加入如下程序。注意:“setRGB(0 x0000ff)”中的setRGB是内置类Color的一个方法。其中的x是英文小写字母,“0”为数字零,程序中的英文大小写不可以改变。 AN1.onRelease=function() myball=new Color(BALL);/用new命令定义了一个实例myball myball.setRGB(0 x0000FF);/ 其中“0 x0000FF”是16进制数,表示设置蓝色 /通过myball的setRGB方法改变了myball的颜色属性,6.1 “小球随机碰撞方形边框”动画,(4)单击“控制”“测试影片”菜单命令,单击按钮,舞台工作区中的圆

7、形图形即可从绿色变成了蓝色。圆形图形实例的颜色属性通过实例的setRGB方法,从绿色变成了蓝色。 6.1.2 数学和字符串对象 1数学(Math)对象 数学对象也不需要实例化。数学(Math)对象的常用方法在“动作”面板内命令列表区中的“内置类”“核心”“Math”目录下。常用方法的格式和功能如表6-1-1所示。 2字符串(String)对象 在使用string之前,必须将string对象实例化,然后使用字符串的对象实例进行字符串的连接、分隔和大小写转换。 (1)将string对象实例化的格式:myString=new String(); 例如,下面这两种方法均有效。 S1=new Strin

8、g(ABCDEFG); S2=ABCDEFG;,6.1 “小球随机碰撞方形边框”动画,(2)string对象的属性就有一个,简介如下。 length:返回字符串的长度。例如,在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示26。 S1=new String(ABCDEFGHIJKLMNOPQRSTUVWXYZ); LN=S1.length (3)string对象的方法有12个,下面介绍其中的3个。 string.charAt方法 :返回指定索引数字指示的字符。字符的数目从0到字符串长度减1。例如,在舞台工作区内创建一个动

9、态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母D。 S1=new String(ABCDEFGHIJKLMNOPQRSTUVWXYZ); LN=S1.charAt(3) /将返回字母D string.Concat方法:将两个字符串组合成一个新的字符串。例如,在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母“ABC123DEF456”。 myString=ABC123;,6.1 “小球随机碰撞方形边框”动画,LN=myString.concat(DEF456);/

10、将返回一个“ABC123DEF456”字符串 substr(start,length)方法:从字符串的start开始,截取长为length的子字符串。字符的数目从0到字符串长度减1。例如,在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母“CDEFGHIJKL”。 S1=new String(ABCDEFGHIJKLMNOPQRSTUVWXYZ); LN=S1.substr(2,10);,6.2 “猜字母游戏”动画,如果要使用内置对象,可以从指令选择区中的“Objects”(对象)目录中寻找,然后将要使用的对象拖曳到程

11、序编辑区中使用。 6.2.1 数组和颜色对象 1数组(Array)对象 数组对象是一种很常用的Flash Actionscript内置对象,在数组元素“”和“”之间的名称叫做“索引”(index),数组通常用来储存同一类的数据。数组对象可以从“动作”面板命令列表区的“内置类”“核心”目录中找到。 (1)指定要使用对象属性的元素。例如move1=a; ,move2=b; ,move3=c; 等。 (2)使用new Array( )创建一个数组对象并赋值。举例如下。 myArray=new Array(); myArray0=1; myArray1=2; myArray2=3; (3)数组对象的方

12、法:数组对象的方法有12个,下面简要介绍其中几个。 格式:concat(array1,arrayN); 功能:用来连接array1到arrayN数组的值。,6.2 “猜字母游戏”动画, 格式:my_array.join(separator); 功能:返回数组中的数组元素,这些数组元素用separator作为分隔符分割。如果省略此参数,则使用逗号作为默认分隔符。举例如下。 N1_array = new Array(One,Two,Three,Four,Five) trace(N1_array.join(); / 返回One,Two,Three,Four,Five trace(N1_array.j

13、oin( * ); / 返回One*Two*Three*Four*Five trace(N1_array.join( + ); / 返回One+Two+Three+Four+Five 格式:my_array.pop() 功能:返回数组中最后一个数组元素的值,同时删除数组中最后一个数组元素。举例如下。 N1_array = new Array(One,Two,Three,Four,Five) SN1 = N1_array.pop(); trace(SN1);/ 返回Five SN1 = N1_array.pop(); trace(SN1);/ 返回Four 格式:my_array.push(va

14、lue,.),6.2 “猜字母游戏”动画,功能:将一个或多个数组元素添加到数组的结尾,并返回该数组的新长度。value参数是要追加到数组中的一个或多个数组元素值。举例如下。 N1_array = new Array(One,Two,Three,Four,Five) SN1= N1_array.push(Six, Seven); trace(SN1);/返回值为7 格式:my_array.reverse() 功能:将数组中的数组元素倒转。举例如下。 N1_array = new Array(One,Two,Three,Four,Five) trace(N1_array.join(); /返回值为

15、Five,Four,Three,Two,One (4)数组对象的属性:数组对象的属性只有同一个,即length属性。length属性可以返回数组的长度。举例如下。 my_array = new Array(); trace(my_array.length); / 初始长度为 0 my_array0 = A; trace(my_array.length); / 将 my_array.length 更新为 1 my_array2 = AB; trace(my_array.length); / 将 my_array.length 更新为 3 my_array8 = ABC;,6.2 “猜字母游戏”动

16、画,trace(my_array.length); / 将 my_array.length 更新为 9 2颜色(Color)对象 通过new Color()来实例化一个颜色对象。例如,在舞台中创建了一个红色方块的影片剪辑实例,并命名为“S1”。然后使用“myColor=new Color(S1);”语句实例化一个myColor对象实例,通过这个实例的一些属性可以得到Sample影片剪辑实例中红色方块的颜色值。颜色对象可以从“动作”面板命令列表区的“内置类”“影片”目录中找到。 (1)格式:myColor=new Color(); (2)Color对象常用的方法介绍如下。 格式:getRGB()

17、; 功能:获得对象的颜色值。 格式:setRGB(0 xRRGGBB); 功能:通过括号中的16进制数来设置对象的颜色。RR,GG和BB取值在00到ff之间。 6.2.2 键盘和鼠标对象 1键盘(Key)对象 键盘对象是一种比较特殊的对象,不需要实例化就可以使用它的方法和属性。键盘对象可以从“动作”面板命令列表区的“内置类”“影片”目录中找到。,6.2 “猜字母游戏”动画,(1)key对象的常用方法介绍如下。 key.getAscII():返回最近一次按键的AscII码。 key.getCode():返回最近一个按键的VirtualKey 码。 key.isDown():当键盘上的任意键按下的

18、时候,返回true逻辑值。 key.isToggled():当小键盘加了字母锁时返回true。 (2)key对象的常用属性:key对象的常用属性如表6-2-1所示。 2鼠标(Mouse)对象 鼠标对象不需要实例化。可以从“动作”面板命令列表区的“内置类”“核心”目录中找到。它有4个方法,其中的两个介绍如下。 (1)鼠标隐藏:mouse.hide()。 (2)鼠标显示:mouse.show()。,6.3 “指针钟”动画,6.3.1 时间(Date)对象 时间对象是将计算机系统的时间填入到对象实例中去。 (1)时间对象实例化的格式:myDate=new date(); (2)时间对象的常用方法如图

19、6-3-1所示。,6.4 “MP3播放器”动画,6.4.1 声音(Sound)对象 1声音(Sound)对象的构造函数 格式:new Sound(target); 其中的参数target是Sound对象操作的影片剪辑实例。此参数是可选的。可采用“mySound=new Sound();”或“mySound=new Sound(target); ”命令。 功能:使用new操作符实例化sound对象,即为指定的影片剪辑创建新的Sound对象。如果没有指定目标实例target(目标),则Sound对象控制影片中的所有声音。如果指定target,则只对指定的对象起作用。 例1下面的实例创建了一个名字为

20、globalsound的sound对象新实例。程序中的第二行调用setVolume方法并将影片中的所有声音的音量调整为50%。 globalsound = new Sound(); globalsound.setVolume(50); 例2下面的实例创建Sound对象的新实例,将目标影片剪辑myMovie传递给它,然后调用start方法播放myMovie中的所有声音。 moviesound = new Sound(myMovie); moviesound.start();,6.4 “MP3播放器”动画,2声音对象的方法 (1)mySound.attachSound方法 格式:ySound.at

21、tachSound(“dName”);图6-4-1 “链接属性”对话框 功能:这个方法是绑定一个在“库”面板中的声音对象,绑定后就可以用声音的其他方法来控制声音的各个属性了。其中,“idName”是指库中声音元件的标识符(即id)名称,它是在“链接属性”对话框“标识符”文本框中输入的,不是声音元件名字。 在“库”面板中的声音元件上,单击鼠标右键,调出快捷菜单,单击“连接”菜单命令,可调出如图6-4-1所示的“链接属性”对话框。在“标识符”文本框内输入元件的标识符名称,再选择复选框,需要的话还应该在“URL”文本框内输入URL数据,单击“确定”按钮退出。,图6-4-1 “链接属性”对话框,6.4

22、 “MP3播放器”动画,(2)Sound.getBytesLoaded方法 格式:Sound.getBytesLoaded(); 功能:返回指示所加载字节数的整数。返回为指定Sound对象加载(进入流)的字节数。可以比较getBytesLoaded的值与getBytesTotal的值,以确定已加载声音的百分比。 (3)Sound.getBytesTotal方法 格式:Sound.getBytesTotal(); 功能:返回一个整数,以字节为单位指示指定Sound对象的总大小。 (4)mySound.getPan方法 格式:mySound.getPan(); 功能:这个方法返回在上一次setPa

23、n调用中设置的面板级别,是一个从100到100之间的整值,这个值代表左右声道的音量,100到0是左声道的值,0到100是右声道的值(0平衡地设置左右声道)。该面板设置控制影片中当前和将来声音的左右均衡。 此方法是用setVolume或setTransform方法累积的。,6.4 “MP3播放器”动画,(5)mySound.getTransform方法 格式:mySound.getTransform(); 功能:返回声音变化的属性值,其中属性有ll(控制左声道进入左扬声器的音量)、lr(控制右声道进入左扬声器的音量)、rr(控制右声道进入右扬声器的音量)和rl(控制左声道进入右扬声器的音量)。它

24、们的取值为100到100。 通过下面的公式可以计算左右音量的大小:左输出=左输入*ll+右输入*lr,右输出=右输入*rr+左输入*rl。如果不指定这几个属性,系统默认为:ll=100,lr=0,rr=100,rl=0。 (6)sound.getVolume方法 格式:sound.getVolume(); 功能:返回一个0到100之间的整数,0到100指定了当前声音对象的音量,0是无音量,100是最高音量。可以将sound.getVolume()的值赋给一个变量。它的默认值是100。 (7)mySound.loadSound方法 格式:mySound.loadSound(url, isStre

25、aming); 其中,urlMP3声音文件在服务器上的位置。isStreaming一个布尔值,指示声音是声音流还是事件声音。,6.4 “MP3播放器”动画,功能:将MP3文件加载到Sound对象的实例。可以使用isSteaming参数指示该声音是一个事件声音还是一个声音流。 事件声音在完全加载后才能播放。它们由动作脚本Sound对象进行管理,而且响应此对象的所有方法和属性。声音流在下载的同时播放。当接收的数据足以启动解压缩程序时,播放开始。与事件声音一样,声音流仅存在于虚拟内存中,不能将其下载到硬盘。例如:下面的实例加载事件声音。 s.loadSound( http:/serverpath:p

26、ort/mp3filename, false); 例如,下面的示例加载声音流。 loadSound( http:/serverpath:port/mp3filename, true); (8)mySound.setPan方法 格式:mySound.setPan(pan); 其中,参数pan一个整数,它指定声音的左右均衡。有效值的范围为100到100,其中100表示仅使用左声道,100表示仅使用右声道,而0表示在两个声道间平均地均衡声音。 功能:用来确定声音在左右声道(扬声器)中是如何播放的。对于单声道声音,pan确定声音通过哪个扬声器(左或右)进行播放。例如:下面的实例创建Sound对象实例S

27、,并附加一个来自库的标识符为L7的声音。它还调用setVolume和setPan方法来控制L7声音。,6.4 “MP3播放器”动画,onClipEvent(mouseDown) S= new Sound(this); /创建一个声音对象S S.attachSound(L7); S.setVolume(50); S.setPan(-100); S.start(30, 5); (9)mySound.setTransform方法 格式:mySound.setTransform(soundTransformObject); 其中,参数soundTransformObject一个用通用Object对象的

28、构造函数创建的对象。 功能:用来设置声音对象的属性,其中sxform是一个使用对象创建的对象名称。通过对象创建一个声音对象模型,然后通过这个模型设置mySound对象的4个属性。举例如下。 mySound.attachSound(thisSong);/利用attachSound方法绑定一个声音,绑定声音的过程见attachSound方法介绍 myTransformObject=new Object();/构造一个声音变化对象myTransformObject,6.4 “MP3播放器”动画,myTransformObject.ll=50; myTransformObject.lr=50; myTransformObject.rr=50; myTransformObject.rl=50; /将立体声音的左右输入平均分配给扬声器,形成单声道 mySound.setTransform(myTransformObject); /将声音变化对象myTransformObject传递给setTransform方法 (10)setVolume方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论