Портирование Java на AS3

Я работаю над переносом класса Java на AS3. Большинство внутренностей класса включают программирование на битовом уровне. Я сталкивался с этим кодом, написанным на Java:

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

далее в коде я сталкиваюсь с чем-то вроде этого:

gpixels[i]

Что является эквивалентом этих двух переменных в AS3. Это ByteArrays или целые числа? Я думал, что short - это 16-разрядное целое число, а int - 32-разрядное целое.

2 ответа

Решение

ActionScript не имеет коротких, длинных, плавающих, двойных и т. Д.

Вы бы отобразили числовые типы на int, uint или Number.

Тип Java Тип AS3
-----------------    --------------
java.lang.Integer    int
java.lang.Short      int
java.lang.Long       Number
java.lang. Двойной номер
java.lang.Float      Number

AS3 int пределы: от -2147483647 до 2147483647
Пределы uint AS3: от 0 до 4294967295
Пределы номера AS3: -1,79769313486231e+308 до 1,77969313486231e + 308

AS3 - это число с плавающей точкой двойной точности IEEE-754

AS3 имеет побайтовые и побитовые операции.

Вы правы, когда вы указываете размеры типов данных, short равен 16 битам, а int равен 32 битам. Я обнаружил, что чаще всего вижу использование коротких, когда кто-то пытается сохранить память в массиве - шорты, в конце концов, вдвое меньше целых чисел.

В зависимости от того, насколько велик массив в действительности, и от того, что вы делаете со значением, хранящимся в этой позиции (цветовой код и т. Д.), Вы можете придерживаться наименьшего возможного типа данных.

Массив из 640 x 480 целых чисел занял бы по крайней мере 1 228 800 байт без издержек, в то время как массив 640 x 480 шорт занял бы всего 614 400 байт.

Если сомневаетесь, используйте как можно меньше памяти, особенно в графической среде, где вы быстро расходуете большие объемы памяти с буферами.

Другие вопросы по тегам