ページへ戻る

− Links

 印刷 

Starling+Feathersで縦書き :: NJF Wiki

xpwiki:Starling+Feathersで縦書き

ActionScript編集[1]で縦書きする場合、CPUレンダリングではTextBlock編集[2]クラスで可能です。

FeathersではTextBlockTextRenderer編集[3]クラスでTextBlock編集[2]をGPUレンダリングしてくれるのですが、2015年5月現在、まだ縦書きには対応していないようです。

しかし、Feathersのソースコードを一部変更すれば簡単に縦書き表示が可能となります。

大きく分けて3カ所修正が必要です。TextRotation編集[4].ROTATE_90が指定されているときは

  • 行の幅を高さに修正
  • 行のx座標を少し左に(そのままでは描画領域からはみ出すので)
  • 中心寄せ、右寄せ、左寄せの計算をxからy、widthからheightに変更

です。

Feathers ver 2.1.1でその変更を行ったTextBlockTextRenderer編集[3].asは以下の添付ファイルで

使うときは以下のような感じで。

var textRenderer:TextBlockTextRenderer = new TextBlockTextRenderer();
var fontDescription:FontDescription = new FontDescription( MY_MAIN_FONT_NAME, FontWeight.NORMAL,
	FontPosture.NORMAL, FontLookup.EMBEDDED_CFF, RenderingMode.CFF, CFFHinting.NONE );
var ef:ElementFormat = new ElementFormat( fontDescription,fontSize, color );
ef.locale = "ja";
textRenderer.elementFormat = ef;
textRenderer.width = width;
textRenderer.height = height;
textRenderer.wordWrap = true;
textRenderer.lineRotation = TextRotation.ROTATE_90;
textRenderer.text = "いろはにほへと ちりぬるを";
addChild(textRenderer);

Last-modified: 2015-05-21 (木) 16:24:43 (JST) (3256d) by njf