トップページ > Flash入門 > テキスト関係(2)

テキストのフォントを変える

TextFormatクラスを使います

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クラスのプロパティ

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]);				
			}
		}
	}
}



前へ 戻る