トップページ > 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]);
}
}
}
}