PDA

Просмотр полной версии : validateSize()


BigDan
28.06.2008, 13:47
Такая ситуация: есть текст(Text)... время от времени в него вносятся изменения, добавляется новый текст, соответственно меняются размеры поля... хотелось бы при изменении узнавать их.. (через measuredWidth Height)...

чтоб узнать новый размер вызываю validateSize(), результата никакого measuredWidth остаеться неизменным...

зы. textWidth Height не подходит...

в чем может быть проблема? заранее благодарен!

Molecula
29.06.2008, 06:41
Если я правильно понял:
Твой "Текст-Компонент":
package com{
import mx.controls.Text;

public class MyText extends Text{

public function MyText(){
super();
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void {
if(this.width>100){
this.width = 100;
unscaledHeight = this.textField.textHeight;
}
trace(this.height);
}

}
}

Вставляем а главную аплиуху:
...
private function onClick():void{
tf.text += 'Hello World';
}
...
<MyComp:MyText x="126" id="tf" y="310" text="Text"/>
<mx:Button x="477" y="412" label="Button" click="onClick()"/> // Кнопка добавляющая текст
..

Как только ширина больше 100-ни, то он уходит в высоту, в трейсе видим данные.

P.S.: Можно оверднуть:
override protected function measure():void {
super.measure();
}
И там поиграться.