Flex3:强制调整TitleWindow组件的大小

时间:2011-04-13 18:35:58

标签: flex resize

我需要一些帮助,强制Flex3在事件发生后调整我的TitleWindow组件的大小。

我的调整大小MXML如下所示:

<mx:Resize  id="rs1" duration="1000" 
            heightTo="{radioVBox.y + radioVBox.height + 110}"  />

如何在事件发生后强制它调整大小?我希望在myFunc1中的事件结束后强制更改TitleWindow的高度。

private function myFunc1():void {
 //blah blah...
 fe.addEventListener(FLASHEFFEvents.TRANSITION_END, myFunc2);
}

private function myFunc2():void {
 //force the titleWindow's height to be resized-- call rs1
}

有什么建议吗?

谢谢。

-Laxmidi

2 个答案:

答案 0 :(得分:2)

我认为这很简单。例如,我们有一个自定义窗口,希望它在按钮点击时调整大小:

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow height="300" layout="absolute" width="400" xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
        import mx.events.EffectEvent;

        protected function clickHandler():void
        {
            windowResize.play();
        }

        protected function windowResize_effectEndHandler(event:EffectEvent):void
        {
            trace("Effect ended");
        }
    ]]>
    </mx:Script>

    <mx:Resize duration="1000" effectEnd="windowResize_effectEndHandler(event)" heightTo="200" id="windowResize"
        target="{this}" />

    <mx:Button click="clickHandler()" horizontalCenter="0" label="Resize" verticalCenter="0" />
</mx:TitleWindow>

答案 1 :(得分:1)

您需要在Resize标记中指定目标才能使其生效,或在调用调整大小时指定目标。

<mx:Resize  id="rs1" duration="1000" target="{yourTitleWindow}" heightTo="{radioVBox.y + radioVBox.height + 110}"  />

rs1.play()

就个人而言,我不喜欢Flex效果标签,所以我使用TweenMax代替。在这种情况下,您只需要这样做:

private function myFunc2():void 
{
   TweenMax.to(yourTitleWindow, 1, {height:radioVBox.y + radioVBox.height + 110});
}