我正在努力将Java类移植到AS3。该类的大多数内容涉及位级编程。我遇到过用Java编写的代码:
int pixels[] = new int[width * height];
short gpixels[] = new short [width * height];
在代码中我还会遇到这样的事情:
gpixels[i]
AS3中这两个变量的等价物是什么。它们是ByteArrays还是整数?我认为“short”是一个16位整数,“int”是一个32位整数。
答案 0 :(得分:7)
ActionScript没有short,long,float,double等......
您可以将数字类型映射到int,uint或Number。
Java type AS3 type ----------------- -------------- java.lang.Integer int java.lang.Short int java.lang.Long Number java.lang.Double Number java.lang.Float Number AS3 int limits: -2147483647 to 2147483647 AS3 uint limits: 0 to 4294967295 AS3 Number limits: -1.79769313486231e+308 to 1.79769313486231e+308
AS3 Number是IEEE-754双精度浮点数
AS3具有字节和按位操作。
答案 1 :(得分:1)
当您说明数据类型的大小时,您是正确的,short是16位,int是32位。我发现我经常看到有人试图在数组中保存内存时使用short - 短裤毕竟是整数的一半。
根据实际数组的大小,以及您对该位置存储的值(颜色代码等)的处理方式,您可能希望坚持使用尽可能小的数据类型。
一个640 x 480整数的数组至少需要1,228,800个字节,没有开销,而一个640 x 480短的数组只需要614,400个字节。
如果有疑问,请使用尽可能少的内存,尤其是在使用缓冲区快速消耗大量内存的图形环境中。