シェイプ_シェイプの構造_線スタイル - hsk/swfspec_ja GitHub Wiki
線スタイル
線スタイルは線のスタイルを列挙します。
LINESTYLEARRAY
| フィールド | 型 | コメント |
|---|---|---|
| LineStyleCount | UI8 | 線スタイルの数 |
| LineStyleCountExtended | If LineStyleCount = 0xFF, UI16 | 線スタイルの拡張カウント |
| LineStyles | If Shape1, Shape2, or Shape3, LINESTYLE[count]If Shape4, LINESTYLE2[count] | 線スタイルの配列 |
LINESTYLE
LINESTYLE は線の太さと色を表現します。
| フィールド | 型 | コメント |
|---|---|---|
| Width | UI16 | twips 単位の線の太さ |
| Color | RGB (Shape1 or Shape2)RGBA (Shape3) | 色の値Shape3 はアルファ情報付き |
SWF 8 で LINESTYLE2 が追加される前まで、全ての線は丸いキャップと
丸い連結を使っていました。他のキャップと連結を使うときは
極細の線を使っていました。
SWF ファイルフォーマットでは点線をサポートしていません。
点線を使うときは短い線をいくつも使って擬似点線を作ってください。
LINESTYLE2
LINESTYLE2 は LINESTYLE レコードが拡張されたもので、新しい連結とキャップ、スケーリングオプションと線の塗りが追加されました。 LINESTYLE2 を使うときは DefineShape, DefineShape2, DefineShape3 タグではダメで、DefineShape4 を使う必要があります。
LINESTYLE は丸い連結と丸いキャップのみサポートされていましたが、LINESTYLE2 では マイター連結、べベル連結、矩形キャップ、キャップなしが選択できます。 次の図は、全てのキャップと連結を表しています。

LINESTYLE2 でマイター連結を使うとき、MiterLimitFactor を必ず指定し、最大マイター長を計算する必要があります。
最大マイター長 = LINESTYLE2.MiterLimitFactor * LINESTYLE2.Width
マイター連結が最大マイター長を超えた場合、Flash Player は マイターを切断します。 MiterLimitFactor は 8.8 の固定小数点形式です。
LINESTYLE2 にはピクセルヒンティングオプションもあり、垂直または水平線にきちんとにじみをかけます。
| フィールド | 型 | コメント |
|---|---|---|
| Width | UI16 | twips 単位の線の太さ |
| StartCapStyle | UB[2] | 最初のキャップスタイル0 = 丸いキャップ1 = キャップなし2 = 四角いキャップ |
| JoinStyle | UB[2] | 連結スタイル0 = ラウンドジョイン1 = べベルジョイン2 = マイタージョイン |
| HasFillFlag | UB[1] | 1: FillType で指定された塗り0: Color で指定された塗り |
| NoHScaleFlag | UB[1] | 1: 水平方向にオブジェクトが伸ばされた時に線の太さを変えない |
| NoVScaleFlag | UB[1] | 1: 垂直方向にオブジェクトが伸ばされた時に線の太さを変えない |
| PixelHintingFlag | UB[1] | 1: 全てのアンカーの位置がピクセル単位に整列される |
| Reserved | UB[5] | 常に 0 |
| NoClose | UB[1] | 1: 線の最後の位置が最初の位置と合っていない時、パスを閉じない。FlashPlayer は連結の変わりに端にキャップを適用する。 |
| EndCapStyle | UB[2] | 最後のキャップスタイル0 = 丸いキャップ1 = キャップなし2 = 四角いキャップ |
| MiterLimitFactor | If JoinStyle = 2, UI16 | 8.8 固定小数点形式 |
| Color | If HasFillFlag = 0, RGBA | アルファ付きの色の値 |
| FillType | If HasFillFlag = 1, FILLSTYLE | このパスに適用する塗り |