TITLE:Chapter 1: Basic Data Types #contents * Basic Data Types [#Basic_Data_Types] - このセクションでは SWF ファイルフォーマットの、(複雑なデータ構造の元となる) Basic data types を記述する。 - SWF ファイルフォーマットにおける他の全ての構造は、これらの基礎的な型から作られる。 ** Coordinates and twips [#Coordinates_and_twips] - SWF ファイルフォーマットは x-y 座標を、twip と通常呼ばれる整数で保存する。 - SWF ファイルフォーマットの twip は論理 pixel の 1/20 である。 - 論理 pixel はスクリーン上で(訳注: 拡大縮小せずに)100% スケールで再生したときの pixel である。例えば、800 twips x 400 twips の長方形は、40 x 20 の論理 pixel にレンダリングされる。 - 少数点以下の pixel サイズはアンチエイリアシングで近似される。790x390 twips ( 39.5 x 19.5 pixels) は少しぼやけたエッジで表される。 - twips はサイズと精度の良い折衷案である。これによって、極小な座標を処理している間も、ズーミングやオブジェクトの正確な配置に際して、sub-pixel(訳注: 1 pixel 以下)に対する正確さがもたらされる。 - SWF ファイルフォーマットの座標は、伝統的なグラフィックの座標軸を持つ。 -- x は水平方向に、左の最小値から右の最大値まで続く。 -- y は垂直方向で、上の最小値から下の最大値に続く。 ** Integer types and byte order [#Integer_types_and_byte_order] - SWF ファイルフォーマットは 8-bit, 16-bit, 32bit, 64-bite, signed, unsigned の整数型を使う - 全ての整数値は SWF ファイルに little-endian の byte order で格納される。 -- 最小位 bit (LSB)が初めに格納され、最上位 bit (MSB)が最後に格納される。この方式は Intel x86 アーキテクチャと同じ。 - SWF ファイルフォーマットのバイト中の bit order は big-endian である。 -- 最上位 bit (MSB)が初めに格納され、最小位 bit (LSB)が最後に格納される。 - 例) -- 32-bit 値 0x456e7120 は 20 71 6e 45 として格納される。 -- 16 bit 値 0xe712 は 12 e7 として格納される。 - 全ての整数型は byte-aligned (訳注: bit-packing 等で byte 境界を跨がないように、byte の頭に揃えて保存する事) されなければならない。 -- すなわち、整数値の最初の bit は、SWF ファイルの byte の最初の bit に保存しなければならない。 - 符号あり整数(Signed integers) は伝統的な 2 の補数の bit パターンで表現される。 - いまどきのプラットフォームで表現される符号あり整数、そのものである。 - 2の補数のシステムでは、負の数は最初の bit が 1 であり、0 や正の数は最初の bit が 0 である。 - 負の値 -n は正の値 n-1 のビットを反転したものとして表現される。 -整数型 | 型 | コメント |h | SI8 | 符号付き 8-bit 整数値 | | SI16 | 符号付き 16-bit 整数値 | | SI32 | 符号付き 32-bit 整数値 | | SI8[n] | 符号付き 8-bit の配列、n は配列の要素数 | | SI16[n] | 符号付き 16-bit の配列、n は配列の要素数 | | UI8 | 符号なし 8-bit 整数値 | | UI16 | 符号なし 16-bit 整数値 | | UI32 | 符号なし 32-bit 整数値 | | UI8[n] | 符号なし 8-bit の配列、n は配列の要素数 | | UI16[n] | 符号なし 16-bit の配列、n は配列の要素数 | | UI32[n] | 符号なし 32-bit の配列、n は配列の要素数 | | UI64[n] | 符号なし 64-bit の配列、n は配列の要素数 | ** Fixed-point numbers [#Fixed-point_numbers] - SWF ファイルフォーマットは 32-bit と 16-bit の2つの固定小数点数(fixed-point numbers)の型をサポートしている。 - 32-bit 固定小数点数は 16.16 である。 - すなわち、上位 16 bits が小数点の前の数を表わし、下位 16 bits が小数点の後の数を表わす。 - FIXED 値は SWF ファイルに 32-bit 整数のように格納され(little-endian byte order が使われる)、byte aligned でなければならない。 - 例) -- 実数の 7.5 は 以下のと同じ: 0x0007.8000. -- この値は SWF ファイルに以下のように保存される: 00 80 07 00. - SWF 8 とそれ以降では、16-bit 8.8 符号つき、固定小数点数をサポートしている。 - 上位 8 bits は小数点の前の数を表わし、下位 8 bits は小数点の後の数を表わす。 - FIXED8 値は SWF ファイルに 16-bit 整数のように格納され(little-endian byte order が使われる)、byte aligned でなければならない。 - 固定小数型 | 型 | コメント |h | FIXED | 32-bit 16.16 fixed-point number | | FIXED8 | 16-bit 8.8 fixed-point number | ** Floating-point numbers [#Floating-point_numbers] ** Encoded integers [#Encoded_integers] ** Bit values [#Bit_values] ** Using bit values [#Using_bit_values] ** String values [#String_values] ** Language code [#Language_code] ** RGB color record [#RGB_color_record] ** RGBA color with alpha record [#RGBA_color_with_alpha_record] ** ARGB color with alpha record [#ARGB_color_with_alpha_record] ** Rectangle record [#Rectangle_record] ** MATRIX record [#MATRIX_record] ** Color transform record [#Color_transform_record] ** Color transform with alpha record [#Color_transform_with_alpha_record] |