メイン コーダーズルーム【スクリプト系】 テキストの長さによってフォントサイズを変更したいです。 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
silverdrop | Åê¹ÆNo.8128 投稿日時: 2004-6-8 16:57 |
新米 居住地: 投稿: 5
使用環境:
Win2000 Flash MX IE6.0 |
テキストの長さによってフォントサイズを変更したいです。 はじめまして。silverdropと申します。
よろしくお願いします。 外部テキストデータを読み込んで表示させようとしています。 そのテキストは、文字数が多い場合と少ない場合があるのですが、 テキストフィールドの幅は決まっていて、それでもできるだけ大きく表示したいため、 テキストが長い場合にはフォントサイズを小さくして全部表示できるようにしたいのです。 また、こちらの都合で恐縮なのですが、 他の人がデザイン変更のためテキストフィールドの位置や幅、 フォントの種類やサイズを変更することがあります。 その際にはなるべくActionScriptは変更しなくても良いようにしたいのです。 そこで、あらかじめフォントの種類やサイズ、テキストフィールド幅が決まってる ダイナミックテキストフィールドをステージ上に設置しておいて、 その中で表示されるフォントサイズが変わるようにしたいと考えました。 TextField.getTextFormat() で ステージ上に設置されているテキストフィールドのフォーマットを取得し、 TextFormat.getTextExtent (text) で そのフォーマットを適用した場合の該当テキストの文字列のサイズを 取得して必要なフォントサイズを出す方向で考えてみました。 しかし、うまくいかなかったので調べたところ、FlashPlayer ver.6では getTextFormat()が正しい値を返さない という情報を発見しました。 もし、文字数に応じてフォントサイズを変更するとなると、 フォントの種類によって表示長さが変わってしまうので 使用フォントが制限される、ことになりますよね。 できれば制限しなくてもできる方法を探したいのです。 FlashPlayer ver.6での表示を想定していますが、 どうしてもうまくいかなければver.7も考えています。 良い方法がありましたら、どうか教えてください。 どうぞよろしくお願いします。 |
makinux | Åê¹ÆNo.8154 投稿日時: 2004-6-9 12:19 |
半人前 居住地: 投稿: 50
使用環境:
WinXP;Flash MX2004 Pro;apache1.3;MySQL 4.0.13-nt;PHP Version 4.3.2 |
Re: テキストの長さによってフォントサイズを変更したいです。 はじめまして。マキと申します。
世の中には同じようなことを必要とする人がいますね そっくり同じ機能を作ってました。 ver.7しかないので、FlashPlayer ver.6で動くかどうかはわかりませんが参考までに。 引用:
ついでによくある要望で、改行を許したくないが、複数行で表示したい場合の対処方法も載せときます。こちらも参考までに 引用:
|
silverdrop | Åê¹ÆNo.8165 投稿日時: 2004-6-9 16:30 |
新米 居住地: 投稿: 5
使用環境:
Win2000 Flash MX IE6.0 |
Re: テキストの長さによってフォントサイズを変更したいです。 マキさん、ありがとうございます。
「テキストフィールドの幅に合わせてフォントサイズ変更」を試してみました。 引用:
デバイスフォントでは正常に動作したのですが、 デバイスフォント以外のフォントでは、はみ出してしまっていました。 デバイスフォント以外のフォントではうまくいかないのでしょうか? それともうちの環境がおかしいのでしょうか・・・? |
makinux | Åê¹ÆNo.8167 投稿日時: 2004-6-9 16:53 |
半人前 居住地: 投稿: 50
使用環境:
WinXP;Flash MX2004 Pro;apache1.3;MySQL 4.0.13-nt;PHP Version 4.3.2 |
Re: テキストの長さによってフォントサイズを変更したいです。 末端位置微調整用のnumをおおきくすれば、はみ出しは解消されるはずです。
埋め込みであってこの関数は使えるので、おそらくこの対処で大丈夫かとは思います。 例としては test.text="近鉄近鉄近鉄近鉄近鉄近鉄近鉄近近鉄近鉄近鉄近鉄近近鉄近鉄近"; xAutoFontSize("test",70); こんな感じで使います。 この70というところを調整してみてください |
silverdrop | Åê¹ÆNo.8169 投稿日時: 2004-6-9 17:53 |
新米 居住地: 投稿: 5
使用環境:
Win2000 Flash MX IE6.0 |
Re: テキストの長さによってフォントサイズを変更したいです。 なるほど、numを大きくするのも方法の1つですね。
でも、等幅フォントと等幅でないフォントでは差が結構大きいですね。うーん。 引用: 埋め込みであってこの関数は使えるので、おそらくこの対処で大丈夫かとは思います。 すみません、「埋め込み」というのは、どういうことですか? |
makinux | Åê¹ÆNo.8170 投稿日時: 2004-6-9 19:49 |
半人前 居住地: 投稿: 50
使用環境:
WinXP;Flash MX2004 Pro;apache1.3;MySQL 4.0.13-nt;PHP Version 4.3.2 |
Re: テキストの長さによってフォントサイズを変更したいです。 引用:
すみません、「埋め込み」というのは、どういうことですか? テキストフィールドにフォントを埋め込むことです。 フォントを埋め込むと意図したフォントをテキストフィールドにアンチエイリアスがかかった状態で表示できます。 説明不足でしたね。 |
silverdrop | Åê¹ÆNo.8185 投稿日時: 2004-6-10 15:59 |
新米 居住地: 投稿: 5
使用環境:
Win2000 Flash MX IE6.0 |
Re: テキストの長さによってフォントサイズを変更したいです。 フォントを埋め込んで試してみたのですが、埋め込んでいない状態と同じ値が返ってきてしまいました。
ちなみに「MS Pゴシック」などでも試してみたのですが・・・ すみません、どのフォントで可能でしたか、教えてください。お願いします。 |
makinux | Åê¹ÆNo.8189 投稿日時: 2004-6-10 18:09 |
半人前 居住地: 投稿: 50
使用環境:
WinXP;Flash MX2004 Pro;apache1.3;MySQL 4.0.13-nt;PHP Version 4.3.2 |
Re: テキストの長さによってフォントサイズを変更したいです。 基本的にはどのフォントでも可能でした。
どのようなフォントであれ、numを調整すれば使えるはずです。 フォントによっては結構ずれるので同じ値ではうまくいかないと思いますので、適宜調整してみてください。 引用:
|
youich | Åê¹ÆNo.8190 投稿日時: 2004-6-10 19:48 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: テキストの長さによってフォントサイズを変更したいです。 引用:
getTextExtentがまともな値を返さないようですね、、、 でもその代わりにTextField.textwidth,TextField.textHeightを使って計算すればいいんじゃないかと思います。
で、、silverdropさんの境遇とはすこし変わりますが、いろいろ試してみてたら、MXで作ったものは1pxのfontでも オーサリング、ブラウザー上共正しく計算できるけどMX2004で ver6セッティングで製作すると、1pxのfontを計算するとブラウザー上ではおかしな結果になります。 1pxという値を考える場面などないと思いますけど、なんか無気味(^^; http://as-coders.nct.jp/yo/ff/addformat.html http://as-coders.nct.jp/yo/ff/addformat.fla.zip
|
youich | Åê¹ÆNo.8262 投稿日時: 2004-6-13 3:12 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: テキストの長さによってフォントサイズを変更したいです。 引用:
まともな値を返さないっていうのは、ver6でのことを指して書いてたのですが、 ふとUIObjectExtensions.asを見ると,getTextExtent2なんていうのがあって おなじくTextField.textWidth,Heightで値をとってますね、 MX2004でもまともじゃないのかな(^^l
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |