问题描述
|
事件发生后,我需要一些帮助来迫使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
}
有什么建议么?
谢谢。
-拉克西米
解决方法
您需要在“调整大小”标签中指定一个目标才能使其起作用,或者在调用调整大小时指定目标。
<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});
}
,我认为这很简单。例如,我们有一个自定义窗口,并希望在单击按钮时调整其大小:
<?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>