快速业务通道

ActionScript动画编程:Math对象运用

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07
nScript使影片剪辑绕圆周运动:
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方法,即Mat

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号