Más contenido relacionado
La actualidad más candente (10)
SWF研究会#2 LT フォントとテキスト
- 4. フォントとテキストのタグ
DefineFont, DefineFontInfo, DefineFontInfo2,
DefineFont2, DefineFont3,
DefineFontAlignZones, DefineFontName,
DefineText, DefineText2, DefineEditText,
CSMTextSettings, DefineFont4
- 5. フォントとテキストのタグ
DefineFont, DefineFontInfo, DefineFontInfo2,
DefineFont2, DefineFont3,
DefineFontAlignZones, DefineFontName,
DefineText, DefineText2, DefineEditText,
CSMTextSettings, DefineFont4
DefineFont + DefineFontInfo → DefineFont2
DefineTextのTextColorをRGBAに → DefineText2
- 6. 各タグの関係
PlaceObject2 DefineText DefineFont
CharacterID=3 CharacterID=3 FontID=1
TEXTRECORD
FontID=1
DefineFont2
TEXTRECORD
StyleFlagsHasFont=0
FontID=2
TEXTRECORD
FontID=2
…
PlaceObject2 DefineEditText
CharacterID=4 CharacterID=4
FontID=2
- 7. DefineFont2
OffsetTable GlyphShapeTable
DefineFont2 UI16[NumGlyphs] or UI32[NumGlyphs] SHAPE[NumGlyphs]
FontID グリフ0のシェイプへのオフセット グリフ0のシェイプ
グリフ1のシェイプへのオフセット
FontFlagsShiftJIS
FontFlagsWideOffsets グリフ2のシェイプへのオフセット グリフ1のシェイプ
FontFlagsWideCodes
…
グリフ2のシェイプ
FontName
NumGlyphs CodeTable
UI8[NumGlyphs] or UI16[NumGlyphs]
OffsetTable
…
CodeTableOffset グリフ0の文字コード
GlyphShapeTable
グリフ1の文字コード
CodeTable
EM square
…
FontAdvanceTable
Q
FontAdvanceTable
1024
SI16[NumGlyphs]
グリフ0の字送り幅
グリフ1の字送り幅
…
1024
- 9. DefineText
DefineText
TextMatrix PlaceObjectのMatrix
TextRecords
TEXTRECORD
FontID
TextColor TextMatrix
XOffset
YOffset
TextHeight XOffset, YOffset
GlyphEntries
TEXTRECORD
僕と契約して
GLYPHENTRY
GlyphIndex TextHeight
DefineFont2
GlyphAdvance
GlyphAdvance
GLYPHENTRY
魔法少女になってよ
…
TEXTRECORD TEXTRECORD
TEXTRECORD
…
- 10. DefineEditText
DefineEditText
DefineTextとは異なり文字の位置取り等を自分で
UseOutlines
WordWrap 制御する必要がある
Align
LeftMargin
RightMargin
Indent グリフテキストの場合 (UseOutlines=1)
Leading ● DefineFont2のCodeTableから、文字
コード→グリフインデックス
LeftMargin RightMargin ● グリフインデックスからシャイプや字送
り幅を得る
Indent
デバイステキストの場合 (UseOutlines=0)
Leading
● 再生環境のテキスト描画機能を使用
● HTML5 Canvasでは
○ measureText()
○ fillText()
字送り幅はDefineFont2のFontAdvanceTable