技术开发 频道

Flex及AS3的百多条小知识

【IT168技术资讯】

 private function tryError():void{
try {
trace("测试开始-try");
throwError();
}catch(errObject:Error) {
trace("错误信息:" + errObject.message);
trace("测试结束-catch");
return;
}finally{
trace("虽然catch里已经有return方法,但位于return方法后面的finally里的代码依然会被执行.其实无论return方法是在try里,还是catch里,finally里的代码始终会被执行");
}
trace("前面已经有return了,此处是不会再执行的.除非没有抛出错误,以使catch里的代码没有被执行");
}
private function throwError():void{
throw new Error("抛出错误");
}

 【检测屏幕的分辨率】
flash.system.Capabilities.screenResolutionX
flash.system.Capabilities.screenResolutionY

【把弹出窗口居中的算法】
X = (舞台宽/2)-(窗口宽/2)
Y = (舞台高/2)-(窗口高/2)

数字的不同进制之间的转换】
parseInt(str:String, radix:uint = 0):Number 返回十进制的数,参数radix表示要分析的数字的基数.如果省略radix,就默认为10,除非字符串的开头是"0x","0X"或"0":
trace(parseInt("0x12")); //设定radix为16,输出:18
trace(parseInt("017")); //设定radix为8,输出:15
或者使用Number,uint和int对象的toString(radix)方法.

【使用Math.round()对一个数取整,四舍五入】
Math.round()
trace(Math.round(204.499)); //输出:204
trace(Math.round(401.5)); //输出:402

【使用Math.floor()对一个数向下取整,就是只要整数部分而不理会小数分】
trace(Math.floor(204.99)); //输出:204

【使用Math.ceil()对一个数向上取整,只要小数部分不为零,整数部分就加1】
trace(Math.ceil(401.01)); //输出:402

【产生一个随机数】
使用Math.random()产生一个伪随机数n,其中 0 <= n < 1

【在指定数值范围内获得随机数】
//可取范围:[min, max]
private function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}

【弧度(radian)与度数(degree)之间的转换】
从弧度转为度数: degrees = radians * 180 / Math.PI
从度数转为弧度: radians = degrees * Math.PI / 180

【计算两点之间的距离】
勾股定理: c2 = a2 + b2
假设有两个影片剪辑mc1和mc2,则它们两点间的距离c为:
var c:Number = Math.sqrt(Math.pow(mc1.x - mc2.x, 2) + Math.pow(mc1.y - mc2.y, 2));

【模拟圆周运动】
已知圆心o(x0, y0),半径r和弧度angle,求圆上任意一点P(x, y)的坐标:
x = x0 + (Math.cos(angle) * r);
y = y0 + (Math.sin(angle) * r);
注意:舞台的x轴正方向水平向右,y轴正方向垂直向下.

【模拟椭圆运动】
已知圆心o(x0, y0),长轴a,短轴b以及弧度angle,求圆上任意一点P(x, y)的坐标:
x = x0 + (Math.cos(angle) * a);
y = y0 + (Math.sin(angle) * b);

0
相关文章