Flex3: принудительное изменение размера компонента TitleWindow - PullRequest
0 голосов
/ 13 апреля 2011

Мне нужна помощь, чтобы заставить Flex3 изменить размер моего компонента TitleWindow после события.

Мое изменение размера MXML выглядит так:

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

Как заставить его изменить размер после события? Я хочу, чтобы высота TitleWindow изменялась после окончания события в myFunc1.

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 ]

2 голосов
/ 13 апреля 2011

Я думаю, это довольно просто. Например, у нас есть собственное окно, и мы хотим, чтобы оно менялось при нажатии кнопки:

<?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 голос
/ 13 апреля 2011

Вам нужно указать цель в вашем теге 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});
}
...