flash as30 复习资料.docx
《flash as30 复习资料.docx》由会员分享,可在线阅读,更多相关《flash as30 复习资料.docx(38页珍藏版)》请在冰点文库上搜索。
flashas30复习资料
第二章
一、基本概念
1、常量:
就是在程序运行过程中始终保持不变的数据。
⏹声明常量使用const关键字,例如:
constconstName:
int
2、变量的命名规则
规则:
变量名只能由26个英文字母(大小写均可)、数字、美元符号和下划线组成,且第一个字母必须为字母、美元符号或下划线。
例如下面变量名时合法的:
_endx,myName,$person,username
而下面命名是不合法的:
2mail,room#,class2
3、int类型--------整数
去掉小数部分,取整——如果尝试给int类型变量赋值小数,Flash将自动取小数的整数部分,再将这个整数赋值给int类型变量。
4、uint类型——表示无符号32位整数
5、Number类型
NaN:
没有对Number类型变量进行赋值,默认值为NaN
当操作结果为Number类型,但没有得到正确结果时,也会返回NaN。
6、String类型——定义字符串变量
字符串是指使用单引号或双引号括起来的字符(字母、汉字、数字、和标点符号)序列,如”person”,“08动漫设计”等。
varmyName:
String;
注意:
两个或多个字符串可用“+”进行链接
varmyName:
string=“my”+”nameis”+”张三”;
7、在实际应用中,经常需要一些特殊的字符,但有些是不能直接输入到字符串中的,例如单引号(\’)、双引号(\”)、回车符(\r)、换行符(\n)等等
varmyAge:
Number=20;
vartheAge:
String=“\”我的年龄是:
\””
trace(theAge+myAge);
8、获取字符串的长度
String类有个名为length的属性可以获取字符串的长度,即字符的个数。
从0开始索引。
9、定义Objiect类型
可以在定义对象的时候初始化对象,也可以以后对对象进行赋值。
这个简单数据类型是一样的。
•标准初始值——varmyobj:
Object=newObject()
•对象赋值初始化
可以看作一个数据的集合,有一组数据组成,每一组数据包括一个变量名和一个数据。
使用{}来括起来。
varmyobj:
Object={myheight:
180,myage:
30,myname:
“张三”}
使用大括号表示一个对象,其中myheight、myage、myname为属性,后面的为属性值。
10、运算符
运算符是一种特殊的函数,它们具有一个或多个操作数并返回相应的值。
运算符分类
运算符指明对操作数所进行的运算。
按操作数的数目来分,可以有运算符可以是一元、二元或三元的。
☐“一元”运算符有1个操作数。
例如,递增运算符(++)就是一元运算符
☐“二元”运算符有2个操作数。
例如,除法运算符(/)有2个操作数。
☐"三元"运算符有3个操作数。
例如,条件运算符(?
:
)具有3个操作数。
按照运算符功能来分,基本的运算符有下面几类:
1.算术运算符(+,-,*,/,%,++,--)
2.关系运算符(>,<,>=,<=,==,!
=)
3.布尔逻辑运算符(!
&&,||)
4.位运算符(>>,<<,>>>,&,|,^,~)
5.赋值运算符(=,及其扩展赋值运算符如+=)
6.条件运算符(?
:
)
11、算术运算符
12、递增和递减,区分前后区别
13、赋值运算符
基本赋值运算符“=”
它是将右侧的操作数的值送到左侧的变量中,如果类型不同会引起类型转换。
也可以一行语句为多个变量赋值
a=b=5
14、复合运算符
例如:
c+=5;//等价于c=c+5;
15、关系运算符有两个操作数,它比较两个操作数的值,然后返回一个布尔值。
下表列出了所有关系运算符,它们具有相同的优先级。
16、逻辑运算符用于逻辑运算,操作数是布尔型数据,运算法则是真值表。
17、
18、优先级
例如下面
19、创建MovieClip类的常用的属性、方法和事件
●alpha:
Number指示指定对象的Alpha透明度值。
●mouseX:
Number[read-only]指示鼠标位置的x坐标,以像素为单位。
●mouseY:
Number[read-only]指示鼠标位置的y坐标,以像素为单位。
●name:
String指示DisplayObject的实例名称。
●rotation:
Number指示DisplayObject实例距其原始方向的旋转程度,以度为单位。
●scaleX:
Number指示从注册点开始应用的对象的水平缩放比例(百分比)。
●scaleY:
Number指示从对象注册点开始应用的对象的垂直缩放比例(百分比)。
●visible:
Boolean显示对象是否可见。
●width:
Number指示显示对象的宽度,以像素为单位。
●height:
Number指示显示对象的高度,以像素为单位。
●x:
Number本地坐标的x坐标。
●y:
Number本地坐标的y坐标。
20、创建MovieClip类的常用的属性、方法和事件
方法
●addChild(child:
DisplayObject):
将一个DisplayObject子实例添加到该DisplayObjectContainer实例中。
●gotoAndPlay(frame:
Object,scene:
String=null)从指定帧开始播放SWF文件。
●gotoAndStop(frame:
Object,scene:
String=null)将播放头移到影片剪辑的指定帧并停在那里。
●nextFrame()将播放头转到下一帧并停止。
●nextScene()将播放头移动到MovieClip实例的下一场景。
●play()在影片剪辑的时间轴中移动播放头。
●prevFrame()将播放头转到前一帧并停止。
●prevScene()将播放头移动到MovieClip实例的前一场景。
21、创建TextField类的实例
(1)在flash舞台上添加动态文本和输入文本都建立了TextField对象。
实例:
使用设计状态下的文本
☐在工具箱上选择“文本”工具,在属性面板上设置文本属性为“动态文本”,在舞台上添加一个动态文本框。
☐设置实例名称
☐填写代码
varmystr:
String=“welcome”
Mytext.text=mystr
Mytext.x=100
(2)通过代码在舞台上添加文本对象。
varmyText:
TextField=newTextField();
myText.x=50;
myText.text="Helloeveryone!
";
addChild(myText);
22、使用数组可以在单数据结构中存储多个值。
Array构造函数的使用有三种方式。
1、如果调用不带参数的构造函数,会得到空数组。
以下代码调用不带参数的Array构造函数:
varnames:
Array=newArray();
trace(names.length);//输出:
0
2、如果将一个数字用作Array构造函数的唯一参数,则会创建长度等于此数值的数组,并且每个元素的值都设置为undefined。
以下代码调用带有一个数字参数的Array构造函数:
varnames:
Array=newArray(3);
trace(names.length);//输出:
3
3、如果调用构造函数并传递一个元素列表作为参数,将创建具有与每个参数对应的元素的数组。
以下代码将三个参数传递给Array构造函数:
varnames:
Array=newArray("John","Jane","David");
trace(names.length);//输出:
3
也可以创建具有数组文本或对象文本的数组。
可以将数组文本直接分配给数组变量,如以下示例所示:
varnames:
Array=["John","Jane","David"];
问题:
1:
flash编程语言是什么?
2、哪些类型为简单数据类型,哪些类型为复杂数据类型
3、如何声明常量、变量
4、变量的命名规则是什么
5、int类的取整运算
6、空数据类型是什么
7、as的注释如何表示
8、字符串使用什么字符进行相连
9、如何创建Object对象、如何创建影片剪辑、如何创建动态文本对象
10、string类型的length属性表示字符串长度,如何表示字符串的第一个字符charAt
11、逻辑运算符包含哪些?
算术运算符包含哪些?
12、什么是计算短路
13、设置影片剪辑的alpha属性、设置影片剪辑旋转角度、设置影片剪辑的缩放比例,以此类推。
掌握如何使用影片剪辑的属性、方法
14、设置TextField类的实例text属性
15、创建数组
16、赋值运算符=和全等运算符==的区别
vara:
int=6,b=5
If(a=b)和if(a==b)的区别
1、简单的if语句
简单if语句只进行一个或多个条件的判断,如果条件为真或true,则执行相应的代码,如果条件为假,则不执行相应的代码。
2、if语句中的条件如果有多个可以使用“&&”和“||”运算符进行链接,前者表示“与”运算,即多个条件同时为真时才会执行大括号中的代码;后者表示“或”运算,即多个条件中有一个为真时,程序就会执行大括号中的代码。
例如:
varnum1:
int=5;
varnum2:
int=6;
if(num1==5&&num2==6){
//if(num1==5||num2==20){
trace(num1,num2);
}
3、if-else
if-else语句选择执行两段程序中的一段程序,并且肯定会执行其中一段程序。
如果条件表达式为true(真),执行流程1;如果为假(false),执行流程2
if-else语句选择执行两段程序中的一段程序,并且肯定会执行其中一段程序。
4、if-else-if
5、?
条件运算符
例如求两个数的最大数
vara:
int=5;
varb:
int=10;
varc:
int;
c=a>b?
a:
b;//a>b成立c=a;否则c=b;
例:
求三个数的最大值
vara:
int=5;
varb:
int=20;
varc:
int=15;
vart:
int;
t=(c>(t=(a>b)?
a:
b))?
c:
t;
trace(t);
6、switch
注意:
通常在每个case语句段最后用一个break语句使程序跳出整个switch语句。
7、For循环控制语句
功能:
让指定程序代码块执行一定次数的循环。
格式:
for(初始表达式;条件表达式;递增表达式){
//循环体
}
⏹初始表达式:
一个设置了初始值的变量.
⏹条件表达式:
一个用于确定循环何时结束的条件语句
⏹递增表达式:
一个在每次循环中都更改变量值的表达式。
注意:
⏹无论循环体被执行多少次,初始表达式只执行一次。
⏹递增表达式通常是对循环变量做递增(++)递减(--)但是不仅限制于1.
⏹递增表达式需要在上一次循环体执行之后再执行。
⏹运算完递增表达式,再执行条件表达式。
8、while循环
格式:
while(条件){//循环体
}
含义:
while语句在执行循环里面的语句之前,先判断条件是否成立
.反复执行直到条件不成立为止.
注意:
⏹在循环体中要有使循环趋于结束的循环变量递增语句,否则循环将成为死循环。
⏹当循环条件不成立时,循环体可能一次都不执行。
9
10、do….while循环
⏹格式:
do{
//循环体
}(条件)
⏹含义:
首先执行一次循环体,然后再判断条件表达式的值,如果为真则再次执行循环体中的代码,如此循环往复。
do-while语句先执行循环体再判断条件,循环体至少执行一次;
while语句先判断条件再执行循环体,循环体有可能一次也不执行。
11、while和do…..while区别
12、循环嵌套
一个循环体内又有另外一个循环体结构,称为循环的嵌套。
13、break和continue区别
break语句的作用是提前结束循环,继续执行循环之后的语句
continue语句的作用是结束本次循环,返回到循环起始位置准备下一次循环。
问题:
1、varnum1:
int=5;
varnum2:
int=6;
if(num1==5&&num2==6){
trace(num1,num2);
}的输出结果
2、varnum1:
int=5;
varnum2:
int=6;
if(num1==5||num2==20){
trace(num1,num2);
}的输出结果
3、利用?
条件运算符,求三个数的最大值
4、switch语句中,每一个case语句后面加break与不加break的区别。
5、do-while和while的区别
6、输出30内,被3整除的数
7、使用do-while循环、while循环和for循环来实现0到100的和
第四章
1、函数定义
⏹函数:
执行特定任务并可以在程序中重用的代码块。
2、函数的调用——在程序中使用内置或自定义的函数的过程
(1)一般形式:
函数名(参数列表)
例:
实例中的
addball()
addChild(mc)
setInterval(addball,100)
(2)两个以上参数,需要使用逗号隔开
例:
setInterval(addball,100)
(3)即使函数没有参数,调用时需要保留一对括号
例:
addball()还要我们常用的play();stop()
(4)当函数有返回值时,可以将这个函数调用放在表达式中作为一个操作数。
例:
kk=setInterval(addball,100)
mc.scaleX=mc.scaleY=Math.random();
3、自定义函数
4、参数的类型
函数名后的花括号内需要编写参数的名称+冒号(:
)+对应参数的数据类型,多个参数使用逗号隔开。
function函数名(参数名1:
类型,参数名2:
类型,…,参数名n:
类型){
//函数体
}
5、函数的参数是外界与函数内部通信的方法,对于有参函数来说,函数被调用时,函数有数据传递的关系。
形参和实参的基本概念
⏹在定义函数时,参数列表中的变量称为函数的形式参数,简称形参。
⏹functionmyfun(a;uint,b:
unit){
returna*b;
}
varmulti:
uint;
multi=myfun(3,6);
trace(multi);
其中a,b为形参,3,6为实参
当调用函数时,参数列表中的内容称为实际参数,简称实参。
7、数值传送
⏹数值传送指的是从实参向形参传递数据时,传送到形参中的内容是实参的一份copy,在函数体中操作的是copy的内容,不会改变实参的内容。
地址传送
⏹和值传送不同的是在地址传送方式中,传递到形参的内容实际上是实参的引用,其间没有发生数据的复制,而是直接指向保存实参的内存空间。
⏹传递形参的内容相当于实参的别名,如果函数体改变了形参的内容,对于的实参也会发生变化,因为指向的为同一内容。
⏹当参数的类型为数组或者对象等复杂数据数据类型时,参数传递过程都使用的是地址传递的方式。
6、return语句
⏹一个函数被调用以后可以向外界返回一个值,函数的返回值是函数向外界传递信息的一种方式。
⏹对于一个有返回值的函数在声明时通常需要确定返回值的类型。
⏹要让函数返回一个值,需要在函数中使用return语句。
return返回值;
⏹返回值通常为常量、变量、表达式或者其他函数。
9、无返回值
⏹如果一个函数不需要有返回值时,可以在函数的定义时指定返回值类型为void,即没有返回值的意思。
functionctrl_mc(mc:
MovieClip):
void{
mc.x=200;
mc.y=160;
mc.play();
}
⏹返回值定义为void的函数,在函数体中出现return语句会出现编译错误。
10、有返回值的情况
⏹实例5:
计算两点间的距离
vardistance:
Number=f(100,200,100,300);
trace(distance);
functionf(x1:
Number,y1:
Number,x2:
Number,y2:
Number):
Number{
varx:
Number=x1-x2;
vary:
Number=y1-y2;
vardis:
Number=Math.sqrt(x*x+y*y);
returndis;
}
⏹要指定返回值的类型,在参数列表后面加一个:
冒号,然后紧跟类型名。
functionjia(x1:
uint,y1:
uint):
uint{
returnx1+y1
}
vars:
uint=jia(2,4);
trace(s)
11、return语句也是函数的出口
当函数执行到retrun语句后随即退出该函数。
此时,return语句后面可以没有表达式,说明这条语句只作为函数的出口使用,这种情况下函数的返回值为undefined。
⏹一个函数中可以有多条return语句,但每次被调用时,只能同时有一条语句会被执行。
例:
varm=min(3,5);
trace(m);
functionmin(a:
int,b:
int){
if(a
returna;
}else{
returnb;
}
}
12、函数的嵌套定义:
在一个函数体内再声明另一个函数。
13、递归函数
一个函数的函数体中又调用了自身,这样的函数称为递归函数,这种调用方式称为递归调用。
为了避免死循环,在设计递归调用时,一定要保证在一定条件下能终止调用。
例4-7求阶乘。
functionfactorial(n:
uint):
uint{
if(n==0){
return1;//递归调用停止的情况
}else{
returnn*factorial(n-1);
//减小参数值,递归调用
}
}
//调用函数,求5的阶乘
trace(factorial(5));
14、局部变量
⏹当一个变量在某个函数体中被定义时,那个这个变量的作用域就是这个函数体,函数体之个的代码无法访问到它,这个变量就称为局部变量。
⏹局部变量只有在函数被调用时,才会被分配存储空间,当函数调用结束后,变量的存储空间被收回,这样可使程序的效率更高。
全局变量
⏹全局变量是指在所有代码范围内都可见的变量。
当一个变量在所有函数之外定义时,这个变量可以被函数内及函数外的代码所访问,这时它就是全局变量。
变量名重叠
⏹如果在一个函数体内定义的局部变量名已经被一个全局变量使用,那么在这个函数体内,局部变量会屏蔽全局变量名。
⏹例:
varoverlapVar:
String="Global";
functionscopef()
{
varoverlapVar:
String="Local";
trace("函数内overlapVar值为",overlapVar);
}
scopef();
trace("函数外overlapVar值为",overlapVar);
15、
16、3、碰撞测试函数hitTestPoint(),hitTestObject()
1.hitTestObject()
⏹声明:
publicfunctionhitTestObject(obj:
DisplayObject):
Boolean
⏹功能:
测试当前对象和参数指定的现实对象是否交叠,是则返回true,否则返回false。
⏹说明:
判断交叠的范围是两个对象的外接矩形,而不是对象实际的形状。
2.hitTestPoint()
⏹声明:
publicfunctionhitTestPoint(x:
Number,y:
Number,shapeFlag:
Boolean=false):
Boolean
⏹功能:
判断当前对象是否和前两个参数指定的点相交叠,如果是则返回true,否则返回false。
参数x,y指定的坐标是相对于舞台坐标系的坐标,
⏹说明:
⏹如果用这个方法来测试当前对象是否和鼠标交叠,则这两个实际参数就应写成舞台上的鼠标坐标root.mouseX和root.mouseY。
⏹可选参数shapeFlag,指定测试时以对象的实际内容为准(true),还是以对象的外接矩形的范围为准(false)。
17、传递程序命令fscommand()
fscommand(“fullscreen”,”true/false”)//全屏
fscommand(“quit”,”true/false”)//退出
fscommand(“showmenu”,”true/false”)
fscommand(“allowscale”,”true/false”)
fscommand(“exec”,”字符串”)
问题
1、定义函数、参数设置
2、形参与实参的区别
3、利用函数返回数组当中最大数
4、什么是局部变量、什么事全局变量
5、鼠标拖拽和鼠标停止拖拽如何实现
6、碰撞测试函数是什么?
如何实现小球躲避小球
7、如何实现全屏
8、地址传递和数值传递的区别
第五章
1、event事件类
2、事件对象继承自Event对象类,它的一些属性包含了有关所发生事件的信息,其中包括提供事件基本信息的target和type属性:
⏹type表示事件类型的字符串。
⏹target事件作用的目标
functiondrag(event:
MouseEvent):
void{
event.target.startDrag();
}
functiondrop(event:
MouseEvent):
void{
event.target.stopDrag();
}
3、事件监听过程
1.确定事件目标
一个用于作为事件发送目标的对象被称为事件目标
⏹2.注册事件侦听
方法:
addEventListener()
可以在一个对象上注册若干个事件帧听函数
⏹3.执行事件响应函数
当事件目标在列表中查到与接收到的时间对象相对应的响应函数后,事件对象将作为一个参数传递给该函数,然后执行这个事件响应函数。
4、注销侦听函数
⏹removeEventListener()方法
publicfunctionremoveEventL