Портирование Java на AS3 - PullRequest
       33

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

2 голосов
/ 21 октября 2011

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

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

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

gpixels[i]

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

Ответы [ 2 ]

7 голосов
/ 21 октября 2011

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

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

1 голос
/ 21 октября 2011

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

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

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

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

...