トップページ > Flash入門 > テキスト関係(2)
TextFormatクラスであらかじめフォントやサイズを設定し,それをTextFieldに登録することで反映させます。
package { import flash.display.Sprite; import flash.events.Event; //text関係のクラスをすべて読み込む import flash.text.*; //画面サイズと背景色,フレームレートを設定 [SWF(width="300", height="300", frameRate = "60", backgroundColor="0xffffcc")] public class Main extends Sprite { //main関数 public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } //コンストラクタ private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point //TextField "tf" を用意する var tf:TextField = new TextField(); //表示内容 tf.text = "Alphabet ひらがな 漢字" //テキストフィールドの寸法を自動調整 tf.autoSize = TextFieldAutoSize.LEFT; //============================================================ //フォントを設定するためにTextFormatオブジェクトを作る var format:TextFormat = new TextFormat; //サイズ format.size = 24; //フォント format.font = "Arial" //文字色 format.color = 0x000000; //作成したformatをTextFieldに登録 tf.setTextFormat(format); //============================================================ //表示する addChild(tf); } } }
TextFormatのオブジェクトを“format”という名前で作り,そのフィールドの“size”,“font”などの内容を編集します。 既に作成済みのTextField(今回は“tf”という名前)に setTextFormat()関数を使って登録します。
TextFormatの設定可能なプロパティの中で,よく使いそうなものをまとめました。
プロパティ名 | 説明 | 使用例 |
---|---|---|
size | 文字の大きさ | format.size = 24 |
font | 文字フォント | format.font = "Arial" |
color | 文字色 | format.color = 0x000000 |
よく使いそうなフォントを一通りならべておきます。 (自分のPCで表示可能なフォントでも,別の人のPCにそのフォントのデータが入っていない場合, その人がFlashを見た時にはデフォルトのTimes New Romanになってしまいます。 どうしてもそのフォントにこだわる場合はソース自体にフォントを内蔵させる必要があります。 個人的には無難なフォントを使えばいいかなあと思うので,その辺は割愛します。)
上のFlashのソースコードも出しておきます。
package { import flash.display.Sprite; import flash.events.Event; //text関係のクラスをすべて読み込む import flash.text.*; //画面サイズと背景色,フレームレートを設定 [SWF(width="300", height="300", frameRate = "60", backgroundColor="0xffffcc")] public class Main extends Sprite { //TextFieldを用意する private var tf1:TextField = new TextField(); private var tf2:TextField = new TextField(); private var tf3:TextField = new TextField(); private var tf4:TextField = new TextField(); private var tf5:TextField = new TextField(); private var tf6:TextField = new TextField(); //TextFormatを用意する private var format1:TextFormat = new TextFormat(); private var format2:TextFormat = new TextFormat(); private var format3:TextFormat = new TextFormat(); private var format4:TextFormat = new TextFormat(); private var format5:TextFormat = new TextFormat(); private var format6:TextFormat = new TextFormat(); //main関数 public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } //コンストラクタ private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point //表示内容 tf1.text = "Times New Roman"; tf2.text = "Arial"; tf3.text = "Impact"; tf4.text = "MS 明朝"; tf5.text = "MS ゴシック"; tf6.text = "メイリオ"; //クラス変数に対して this["tf"+i]のように記述すると, //tf1, tf2, ... と順次アクセスできる for (var i:int = 1; i < 7; i++ ) { //tf1からtf6まで,一括してAutoSizeを設定する this["tf" + i].autoSize = TextFieldAutoSize.LEFT; //上下位置を設定 this["tf" + i].y = (i - 1) * 30 ; //画面に表示する addChild(this["tf" + i]); } //TextFormatも一括して設定する。 for (var i:int = 1; i < 7; i++ ) { //サイズ this["format" + i].size = 24; //フォント this["format" + i].font = this["tf" + i].text; //作成したformatをTextFieldに登録 this["tf"+i].setTextFormat(this["format"+i]); } } } }