《第6章面向对象的编程.ppt》由会员分享,可在线阅读,更多相关《第6章面向对象的编程.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章面向对象的编程 本章要点本章要点 l6.1 “小球随机碰撞方形边框小球随机碰撞方形边框”动画动画 l6.2 “猜字母游戏猜字母游戏”动画动画 l6.3 “指针钟指针钟”动画动画 l6.4 “MP3播放器播放器”动画动画 l习题习题66.1“小球随机碰撞方形边框小球随机碰撞方形边框”动画动画6.1.1什么是面向对象的编程什么是面向对象的编程1什么是面向对象的编程什么是面向对象的编程在在20世纪世纪80年代提出了面向对象的程序设计(年代提出了面向对象的程序设计(ObjectOrientedProgramming,OOP),它能够有效地改进结构化程序设计中存在的问题。它采用面向对象的方法)
2、,它能够有效地改进结构化程序设计中存在的问题。它采用面向对象的方法来解决问题,不再将问题分解为过程,而是将问题分解为对象。在结构化的程序设来解决问题,不再将问题分解为过程,而是将问题分解为对象。在结构化的程序设计中,要解决某一个问题,是将问题进行分解,然后用许多功能不同的函数来实现,计中,要解决某一个问题,是将问题进行分解,然后用许多功能不同的函数来实现,数据与函数是分离的。面向对象的程序设计方法的思考方式是面向问题结构的,它数据与函数是分离的。面向对象的程序设计方法的思考方式是面向问题结构的,它认为现实世界是由对象组成的,要解决某个问题,必须要首先确定这个问题是由哪认为现实世界是由对象组成的
3、,要解决某个问题,必须要首先确定这个问题是由哪些对象组成的。些对象组成的。对象是现实世界中可以独立存在的、可以被区分的一个实体(也可以是一些概念上对象是现实世界中可以独立存在的、可以被区分的一个实体(也可以是一些概念上的实体),它有自己的属性、作用于对象的操作(即作用于对象的方法)和对象响的实体),它有自己的属性、作用于对象的操作(即作用于对象的方法)和对象响应的动作(即事件)。对象之间的相互作用通过消息传送来实现。因此面向对象编应的动作(即事件)。对象之间的相互作用通过消息传送来实现。因此面向对象编程的设计模式为程的设计模式为“对象对象+消息消息”。在面向对象的编程中,有几个很重要的基本概念
4、:类、对象、属性、方法、实例和在面向对象的编程中,有几个很重要的基本概念:类、对象、属性、方法、实例和继承等。继承等。“类类”可以打一个比喻,月饼模子可以看成是一个可以打一个比喻,月饼模子可以看成是一个“类类”,扣出的月饼是,扣出的月饼是对象,每个月饼都继承了模子(类)的属性。比如模子的形状是菱形,那扣出来的对象,每个月饼都继承了模子(类)的属性。比如模子的形状是菱形,那扣出来的月饼就是菱形。每个月饼还具有它自己的特有属性,例如,某个月饼的馅有蛋黄,月饼就是菱形。每个月饼还具有它自己的特有属性,例如,某个月饼的馅有蛋黄,某个月饼的馅有枣泥。通过一些方法可以改变这些属性,例如把月饼切成四份等。某
5、个月饼的馅有枣泥。通过一些方法可以改变这些属性,例如把月饼切成四份等。6.1“小球随机碰撞方形边框小球随机碰撞方形边框”动动画画在面向对象的编程中,对象拥有它的属性和方法。属性就是一些有特殊用途在面向对象的编程中,对象拥有它的属性和方法。属性就是一些有特殊用途的变量,方法实际上就是函数,是为了完成对对象属性进行操作的函数,通的变量,方法实际上就是函数,是为了完成对对象属性进行操作的函数,通过函数改变变量的值,就是改变了对象的属性。对象是类的实例,程序是由过函数改变变量的值,就是改变了对象的属性。对象是类的实例,程序是由对象组成的。面向对象的程序设计是将问题抽象成许多类,将对象属性和方对象组成的
6、。面向对象的程序设计是将问题抽象成许多类,将对象属性和方法封装成一个整体,供程序设计者使用。法封装成一个整体,供程序设计者使用。Flash元件库中的元件就是元件库中的元件就是“类类”,由元件在舞台工作区内产生的影片剪辑,由元件在舞台工作区内产生的影片剪辑实例,通过实例的实例,通过实例的“属性属性”面板为一个影片剪辑实例起一个名字,这个过程面板为一个影片剪辑实例起一个名字,这个过程就是做一次就是做一次new操作,将一个元件对象(类)实例化,产生对象。操作,将一个元件对象(类)实例化,产生对象。2创建对象可以使用可以使用new操作符通过操作符通过Flash内置对象类来创建一个对象。内置对象类来创建
7、一个对象。“myDate=newdate();”这条语句就是使用了这条语句就是使用了FlashMX2004的日期内置类创建了一个新对象的日期内置类创建了一个新对象(也叫实例化)。这里,对象(也叫实例化)。这里,对象myDate可以使用内置对象可以使用内置对象date()的的getDate()等等方法和属性。方法和属性。使用使用new操作符来创建一个对象需要使用构造函数(构造函数是一种简单的操作符来创建一个对象需要使用构造函数(构造函数是一种简单的函数,它用来创建某一类型的对象)。函数,它用来创建某一类型的对象)。Actionscript的内置对象也是一种提的内置对象也是一种提前写好的构造函数。
8、前写好的构造函数。6.1“小球随机碰撞方形边框小球随机碰撞方形边框”动动画画3访问对象可以使用点操作符来访问对象的属性,在点操作符的左边写入对象名,点操可以使用点操作符来访问对象的属性,在点操作符的左边写入对象名,点操作符右边写入要使用的对象。例如下面程序中,作符右边写入要使用的对象。例如下面程序中,Sound1是对象,是对象,setVolume()是方法,通过点操作符来连接。是方法,通过点操作符来连接。Sound1=newsound(this);/实例化一个声音对象实例化一个声音对象Sound1Sound1.setVolume(60);/设置声音对象设置声音对象Sound1的音量为的音量为6
9、04实例分析(1)在第)在第1帧舞台工作区中创建一个绿色圆形的影片剪辑实例,实例名称为帧舞台工作区中创建一个绿色圆形的影片剪辑实例,实例名称为“BALL”。(2)使用)使用FlashMX2004的内置类的内置类Color来实例化一个来实例化一个myball实例。实例。(3)在第)在第1帧舞台工作区中放置一个名称为帧舞台工作区中放置一个名称为“AN1”的按钮实例,在第的按钮实例,在第1帧的帧的“动作动作-帧帧”面板内加入如下程序。注意:面板内加入如下程序。注意:“setRGB(0 x0000ff)”中的中的setRGB是内置类是内置类Color的一个方法。其中的的一个方法。其中的x是英文小写字母
10、,是英文小写字母,“0”为数字为数字零,程序中的英文大小写不可以改变。零,程序中的英文大小写不可以改变。AN1.onRelease=function()myball=newColor(BALL);/用用new命令定义了一个实例命令定义了一个实例myballmyball.setRGB(0 x0000FF);/其中其中“0 x0000FF”是是16进制数,表示设置蓝进制数,表示设置蓝色色/通过通过myball的的setRGB方法改变了方法改变了myball的颜色属性的颜色属性 6.1“小球随机碰撞方形边框小球随机碰撞方形边框”动动画画(4)单击)单击“控制控制”“测试影片测试影片”菜单命令,单击按
11、钮,舞台工作区中的菜单命令,单击按钮,舞台工作区中的圆形图形即可从绿色变成了蓝色。圆形图形实例的颜色属性通过实例的圆形图形即可从绿色变成了蓝色。圆形图形实例的颜色属性通过实例的setRGB方法,从绿色变成了蓝色。方法,从绿色变成了蓝色。6.1.2 数学和字符串对象1数学(Math)对象数学对象也不需要实例化。数学(数学对象也不需要实例化。数学(Math)对象的常用方法在)对象的常用方法在“动作动作”面板面板内命令列表区中的内命令列表区中的“内置类内置类”“核心核心”“Math”目录下。常用方法的格目录下。常用方法的格式和功能如表式和功能如表6-1-1所示。所示。2字符串(String)对象在使
12、用string之前,必须将string对象实例化,然后使用字符串的对象实例进行字符串的连接、分隔和大小写转换。(1)将string对象实例化的格式:myString=new String();例如,下面这两种方法均有效。S1=new String(ABCDEFG);S2=ABCDEFG;6.1“小球随机碰撞方形边框小球随机碰撞方形边框”动动画画(2)string对象的属性就有一个,简介如下。对象的属性就有一个,简介如下。length:返回字符串的长度。例如,在舞台工作区内创建一个动态文本框,:返回字符串的长度。例如,在舞台工作区内创建一个动态文本框,它的变量名字为它的变量名字为LN,在,在“图
13、层图层1”图层第图层第1帧内加入如下脚本程序,运行程序帧内加入如下脚本程序,运行程序后,文本框内会显示后,文本框内会显示26。S1=newString(ABCDEFGHIJKLMNOPQRSTUVWXYZ);LN=S1.length(3)string对象的方法有对象的方法有12个,下面介绍其中的个,下面介绍其中的3个。个。string.charAt方法方法:返回指定索引数字指示的字符。字符的数目从:返回指定索引数字指示的字符。字符的数目从0到字到字符串长度减符串长度减1。例如,在舞台工作区内创建一个动态文本框,它的变量名字。例如,在舞台工作区内创建一个动态文本框,它的变量名字为为LN,在,在“
14、图层图层1”图层第图层第1帧内加入如下脚本程序,运行程序后,文本框内帧内加入如下脚本程序,运行程序后,文本框内会显示字母会显示字母D。S1=newString(ABCDEFGHIJKLMNOPQRSTUVWXYZ);LN=S1.charAt(3)/将返回字母将返回字母Dstring.Concat方法:将两个字符串组合成一个新的字符串。例如,在舞方法:将两个字符串组合成一个新的字符串。例如,在舞台工作区内创建一个动态文本框,它的变量名字为台工作区内创建一个动态文本框,它的变量名字为LN,在,在“图层图层1”图层第图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母帧内加入如下脚本程序,运
15、行程序后,文本框内会显示字母“ABC123DEF456”。myString=ABC123;6.1“小球随机碰撞方形边框小球随机碰撞方形边框”动动画画LN=myString.concat(DEF456);/将返回一个将返回一个“ABC123DEF456”字符串字符串substr(start,length)方法:从字符串的方法:从字符串的start开始,截取长为开始,截取长为length的子字的子字符串。字符的数目从符串。字符的数目从0到字符串长度减到字符串长度减1。例如,在舞台工作区内创建一个动。例如,在舞台工作区内创建一个动态文本框,它的变量名字为态文本框,它的变量名字为LN,在,在“图层图层
16、1”图层第图层第1帧内加入如下脚本程序,帧内加入如下脚本程序,运行程序后,文本框内会显示字母运行程序后,文本框内会显示字母“CDEFGHIJKL”。S1=newString(ABCDEFGHIJKLMNOPQRSTUVWXYZ);LN=S1.substr(2,10);6.2“猜字母游戏猜字母游戏”动画动画 如果要使用内置对象,可以从指令选择区中的如果要使用内置对象,可以从指令选择区中的“Objects”(对象)目录中(对象)目录中寻找,然后将要使用的对象拖曳到程序编辑区中使用。寻找,然后将要使用的对象拖曳到程序编辑区中使用。6.2.1数组和颜色对象数组和颜色对象1数组(Array)对象数组对象
17、是一种很常用的数组对象是一种很常用的FlashActionscript内置对象,在数组元素内置对象,在数组元素“”和和“”之间的名称叫做之间的名称叫做“索引索引”(index),数组通常用来储存同一类的数据。),数组通常用来储存同一类的数据。数组对象可以从数组对象可以从“动作动作”面板命令列表区的面板命令列表区的“内置类内置类”“核心核心”目录中找目录中找到。到。(1)指定要使用对象属性的元素。例如)指定要使用对象属性的元素。例如move1=a;,move2=b;,move3=c;等。等。(2)使用)使用newArray()创建一个数组对象并赋值。举例如下。创建一个数组对象并赋值。举例如下。m
18、yArray=newArray();myArray0=1;myArray1=2;myArray2=3;(3)数组对象的方法:数组对象的方法有)数组对象的方法:数组对象的方法有12个,下面简要介绍其中几个。个,下面简要介绍其中几个。格式:格式:concat(array1,arrayN);功能:用来连接功能:用来连接array1到到arrayN数组的值。数组的值。6.2“猜字母游戏猜字母游戏”动画动画 格式:格式:my_array.join(separator);功能:返回数组中的数组元素,这些数组元素用功能:返回数组中的数组元素,这些数组元素用separator作为分隔符分割。作为分隔符分割。如
19、果省略此参数,则使用逗号作为默认分隔符。举例如下。如果省略此参数,则使用逗号作为默认分隔符。举例如下。N1_array=newArray(One,Two,Three,Four,Five)trace(N1_array.join();/返回返回One,Two,Three,Four,Fivetrace(N1_array.join(*);/返回返回One*Two*Three*Four*Fivetrace(N1_array.join(+);/返回返回One+Two+Three+Four+Five格式:格式:my_array.pop()功能:返回数组中最后一个数组元素的值,同时删除数组中最后一个数组元功能
20、:返回数组中最后一个数组元素的值,同时删除数组中最后一个数组元素。举例如下。素。举例如下。N1_array=newArray(One,Two,Three,Four,Five)SN1=N1_array.pop();trace(SN1);/返回返回FiveSN1=N1_array.pop();trace(SN1);/返回返回Four格式:格式:my_array.push(value,.)6.2“猜字母游戏猜字母游戏”动画动画 功能:将一个或多个数组元素添加到数组的结尾,并返回该数组的新长度。功能:将一个或多个数组元素添加到数组的结尾,并返回该数组的新长度。value参数是要追加到数组中的一个或多个
21、数组元素值。举例如下。参数是要追加到数组中的一个或多个数组元素值。举例如下。N1_array=newArray(One,Two,Three,Four,Five)SN1=N1_array.push(Six,Seven);trace(SN1);/返回值为返回值为7格式:格式:my_array.reverse()功能:将数组中的数组元素倒转。举例如下。功能:将数组中的数组元素倒转。举例如下。N1_array=newArray(One,Two,Three,Four,Five)trace(N1_array.join();/返回值为返回值为Five,Four,Three,Two,One(4)数组对象的属性
22、:数组对象的属性只有同一个,即)数组对象的属性:数组对象的属性只有同一个,即length属性。属性。length属性可以返回数组的长度。举例如下。属性可以返回数组的长度。举例如下。my_array=newArray();trace(my_array.length);/初始长度为初始长度为0my_array0=A;trace(my_array.length);/将将my_array.length更新为更新为1my_array2=AB;trace(my_array.length);/将将my_array.length更新为更新为3my_array8=ABC;6.2“猜字母游戏猜字母游戏”动画动画
23、trace(my_array.length);/将将my_array.length更新为更新为92颜色(Color)对象通过通过newColor()来实例化一个颜色对象。例如,在舞台中创建了一个红色来实例化一个颜色对象。例如,在舞台中创建了一个红色方块的影片剪辑实例,并命名为方块的影片剪辑实例,并命名为“S1”。然后使用。然后使用“myColor=newColor(S1);”语句实例化一个语句实例化一个myColor对象实例,通过这个实例的一些属对象实例,通过这个实例的一些属性可以得到性可以得到Sample影片剪辑实例中红色方块的颜色值。颜色对象可以从影片剪辑实例中红色方块的颜色值。颜色对象可
24、以从“动作动作”面板命令列表区的面板命令列表区的“内置类内置类”“影片影片”目录中找到。目录中找到。(1)格式:)格式:myColor=newColor();(2)Color对象常用的方法介绍如下。对象常用的方法介绍如下。格式:格式:getRGB();功能:获得对象的颜色值。功能:获得对象的颜色值。格式:格式:setRGB(0 xRRGGBB);功能:通过括号中的功能:通过括号中的16进制数来设置对象的颜色。进制数来设置对象的颜色。RR,GG和和BB取值在取值在00到到ff之间。之间。6.2.2键盘和鼠标对象键盘和鼠标对象1键盘(Key)对象键盘对象是一种比较特殊的对象,不需要实例化就可以使用
25、它的方法和属性。键盘对象是一种比较特殊的对象,不需要实例化就可以使用它的方法和属性。键盘对象可以从键盘对象可以从“动作动作”面板命令列表区的面板命令列表区的“内置类内置类”“影片影片”目录中找目录中找到。到。6.2“猜字母游戏猜字母游戏”动画动画(1)key对象的常用方法介绍如下。对象的常用方法介绍如下。key.getAscII():返回最近一次按键的:返回最近一次按键的AscII码。码。key.getCode():返回最近一个按键的:返回最近一个按键的VirtualKey码。码。key.isDown():当键盘上的任意键按下的时候,返回:当键盘上的任意键按下的时候,返回true逻辑值。逻辑值
26、。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
27、)时间对象实例化的格式:)时间对象实例化的格式:myDate=newdate();(2)时间对象的常用方法如图)时间对象的常用方法如图6-3-1所示。所示。6.4“MP3播放器播放器”动画动画 6.4.1声音(声音(Sound)对象)对象1声音(Sound)对象的构造函数格式:格式:newSound(target);其中的参数其中的参数target是是Sound对象操作的影片剪辑实例。此参数是可选的。可对象操作的影片剪辑实例。此参数是可选的。可采用采用“mySound=newSound();”或或“mySound=newSound(target);”命令。命令。功能:使用功能:使用new操作符
28、实例化操作符实例化sound对象,即为指定的影片剪辑创建新的对象,即为指定的影片剪辑创建新的Sound对象。如果没有指定目标实例对象。如果没有指定目标实例target(目标),则(目标),则Sound对象控制影片对象控制影片中的所有声音。如果指定中的所有声音。如果指定target,则只对指定的对象起作用。,则只对指定的对象起作用。例例1下面的实例创建了一个名字为下面的实例创建了一个名字为globalsound的的sound对象新实例。程序对象新实例。程序中的第二行调用中的第二行调用setVolume方法并将影片中的所有声音的音量调整为方法并将影片中的所有声音的音量调整为50%。globalso
29、und=newSound();globalsound.setVolume(50);例例2下面的实例创建下面的实例创建Sound对象的新实例,将目标影片剪辑对象的新实例,将目标影片剪辑myMovie传递传递给它,然后调用给它,然后调用start方法播放方法播放myMovie中的所有声音。中的所有声音。moviesound=newSound(myMovie);moviesound.start();6.4“MP3播放器播放器”动画动画2声音对象的方法声音对象的方法(1)mySound.attachSound方法方法格式:格式:ySound.attachSound(“dName”);图;图6-4-1“
30、链接属性链接属性”对话框对话框功能:这个方法是绑定一个在功能:这个方法是绑定一个在“库库”面板中的声音对象,绑定后就可以用声音的其面板中的声音对象,绑定后就可以用声音的其他方法来控制声音的各个属性了。其中,他方法来控制声音的各个属性了。其中,“idName”是指库中声音元件的标识符是指库中声音元件的标识符(即(即id)名称,它是在)名称,它是在“链接属性链接属性”对话框对话框“标识符标识符”文本框中输入的,不是声音文本框中输入的,不是声音元件名字。元件名字。在在“库库”面板中的声音元件上,单击鼠标右键,调出快捷菜单,单击面板中的声音元件上,单击鼠标右键,调出快捷菜单,单击“连接连接”菜单菜单命
31、令,可调出如图命令,可调出如图6-4-1所示的所示的“链接属性链接属性”对话框。在对话框。在“标识符标识符”文本框内输入元文本框内输入元件的标识符名称,再选择复选框,需要的话还应该在件的标识符名称,再选择复选框,需要的话还应该在“URL”文本框内输入文本框内输入URL数据,数据,单击单击“确定确定”按钮退出。按钮退出。图图6-4-1“链接属性链接属性”对话框对话框6.4“MP3播放器播放器”动画动画(2)Sound.getBytesLoaded方法方法格式:格式:Sound.getBytesLoaded();功能:返回指示所加载字节数的整数。返回为指定功能:返回指示所加载字节数的整数。返回为指
32、定Sound对象加载(进入流)对象加载(进入流)的字节数。可以比较的字节数。可以比较getBytesLoaded的值与的值与getBytesTotal的值,以确定已加的值,以确定已加载声音的百分比。载声音的百分比。(3)Sound.getBytesTotal方法方法格式:格式:Sound.getBytesTotal();功能:返回一个整数,以字节为单位指示指定功能:返回一个整数,以字节为单位指示指定Sound对象的总大小。对象的总大小。(4)mySound.getPan方法方法格式:格式:mySound.getPan();功能:这个方法返回在上一次功能:这个方法返回在上一次setPan调用中设
33、置的面板级别,是一个从调用中设置的面板级别,是一个从100到到100之间的整值,这个值代表左右声道的音量,之间的整值,这个值代表左右声道的音量,100到到0是左声道的值,是左声道的值,0到到100是右声道的值(是右声道的值(0平衡地设置左右声道)。该面板设置控制影片中当前平衡地设置左右声道)。该面板设置控制影片中当前和将来声音的左右均衡。和将来声音的左右均衡。此方法是用此方法是用setVolume或或setTransform方法累积的。方法累积的。6.4“MP3播放器播放器”动画动画(5)mySound.getTransform方法方法格式:格式:mySound.getTransform();
34、功能:返回声音变化的属性值,其中属性有功能:返回声音变化的属性值,其中属性有ll(控制左声道进入左扬声器的(控制左声道进入左扬声器的音量)、音量)、lr(控制右声道进入左扬声器的音量)、(控制右声道进入左扬声器的音量)、rr(控制右声道进入右扬(控制右声道进入右扬声器的音量)和声器的音量)和rl(控制左声道进入右扬声器的音量)。它们的取值为(控制左声道进入右扬声器的音量)。它们的取值为100到到100。通过下面的公式可以计算左右音量的大小:左输出通过下面的公式可以计算左右音量的大小:左输出=左输入左输入*ll+右输入右输入*lr,右输出,右输出=右输入右输入*rr+左输入左输入*rl。如果不指
35、定这几个属性,系统默认为:。如果不指定这几个属性,系统默认为: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,
36、isStreaming);其中,其中,urlMP3声音文件在服务器上的位置。声音文件在服务器上的位置。isStreaming一个布尔值,指示一个布尔值,指示声音是声音流还是事件声音。声音是声音流还是事件声音。6.4“MP3播放器播放器”动画动画功能:将功能:将MP3文件加载到文件加载到Sound对象的实例。可以使用对象的实例。可以使用isSteaming参数指示参数指示该声音是一个事件声音还是一个声音流。该声音是一个事件声音还是一个声音流。事件声音在完全加载后才能播放。它们由动作脚本事件声音在完全加载后才能播放。它们由动作脚本Sound对象进行管理,而对象进行管理,而且响应此对象的所有方法和属
37、性。声音流在下载的同时播放。当接收的数据且响应此对象的所有方法和属性。声音流在下载的同时播放。当接收的数据足以启动解压缩程序时,播放开始。与事件声音一样,声音流仅存在于虚拟足以启动解压缩程序时,播放开始。与事件声音一样,声音流仅存在于虚拟内存中,不能将其下载到硬盘。例如:下面的实例加载事件声音。内存中,不能将其下载到硬盘。例如:下面的实例加载事件声音。s.loadSound(http:/serverpath:port/mp3filename,false);例如,下面的示例加载声音流。例如,下面的示例加载声音流。loadSound(http:/serverpath:port/mp3filenam
38、e,true);(8)mySound.setPan方法方法格式:格式:mySound.setPan(pan);其中,参数其中,参数pan一个整数,它指定声音的左右均衡。有效值的范围为一个整数,它指定声音的左右均衡。有效值的范围为100到到100,其中,其中100表示仅使用左声道,表示仅使用左声道,100表示仅使用右声道,而表示仅使用右声道,而0表示在两个表示在两个声道间平均地均衡声音。声道间平均地均衡声音。功能:用来确定声音在左右声道(扬声器)中是如何播放的。对于单声道声功能:用来确定声音在左右声道(扬声器)中是如何播放的。对于单声道声音,音,pan确定声音通过哪个扬声器(左或右)进行播放。例
39、如:下面的实例确定声音通过哪个扬声器(左或右)进行播放。例如:下面的实例创建创建Sound对象实例对象实例S,并附加一个来自库的标识符为,并附加一个来自库的标识符为L7的声音。它还调用的声音。它还调用setVolume和和setPan方法来控制方法来控制L7声音。声音。6.4“MP3播放器播放器”动画动画onClipEvent(mouseDown)S=newSound(this);/创建一个声音对象创建一个声音对象SS.attachSound(L7);S.setVolume(50);S.setPan(-100);S.start(30,5);(9)mySound.setTransform方法方法
40、格式:格式:mySound.setTransform(soundTransformObject);其中,参数其中,参数soundTransformObject一个用通用一个用通用Object对象的构造函数创建的对象的构造函数创建的对象。对象。功能:用来设置声音对象的属性,其中功能:用来设置声音对象的属性,其中sxform是一个使用对象创建的对象名是一个使用对象创建的对象名称。通过对象创建一个声音对象模型,然后通过这个模型设置称。通过对象创建一个声音对象模型,然后通过这个模型设置mySound对对象的象的4个属性。举例如下。个属性。举例如下。mySound.attachSound(thisSon
41、g);/利用利用attachSound方法绑定一个声方法绑定一个声音,绑定声音的过程见音,绑定声音的过程见attachSound方法介绍方法介绍myTransformObject=newObject();/构造一个声音变化对象构造一个声音变化对象myTransformObject 6.4“MP3播放器播放器”动画动画myTransformObject.ll=50;myTransformObject.lr=50;myTransformObject.rr=50;myTransformObject.rl=50;/将立体声音的左右输入平均分配给扬声器,形成单声道将立体声音的左右输入平均分配给扬声器,形
42、成单声道mySound.setTransform(myTransformObject);/将声音变化对象将声音变化对象myTransformObject传递给传递给setTransform方法方法(10)setVolume方法方法格式:格式:sound.setVolume(n);功能:用来设置当前声音对象音量的大小。其中参数功能:用来设置当前声音对象音量的大小。其中参数n可以是一个整数值或可以是一个整数值或一个变量,其值为一个变量,其值为0到到100之间的整数,之间的整数,0为无声,为无声,100是最大音量。是最大音量。(11)start方法方法格式:格式:sound.start();功能:开
43、始当前声音对象的播放。功能:开始当前声音对象的播放。(12)stop方法方法格式:格式:sound.stop();功能:停止当前声音对象的播出。功能:停止当前声音对象的播出。6.4“MP3播放器播放器”动画动画3声音对象的属性(1)duration属性属性格式:格式:mySound.duration;功能:它是只读属性。给出声音的持续时间,以毫秒为单位。功能:它是只读属性。给出声音的持续时间,以毫秒为单位。(2)position属性属性格式:格式:mySound.position;功能:它是只读属性。给出声音已播放的毫秒数。如果声音是循环的,则在功能:它是只读属性。给出声音已播放的毫秒数。如果
44、声音是循环的,则在每次循环开始时,位置将被重置为每次循环开始时,位置将被重置为0。4声音对象的事件(1)格式:)格式:mySoundObject.onLoad=callbackFunction;其中,其中,mySoundObject一个一个Sound对象。对象。callbackFunction一个函数,它是一个函数,它是事件处理函数。事件处理函数。功能:必须创建一个在调用功能:必须创建一个在调用onLoad事件时执行的事件处理函数。既可以使事件时执行的事件处理函数。既可以使用匿名函数,也可以使用命名函数。当加载声音时自动调用事件处理函数。用匿名函数,也可以使用命名函数。当加载声音时自动调用事件
45、处理函数。(2)格式:)格式:mySoundObject.onSoundComplete=callbackFunction其中,其中,mySoundObject一个一个Sound对象。对象。callbackFunction一个函数,它是一个函数,它是事件处理函数。事件处理函数。6.4“MP3播放器播放器”动画动画功能:必须创建在调用功能:必须创建在调用onSoundComplete事件时执行的函数。既可以使用匿事件时执行的函数。既可以使用匿名函数也可以使用命名函数。当声音播放完时自动调用事件处理函数。可以名函数也可以使用命名函数。当声音播放完时自动调用事件处理函数。可以使用使用onSoundComplete事件根据声音的完成来触发影片中的事件。例如,用事件根据声音的完成来触发影片中的事件。例如,用匿名函数。匿名函数。s=newSound();s.attachSound(mySound);s.onSoundComplete=function()trace(mySoundcompleted);s.start();例如,使用命名函数。例如,使用命名函数。functioncallback1()trace(mySoundcompleted);
限制150内