« 耄碌日記 9/10 | Home | ローカルHDDのフォルダのプロパティが開けない »

Sep 102004

embedFonts=trueにおけるmaxscroll

thFlash.gifこれは取得できないんでしょうか?おあー?
こまったぞな。

aaa.text = "ABCDEFGHIJKLMNOPQRSTU";
aaa.embedFonts = true;
var temp = new TextFormat();
temp.size = 25;
temp.font = "Arial";
aaa.setTextFormat(temp);
trace(aaa.maxscroll);
こんな感じ。「1」しかかえってこねえよ。なして?

3 Comments

んーっとなんかうまく行くときと行かないときの区分が微妙・・。
----
var temp = new TextFormat();
temp.size = 25;
temp.font = "Arial";
aaa.setNewTextFormat(temp);
aaa.text = "ABCDEFGHIJKLMNOPQRSTU";
aaa.embedFonts = true;
trace(aaa.maxscroll);
----
これだと動作したりとか・・・。

経過報告
----
どーもtextの代入を先にやるとmaxscrollが取得できないっぽいです。元々今回のタスクとしては決められたエリアのテキストフィールドにテキストを代入して溢れた場合、autoSize処理ではなく、フォントのサイズを縮小して表示していこうということで、textFieldクラスを拡張しようと。そういう感じで以下のようになりました。
----
TextField.prototype.setHkw6 = function(arg, argTx) {
this.embedFonts = true;
if (argTx) {
this.text = argTx;
}
var temp = new TextFormat();
temp.size = arg;
temp.font = "Arial";
this.setTextFormat(temp);
if (this.maxscroll>1) {
trace("y="+this._y);
this._y += 1;
this._height -= 1;
this.setHkw6(arg-1, argTx);
}
};
----
一応フォントサイズの縮小に伴う改行処理の発生+vertical方向への座標のズレを修正しています。ま、これちょっと引数として内容を渡すのどうよ?ってところがあるので多分もう少しスマートな感じに直す予定。

経過報告2
代入テキストを引数にするのをやめました。
一度先にテキスト代入しておいてから一度関数内でテキストを引き出して再度設定。と言う感じで対応。
この辺既存のものは既存のもの、セットとして動作するものは関数と言う風に切り分けてみました。
ま、そもそもこの対応だと100文字あったら豆粒のようになって見えなくなるよ!って問題を孕んではいるのですけど。

Leave a comment

Search and Archives