<?xml version="1.0" encoding="utf-8"?> <!-- http://blog.flexexamples.com/2010/01/20/constraining-the-movement-on-a-spark-titlewindow-container-in-flex-4/ --> <s:Application name="Spark_TitleWindow_windowMoving_afterBounds_test" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"> <s:controlBarContent> <s:Button id="btn" label="Launch TitleWindow" click="btn_clickHandler(event);" /> </s:controlBarContent> <fx:Script> <![CDATA[ import mx.core.UIComponent; import mx.events.CloseEvent; import mx.managers.PopUpManager; import spark.events.TitleWindowBoundsEvent; protected function titleWin_closeHandler(evt:CloseEvent):void { PopUpManager.removePopUp(evt.currentTarget as UIComponent); } protected function btn_clickHandler(evt:MouseEvent):void { PopUpManager.addPopUp(titleWin, this, true); PopUpManager.centerPopUp(titleWin); } protected function titleWin_windowMovingHandler(evt:TitleWindowBoundsEvent):void { if (evt.afterBounds.left < 0) { evt.afterBounds.left = 0; } else if (evt.afterBounds.right > systemManager.stage.stageWidth) { evt.afterBounds.left = systemManager.stage.stageWidth - evt.afterBounds.width; } if (evt.afterBounds.top < 0) { evt.afterBounds.top = 0; } else if (evt.afterBounds.bottom > systemManager.stage.stageHeight) { evt.afterBounds.top = systemManager.stage.stageHeight - evt.afterBounds.height; } } ]]> </fx:Script> <fx:Declarations> <s:TitleWindow id="titleWin" title="Spark TitleWindow" width="300" close="titleWin_closeHandler(event);" windowMoving="titleWin_windowMovingHandler(event);"> <s:layout> <s:VerticalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10" /> </s:layout> <s:Label text="The quick brown fox jumps over the lazy dog." fontSize="24" width="100%"/> </s:TitleWindow> </fx:Declarations> </s:Application>
主要的设置方法见代码中粗体部分、、、