第6章面向对象的程序设计.docx
- 文档编号:8693124
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:41
- 大小:2.46MB
第6章面向对象的程序设计.docx
《第6章面向对象的程序设计.docx》由会员分享,可在线阅读,更多相关《第6章面向对象的程序设计.docx(41页珍藏版)》请在冰豆网上搜索。
第6章面向对象的程序设计
第6章面向对象的程序设计
6.1面向对象编程、字符串和数组对象
6.1.1面向对象编程
1.面向对象编程的基本概念
在面向对象的编程中,对象是属性和方法的集合,程序由对象组成的。
2.创建对象
可以使用new操作符通过Flash内置对象类来创建一个对象。
“myDate=newdate();”这条语句就是使用了Flash8的日期类创建了一个新对象(也叫实例化)。
这里,对象myDate可以使用内置对象date()的getDate()等方法和属性。
使用new操作符来创建一个对象需要使用构造函数(构造函数是一种简单的函数,它用来创建某一类型的对象)。
ActionScript的内置对象也是一种提前写好的构造函数。
3.访问对象
可以使用点操作符来访问对象的属性,在点操作符的左边写入对象名,点操作符右边写入要使用的对象。
例如下面程序中,Sound1是对象,setVolume()是方法,通过点操作符来连接。
Sound1=newsound(this);//实例化一个声音对象Sound1
Sound1.setVolume(60);//设置声音对象Sound1的音量为60
6.1.2字符串对象和数组对象
1.字符串(String)对象
在使用String之前,必须将String对象实例化。
字符串对象可以从“动作”面板命令列表区的“内置类”→“核心”→“String”目录中找到。
下面介绍部分内容。
(1)定义字符串(String)对象
【格式】newString(value);
【功能】定义一个字符串对象,并给它赋初值。
例如:
下面这两种方法均有效。
S1=newString();//定义S1为字符串对象
S2=newString("ABCDEFG");//定义S2为字符串对象,并给它赋初值“ABCDEFG”
S3="ABCDEFGHIJK";//定义S3为字符串对象,并给它赋初值“ABCDEFGHIJK”
(2)字符串(String)对象的属性:
只有一个length,它可以返回字符串的长度。
例如:
在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示26。
S1=newString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
LN=S1.length
(3)字符串对象的方法:
String对象的方法有12个,下面介绍其中的几个。
◎charAt方法
【格式】String.charAt(n)
【功能】返回字符串中指定位置的字符指定索引数字n指示的字符。
字符的数目从0到字符串长度减1。
例如:
在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母D。
S1=newString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");//定义字符串S1
LN=S1.charAt(10)//将返回字母K
◎concat方法
【格式】String.concat(String1)方法
【功能】将两个字符串(String和String1)组合成一个新的字符串。
例如:
在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母“ABCDEFG123456”。
myString="1234567890";
LN=myString.concat("ABCDE");//将返回一个“1234567890ABCDE”字符串
◎substr方法
【格式】String.substr(start[,length])方法
【功能】返回指定长度的字符串。
参数start是一个整数,指示字符串String中用于创建子字符串的第1个字符的位置,以0为开始点,start的取值范围是字符串String长度减1。
length是要创建的子字符串中的字符数。
如果没有指定length,则子字符串包括从start开始直到字符串结尾的所有字符。
从字符串String的start开始,截取长为length的子字符串。
字符的序号从0到字符串长度(字符个数)减1。
如果start为一个负数,则起始位置从字符串的结尾开始确定,-1表示最后一个字符。
例如:
在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母“FGHIJKLMNO”。
S1=newString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
LN=S1.substr(5,10);//将返回一个“FGHIJKLMNO”字符串
◎substring方法
【格式】String.substring(from[,to])方法
【功能】返回指定位置的字符串。
from是一个整数,指示字符串String中用于创建子字符串的第1个字符的位置,以0为开始点,from的取值范围是字符串String长度减1。
to是要创建的子字符串的最后一个字符位置加1,to的取值范围是字符串String长度加1。
如果没有指定to,则子字符串包括从from开始直到字符串结尾的所有字符。
如果to为负数或0,则子字符串是字符串String中前from个整数字符。
例如:
在舞台工作区内创建一个动态文本框,它的变量名字为LN,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示字母“FGHIJ”。
S1=newString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
LN=S1.substring(5,10);//将返回一个“FGHIJ”字符串
◎charCodeAt方法
【格式】String.charCodeAt(index)方法
【功能】返回指定位置字符串String的ASCII码,范围是0到65535之间。
index是指定位置的索引值,其索引范围是String.length-1。
如果索引值index超出字符串长度,则返回NaN。
◎fromCharCode方法
【格式】String.fromCharCode(c1,c2,c3……cn)
【功能】返回ASCII码c1,c2,c3……cn对应的字符。
参数c1,c2,c3……cn是要返回字符的ASCII码。
例如:
在舞台工作区内创建一个动态文本框,它的变量名字为Stringtext,在“图层1”图层第1帧内加入如下脚本程序,运行程序后,文本框内会显示一个随机的大写英文字母。
myNum=Math.random()*26+65;
Stringtext=String.fromCharCode(myNum);
◎toLowerCase方法
【格式】String.toLowerCase();
【功能】将字符串String中的字符转换为小写字母。
◎toUpperCase方法
【格式】String.toUpperCase();
【功能】将字符串String中的字符转换为大写字母。
2.数组(Array)对象
数组(Array)对象是一种很常用的FlashActionscript内置对象,在数组元素“[”和“]”之间的名称叫做“索引”(index),数组通常用来储存同一类的数据。
数组对象可以从“动作”面板命令列表区的“内置类”→“核心”→“Array”目录中找到。
(1)指定要使用对象属性的元素。
例如:
move[1]="a";,move[2]="b";,move[3]="c";等。
(2)使用newArray()创建一个数组对象并赋值。
例如:
myArray=newArray();
myArray[0]=11;
myArray[1]=22;
myArray[2]=33;
……
(3)数组对象的属性:
数组对象的属性只有一个,即length属性。
length属性可以返回数组的长度。
例如:
my_array=newArray();
trace(my_array.length);//初始长度为0
my_array[0]='A';
trace(my_array.length);//将my_array.length更新为1
my_array[2]='AB';
trace(my_array.length);//将my_array.length更新为3
my_array[8]='ABC';
trace(my_array.length);//将my_array.length更新为9
【实例71】水平滚动文字
“水平滚动文字”动画播放后的2幅画面如图6-1-1所示(还没有下边的文字)。
单击左下边的按钮
,在两个按钮之间,一些关于庐山的文字不断从右向左滚动显示。
在按钮
的左边显示红色、楷体文字“庐山国家公园”和滚动文字的长度“102”,文字上边是几幅庐山图像,如图6-1-1上图所示。
再单击按钮
,滚动文字变为关于西藏的文字,按钮
的左边显示的文字改为“中国西藏自治区”和滚动文字的长度“123”,文字上边是几幅西藏图像,如图6-1-1下图所示。
再次单击该按钮
又可以显示原来的文字和图像。
单击右下边的按钮
,可以使文字暂停滚动,再单击该按钮又可以使文字继续滚动。
该动画的制作方法如下。
图6-1-1“水平滚动文字”动画播放后的2幅画面
(1)设置舞台工作区大小为800像素宽,200像素高,背景色为白色。
(2)创建并进入“庐山图像”影片剪辑元件的编辑状态,导入4幅关于庐山的图像,调整这些图像的大小和位置,如图6-1-1上图所示,然后回到主场经景。
创建并进入“西藏图像”影片剪辑元件的编辑状态,导入3幅关于西藏的图像,调整这些图像的大小和位置,如图6-1-1下图所示,然后,单击元件编辑窗口中的场
按钮,回到主场经景。
(3)选中“图层1”图层第1帧,将“库”面板内的“庐山图像”和“西藏图像”影片剪辑元件拖曳到舞台工作区内,调整它们的大小和位置,刚好将舞台工作区完全覆盖。
(4)在“图层1”图层之上添加一个名字为“图层2”的图层。
单击选中“图层2”图层的第2帧,按F7键,创建一个关键帧。
将Flash公用库中的两个按钮拖曳到舞台工作区内,调整它们的大小,宽和高均为40像素。
给按钮
实例命名为“AN1”,给按钮
实例命名为“AN2”。
(5)在按钮
的左边创建2个动态文本框,大小为18,颜色为红色。
右边文本框的变量名为LN,字体为“Arial”,左边文本框的变量名为MC,字体为楷体。
在两个按钮之间创建一个动态文本框,它的变量名为S1,字体为黑体,大小为20,颜色为红色。
(6)单击选中“图层2”图层第1帧,在“动作-帧”面板内输入如下初始化程序。
n=0;//用来控制显示哪一组内容
S1="";//用来保存文字字符串的字符串变量
k=0;//用来控制时播放还是暂停文字的滚动
(7)单击选中“图层2”图层第1帧,在“动作-帧”面板内输入如下程序。
S1=S1.substr(1,LN)+S1.substr(0,1)//将第一个字符或汉字移到字符串的最后边
AN1.onPress=function(){
n++;
if(Math.ceil(n/2)==n/2){//判断n是否为偶数
S1=newString("西藏自治区设6个地区、1个地级市、1个县级市和76个县。
西藏被称为宗教圣地,原始自然宗教——苯教和佛教,都曾在这里流传。
十世纪后,佛教在西藏再度兴起,形成了独具特色的藏传佛教。
藏族基本上是一个全民信仰藏传佛教的民族,只有部分群众信仰苯教、天主教。
");
MC="中国西藏自治区";
LN=S1.length//将字符串S1的长度赋给变量LN
XZ._visible=true;//将“XZ”影片剪辑实例显示
LS._visible=false;//将“LS”影片剪辑实例隐藏
}else{
S1=newString("江西庐山国家公园是中华文明的发祥地之一。
这里的佛教和道教庙观,代表理学观念的白鹿洞书院,以其独特的方式融汇在具有突出价值的自然美之中,形成了具有极高美学价值的,与中华民族精神和文化生活紧密联系的文化景观。
");
MC="庐山国家公园";
LN=S1.length//将字符串S1的长度赋给变量LN
XZ._visible=false;//将“XZ”影片剪辑实例隐藏
LS._visible=true;//将“LS”影片剪辑实例显示
}
}
AN2.onPress=function(){
k++;
if(Math.ceil(k/2)<>k/2){
stop();
}else{
play();
}
}
(8)单击选中“图层1”的第20帧,按F5键,建立一个普通帧。
单击选中“图层2”图层的第20帧,按F7键,建立一个空关键帧。
单击选中“图层2”图层第30帧,在“动作-帧”面板内输入如下初始化程序,保证循环播放第2帧到第30帧,并调整字母移动的速度。
gotoAndPlay
(2);
【实例72】选票统计
“选票统计”动画播放后的画面如图6-1-2左图所示。
单击左下角的“初始化”按钮
后,演示窗口的显示效果如图6-1-2右图所示。
在“投票”输入文本框(右下角两个按钮之间的输入文本框)内输入候选人的选号(有6个候选人)。
图6-1-2“选票统计”程序运行后的2幅画面
输入选号后,单击“投票”输入文本框左边的按钮
或按Enter键,即可看到候选人的票数发生变化,如图6-1-3左图所示。
再按照上述方法继续输入候选人的选号,如此不断。
选举完成后,单击“投票”输入文本框右边的按钮
,即可显示所有候选人的票数、当选人(只选一人)的姓名和票数,如图6-1-3右图所示。
该动画的制作方法如下。
图6-1-3“选票统计”程序运行后的2幅画面
(1)设置设置舞台工作区大小为460像素宽、220像素高,背景色为白色。
(2)选中“图层1”图层第1帧,导入一幅框架图像,调整它的大小和位置,如图6-1-2所示。
再输入“投票选举和统计选票”红色文字。
调整它的大小和位置,如图6-1-2所示。
(3)在“图层1”图层之上添加一个“图层2”图层,选中“图层2”图层第1帧,在舞台工作区内添加按钮公用库中的3个按钮。
3个按钮实例的名称分别为AN1、AN2和AN3(从左到右)。
(4)输入黄色、黑体、16磅文字“请输入候选人的编号(1到6):
”。
创建6个动态文本框,用来显示各候选人的编号和姓名,参看图6-1-8左图。
分别给这些动态文本框社设置变量名称为“HXR1”、“HXR2”、“HXR3”、“HXR4”、“HXR5”和“HXR6”。
(5)再创建6个动态文本框,用来显示各候选人的票数,参看图6-1-8左图。
分别给这些动态文本框设置变量名称为“HXRPS1”、“HXRPS2”、“HXRPS3”、“HXRPS4”、“HXRPS5”和“HXRPS6”。
设置些动态文本框加框,蓝色、黑体、16磅文字。
(6)创建1个输入文本框,用来输入候选人的编号,参看图6-1-3左图。
给这个输入文本框设置变量名称为“TP”。
给这个输入文本框加框。
(7)单击选中“图层1”图层第2帧,按F6键,创建一个关键帧。
单击选中“图层1”图层第2帧,单击舞台工作区外部,不选中任何对象,再将下边一行的按钮和文本框删除。
(8)在第2帧画面的下边,加入Flash按钮公用库中的一个按钮,按钮实例的名称为AN4。
再创建两个静态文本框,输入红色、黑体、18pt文字“当选的候选人是:
”和“选票”。
再创建两个动态文本框,分别给这两个动态文本框社设置变量名称为“DXR”、“XPS1”。
(9)单击选中“图层2”图层第1帧,此时的舞台工作区如图6-1-4所示。
再调出“动作-帧”面板,输入如下程序。
图6-1-4动画第1帧设计的画面
stop();
//给各动态文本框和输入文本框赋初值
TP="";
HXR1="";
HXR2="";
HXR3="";
HXR4="";
HXR5="";
HXR6="";
HXRPS1=0;
HXRPS2=0;
HXRPS3=0;
HXRPS4=0;
HXRPS5=0;
HXRPS6=0;
AN1.onPress=function(){
TP="";//请选票输入文本框
HXR1="1.李世敏:
";
HXR2="2.朱元彰:
";
HXR3="3.赵匡银:
";
HXR4="4.孙忠山:
";
HXR5="5.诸葛靓:
";
HXR6="6.赵子胧:
";
//定义一个名字为“myArray”数组
myArray=newArray(7);
//给数组“myArray”赋初值0
vari=0;
while(i<=6){
myArray[i]=0;
i++;
}
//给各候选人选票数赋初值0
HXRPS1=myArray[1];
HXRPS2=myArray[2];
HXRPS3=myArray[3];
HXRPS4=myArray[4];
HXRPS5=myArray[5];
HXRPS6=myArray[6];
}
AN2.onPress=function(){
TP=Number(TP);
//统计选票
myArray[TP]=myArray[TP]+1;
//显示选票
HXRPS1=myArray[1];
HXRPS2=myArray[2];
HXRPS3=myArray[3];
HXRPS4=myArray[4];
HXRPS5=myArray[5];
HXRPS6=myArray[6];
TP="";//请选票输入文本框
}
AN3.onPress=function(){
gotoAndStop
(2);
}
(10)为了在输入完候选人的编号后按Enter键也有效,可单击选中第2个按钮,调出“动作-按钮”面板,输入如下程序。
on(press,KeyPress"
TP=Number(TP);
myArray[TP]=myArray[TP]+1;//统计选票
//显示选票
HXRPS1=myArray[1];
HXRPS2=myArray[2];
HXRPS3=myArray[3];
HXRPS4=myArray[4];
HXRPS5=myArray[5];
HXRPS6=myArray[6];
TP="";//清选票输入文本框
}
(11)单击选中“图层2”图层的第2帧,再调出“动作-帧”面板,输入如下程序。
vark=1;
myArray[0]=myArray[1]
for(i=2;i<=6;i++){
if(myArray[0] k=i; myArray[0]=myArray[i]; } } if(k==1){ DXR="李世敏"; } if(k==2){ DXR="朱元彰"; } if(k==3){ DXR="赵匡银"; } if(k==4){ DXR="孙忠山"; } if(k==5){ DXR="诸葛靓"; } if(k==6){ DXR="赵子胧"; } XPS1=myArray[0]; AN4.onPress=function(){ gotoAndStop (1); } 6.2键盘和鼠标对象 6.2.1键盘和对象 键盘(Key)对象不需要经过new声明就可以使用它的方法和常数。 键盘对象可以从“动作”面板命令列表区的“内置类”→“影片”→“Key”目录中找到。 1.键盘对象的常用属性 键盘(Key)对象的常用的常数如表6-2-1所示。 表6-2-1Key对象的常用的常数 Key.BACKSPACE: 作为一个常量,值为8; Key.CAPSLOCK: 作为一个常量,值为20; Key.CONTROL: 作为一个常量,值为17; Key.DELETE: 作为一个常量,值为46; Key.DOWN: 作为一个常量,值为40; Key.END: 作为一个常量,值为35; Key.ENTER: 作为一个常量,值为13; Key.ESCAPE: 作为一个常量,值为27; Key.HOME: 作为一个常量,值为36; Key.INSERT: 作为一个常量,值为45; Key.LEFT: 作为一个常量,值为37; Key.PGDN: 作为一个常量,值为34; Key.PGUP: 作为一个常量,值为33; Key.RIGHT: 作为一个常量,值为39; Key.SHIFT: 作为一个常量,值为16; Key.SPACE: 作为一个常量,值为32; Key.TAB: 作为一个常量,值为9; Key.UP: 作为一个常量,值为38; 2.键盘对象的常用方法 键盘(Key)对象的常用方法及功能如表6-2-2所示。 表6-2-2Key对象的常用方法 Key对象的常用方法 功能 Key.isDown(keycode) 当键盘上的任意键按下的时候,返回true逻辑值。 Keycode是被检测的按键的按键值。 Key.isToggled(keycode) 当小键盘大小写锁定键(Capslook,按键值20)或数字锁定键(Numlock,按键值144)按下时,返回true。 Key.getAscII() 返回最后按下键的AscII码。 Key.getCode() 返回最后按下键的按键值(VirtualKey码)。 3.键盘对象的侦听器 键盘(Key)对象侦听器(Listener)是用来侦听键盘的敲击状态。 使用它涉及到4个方法。 (1)addListener方法 【格式】Key.addListener(newListener); 【功能】用来注册一个侦听器(Listener)对象,以接受来自onKeyDown和onKeyUp的状态。 当某个按键按下或松开时,不论输入的方式如何,它会视状况调用addListener内注册的对象的onKeyDown和onKeyUp两个方法。 可以同时有多个对象来侦听键盘的敲击状态。 参数newListener是一个具有onKeyDown和onKeyUp两个方法的函数对象名称。 例如: Key.addListener(myListener);//将具有onKeyDown和onKeyUp两个方法的函数myListener指定为侦听键盘按键的函数对象。 (2)removeListener方法 【格式】Key.removeListener(Listener); 【功能】用来删除参数Listener指定的与侦听器(Listener)关联的函数的关联,删除成功时返回true,否则返回false。 例如: Key.removeListener(myListener);//删除函数myListener (3)onKeyDown方法 【格式】someListener.onKeyDown=function(){…语句…} 【功能】用来产生当键盘的按键被按下时的后续动作。 使用前必须先建立一个Listener对象,再定义一个函数给这个对象,并使用addListen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 面向对象的程序设计 面向 对象 程序设计