2

我正在将 Java 类移植到 AS3。该课程的大部分内容都涉及位级编程。我遇到过用 Java 编写的这段代码:

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

在代码中,我遇到了这样的事情:

gpixels[i]

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

4

2 回答 2

7

ActionScript 没有 short、long、float、double 等...

您可以将数值类型映射到 int、uint 或 Number。

Java 类型 AS3 类型
----- --------------
java.lang.Integer 整数
java.lang.Short int
java.lang.Long 数字
java.lang.Double Number
java.lang.浮点数

AS3 整数限制:-2147483647 到 2147483647
AS3 uint 限制:0 到 4294967295
AS3 数量限制:-1.79769313486231e+308 到 1.79769313486231e+308

AS3 Number 是 IEEE-754 双精度浮点数

AS3 具有字节和位操作。

于 2011-10-21T06:08:16.323 回答
1

当您说明数据类型的大小时,您是正确的,short 是 16 位,int 是 32 位。我发现我最常看到在有人试图在数组中保存内存时使用 short - 毕竟,shorts 是整数大小的一半。

根据实际数组的大小以及您对存储在该位置的值的处理方式(颜色代码等),您可能希望坚持使用尽可能小的数据类型。

一个 640 x 480 整数的数组将至少占用 1,228,800 字节,没有开销,而一个 640 x 480 的数组将只占用 614,400 字节。

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

于 2011-10-21T05:44:45.663 回答