2016-11-29 9 views
1

Im пытается перенести скрипт из обработки в as3. Я не знаю, обработку на всех, и у меня возникают проблемы с пониманием определенной строки кода (обработки):Перенос обработки на ActionScript 3 - понимание типа данных цвета

color[] unsorted = new color[sortLength]; 

цвет, кажется, тип данных в обработке, но здесь реализация выглядит как массив. Есть ли какой-то тип данных массива цветов, который я потерял?

+1

Это похоже на массив, который копируется. Имя массива - цвет [], но это не имеет никакого отношения к типу данных цвета. Возможно, этот массив заполнен значениями типа данных цвета? См. Ссылку: цвет c1 = цвет (204, 153, 0); – Kokodoko

ответ

4

color типа в обработке, по существу, в int: 0xAARRGGBB

Вы также можете видеть, что это тип, возвращаемый функцией color().

выше будет переводить:

var sortLength:uint = 10; 
var unsorted:Vector.<uint> = new Vector.<uint>(sortLength,true); 
trace("unsorted",unsorted); 

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

В противном случае var unsorted:Array = new Array(sortLength); должен делать. (Это будет немного менее эффективно, так как массив может содержать несколько типов, а не только uint и размер динамический)

+0

Спасибо, это было то, что я думал. Именно поэтому я понимаю обработку: «color [] unsorted =» мы типизируем массив, называемый unsorted, чтобы освободить место для 10 записей, но только типа цвета? То же, что вы делаете: Вектор. ? –

+1

@DavidLamm Почти: вы видите это как литье типов, потому что вы смотрите на синтаксис обработки так, как будто это as3, а это не так: это Java. В Java вы не используете ключевое слово 'var', вы сначала указываете тип переменной. Например, в as3 '' 'var myInt: int = 0;' '' будет '' 'int myInt = 0;' '' в Processing/java (даже c/C++). Аналогично '' 'var myIntArray: Vector. = новый Векторный. (10, true); '' 'будет' '' int [] myIntArray = new int [10]; '' 'in Processing). Короче говоря: да, он создает массив фиксированного размера того же типа, но нет, это не типизация. HTH –

+0

Отличный ответ, спасибо –