ActionScript四舍五入

用 Math.round( ) 进行四舍 五入 , Math.floor( ) 和 Math.ceil( ) 进行上下 近似 值。
NumberUtilities.round( ) 方法可自定义取值。

很多情况我们需要得到整数部分而不是带有小数的浮点数。比如计算出结果为 3.9999999 , 期
望的结果应该是 4.0 。
Math.round( ) 方法进行四舍五入计算:
trace(Math.round(204.499)); // 显示 : 204
trace(Math.round(401.5)); // 显示 : 402
Math.floor( ) 方法去掉小数部分, Math.ceil( ) 方法去掉小数部分后自动加 1 :
trace(Math.floor(204.99)); // 显示 : 204
trace(Math.ceil(401.01)); // 显示 : 402
如果我想要把 90.337 四舍五入到 90.34, 可以这么写:
trace (Math.round(90.337 / .01) * .01); // 显示 : 9.34
trace (Math.round(92.5 / 5) * 5); // 显示 : 95
trace (Math.round(92.5 / 10) * 10); // 显示 : 90

更好的办法是用自定义函数 NumberUtilities.round( ) ,它需要两个参数:
number :要舍入的数字
roundToInterval :间隔值
NumberUtilities 类在 ascb.util 包中。
imported ascb.util.NumberUtilities 导入
trace(NumberUtilities.round(Math.PI)); // 显示 : 3
trace(NumberUtilities.round(Math.PI, .01)); // 显示 : 3.14
trace(NumberUtilities.round(Math.PI, .0001)); // 显示 : 3.1416
trace(NumberUtilities.round(123.456, 1)); // 显示 : 123
trace(NumberUtilities.round(123.456, 6)); // 显示 : 126
trace(NumberUtilities.round(123.456, .01)); // 显示 : 123.46

不同数字类型之间的转换

在 ActionScript 中不管你怎么设置数字,它的内部结果总是以十进制存贮:
// 创建颜色对象
var pink:ColorTransform = new ColorTransform( );
// 用十六进制设置 RGB
pink.rgb = 0xF612AB;
// 显示这个值时: 16126635
trace(pink.rgb);
如果你要输出为其他表示法,用 toString( radix ) 方法
下面的例子用构造 uint 对象,输出不同的格式:
// radix 为 2, 输出二进制
trace(new uint(51).toString(2)); // 显示: 110011
// radix 为 16, 输出十六进制
trace(new uint(25).toString(16)); // 显示: 19
var quantity:Number = 164;
trace(quantity.toString(16)); // 显示: a4

用 parseInt( ) 函数把字符串转换为十进制数,用 Number , uint , 或 int 对象 的 toString( ) 方法转换为字符串。

下面的例子设置 ColorTransform 对象的 RGB 值,调用 toString( ) 以十六进制显示
var pink:Color = new ColorTransform( );
pink.rgb = 0xF612AB;
trace(pink.rgb.toString(16)); // 显示: f612ab
toString( ) 方法的参数值的合法范围在 2 到 36 ,如果没有指定参数值,默认为 10 。和 toString( ) 相反的是parseInt( ) 函数。它把指定的字符串转换为数字。
下面的代码把各种字符串,输出十进制数。
trace(parseInt("110011", 2)); // 显示 : 51

trace(parseInt("19", 16)); // 显示 : 25
trace(parseInt("17", 10)); // 显示 : 17
如果不指定字符串进制,默认为十进制,除非在字符串前加上 0x, 0X, 或 0 :
trace(parseInt("0x12")); // 显示 : 18
trace(parseInt("017")); // 显示 : 15
下面的例子给出的字符串格式和指定进制冲突,这时会默认为十进制
// 但是下面的字符串是不合法的数字,因此返回 0
trace(parseInt("0x12", 10)); // 显示 : 0
下面的字符串为八进制,但指定为十进制,因此系统默认字符串为十进制,而不是八进制。
trace(parseInt("017", 10)); // 显示 17
trace(parseInt("A9FC9C")); // NaN

今天终于想学习一些Flex的东西,先看一下AS的类吧

     在ActionScript 3 中,类是最基本的编程结构,所以必须先掌握编写类的基础知识。对于初学者,所以得类都必须放在 .as 文件中,每个 as 文件里只能定义一个 public 类,而且类名字要与文件名相同。比如:你的类名为 Example , 那么文件名必须为 Example.as.在 ActionScript 3.0 中所有的类都必须放在包中。包是对类进行分类的单位,其意义相当于文件系统的目录。包路径相对于 classpath (类路径) , 默认的类路径就是项目的根目录(就是包含 mxml文件的所在目录),因此顶级的包目录就是项目根目录。包申明如下:

package name {
}

如果类定义在顶级包中,那么包名可以不指定,如:
package {
}
当类文件保存在子目录,那么包名就是它的保存目录,例如,文件保存在 example 目录 , 那么包这样申明:
package example {
}
如果类文件保存在 example 目录的子目录 subpackage , 应这样申明 :
package example.subpackage {
}
包是很重要的,它可以避免类名称空间冲突。例如,有两个开发者写了两个类文件都叫MessageManager . 这两个类虽有相同名字,但是完成不同的任务,因此你不能把这两个类放在一起,如果这样做,编译器将不知道调用哪个,一个办法是取个唯一的类名字。你可以取名字叫 EmailManager 和 BinarySocket- MessageManager , 这是可以的,但是如果你 管理成千上万的类这时就很困难了。因此用包可以很好的解决这个问题,即使你有很多相同的类名,只要它们不在同一个包就不会冲突,如把 MessageManager 放在 net.messaging.email 包另一个放在 net.messaging.binarysocket 包中。
一般取包名都以自己的网站域名,这样可以最大限度避免和别人的包名相冲突。