getTextExtentを使用してテキストのサイズを取得しようと思っているけど
戻り値が????何だこりゃ?
オデ、何か間違ってる?


var myTextFormat = new TextFormat();
myTextFormat.size = 10;
myTextFormat.font = "Osaka";
var startBtTxt = "自己診断スタート";
var objSize = myTextFormat.getTextExtent(startBtTxt);
trace("size = "+objSize.height);

としてtraceしたら
size = 250
なんですと!!
うーん、分からない・・・。

Flashのヘルプで

シンタックス
TextFormat.getTextExtent (text)
パラメータ
text ストリング。
戻り値
プロパティ width および height を持つオブジェクト。
だとあるんだけど何故だろう?

追記:
色々と調べた結果MacではgetTextExtentの戻り値はtwipと言う単位で返ってくるらしいです。
ちなみに20 TWIP = 1 pixelらしいです。
なんだよ・・・、コレ。
最悪じゃんかよぉ。しかもモニタの解像度にも依存するような事書いてあったり・・・。
Winじゃ普通に値を取得出来るのにさ。

参考:
getTextExtentについて
Flash 輪講第 1 回資料 - KineticFusion

Comments

// ----------------------------
// テキストフォーマット & MacのgetTextExtent調整関数
// ----------------------------
function verCh(txt,bt) {
bt = eval(bt);
bt.setStyleProperty("textFont",myTextFormat.font);
bt.setStyleProperty("textSize",myTextFormat.size);
var obj = myTextFormat.getTextExtent(txt);
if (-1 < $version.indexOf("MAC")) {
obj.width = obj.width/20 + myTextFormat.size;
obj.height = obj.height/20;
}
bt.setSize(obj.width,obj.height);
}

こんな感じで今回は対応出来そう。

テキストフォーマットが増えそうなら第三引数にセットしても
エエけど今回は1つで面倒だから良いかな。
もっと良さそうな方法ありそげだ。

Posted by: rakeem at September 17, 2004 10:31 AM
Post a comment









Remember personal info?