第1回 ダイナミックテキスト | デザインってオモシロイ -MdN Design Interactive-
【サイトリニューアル!】新サイトはこちらMdNについて
イチから始めたい人、リトライしたい人のためのFlashのABC

Lesson6 テキスト

第1回 ダイナミックテキスト


Flashのテキストには、通常の文字の描画として扱う「静止テキスト」、ActionScriptで表示をダイナミックに更新できる「ダイナミックテキスト」、ユーザーが入力するフォームなどに使う「テキスト入力」の3種類がある。今回は、ダイナミックテキストについて学習していこう。ダイナミックテキストのオブジェクトのことを「TextFieldオブジェクト」と呼び、これにActionScriptを設定することで、テキストブロックの内容を更新することができる。

解説:北川貴清
※「FlashのABC」の本文中の解説で使用しているサンプルデータは、別ページでダウンロードができます。


■Summary:「ダイナミックテキスト」の基本
ダイナミックテキストを作成するには、「テキストツール」でステージにテキストブロックを描画し、プロパティインスペクタでダイナミックテキストを設定する【図1】【図2】。

【図1】テキストブロックを描画し、ハンドルをドラッグするとテキストブロックのサイズを変更できる
【図1】テキストブロックを描画し、ハンドルをドラッグするとテキストブロックのサイズを変更できる

【図2】プロパティインスペクタの設定。図中の番号と照らし合わせながら下の解説を見ていこう
【図2】プロパティインスペクタの設定。図中の番号と照らし合わせながら下の解説を見ていこう

(1)テキストの種類
[ダイナミックテキスト]に設定する

(2)インスタンス名
テキストブロックにインスタンス名を設定する

(3)行タイプ
[単一行](1行だけを表示)、[複数行](複数行で表示)、[折り返しなし](折り返さずに表示)から選択する

(4)テキストをHTMLとしてレンダリング
HTMLタグの基本的な書式 (フォント、スタイル、カラー、サイズなど) およびハイパーリンクを適用することができる

(5)テキストの周囲にボーダーを表示
テキストブロックの周りを枠線で囲む

(6)テキストオプションの編集
文字を選択して、フォントを埋め込むことができる

ダイナミックテキストで座標を表示


それでは、ダイナミックテキストを使って、マウスに追随しながらXY座標を表示するコンテンツを作ってみよう。ダイナミックテキストにフォントを埋め込んで、アンチエイリアス表示させる。


【サンプル1】目盛りの範囲内にマウスを移動すると、マウスのXY座標値がリアルタイムで表示される

1.[名前:base]、[タイプ:ムービークリップ]の新規シンボルを作成する。基準点が(0,0)となるようにXY軸ともに「0~300px」の目盛りを描画する【図3】。

【図3】座標を表示する範囲となる目盛りのムービークリップシンボルを作成
【図3】座標を表示する範囲となる目盛りのムービークリップシンボルを作成

2.[名前:zahyo]、[タイプ:ムービークリップ]の新規シンボルを作成する。左下を基準点に3桁のXY座標が表示できるように「000」と記入したテキストボックスを描画する。X座標を表示するテキストボックスを選択し、プロパティインスペクタで、[テキストの種類:ダイナミックテキスト]、[インスタンス名:x_txt]に設定する【図4】。

【図4】テキストボックスを配置し、プロパティインスペクタを設定する
【図4】テキストボックスを配置し、プロパティインスペクタを設定する

3.プロパティインスペクタの[埋め込み...]ボタンをクリックして、[文字の埋め込み]ダイアログボックスを表示する。「数字[0..9](11文字)」を選択して、[OK]ボタンをクリックする【図5】。これでswfファイルに現在選択しているフォントの数字を埋め込むことができる。手順2、3をY座標についても同様に設定する。

【図5】[文字の埋め込み]ダイアログボックスで埋め込む文字セットを選択する
【図5】[文字の埋め込み]ダイアログボックスで埋め込む文字セットを選択する

