Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex:从HBox.rawChildren添加/删除组件会导致horizontalAlign失败吗?_Apache Flex_Layout_Flex3 - Fatal编程技术网

Apache flex Flex:从HBox.rawChildren添加/删除组件会导致horizontalAlign失败吗?

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

我有一个HBox显示了一系列的画布。我正在移除画布的子对象并将其添加到包含HBox的子对象中,这样我就可以定位它,并使它看起来在画布的边界之外移动

下面是画布上的代码:

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之外时,可以将其移动到画布上