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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于ActionScript动画编程:Math对象运用的所有评论