■Point!
フォントはすべての文字を埋め込むことができる。しかし、日本語フォントの場合、すべての文字を埋め込むとファイルサイズが膨大になりすぎて、webで公開するのに適さない。文字の埋め込みは欧文フォントや、日本語フォントの場合、かな文字程度にするのがよいだろう。また、アンチエイリアスをかけない場合は、[フォント]を_ゴシック、_明朝、_等幅、_sans、_serif、_typewriterのいずれかに設定して、フォントを埋め込まずにデバイスフォントを使用することも可能だ。

4.「シーン1」に戻り、「base」レイヤーを作成して、ステージにムービークリップシンボル「base」を配置し、インスタンス名を「base_mc」に設定する。次に、「zahyo」レイヤーを作成して、ステージの外側に「zahyo」を配置し、インスタンス名を「zahyo_mc」に設定する【図6】。

【図6】ムービークリップシンボルを配置して、インスタンス名を設定する。「zahyo_mc」は初期位置が表示されないようにステージの外側に配置しよう
【図6】ムービークリップシンボルを配置して、インスタンス名を設定する。「zahyo_mc」は初期位置が表示されないようにステージの外側に配置しよう

5.新規レイヤー「action」を作成する。[フレーム1]を選択し、[アクション]パネルにムービークリップ「zahyo_mc」がマウスに追随し、ダイナミックテキストにXY座標を表示する処理を設定する【図7】。座標の内容を変更するにはTextFieldオブジェクトの「text」プロパティを設定すればよい。[制御]→[ムービープレビュー]で確認しよう。

【図7】「zahyo_mc」の位置とダイナミックテキストの内容を設定するActionScriptを記述
【図7】「zahyo_mc」の位置とダイナミックテキストの内容を設定するActionScriptを記述

this.onEnterFrame = function(){
// マウスの位置
xm = _root._xmouse;
ym = _root._ymouse;

// base_mcの位置
bx = base_mc._x;
by = base_mc._y;

// 座標を表示する範囲を設定
if( xm >= bx && xm <= bx + 300 && ym >= by - 300 && ym <= by ){
// zahyo_mcを表示する
zahyo_mc._visible = true;

// zahyo_mcの位置をマウスの位置に設定
zahyo_mc._x = xm;
zahyo_mc._y = ym;

// XY座標値をダイナミックテキストに設定
zahyo_mc.x_txt.text = xm - bx;
zahyo_mc.y_txt.text = ym - by;
}
else{
// zahyo_mcを非表示にする
zahyo_mc._visible = false;
}
};


フレームが再生されるたびに、マウスの位置(xm,ym)が目盛りのある範囲内ならば、

(1)
ムービークリップ「zahyo_mc」のX座標をマウスのX座標「xm」に設定

(2)
ムービークリップ「zahyo_mc」のY座標をマウスのY座標「ym」に設定

(3)
テキストフィールド「zahyo_mc.x_txt」のテキストの内容をX座標値「xm - bx」に設定

(4)
テキストフィールド「zahyo_mc.y_txt」のテキストの内容をY座標値「ym - by」に設定

※XY座標値は「base_mc」の基準点から見た相対座標で編集画面上のXY座標値とは異なるので注意してほしい。


サンプルをダウンロードする


次回につづく


著者写真 [プロフィール]
きたがわ・たかきよ●1972年8月生まれ。三重県出身。三重大学工学部卒業。大阪を拠点としてwebデザインを中心に活動中。著書に『Flash8デザインスクール for Win & Mac 』『ネタ帳ビギナーズ FLASHテンプレート集 』
http://www.f-l-a-v-o-r.com
twitter facebook このエントリーをはてなブックマークに追加 RSS
【サイトリニューアル!】新サイトはこちらMdNについて

この連載のすべての記事

アクセスランキング

8.30-9.5

MdN BOOKS|デザインの本

Pick upコンテンツ

現在