如何防止组件在Flex 3中被拖出舞台

use*_*590 3 apache-flex

我认为这个问题有一个简单的解决方案,对我来说不够简单.

问题:如何限制Flex 3中的TitleWindow被拖出屏幕/舞台?有没有办法将TitleWindow限制在查看区域?

示例:假设我有一个占用100%屏幕的应用程序.接下来,我通过PopUpManager创建一个TitleWindow.然后我可以继续点击并按住(拖动)该窗口离开屏幕,然后释放鼠标按钮.那个窗口现在在某个地方丢失了.有没有办法防止窗户被拖到观察区域之外?

我在这里先向您的帮助表示感谢.

小智 8

这是一个非常古老的帖子,但这是另一种方法:无论是否扩展组件,在TitleWindow定义中添加以下行:move:"doMove(event)"导入应用程序库(导入mx.core) .Application;)并添加doMove函数:

private function doMove(event:Event):void
{//keeps TW inside layout
    var appW:Number=Application.application.width;
    var appH:Number=Application.application.height;
    if(this.x+this.width>appW)
    {
        this.x=appW-this.width;
    }
    if(this.x<0)
    {
        this.x=0;
    }
    if(this.y+this.height>appH)
    {
        this.y=appH-this.height;
    }
    if(this.y<0)
    {
        this.y=0;
    }
}
Run Code Online (Sandbox Code Playgroud)