Flex 4 UIMovieClip修改子DisplayObject的宽度

时间:2011-05-11 16:39:09

标签: flex mxml

我有一组UIMovieClip组件,它们位于s:HGroup标签中。在ActionScript代码中,我正在修改其中一个UIMovieClip中子剪辑的宽度,但这些更改不会被s:HGroup反映。

<s:HGroup id="_buttonGroup">
    <uiassets:NavigationTabButtonSWC id="_lobby" />
    <uiassets:NavigationTabButtonSWC id="_achievements" />
</s:HGroup>
<fx:Script>
    <![CDATA[
        protected function init() : void
        {
            // The HGroup does not pickup this change and so my buttons
            // are no longer evenly spaced out and overlap!
            _lobby.getChildByName("background").width += 200;
        }
    ]]>
</fx:Script>

谢谢!

1 个答案:

答案 0 :(得分:1)

这有几个原因。只更改一个孩子的宽度并不意味着它会改变整个UIMovieClip的宽度,所以你应该先检查它。

其次,Flex有一种非常具体的处理方式(称为组件生命周期),UIMovieClip没有实现,因此您无法在“度量”功能中自行管理宽度。我猜你在你的影片剪辑中只有其他孩子不会让你调整大小。尝试更改MovieClip本身的宽度,它应该工作。如果没有,那么还有另一个问题。