返回首页

详细讲解Flash AS的Math对象 使用教程

时间:2012-02-17 12:38来源:知行网www.zhixing123.cn 编辑:麦田守望者

Math对象,作为一门编程语言,进行数学计算是必不可少的。在数学计算中经常会使用到数学函数,如取绝对值、开方、取整、求三角函数值等,还有一种重要的函数是随机函数。ActionScript将所有这些与数学有关的方法、常数、三角函数以及随机数都集中到一个对象里面——Math对象。Math对象是ActionScript的一块敲门砖,只有掌握了它,才能真正对ActionScript动画编程做到运用自如。
1 Math对象的方法
1.1 Math.abs
Math对象中集合了许多常用数学函数。Math.abs就是用来计算一个数的绝对值,即一个数去掉正负符号后的值。其用法如下:
x=Math.abs(-9);
或:
x=Math.abs(num1-num2);
11.1.2 Math.round
Math.round方法将一个浮点数四舍五入为最接近的整数,如:
trace(Math.round(9.4));
trace(Math.round(9.5));
trace(Math.round(-9.4));
trace(Math.round(-9.5));
trace(Math.round(-9.6));
输出窗口中将显示:
9、10、-9、-9、-10
11.1.3 Math.ceil、Math.floor
Math.ceil方法取比一个浮点数大且最接近的整数,Math.floor方法取比一个浮点数小且最接近的整数。
如:
trace(Math.ceil(9.1));
trace(Math.floor(9.1));
trace(Math.ceil(-9.1));
trace(Math.floor(-9.1));
输出窗口中将显示:
10、9、-9、-10
1.4 Math.min、Math.max
Math.min方法取两个数中较小的一个数,Math.max方法取两个数中较大的一个数,如:
trace(Math.min(9, 8));
trace(Math.max(9, 8));
输出窗口中显示:
8、9
1.5 Math.pow
Math.pow方法用来计算一个数的乘方,它包含两个参数,第1个参数是底数(要乘方的数),第2个参数是幂(乘方数)。如计算5的3次方:
trace(Math.pow(5, 3));
输出窗口中显示:
125
Math.pow方法也可以计算一个数的开方,如计算125的开3次方:
trace(Math.pow(125, 1/3));
输出窗口中显示
5
1.6 Math.sqrt
除了用Math.pow计算一个数的开方,还可以使用Math.sqrt计算一个数的平方根,如计算64的平方根:
trace(Math.sqrt(64));
输出窗口中显示
8
它等同于:
trace(Math.pow(64, 1/2));
2 Math对象的常数
Math对象的常数有以下几个:
= Math.PI:圆周率(大约为3.141593)。
= Math.SQRT1_2:1/2的平方根的倒数(大约为0.707107)。
= Math.SQRT2:2的平方根(大约为1.414214)。
= Math.E:欧拉(Euler)常数,自然对数的底(大约为2.718282)。
= Math.LN2:2的自然对数(大约为0.693147)。
= Math.LN10:10的自然对数(大约为2.302585)。
= Math.LOG2E:e的以2为底的对数(大约为1.442695)。
= Math.LOG10E:e的以10为底的对数(大约为0.434294)。
其中Math.PI用得较多,如下面的脚本将弧度值arcdegree转换为角度值angledegree:
angledegree = arcdegree*(180/Math.PI);
下面的ActionScript将弧度1转换为角度:
arcdegree = 1;
angledegree = arcdegree*(180/Math.PI);
trace(angledegree);
输出窗口中显示:
57.2957795130823
3 三角函数
Math对象中的三角函数有:
= Math.sin:正弦
= Math.cos:余弦
= Math.tan:正切
= Math.asin:反正弦
= Math.acos:反余弦
= Math.atan:反正切
= Math.atan2:从x坐标轴到点的角度
三角函数在ActionScript中有着举足轻重的地位,它们在制作一些特效动画时将发挥重要的作用。在程序语言中通常以x和y标记位置,但是在一个圆周上使用x和y来标记位置并不是很容易。三角函数在处理与圆周相关的位置参数时很有效。如用某个圆的圆心位置为(x0,y0),半径为r,可以用y0+r*Math.sin(0)表示该圆水平直径右端点的纵坐标,用x0+r*Math.cos(0)表示该圆水平直径右端点的横坐标。如图11-1所示用正弦函数和余弦函数标出了一个圆周上4个点的坐标。
图11-1 用三角函数表示圆周上的点
如下所示的ActionScript使影片剪辑绕圆周运动:
onClipEvent (load) {
i = 0;
r = 150;
x0 = 275;
y0 = 200;
}
onClipEvent (enterFrame) {
i += 10;
this._x = x0+r*Math.cos(i/(180/Math.PI));
this._y = y0+r*Math.sin(i/(180/Math.PI));
}
此时的影片剪辑是沿顺时针方向转动的,如要让它沿相反方向转动,只需将i += 10改写成i -= 10即可。ActionScript中的三角函数都是按照弧度计算的。一个完整圆周的弧度数为2*Math.PI,大约是6.283185,而一个圆周的角度数是360。如要在三角函数中使用角度数,需要将其除以180/Math.PI以转换为弧度数。
在上面的脚本中,i的值是递增的,而并没有限定在0~360之间。这是因为正弦函数和余弦函数是定义在负无穷~正无穷上的周期函数,它们的值是以360°为周期循环的。
11.4 字符串和数字的转换
在ActionScript中,字符串和数字之间可以相互转换。在很多时候,将字符串转换为数字或将数字转换为字符串都是很有必要的。例如,在Flash中有一个变量名为n的输入文本框和一个按钮,按钮中的
ActionScript如下:
on (release) {
trace(n+7);
}
当在输入文本框中输入11,再单击按钮时,输出窗口将显示字符串“11”与字符串“7”相加的结果117,而不是数字11与数字7相加的结果8。这是因为从输入文本框中获得的是字符串,当表达式中有字符串和数字时,ActionScript优先考虑字符串,将数字转换为字符串后再进行字符串运算。为了将字符串转换成数字,可以使用ActionScript提供的函数Number,如将上例所示的脚本改写成如下所示:
on (release) {
trace(Number(n)+7);
}
当在输入文本框中输入11,再单击按钮时,输出窗口将显示结果18。如果Number函数中的参数不能转换成数字,则返回结果NaN。以“0x”开头的字符串将被解释为十六进制数。对于布尔值,true将转换为1,false将转换为0。例如将上例所示的脚本改写成如下所示:
on (release) {
n = n>10;
trace(Number(n));
}
当输入的值小于等于10时,输出窗口中显示0;当输入的值大于10时,输出窗口中显示1。除了Number函数以外,函数parseInt可以将字符串转换成整数,函数parseFloat可以将字符串转换为浮点数。如将上例所示的脚本改写成如下所示:
on (release) {
trace(parseInt(n)+7);
trace(parseFloat(n)+7);
}
当在输入文本框中输入11.99,再单击按钮时,输出窗口中将显示18和18.99。parseInt和parseFloat在处理字符串时比Number函数更专业一点,它们可以从字符串中取出能转换成数字的最长字符串进行转换,而忽略后面不能转换成数字的字符串。如将上例的脚本改写成如下所示:
on (release) {
trace(Number(n)+7);
trace(parseInt(n)+7);
trace(parseFloat(n)+7);
}
当在输入文本框中输入11t7.9并单击按钮时,输出窗口中将显示NaN、18、18
parseInt函数可以有两个参数,第2个参数在2~36之间,表示要转换的数字的基数,即进制数。如将二进制数1101转换为十进制整数:
trace(parseInt(1101, 2));
输出窗口中显示13。
要将数字转换成字符串可以使用Number对象(动作面板的“对象”/“核心”目录)的toString方法。要使用toString方法需要先创建一个Number对象,其用法如下:
myNumber = new Number(15);
trace(myNumber.toString(2));
trace(myNumber.toString(16));
toString中的参数与parseInt函数的第2个参数一样,都表示进制数。本例中的2和16分别表示将myNumber转换为二进制数和16进制数。运行脚本,输出窗口中显示
1111
f
如果省略参数,默认为十进制。
11.5 随机数
随机数在Flash中的应用非常广泛。
在Flash 5以前的版本中,使用random函数获取一个近似的随机数,如random(10)随机返回0~9这10个整数中的一个。但在Flash MX中推荐使用Math对象的random方法,即Math.random(),该方法返回一个大于或等于0并且小于1的随机浮点数。Math.random方法比random函数得到的结果更精确,但它并不能直接产生一个整数。我们可以使用别的办法将Math.random方法产生的随机数转换为我们需要的整数,如要得到一个1~10之间的随机整数,可以使用如下所示的ActionScript:
trace(Math.floor(Math.random()*10+1));
11.6 练习:下雪
打开文件snow.fla,这是一个利用attachMovie和Math.random方法制作的下雪效果,其中每一片雪花的
大小、方向各不相同,如图11-2所示。
[全屏欣赏]
图11-2 下雪特效
该动画中形状各异的雪花与Math.random函数密不可分,下面来看它的制作方法。
(1)在库面板中为snow影片剪辑创建链接,其链接标识符为snow,如图11-3所示。
图11-3 为影片剪辑添加链接
(2)将snow元件拖到场景中,选中该影片剪辑实例,在其中添加如下ActionScript:
onClipEvent (load) {
this._visible = false;
v0 = 3; //速度
num = 50; //数量
vx = new Array(); //记录水平速度的数组
vy = new Array();成 //记录垂直速度的数组
for (var i = 1; i<=num; i++) {
_root.attachMovie("snow", "snow"+i, i); //附加num个影片剪辑实例
scale = 100*Math.random()+50; //随机设定实例大小
with (_root["snow"+i]) { //with语句

------分隔线----------------------------
标签(Tag):FLASH FLASH龙8国际平台入口 flash技巧 flash教程 flash代码
------分隔线----------------------------
推荐内容
  • Flash Cs5开启后反复要求重新输入激活码的解决办法

    本来已经输入了一串激活码,并且FlashCs5判断这串激活码是正确的,可以正常使用FlashC...

  • Flash CS4喷涂刷工具使用详解

    在Adobe flash CS4中喷涂刷工具的作用类似于粒子喷射器,使用它可以一次将图案刷到舞...

  • Flash线条工具使用详解

    flash中线条工具 就是用来绘制直线的工具,我们可以在其属性面板中设置直线的属性,其...

  • Flash中的浮动面板使用教程

    在Adobe flash中的编辑器的右侧和大多数Adobe设计软件类似是各项功能的功能面板。最初...

  • Flash漂亮的导航菜单动画制作龙8国际平台入口

    1、新建一个Flash文档,单击属性面板的设置按钮,弹出文档设置对话框,设置尺寸为440*...

  • flash课件的制作原则

    科学性 flash课件制作一定要服从教学目标的需要,必须有严密的科学性,遵循教育科学规...

  • 猜你感兴趣
  • 教育技术学动态
  • 教育技术学论文
  • 理论研究
  • 应用研究
  • 资源收藏
  • 百家观点
  • 英文文献
  • 中国电化教育
  • 电化教育研究
  • 中国远程教育
  • 开放教育研究
  • 现代教育技术
  • 远程教育杂志
  • 现代远距离教育
  • 中国教育信息化
  • 中国信息技术教育
  • 中小学信息技术
  • Flash龙8国际平台入口
  • Photoshop龙8国际平台入口
  • 3DMAX龙8国际平台入口
  • AutoCAD龙8国际平台入口
  • CorelDRAW龙8国际平台入口
  • Matlab龙8国际平台入口
  • 其他龙8国际平台入口
  • .Net龙8国际平台入口
  • Asp龙8国际平台入口
  • Php龙8国际平台入口
  • Jsp龙8国际平台入口
  • Ajax龙8国际平台入口
  • Android教程
  • 其他龙8国际平台入口
  • Word教程
  • Excel教程
  • PowerPoint教程
  • Ubuntu教程
  • 其他教程
  • 课件下载
  • 软件下载
  • 视频教程下载
  • 其他下载
  • 教案大全
  • 试题大全
  • 课件大全
  • 其他大全
  • 人像摄影
  • 风光摄影