4.2.不同数字类型之间的转换

问题
我要把当前数字类型转换为别的数字类型
解决办法
用parseInt( ) 函数把字符串转换为十进制数,用Number, uint, 或int 对象的toString( ) 方法转换为字符串。
讨论
在ActionScript中不管你怎么设置数字,它的内部结果总是以十进制存贮:
+展开
-ActionScript
// 创建颜色对象
var pink:ColorTransform = new ColorTransform( );
// 用十六进制设置RGB
pink.rgb = 0xF612AB;
// 显示这个值时:16126635
trace(pink.rgb);

如果你要输出为其他表示法,用toString( radix ) 方法
下面的例子用构造uint对象,输出不同的格式:
+展开
-ActionScript
// 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

下面的例子设置ColorTransform 对象的RGB值,调用toString( ) 以十六进制显示:
+展开
-ActionScript
var pink:Color = new ColorTransform( );
pink.rgb = 0xF612AB;
trace(pink.rgb.toString(16)); // 显示:f612ab
toString( ) 方法的参数值的合法范围在2到36,如果没有指定参数值,默认为10。

和toString( ) 相反的是parseInt( ) 函数。它把指定的字符串转换为数字。
下面的代码把各种字符串,输出十进制数。
+展开
-ActionScript
trace(parseInt("110011", 2)); // 显示: 51
trace(parseInt("19", 16)); // 显示: 25
trace(parseInt("17", 10)); // 显示: 17

如果不指定字符串进制,默认为十进制,除非在字符串前加上0x, 0X, 或0:
+展开
-ActionScript
trace(parseInt("0x12")); // 显示: 18
trace(parseInt("017")); // 显示: 15

下面的例子给出的字符串格式和指定进制冲突,这时会默认为十进制
+展开
-ActionScript
// 但是下面的字符串是不合法的数字,因此返回0
trace(parseInt("0x12", 10)); // 显示: 0

下面的字符串为八进制,但指定为十进制,因此系统默认字符串为十进制,而不是八进制。
+展开
-ActionScript
trace(parseInt("017", 10)); // 显示17
trace(parseInt("A9FC9C")); // NaN

加支付宝好友偷能量挖...


评论(0)网络
阅读(106)喜欢(0)flash/flex/fcs/AIR