問題は、それが単に(無地のUIComponentがその親に幅または高さの値を報告しないということですその価値がどうあるべきかを知らない!)。
Flexで単純なスプライトやその他のプリミティブ表示オブジェクトを操作する必要がある場合は、measure()
関数のオーバーライドを使用してUIComponentのサブクラスを作成することをお勧めします。そこで、measuredWidthプロパティとmeasuredHeightプロパティをUIComponentの子のサイズに設定します。
これは、あなたが(プレーンUIComponentを置き換えますあなたのUIComponentのサブクラスに)しようとする場合があります迅速(未検証)ソリューションです。個人的に
override protected function measure():void
{
super.measure();
for(var i:int = 0; i < this.numChildren; i++)
{
var child:DisplayObject = this.getChildAt(i);
this.measuredWidth = Math.max(this.measuredWidth, child.x + child.width);
this.measuredHeight = Math.max(this.measuredHeight, child.y + child.height);
}
}
、可能な限り、私はすべてのコンテンツを適切にしようこのようなハッキングを作成するのではなく、UIComponentのサブクラスを使用して、Spriteやその他の非UIComponentタイプをFlexのコンテナ内で動作させることができます。しかし、あなたのアプローチは非常に一般的であるようですので、これはあなたと他の人に便利です。
ありがとう、それはまさに私が必要なものです:) – OXMO456