2016-11-29 70 views
1

我試圖將腳本從處理移植到as3。我在不知道的所有處理,我無法理解的代碼(處理)的具體路線:移植處理到actionscript 3 - 理解顏色數據類型

color[] unsorted = new color[sortLength]; 

顏色似乎是在處理數據類型,但是這裏的實現看起來更像是一個數組。有沒有我缺少的某種顏色數組數據類型?

+1

這看起來像是一個複製的數組。數組的名稱是color [],但與顏色數據類型無關。也許這個數組填充了顏色數據類型的值?見參考:color c1 = color(204,153,0); – Kokodoko

回答

4

color類型的處理基本上是一個int0xAARRGGBB

你也可以看到,這是由color()函數的返回類型。

以上會轉化爲:

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

,如果你想保持相同類型的高效,固定大小的列表,以鏡面處理的行爲儘可能也就是說。

否則var unsorted:Array = new Array(sortLength);應該做的。 (因爲Array可以保存多種類型,所以效率會稍差一些,不僅僅是uint,而且大小也是動態的)

+0

謝謝你,那是我的想法。只是所以我理解處理:「顏色[] unsorted =」我們是否稱爲未分類的數組來騰出10個入口的空間,但只有顏色類型? 與您正在做的一樣:Vector。 ? –

+1

@DavidLamm差不多:你把它看作是類型轉換,因爲你看着Processing語法就好像它是as3,它不是:它實際上是java。在Java中,您不使用'var'關鍵字,您只需首先指定變量類型。例如,在as3中,var myInt:int = 0;在Processing/java(甚至是c/C++)中'''int myInt = 0;'''。同樣''var myIntArray:Vector。 =新的矢量。 (10,true);'''在Processing中是'''int [] myIntArray = new int [10];''')。長話短說:是的,它創建了一個固定大小的相同類型的數組,但不是,它不是類型轉換。 HTH –

+0

很好的答案,謝謝 –