as3 addChild()したオブジェクトのwidthの取得
2011/11/25
「validateNow()」を使えば解決するっぽい。
めも
やろうとしていたことは、テキストオブジェクトの後に別のテキストオブジェクトを追加していくって感じ。
「txtObj2.x = txtObj1.width + 10;」ってな感じにしたかった。
※他に良い方法があるかもしれないけど、分からないので上記のような感じで落ち着いた。
※他に良い方法があるかもしれないけど、分からないので上記のような感じで落ち着いた。
これをやると「txtObj1.width」の値が「0」になってるんだよね。
あれこれ調べていくうちに「描画のタイミング」が問題ってことにたどり着いた。
解決には「txtObj1.widthを取得する前に再描画すればいいじゃん」ってことで「validateNow()」に。
この「validateNow()」ってひとは再描画をすぐに実行してくれるらしい。
※状況によっては処理が重くなるとか…。
- var fooTxt:Text = new Text();
- fooTxt.text = "recatnap";
- addChild(fooTxt);
- validateNow();
- var w:int = fooTxt.width;