我有一个组件ObjectHolder
,它扩展了UIComponent
,它包含许多子项UIComponents
。但是,在使用addChild()
将这些孩子添加到ObjectHolder
后,其宽度和高度保持为零。 UIComponent
是否可以自动扩展到其包含的子组件的大小?Flex 4在调用addChild后,UIComponent的宽度和高度保持为零
public class ObjectHolder extends UIComponent
{
public function ObjectHolder()
{
var c1:UIComponent = new UIComponent();
c1.graphics.beginFill(0xffffff);
c1.graphics.drawRect(0, 0, 100, 100);
addChild(c1);
trace(this.width); // Displays zero
}
}
组件不会自行调整大小。实现measure()方法仅通过measuredHeight和measuredWidth属性向组件父容器提供“建议”。不过,大多数默认的Flex容器都会遵守这些尺寸。 – JeffryHouser
我阅读了有关measure()方法的内容,但不是在调用addChild()后立即调用它。由于组件是动态添加的,我不能真正重写createChildren()方法。 – peter
@ www.Flextras.com:我没有使用Flex容器,“容器”是一个UIComponent。 Flex容器是否自动扩展到包含子容器的大小? “容器”UIComponent是一个Floorplan网格,因此用户基本上可以动态地将对象添加到“底层”(类似于在Photoshop画布中添加图像和形状) – peter