トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     動的に作ったTextFieldへのフォント、色の指定
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
funta
Åê¹ÆNo.48582
投稿日時: 2012-1-11 18:14
新米
居住地:
投稿: 19
使用環境:
Windows7 64bit,Flash CS5.5
動的に作ったTextFieldへのフォント、色の指定
こんにちは、質問させてください。

id_mcというMovieClipの中に、動的に作ったTextField(id_tField)をaddChildさせています。
id_tFieldは、「TextFieldType.INPUT」設定してあります。

id_tFieldに、TextFormatで「フォント」「色指定」しているのですが、うまく反映させられません。

・『 英数字 』を、システムのゴシック体で表示させたいだけなのですが、明朝体になります。
・日本語は、アンチなしのゴシック体で表示されます。

どう指定したら良いか、もしくは大きな勘違いしているようなら教えていただけると助かります。
よろしくお願いいたします。

スクリプトなどの情報が足りない場合はすみません。
追記します。



// テキストフィールドの設定
id_tField = new TextField();
id_tField.type = TextFieldType.INPUT;
			
id_tField.x = 10;
id_tField.y = 3;
id_tField.width  = 330;
id_tField.height = 20;
id_tField.maxChars = 30;
			
var fmt:TextFormat = new TextFormat();
fmt.color = 0xDDDDDD;		
fmt.font = "_sans";

//初回は、下記テキストを表示させて、フォーカスと同時に消しています。
//初回の"Please Input"には、fmtのcolorとfontが反映されますが、記述が始まるとfmtは無視?されて英数字は黒文字色の明朝になります。
//日本語は、黒文字色のアンチなしゴシック体です。
id_tField.text = "Please Input";

id_tField.setTextFormat(fmt);


/*
private function focusIn(e:FocusEvent):void {		
if(id_tField.text == "Please Input")id_tField.text = "";
}
*/
ひろゆき
Åê¹ÆNo.48583
投稿日時: 2012-1-11 19:10
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 動的に作ったTextFieldへのフォント、色の指定
まず、使用しているActionScriptのバージョンを明示すべきです。

次に、一気にスクリプトを記述しておかしい、おかしいと思う前に、
スクリプトを記述しながら、順を追ってパブリッシュすべきです。

その際、テキストフィールドの親オブジェクトであるMovieClipも
問題を混乱させる原因ですから、もっと単純な状態で検証すべきでしょう。

var id_tField:TextField = new TextField();
id_tField.type = TextFieldType.INPUT;
			
id_tField.x = 10;
id_tField.y = 3;
id_tField.width  = 330;
id_tField.height = 20;
id_tField.maxChars = 30;
と記述しても、通常であれば、テキストフィールドは表示されるはずですが、
この段階ですでにテキストフィールドは表示されていません。

つまり、TextFormatは全くの無関係です。
addChild();が抜け落ちています。

仮に、これが記載ミスだとするならば、もっとシンプルな構造のもので、実際に試し、
そのスクリプトを記載すべきでしょう。


----------------
質問する際は、回答者に具体的な情報を与えてください。

野中文雄
Åê¹ÆNo.48584
投稿日時: 2012-1-11 19:20
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 動的に作ったTextFieldへのフォント、色の指定
TextField. defaultTextFormatプロパティを使われたらいかがですか。
引用:
funtaさんは書きました:
id_mcというMovieClipの中に、動的に作ったTextField(id_tField)をaddChildさせています。
id_tFieldは、「TextFieldType.INPUT」設定してあります。

id_tFieldに、TextFormatで「フォント」「色指定」しているのですが、うまく反映させられません。
...[中略]...
// テキストフィールドの設定
id_tField = new TextField();
// ...[中略]...
var fmt:TextFormat = new TextFormat();
fmt.color = 0xDDDDDD;		
fmt.font = "_sans";

//初回は、下記テキストを表示させて、フォーカスと同時に消しています。
//初回の"Please Input"には、fmtのcolorとfontが反映されますが、記述が始まるとfmtは無視?されて英数字は黒文字色の明朝になります。
//日本語は、黒文字色のアンチなしゴシック体です。
id_tField.text = "Please Input";

id_tField.setTextFormat(fmt);


----------------
 

funta
Åê¹ÆNo.48585
投稿日時: 2012-1-11 23:49
新米
居住地:
投稿: 19
使用環境:
Windows7 64bit,Flash CS5.5
Re: 動的に作ったTextFieldへのフォント、色の指定
ひろゆきさん 野中さん

ご回答ありがとうございます!


>ひろゆきさん
すみません、addChild抜けてましたね。
実際のファイルでは、記述してあります。

addChildは、他スクリプト記述後の最後の最後に書いてあるので見逃していました。

AS3で記述です。


>野中さん
参考で、TextField. defaultTextFormatプロパティを挙げくださり、ありがとうございます。
こちらも追って試してみようかと思っていました。
ただ、他に重要なことを見逃してるかと思い、質問させてもらいました。


解決しました。
実際のスクリプト下記になります。

再度TextFormat作り、defaultTextFormatに代入しました。
これが実際に、まっとうな解答かどうかは。。


ありがとうございました!



// テキストフィールドの設定
id_tField = new TextField();
id_tField.type = TextFieldType.INPUT;
			
id_tField.x = 10;
id_tField.y = 3;
id_tField.width  = 330;
id_tField.height = 20;
id_tField.maxChars = 30;
			
var fmt:TextFormat = new TextFormat();
fmt.color = 0xDDDDDD;		
fmt.font = "_sans";

//初回は、下記テキストを表示させて、フォーカスと同時に消しています。
//初回の"Please Input"には、fmtのcolorとfontが反映されますが、記述が始まるとfmtは無視?されて英数字は黒文字色の明朝になります。
//日本語は、黒文字色のアンチなしゴシック体です。
id_tField.text = "Please Input";

id_tField.setTextFormat(fmt);


//------------------------------------------------------------
//ここを追記しました。

var secondFmt:TextFormat = new TextFormat();
secondFmt.color = 0x333333;
secondFmt.font = "_sans";
id_tField.defaultTextFormat = secondFmt;


//------------------------------------------------------------


/*
private function focusIn(e:FocusEvent):void {		
if(id_tField.text == "Please Input")id_tField.text = "";
}
*/
ひろゆき
Åê¹ÆNo.48608
投稿日時: 2012-1-12 16:11
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 動的に作ったTextFieldへのフォント、色の指定
リファレンスを読みましょう。

flash.text.TextField - Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド

setTextFormat
引用:
ユーザーによって手作業で挿入されたテキスト、または replaceSelectedText() メソッドを使用して置き換えられたテキストは、テキストの挿入か所に指定されているフォーマットではなく、新しいテキスト用のテキストフィールドのデフォルトフォーマットが適用されます。新しいテキスト用のデフォルトフォーマットを設定するには、defaultTextFormat を使用します。


----------------
質問する際は、回答者に具体的な情報を与えてください。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops