Flex:从HBox.rawChildren添加/删除组件会导致horizo​​ntalAlign失败?

问题描述:

我有一个HBox显示一系列的画布。我正在移除一个画布的子项并将其添加到包含HBox的rawChildren中,以便我可以定位它,并使其看起来转移到画布边界之外。Flex:从HBox.rawChildren添加/删除组件会导致horizo​​ntalAlign失败?

这里是从画布代码:

private function onMouseOver(e:MouseEvent):void 
{ 
    (this.parent as HBox).rawChildren.addChild(dateLabel); 
    dateLabel.x = (this.parent as HBox).localToGlobal(new Point(this.x,0)).x - 18; 
} 

private function onMouseOut(e:MouseEvent):void 
{ 
    addChild(dateLabel); 
    dateLabel.x = 0; 
} 

它的工作原理,但如果含有HBox.horizo​​ntalAlign设置为“右”,当我添加的孩子回到画布,hbox内停止显示正确地将所有儿童画布重叠在右侧。如果HBox对齐“左”tho没有问题。

这是一个错误?有没有解决办法?

谢谢!

这是一个错误?有没有解决办法?
约翰 - Isaacks

这不是因为这样一个错误,它更是你在一个不寻常的方式使用的容器。

当您使用HBox时,您将根据HBox组件的规则,决定将所有儿童以线性水平排列。

明确定位一个孩子并不是HBox所讲的 - 这不在他们的工作描述中。

我会建议你在帆布内有一个HBox。当您需要设置其位置并使其看起来像是在HBox之外时,您可以将其水平放置到HBox中或将其移动到画布上时将其添加到HBox中。

当您使用rawChildren时,您只需绕过布局机制。

您应该直接在组件上使用addChild或addChildAt。