




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flash编程基本(言简意赅适合新人没有基本也能看懂啊)
教学提纲
ActionScript代码输入与编辑
语法与构造
错误与调试
重点与难点
重点是语法与构造,视课堂讲授进度安排教学内容。由于安排内容较多,若
课堂上无法所有完毕,则改为回去自学。
教学内容:
一、ActionScript代码输入与编辑
Flash是一种集美工、动画与编程于一体集成开发环境,故而其编程方式与其
他纯程序开发编程方式有所不同。Flash自诞生之日起,就是以美工、动画为主,
以程序为辅应用框架。咱们可以理解为,Flash总体构造就是一种影片剪辑
(MovieClip),而几乎所有多媒体内容都是挂在这个影片剪辑中某个分支之上,
涉及脚本(代码),形成一种树形构造。自ActionScript3.0起,这个框架被规范
化为显示对象层次构造。
一种典型Flash作品构造如下图所示:
典型Flash作品构造
这种以动画为主,代码为辅程序框架好处是显而易见,由于游戏开发许多工
作与画面设计打交道,咱们运用对象层次构造,在直观环境下创作几乎整个游戏!
脚本从属地位好处显而易见,而其害处也越来越被人们结识,就是对于其她
程序开发人员来说,Flash脚本有些莫名其妙,要想开发Flash程序,就必要先理
解Flash显示对象层次构造,动画,时间轴等原本与编程无多大联系知识。当前,
Flash界面设计与代码设计分离成了趋势,例如通过flex等提供一种完全适合程
序员开发环境。由于游戏类型应用,界面与程序结合非常紧密,因此还是采用原
有框架,在单独Flash开发环境中完毕所有工作。
虽然Actionscript代码可以被挂在Flash中许多分支上,但查看和编辑脚本却
十分以便,由于所有代码都在动作面板(脚本编辑器)中输入和编辑,只要用鼠
标点击相应位置或者对象,就会显示这个位置或对象所有用代码。
打开一种Flash文档,按F9键,或者点击【窗口】|【动作】命令,即可打开
动作面板。
动作面板如下图所示:
\动作-帧X
Actionscript3.0令毋由▼喜(耳瞥节苦¥O0O围、脚本助手学,
司顶级vartestNumber;T
句语言元素varcount=0;\//
adobe.utils/偷机产生一个i*1000之间的整数//
ZJ句
fl.accessibilitycount++;I//
句fl.containerstestNumber=Maih.round(Math,random()*^99)+1;/
fl.controls\}while(checkNumben(testNumber));//
2LItrace("找到一个能被建除并且二进制数的第四根是0第璘是1的数:
fl.controls.dataGri.trace("总共循环了V^"*。urrt+“T次”):T7
fl.controls.listClas...
ZJ句functioncheckNumber(paral:Number):Boolean{/
fl.controls.progres...if(paral%7==0(paral»3)%4=-/2){/
司
fl.core,returnfalse;lA//
\}else{//
fl.data
ZJ句\returntrue;i//
fl.events
句
.—1
臼Bl当前选择」
脚本版本选择
a图层i:帧i工具栏//
臼百场景1_语言元素列表
a图层1:帧1〜脚本助手
当前代码位置
菜单与帮J
对
]回图层1:rpsr
5第17行洪17行),第1列
动作面板
由于接下来要经常和动作面板打交道,因此这里对动作面板进行较为详细简
介。
脚本版本选取:
点击下拉按钮弹出ActionScript版本列表,选取其中一种,则语言元素列表
内容会作相应变化。需要注意是这里修改是语言元素列表显示内容,但本文档
ActionScript版本并不因而而被修改。
ActionScript3.0▼
ActionScript1.0&2.0
ActionScript3.0
FlashLite1.0ActionScript
FlashLite1.1ActionScript
FlashLite2.0ActionScript
FlashLite2.1ActionScript
ActionScript版本选取
语言元素列表:
这是一种树型构造目录,它列出了当前版本语言元素、包以及索引。其中每
个包里面有一种或各种类,每个类属性、办法和事件也都列在树型构造中。如下
图所示:
fl.containers
fl.controls
BaseButton
Button
国方法
u事件
帽属性
@
accessibilityproperties(DisplayObject)
③一
®alpha(DisplayObject)
autoRepeat(BaseButton)
③一
③blendMode(DisplayObject)
buttonMode(Sprite)
语言元素列表
双击其中一种条目,就可以在代码窗口添加一行相应代码,然后用脚本助手
或者直接手动进行必要修改。
当前代码位置:
当前代码位置指出脚本编辑器中代码位于Flash文档何处。典型代码放置位
置是主时间轴帧上或者是影片剪辑中帧上。
如果是AS2或更早版本,代码也也许是直接依附在影片剪辑或者按钮上。做
法是单击一种剪辑或者按钮,然后打开动作面板,输入或者编辑其上代码。相信
有过Flash8或此前版本使用经验读者对按钮上on函数再熟悉但是了。
工具栏:
动作面板工具栏给出了针对Flash代码各种实用按钮,这些按钮阐明如下图所示:
添
查插
语
自显
折折
应应
调
展
显
删
找
加
入
法
叠
动
用用
示
会
试
开
除
示
代
目
检
所
套
块行
代
成
选
全
注/
码
查
选
标
用
注注
项
部
释
码
对
隐
元
路
格
释释
提
大
藏
素
径
示
括
工
具
号
动作面板工具栏及其解释
点击☆按钮将弹出与语言元素列表内容同样菜单。点击〜按钮可以在编译
之前查找代码语法错误,这些错误会在输出窗口中显示。点击套可以将代码根
据其构造自动缩进对齐,如果代码存在语法错误,则会提示语法错误,无法套用
格式。
从起右边按钮,是FlashCS3新增。这些按钮和VisualStudio.NET有关工
具类似,预计是汲取其长处而添加。
脚本助手:
脚本助手启动时,会在动作面板上部显示当前行代码构造信息,提供详细辅
助信息。如图所示,点击for循环语句首行时脚本助手显示信息:
Ifor:for循环
脚本助手
启动脚本助手时无法自由修改脚本代码,并且挤占了动作面板许多空间,因此它
只适合初学者在不清晰程序构造或者紧张引入语法错误状况下使用。当读者对
ActionScript语法与构造具备一定理解之后,应当取消脚本助手,而在代码窗口
中自由地编辑代码。
二、语法与构造
本章节解说ActionScript语法与构造,但并不按教科书方式详细解说。而是
完全将FlashCS3看作是一种面向对象编程开发环境,以最简洁代码解说
ActionScript语法与构造。从简洁代码中引申出来各种编程概念和知识面,则以
列表方式平铺。这种办法可以使人们运用此前所学其他语言编程知识,迅速过渡
到ActionScript编程上来。
1)第一段示例代码
打开FlashCS3Professional,选取【文献】[【新建】,或者按Ctrl+N,弹出
新建文档对话框。选取"Flash文档(ActionScript3.0)”,按拟定新建一种Flash
文档。点击“图层1”第1帧,按【F9】弹出动作面板,输入如下代码:
〃这是我第一次写ActionScript脚本
varsum:Number;
varcount:Number=5;
sum=0;
for(vari:Number=1;i<=count;i++){
sum=i*(i+l)/2;
trace("l累加到"+i+"值为:"+sum);
)
如下图所示:
◎■510152025
♦图层1Z••
守Jll,II112.0fps
片圜场景1
动作--x1—、
听Q中▼言但以苜苔甘©①。国
1//这是我第一次写ActionScript脚本
2varsum:Number;
3varcount:Number=5;
4sum=0;
5for(vari:Number=1;i<=count;i-H"){
6sum=i*(i+l)/2;
7trace("l臬加至「+i+"的值为:"+sum);
8}
第一种脚本
注意:下文若提到“输入如下代码”时,就是在新建文档图层1第1帧动作面板
中输入下框中代码。
在调试程序前保存文献是一种良好习惯,由于谁也不能必定刚刚编写脚本不
会在调试过程中导致死机,若调试过程中浮现死机或者意外退出Flash程序,那
么没有保存内容将会丢失。按Ctrl+S保存文献,然后选取【控制】|【测试影片】,
或者按Ctrl+Enter测试影片。这时会弹出两个窗口,一种是Flash作品窗口,由
于刚才没有建立任何可见元素,因此这个窗口是空白。尚有一种是输出窗口,当
有trace输出语句或者浮现语法错误时候就会自动弹出输出窗口。
本段程序测试时输出窗口如下图所示:
」输出X[______
1累加到1的值为:1
1累加到2的值为:3
1累加到3的值为:6
1累加到4的值为:10
1累加到5的值为:15
本程序输出
这段代码包括如下知识点:
♦代码注释语法
♦变量声明与赋值办法
♦数据类型与默认值
♦显式类型指定及其意义
♦程序构造语句
♦基本数学运算
♦trace语句简介
当前让咱们一行行地结识这些代码:
〃这是我第一次写脚本
这是一行代码注释,编译器将忽视这行文字。注释提高了代码可读性。单行
注释由“//”开始,在代码中呈灰色。如果需要多行注释,则使用“/*”开始,
用“*/”结束。一种典型多行注释如下所示:
*Boat.as*
*轮船类*
*作者:肖刚*
再看本例接下来两行代码:
varsum:Number;
varcount:Number=5;
这两行代码声明两个数值类型变量sum和count°var是声明变量核心字,sum
与count是变量名称。Number指出变量数据类型为数值。第二行代码声明变量
count同步赋值一种初始值5。
对于面向对象程序设计语言来说,所有数据类型都是对象,都是类。Flash
内置类可以分为两种,一种是基元类型,也被成为原始类型,它们普通用来存储
某些简朴数据,有原始类型还具备某些针对所存储数据属性和办法。原始类型是
构建复杂类基本元素。另一种是复杂类,它们是由class核心字定义类,可以以
为是程序构件,普通具备成套属性、办法和事件。原始类型变量直接存储数据,
而复杂类型变量存储是类引用。更多关于类与对象简介,请参看“Flash内置类”
以及“面向对象程序设计”章节。
下表列出了ActionScript惯用原始类型,以及其简要阐明,它们用法都是大
同小异:
数据类型阐明
BooleanBoolean数据类型涉及两个值:true和false。对于此类变量,
其他任何值都是无效。已经声明但尚未初始化布尔变量默认
值是falseo
Number此数据类型可以表达整数、无符号整数和浮点数。若要存储
浮点数,数字中应当涉及一种小数点。若没有小数点,数字
将被存储为整数。
int存储32位有符号整形数据。使用int类型有助于运用CPU迅
速解决整形运算能力。(仅合用于ActionScript3.0)
uint存储32位无符号整数数据。uint类重要用于像素颜色值
(ARGB和RGBA)和int数据类型无法较好工作其他状
况。(仅合用于ActionScript3.0)
StringString数据类型表达16位字符序列,也许涉及字母、数字
和标点符号。字符串存储为Unicode字符,使用UTF-16格
式。对字符串值操作返回字符串一种新实例。
默认值
如果没有给变量赋值,变量将采用默认值。变量默认值列表如下:
数据类型默认值
Booleanfalse
int0
NumberNaN
Objectundefined
Stringnull
uint0
未声明(与类型注释*等效)undefined
其他所有类(涉及顾客定义类)undefined
显式类型指定:
双引号“:"是类型(type)运算符,用于显式指定变量数据类型,与var核心
字配合使用。它可以指定变量类型、函数返回类型或函数参数类型。在变量声明
或赋值中使用时,此运算符指定变量类型;在函数声明或定义中使用时,此运算
符指定函数返回类型;在函数定义中与函数参数一起使用时,此运算符指定该参
数预期变量类型。
显式指定数据类型不但仅是一种良好编程习惯,以便避免运营时浮现不匹配
状况;同步,对于Flash来说,脚本编辑器支持内置类和基于这些类变量代码提
示,从而提高了编程效率。如果需要为指定变量特定对象类型提供代码提示就要
严格指定变量类型,Flash依照变量类型弹出适当提示。代码提示有两种:弹出
菜单提示和工具提示样式语法提示。
弹出菜单提示如下图所示:
☆Q中▼喜售1打苜甘¥©口0国
1vartoday:Date=newDate();
2trace(today.
®constructor▲
@date
@dateUTC
③day
@dayUTC
@ftillYear
@fijUYearUTC
@getDate
弹出菜单提示
由于在之前显式声明了变量today为Date(日期)类型,因此当用键盘敲入
“today”然后敲入时,编辑器就会自动列出Date类型变量所有属性和办法
供咱们选取。这大大提高了编程效率,也减少了由于记忆或者输入错误而引起程
序错误。
语法提示如下图所示:
1vartoday:Date=newDate();
2trace(today.getFullYear(
Date.getFullYearQ:Number
语法提示
语法提示在使用内置类成员函数时浮现,如上图中咱们使用了内置类
DategetFullYear函数时,它会提示咱们这个函数参数为空,函数返回值为Number
类型。
程序基本构造:
继续看接下去代码:
for(vari:Number=l;i<=count;i++){
〃内部代码略
这是一种for循环构造。它原则格式为:
for(表达式1;表达式2;表达式3){
内嵌语句
)
它执行过程如下:
(1)求解表达式1
(2)求解表达式2,若其值为真(true),则执行内嵌语句,若为假(false),
则转到第(5)步
(3)求解表达式3
(4)转回上面第(2)步继续执行
(5)循环结束,执行for循环后来过程
使用流程图来表达话,for循环构造执行如下图所示:
true
内嵌语句false
表达式3
(结束
for循环构造
虽然表达式1到表达式3可以是任意单条语句,但是最惯用是它们分别表达
循环变量赋初始值,循环条件,循环变量增值,例如本例代码。
普通计算机程序总是由若干条语句构成,从执行方式上看,从第一条语句到
最后一条语句完全按顺序执行,是简朴顺序构造;若在程序执行过程当中,依照
顾客输入或中间成果去执行若干不同任务则为选取构造;如果在程序某处,需要
依照某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止,这就
构成循环构造。顺序构造、循环构造、选取构造构成了构造化程序设计三个基本
单元,而众多基本单元构成庞大程序。
顺序构造流程图如下所示:
(开始)
表达式]
表达式2
表达式3
4
(结束)
顺序构造
典型选取构造流程图如下所示:
典型选取构造
按顺序编写语句即为顺序构造,因此没有构造语句,而循环构造和选取构造
分别有各种语句构造,这些构造如下表所示:
构造类型语句以及语法阐明
for(初始值;条件;增值){语先赋初始值,然后判断条件,为真状
句}况下执行语句,然后增值,完毕一次
循环,接着重新判断条件,直到条件
为假。
for(变量in对象){语句}顺序遍历对象属性或数组中元素,并
循环构造对每个属性或元素执行语句。
while(条件){语句}当条件为真时执行语句,然后判断条
件,如果为真,执行语句,重新判断
条件,直到条件为假。
do{语句}while(条件);先执行语句,然后判断条件,如果为
真,继续执行语句。
if(条件){语句}判断条件,如果为真,则执行语句。
if(条件){语句1}判断条件,如果为真,执行语句1,
else{语句2}否则,执行语句2。
if(条件1){语句1}判断条件1,如果为真,则执行语句
elseif(条件2){语句2}b否则如果条件2为真,则执行语
句2。
选取构造switch(变量){
多分支选取构造。比较变量值,如果
case值1:语句1为值1,则执行语句1以及后来语句,
如果为值n,则执行语句n以及后来
case值n:语句n语句。如果只想执行某一分支语句
[default:语句]n,则在语句n最后应加break;语句。
)
注:如果读者没有构造化程序设计基本,可以参照Flash脚本协助,打开Flash
程序,选取【协助】|【Flash协助】或者按F1就可以打开Flash协助面板。可以
在目录中寻找或者直接搜索来找到要学习内容。任何软件,它协助文献就是最佳
教材。或者读者也可以找任何一本编程基本书籍,翻看之后即会明白。
更多语句、核心字和指令,可以参照Flash协助文献,其位置如下图所示:
日囿Actionscript3.0语言和组件参考
®D全部类
EQ全部包
B©语言元素
国□全局常量
®□全局函数
|EO运算符
口但语句、关键字和指令
E...(rest)parameter
pEAS3
Sbreak
i-Elcase
E=1a
算术运算:
再看本例接下来一行代码:
sum=i*(i+l)/2;
这行代码作用是将1〜i整数数字累加成果放在sum变量中。它使用了各种
算术运算符以及赋值运算符“=”。
事实上,可以将这上行代码用一种for循环来表达。
sum=0;
for(varj:Number=l;j<=i;j++){
sum=sum+j;
)
但这明显增长了代码复杂度。使用累加公式:*=她±11则代码变简朴,执
国2
行效率固然就提高了。游戏中经常需要使得运动满足各种物理运动规律,这些规
律均有公式可循,附录中给出了某些惯用数学与物理现象公式以供参照。
下表是ActionScript算术运算符:
运算符阐明
=赋值运算符
?:条件运算符
+相加
-相减
*相乘
/相除
%取余
++自加1
-自减1
()小括号
和代数运算同样,程序中运算符也具备优先级,程序总是先执行优先级最高
运算。上表中,运算符优先级正好从低到高排列(有相似优先级,如加法“+”
和减法优先级是同样。事实上,程序中算计运算优先级和中小学算术运算
优先级是一致,因此非常好理解。
跟踪调试函数trace:
再看本例接下来一行代码:
trace("l累加到"+i+"值为:"+sum);
trace是一种跟踪调试函数,它可以在输出窗口中一字符串方式输出trace函
数参数,每条trace语句输出一行字符串。trace语句可以有一种或者各种参数,
参数类型可以是任意,事实上,它将条用参数对象toString办法,输出对象字符
串表达方式。
本例中使用了字符串连接符“+”将各种字符串连接成一种字符串作为trace
函数参数。运算符“+”两边都是数字时候表达加法运算,但是如果两边有一种
是字符串,则表达字符串连接运算。
trace语句是调试程序好帮手。它可以输出某些运营时信息以便检测程序执行
和发现程序错误。trace语句在发布swf文献中不起作用,不会对最后成果导致
影响。如果想在调试过程中暂时不输出trace成果,那么在【文献】|【发布设立】
Flash页中勾选“省略trace动作”即可。如下图所示:
选项:厂生成大小报告也)
r防止导入任)
17省略trace动作复)
厂允许,
F压缩:
trace输出开关
在接下来例子中,咱们还将多次使用到trace语句,用来查看程序执行中间成果
以及最后成果。涉及在游戏实例代码中也也许保存着trace语句,那是调试游戏
时留下,对最后程序没有影响,也不必删除。
2)第二段示例代码
程序阐明:
建立一种4X6二维数组,每个数组元素保存一种0〜10随机整数,然后输出这
个数组。
新建Flash文档,输入如下代码:
〃定义一维数组
varmyArray:Array=newArray(4);
for(vari=0;i<4;i++){
〃一维数组每个元素为一种新一维数组
myArray[i]=newArray(6);
for(varj=0;j<6;j++){
〃给数组元素赋随机值
myArray[i][j]=int(Math.random()*10);
)
〃输出一维数组myArray[i]
trace(myArray[i]);
)
按Ctrl+Enter测试影片,则输出这个二维数组值。某次输出如下:
3,8,7,4,0,4
0,6,0,1,1,8
6,0,6,7,5,0
1,9,8,5,6,4
这段代码包括如下知识点:
♦数组对象以及多维数组使用
♦嵌套循环
♦内建数学类Math使用
♦数据类型转换
♦编译器严谨模式与非严谨模式
当前来解释这些代码,先看第一行代码:
varmyArray:Array=newArray(4);
这里声明了一种Array类型变量myArray,并用new核心字创立这个Array
对象实例,初始化其长度为4oArray是一种用来表达一维数组数据类型,它可
以存储任意类型数据或对象。
数组是游戏程序中频繁使用到一种数据类型。用变量名称引用数组对象,访
问数组每个元素则使用下标运算符“口”,下标从0开始编号。假设数组元素存
储是另一种数组,那么就构成了二维数组,以此类推。多维数组访问采用各种下
标运算符即可。Array是一种复杂对象,必要用new核心字创立它实例,否则声
明变量无法访问,由于ActionScript要通过new核心字给复杂对象在内存中开辟
一种空间,存储这个对象之用。
也可以创立一种空数组对象,或者创立数组对象同步给数组赋值。如下代码
所示:
〃创立一种空数组
varmyArray1:Array=newArray();
〃创立一种有三个元素数组,元素值分别为1,2,3
varmyArray2:Array=newArray(l,2,3);
数组对象不但仅为咱们提供了存储数组数据构造,同步还提供了某些基于数
组属性和操作函数等,例如数组长度、给数组元素排序等等。这里不一一举例阐
明,而仅以列表方式给出数组对象Array惯用成员:
成员阐明
length属性,表达数组中元素数量非负整数。
Array(numElements:int=0)容许创立指定元素数量数组,默以为0。
Array(...values)容许创立包括指定元素数组。
concat(...args):Array将参数中指定元素(组)附加到数组中,形成新数
组。
forEach(callback:Function,对数组中每一项执行函数。
thisObject:*=null):void
pop():Object删除数组中最后一种元素,并返回该元素值。
push(...args):uint将一种或各种元素添加到数组结尾,并返回该数组
新长度。
reverse():Array倒转数组顺序。
shift():Object删除数组中第一种元素,并返回该元素。
slice(startlndex:int=0,返回由原始数组中某一范畴元素构成新数组,而不
endindex:int=16777215修改原始数组。
):Array
some(callback:Function,对数组中每一项执行测试函数,直到获得返回true
thisObject:*=null):Boolean项。
sort(...args):Array对数组中元素进行排序。
splice(startlndex:int,给数组添加元素以及从数组中删除元素。
deleteCount:uint,
...values):Array
unshift(...args):uint将一种或各种元素添加到数组开头,并返回该数组
新长度。
类成员用法为:
变量名.成员名
如果成员为一函数,则需要加括号“()”,如果函数有参数,则放在括号里面,
各种参数用逗号隔开。
Array对象不但有以上这些成员,尚有某些被称为静态常数成员。所谓静态
成员,是指使用类名引用而不是类实例名引用成员。静态成员普通用于辅助此类
有关某些操作。例如Array.NUMERIC就是一种Array类静态属性(也称为常数),
在对数进行排序时候用来表达按数值大小顺序排序而不是字符串编码顺序排序。
提示:本书中有许多知识列表,为了节约篇幅,这些列表普通都
是通过精简,剔除了游戏程序中不用或者很少使用到项。读者若
想理解这些被精简项,可以参照Flash协助文献。
嵌套循环:
再看看接下来一段代码:
for(vari=0;i<4;i++){
〃一维数组每个元素为一种新一维数组
myArray[i]=newArray(6);
for(varj=0;j<6;j++){
〃给数组元素赋随机值
myArray[i][j]=int(Math.random()*9);
)
)
这段代码构造为嵌套循环构造。第一层循环给myArray数组每一种元素赋值
一种新数组,第二层循环为myArray数组每个元素所示数组每个元素赋随机初
始值。这段代码用流程图表达如下:
嵌套循环
上图中,内部循环构造可以看作是一种简朴表达式,它与其前一条语句构成
顺序构造,而这个顺序构造又可以看作是一种简朴表达式,而成为外部循环构造
内嵌表达式。一种完整程序,是有着大量顺序构造、选取构造和循环构造嵌套、
组合复合体。纯熟使用构造化程序设计思想是编写复杂程序基本。
Math类:
这段代码还用到了Flash内建数学类Math一种静态办法:random(),它作用
是生成一种0〜1之间随机小数。Math是Flash内嵌数学计算辅助类,开发游戏
经常要和这个类打交道。它是一种静态类,包括某些静态函数和静态属性,以提
供惯用数学办法和数学常数,在程序任何地方都可以调用这些成员。例如表达圆
周率JI常数为Math.PL下面这行代码计算面积为area圆半径:
r=Math.sqrt(area/Math.PI);
下表列出了Math对象某些常数。
常数阐明
E代表自然对数底数学常数,表达为eo
LN10代表10自然对数数学常数,其近似值为2.046o
LN2代表2自然对数数学常数,其近似值为0.69353。
PI代表一种圆周长与其直径比值数学常数,其近似值
为3.9793o
SQRT1_2代表1/2平方根数学常数,其近似值为0.5476。
SQRT2代表2平方根数学常数,其近似值为1.40951。
Math还包括了某些数学函数。在游戏编程中将常惯用到这些办法。
下表列出了Math对象某些数学函数:
函数阐明
abs(x)返回由参数X指定数字绝对值。
acos(x)返回由参数X指定数字反余弦值。
asin(x)返回由参数X指定数字反正弦值。
返回角度值,该角度正切值已由参数tangent指
atan(tangent)
定。
cos(x)返回指定角度余弦值。
exp(x)返回自然对数底X次基值。
log(x)返回参数X自然对数。
pow(x,y)计算并返回xy次累。
random()返回一种伪随机数n,其中0<=n<l。
将参数x值向上或向下舍入为最接近整数并返
round(x)
回该值。
sin(x)以弧度为单位计算并返回指定角度正弦值。
sqrt(x)计算并返回指定数字平方根。
tan(x)计算并返回指定角度正切值。
注:上表中所有三角函数和反三角函数都是以弧度制为单位。Math
完整常数和办法请参看脚本提示,或者查看Flash协助文献。
类型转换
这段代码中,在给二维数组每个元素赋值此前,先将随机数进行了强制类型
转换:int(),它作用是将随机生成小数转换成整数。
将某种类型数据(对象)转换为其他类型数据(对象)时,就说发生了类型
转换。类型转换有两种:一种是隐式转换,另一种是显式转换。
隐式转换又称为强制转换,是代码中没有批示却事实上进行了类型转换,在
运营时由FlashPlayer执行。隐式转换发生在如下状况中:
♦在赋值语句中
♦在将值作为函数参数传递时
♦在从函数中返回值时
♦在使用某些运算符(如加法运算符(+))表达式中
显式转换由代码批示编译器将一种数据类型变量视为属于另一种数据类型
时发生。语法为:
目的类型(被转换对象)
例如:
varquantityField:String="3";
varquantity:int=int(quantityField);〃显式转换
不论是显式转换还是隐式转换,其内部算法都是同样。类型转换之后,也许
会发生值变化。例如Number类型转换成int类型,则会将小数点背面数值截断,
将数值类型转换成Boolean类型时,非0值转换成true,而0转换成falseo如果
转换目的类型是复杂类,则被转换对象应当是有关类型,有关类型指具备继承关
系类型。所有复杂类都继承自Object类,因此所有复杂类都可以转换为Object
类。MovieClip类继承自Sprite类,因此MovieClip类可以转换成Sprite类,但
是Sprite类不能转换成MovieClip类,由于MovieClip类不是Sprite类有关类型。
Date类与MovieClip类之间互不继承,因此它们之间不能互相转换。
在类型转换中如果浮现类型不匹配,则会浮现错误。如果编译器为严谨模式,
则在编译时候就会弹出编译错误,程序无法编译完毕,但是如果是原则模式,则
会在程序运营到类型匹配错误时候才弹出错误。当程序比较庞大时,越早发现错
误越好,因此程序员都倾向于使用严谨模式。
修改严谨模式办法为:选取【文献】|【发布设立】,然后选取“Flash”标签,
在ActionScript版本下来框中选取"ActionScript3.0”,然后点击旁边“设立"按
钮,弹出“ActionScript3.0设立”对话框。如下图所示:
ActionScript3.0设置
文档类:『
导出帧中的类:
错误:17沔潼模式;
17警告稹会
严谨模式设立
勾选“严谨模式”即可。新建AS3文档默认使用严谨模式,但AS2无严谨
模式概念,如果您使用是由AS2文档转换过来AS3文档,则默认使用非严谨模
式。止匕外,严谨模式还规定变量都要先声明才干使用,如果在发布设立中取消了
严谨模式,则Flash可以不显式声明变量(即不使用var核心字声明变量)。如
varcount:Number=5;
可以写成
count=5;
两者效果是同样,Flash在第一次使用这个变量时候自动定义这个变量,并且依
照所赋值类型拟定变量数据类型。但有经验程序员都明白,先声明后使用严谨编
程习惯,对减少编程错误、维护复杂程序等方面是非常故意义做法,当前绝大多
数编程语言都逐渐摒弃了非严谨模式,AS3因向下兼容需要而保存了这个选项。
3)第三段示例代码
程序阐明:
寻找一种1000以内,能被7整除并且二进制数第四位是0第五位是1数字。
新建Flash文档,输入如下代码:
vartestNumber;
varcount=0;
do{
count++;
〃随机产生一种1〜1000之间整数
testNumber=Math.round(Math.random()*1000);
}while(!correctNumber(testNumber));
trace("找到一种能被7整除并且二进制数第四位是0第五位是1数
字:\r"+testNumber);
trace("总共循环了\""+count+"\"次");
functioncorrectNumber(para1:Number):Boolean{
if(paral%7==0&&(paral»3)%4==2){
returntrue;
}else{
returnfalse;
)
)
按Ctrl+Enter测试影片。会得到如下输出成果:
找到一种能被7整除并且二进制数第四位是0第五位是1数字:
693
总共循环了"5"次
代码阐明:
这段代码执行过程是先随机生成一种1-1000整数,然后判断它与否满足给
出条件,如果不是,那么重新生成一种随机数,重新判断,直到找到一种满足条
件数字,最后输出这个数字以及循环次数。
这段代码包括如下知识点:
♦自定义函数
♦逻辑运算符
♦复合逻辑关系
♦关系运算符
♦位运算符
♦转义字符
当前来解释一下其中某些核心代码:
testNumber=Math.round(Math.random()*1000);
这里再次使用了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年旅游租车合同范本下载
- 2025【自动化控制系统安装承包合同】自动化控制系统安装包括哪些内容
- 2025品牌鞋类代理合同模板
- 个人销售提成协议合同标准文本
- 中国人保财险销售合同样本
- 前期物业服务合同的终止期限二零二五年
- 猪场技术承包合同二零二五年
- 个人充电桩出租合同标准文本
- 二零二五版试用期劳动合同标准
- 二零二五版外籍人员雇佣合同
- 原发性高血压护理措施
- 人工智能基础(Python实现)-课件 第8章 生成式大模型应用
- 2024年安徽宁马投资有限责任公司招聘10人笔试参考题库附带答案详解
- JT-T-1045-2016道路运输企业车辆技术管理规范
- 德阳巴蜀文化介绍
- 三年级下册数学课件-4.1 整体与部分 ▏沪教版 (23张PPT)
- 住 用 房 屋 租 金 计 算 表
- 7.4.2超几何分布 课件(共14张PPT)
- 晶状体相关的继发性青光眼进展课件
- DB33T 1192-2020 建筑工程施工质量验收检查用表统一标准
- 电镀与化学镀
评论
0/150
提交评论