我需要一些帮助,强制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
答案 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});
}