将Java移植到AS3

时间:2011-10-21 04:40:40

标签: java actionscript-3 bytearray byte short

我正在努力将Java类移植到AS3。该类的大多数内容涉及位级编程。我遇到过用Java编写的代码:

int pixels[] = new int[width * height];
short gpixels[] = new short [width * height];

在代码中我还会遇到这样的事情:

gpixels[i]

AS3中这两个变量的等价物是什么。它们是ByteArrays还是整数?我认为“short”是一个16位整数,“int”是一个32位整数。

2 个答案:

答案 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个字节。

如果有疑问,请使用尽可能少的内存,尤其是在使用缓冲区快速消耗大量内存的图形环境中。