2011-10-21 16 views
2

私はJavaクラスをAS3に移植しています。クラスの大部分は、ビットレベルのプログラミングを含んでいます。JavaをAS3に移植

gpixels[i] 

AS3でこれら二つの変数の同等とは何か:私はこのような何か間で実行コードにさらに上の

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

:私はJavaで書かれたこのコードに遭遇しました。彼らはByteArraysか整数か?私は「短い」は16ビットの整数で、「int」は32ビットの整数であると考えました。

答えて

7

ActionScriptは...など、短い、長い、float型、doubleを、持っていない

あなたは、UINT、または数値をint型に数値型をマップします。

 
Java type   AS3 type 
----------------- -------------- 
java.lang.Integer int 
java.lang.Short  int 
java.lang.Long  Number 
java.lang.Double  Number 
java.lang.Float  Number 

AS3 int limits: -2147483647 to 2147483647 
AS3 uint limits: 0 to 4294967295 
AS3 Number limits: -1.79769313486231e+308 to 1.79769313486231e+308 

AS3番号はIEEE-754倍精度浮動小数点数

AS3バイト及びビット演算を有しています。

+0

優秀、私はそれを知らなかった。これは、メモリを少し最適化することを難しくしますが、それは事をより簡単にします。情報のおかげで。 – Ewald

+0

これらがAS3の整数であれば、2番目のコードブロックに記載されている配列のような参照は何ですか? @wvxvw bytearraysでの読み書きの短いメソッドの使用になじみがない場合は、ここでベクターを使用するのが最善でしょうか? – user1006426

+0

var gpixels:Array;またはベクトルとして型付けされます:var gpixels:Vector。 =新しいベクター。 (); gpixels [i]; –

1

データ型のサイズを指定するときは、short型は16ビット、int型は32ビットです。私は誰かが配列のメモリを節約しようとしているところで、しばしばshortの使用を見ていることがわかりました - 結局のところ、shortsは整数の半分のサイズです。

実際の配列の大きさや、その位置(カラーコードなど)に格納されている値に応じて、可能な限り小さなデータ型に固執することができます。

640×480の整数の配列は、オーバーヘッドなしで少なくとも1,228,800バイトを取るが、640×480の短絡の配列は614,400バイトしか取らない。

疑わしいときは、できるだけ少ないメモリを使用してください。特に、バッファを使用して膨大なメモリをすばやく消費するグラフィック環境では、