Flex Air TitleWindow 拖动范围控制
2011-05-05 20:03
375 查看
在flex里面TitleWindow的拖动范围默认是不控制的,但是我们经常需要将其约束在整个应用程序的主窗口内,我找了半天也没有找到相关属性设置,只能重写,下面是重写的代码:
override protected function startDragging(event:MouseEvent):void { regX = event.stageX - x; regY = event.stageY - y; var sbRoot:DisplayObject = systemManager.getSandboxRoot(); sbRoot.addEventListener( MouseEvent.MOUSE_MOVE, systemManager_mouseMoveHandler, true); sbRoot.addEventListener( MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true); sbRoot.addEventListener( SandboxMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler); // add the mouse shield so we can drag over untrusted applications. systemManager.deployMouseShields(true); } protected override function stopDragging():void { var sbRoot:DisplayObject = systemManager.getSandboxRoot(); sbRoot.removeEventListener( MouseEvent.MOUSE_MOVE, systemManager_mouseMoveHandler, true); sbRoot.removeEventListener( MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true); sbRoot.removeEventListener( SandboxMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler); regX = NaN; regY = NaN; systemManager.deployMouseShields(false); } private function systemManager_mouseMoveHandler(event:MouseEvent):void { event.stopImmediatePropagation(); if (isNaN(regX) || isNaN(regY)) { return; } var x:Number = event.stageX - regX; var y:Number = event.stageY - regY; var maxX:Number = this.stage.nativeWindow.width - this.width; var maxY:Number = this.stage.nativeWindow.height - this.height; //超出范围 ,停止移动 if(x < 0) x = 0; if(y < 0) y = 0; if(x > maxX) x = maxX; if(y > maxY) y = maxY; move(x, y); } private function systemManager_mouseUpHandler(event:MouseEvent):void { // trace("systemManager_mouseUpHandler: " + event); if (!isNaN(regX)) stopDragging(); } private function stage_mouseLeaveHandler(event:Event):void { // trace("stage_mouseLeaveHandler: " + event); if (!isNaN(regX)) stopDragging(); } //拖动相关 private var regX:Number; private var regY:Number;
相关文章推荐
- flex titlewindow 拖动 父窗口范围
- Flex控制弹出窗口拖动范围
- Flex控制弹出窗口拖动范围示例代码
- 控制flex窗口的拖动范围
- Flex 弹出窗口TitleWindow拖拽范围设置方法
- flex4 控制弹出窗口的拖动范围
- Flex中如何通过showCloseButton属性控制TitleWindow右上角关闭按钮有效/无效的例子
- flex4 弹框拖动范围控制
- Flex中如何通过showCloseButton属性,控制TitleWindow右上角关闭按钮有效/无效
- Flex中如何利用closeButtonSkin或closeButtonUpSkin, closeButtonOverSkin, closeButtonDownSkin, closeButtonDisabledSkin样式,改变TitleWindow容器的
- flex4 AIR titleBar问题
- Creating a pop up TitleWindow using the PopUpButton control in Flex
- [转]Flex中TitleWindow居中方法
- flex - 让TitleWindow控件的关闭按钮起作用
- Flex中通过headerHeight风格设置TitleWindow容器(container)的header部高度的例子
- flex titlewindow与module之间数据通信
- Resizable TitleWindow in Flex 4
- flex TitleWindow 仿QQ窗口鼠标移动效果
- Flex中TitleWindow自定义CloseButton问题
- Creating an undraggable TitleWindow container in Flex