Apache flex Flex:从HBox.rawChildren添加/删除组件会导致horizontalAlign失败吗?
我有一个HBox显示了一系列的画布。我正在移除画布的子对象并将其添加到包含HBox的子对象中,这样我就可以定位它,并使它看起来在画布的边界之外移动 下面是画布上的代码:Apache flex Flex:从HBox.rawChildren添加/删除组件会导致horizontalAlign失败吗?,apache-flex,layout,flex3,Apache Flex,Layout,Flex3,我有一个HBox显示了一系列的画布。我正在移除画布的子对象并将其添加到包含HBox的子对象中,这样我就可以定位它,并使它看起来在画布的边界之外移动 下面是画布上的代码: private function onMouseOver(e:MouseEvent):void { (this.parent as HBox).rawChildren.addChild(dateLabel); dateLabel.x = (this.parent as HBox).localToGlobal(ne
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.horizontalAlign设置为“right”,当我将子画布添加回画布时,HBox将停止正确显示,并将所有子画布重叠放置在右侧。如果HBox与“左”tho对齐,则没有问题
这是虫子吗?附近有工作吗
谢谢 使用rawChildren时,只需绕过布局机制即可 您应该直接在组件上使用addChild或addChildAt 这是虫子吗?是否有解决办法?
-约翰·伊萨克斯 这本身不是一个bug,更重要的是您正在以一种不同寻常的方式使用容器 当您使用HBox时,您正在根据HBox组件的规则,决定将所有子项按线性、水平排列 明确定位孩子不是HBoxes的工作内容,也不在他们的工作描述中 我建议您在画布中放置HBox。当HBox应该水平放置时,您可以将
日期标签添加到HBox,或者当您需要设置其位置并使其看起来像在HBox之外时,可以将其移动到画布上