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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     テキストの長さによってフォントサイズを変更したいです。
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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で動くかどうかはわかりませんが参考までに。

引用:

//テキストフィールドの幅に合わせてフォントサイズ変更
//txt:適用txtのパスストリング num:末端位置微調整用
function xAutoFontSize(txt,num){
var txt_fmt=eval(txt).getTextFormat();
var tmp=txt_fmt.getTextExtent(eval(txt).text);
while((eval(txt)._width-num)<tmp.width){
txt_fmt.size--;
eval(txt).setTextFormat(txt_fmt);
txt_fmt=eval(txt).getTextFormat();
tmp=txt_fmt.getTextExtent(eval(txt).text);
}
}


ついでによくある要望で、改行を許したくないが、複数行で表示したい場合の対処方法も載せときます。こちらも参考までに
引用:

hogehoge_txt.onChanged=function(){
this.text=this.text.split("\r").join("");
}

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も考えています。

良い方法がありましたら、どうか教えてください。
どうぞよろしくお願いします。
« 1 (2)
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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