`
flysnail
  • 浏览: 92816 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

可拖拽的BOX

    博客分类:
  • Flex
阅读更多
如果你想不用panel或TitleWindow而自定义popup,但是这个popup并不能拖动,则对box进行了improve.
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" mouseDown="titleBar_mouseDownHandler(event)">
    <mx:Script>
        <![CDATA[
            import mx.core.UIComponent;
            
            private var regX:Number;
            private var regY:Number;
            public var documentParent : UIComponent;
            public var closeButton : UIComponent;
            
            /**
             *  Called when the user starts dragging a Panel
             *  that has been popped up by the PopUpManager.
             */
            protected function startDragging(event : MouseEvent) : void
            {
                regX = event.stageX - documentParent.x;
                regY = event.stageY - documentParent.y;
                
                systemManager.addEventListener(
                    MouseEvent.MOUSE_MOVE, systemManager_mouseMoveHandler, true);
        
                systemManager.addEventListener(
                    MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true);
        
                systemManager.stage.addEventListener(
                    Event.MOUSE_LEAVE, stage_mouseLeaveHandler); 
            }
            /**
             *  Called when the user stops dragging a Panel
             *  that has been popped up by the PopUpManager.
             */
            protected function stopDragging() : void
            {
                systemManager.removeEventListener(
                    MouseEvent.MOUSE_MOVE, systemManager_mouseMoveHandler, true);
        
                systemManager.removeEventListener(
                    MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true);
        
                /* systemManager.stage.removeEventListener(
                    Event.MOUSE_LEAVE, stage_mouseLeaveHandler); */
        
                regX = NaN;
                regY = NaN;
            }
            /**
             *  @private
             */
            private function titleBar_mouseDownHandler(event:MouseEvent) : void
            {
                // A mouseDown on the closeButton will bubble up to the titleBar,
                // but it shouldn't start a drag; it should simply start the
                // normal mouse/Button interaction.
                if (event.target == closeButton)
                    return;
                if (isNaN(regX) && documentParent.isPopUp)
                    startDragging(event);
            }
            /**
             *  @private
             */
            private function systemManager_mouseMoveHandler(event:MouseEvent) : void
            {
                // during a drag, only the Panel should get mouse move events
                // (e.g., prevent objects 'beneath' it from getting them -- see bug 187569)
                // we don't check the target since this is on the systemManager and the target
                // changes a lot -- but this listener only exists during a drag.
                event.stopImmediatePropagation();
                documentParent.move(event.stageX - regX, event.stageY - regY);
            }
            /**
             *  @private
             */
            private function systemManager_mouseUpHandler(event:MouseEvent) : void
            {
                if (!isNaN(regX))
                    stopDragging();
            }
            /**
             *  @private
             */
            private function stage_mouseLeaveHandler(event:Event) : void
            {
                if (!isNaN(regX))
                    stopDragging();
            }
        ]]>
    </mx:Script>
</mx:HBox>
2
0
分享到:
评论

相关推荐

    box2d_2.添加鼠标关节MouseJoint和box2d基础概念

    MouseJoint不是连接两个固定点,而是将一个身体与屏幕上的鼠标位置相连,使得物体可以被拖动或移动。创建MouseJoint时,你需要指定目标点(鼠标位置)、最大力和频率等参数,以控制物体的动态行为。 基础概念包括...

    防launcher拖拽滑动BOX盒子特效源码

    本资源"防launcher拖拽滑动BOX盒子特效源码"提供了一个模仿Launcher滑动页面效果的示例,特别强调了拖拽控制与翻页滑动特效的融合。这个案例对于理解Workspace与CellLayout之间的交互关系具有很好的教学价值。 首先...

    Box2D v2.0.2 完整版

    - **7.2.6 鼠标关节**:模拟鼠标拖动的行为,使刚体跟随鼠标指针移动。 ##### 7.3 关节工厂 介绍了如何使用Box2D提供的工厂方法来创建关节。 ##### 7.4 使用关节 详细讲解了如何操作各种类型的关节,包括如何...

    Box2D开源代码集成

    - **API文档**:详细的API文档可访问[Box2D官网](http://box2d.org/documentation.html)获取。 - **社区讨论**:有关Box2D的问题和技术交流,可以访问[Box2D论坛](http://box2d.org/forum)。 综上所述,Box2D是一款...

    DosBox的下载安装与使用

    - **Mac**:双击DMG文件,将DosBox图标拖拽到"Applications"文件夹进行安装。 - **Windows**:运行.exe文件,按照安装向导的指示完成安装。 3. **使用DosBox**: - 启动DosBox,你会看到一个模拟的DOS命令行界面...

    BoundingBox标注工具

    综上所述,"BoundingBox标注工具"是图像处理和计算机视觉研究中不可或缺的助手,尤其在创建自定义训练数据集时。通过熟练掌握并利用此类工具,我们可以更高效地进行图像标注,进而提升机器学习模型的性能。

    Unity 从UI中拖拽对象放置并拖动效果

    在Unity游戏引擎中,创建一个从用户界面(UI)中拖拽对象并实现平滑放置与拖动的效果是一项常见的交互设计。这个过程涉及到多个关键的技术点,包括UI元素的设置、碰撞检测、C#脚本编写以及物体的动态更新。下面我们将...

    VS2019Check box实例

    在MFC项目中,Check Box和Radio Button通常用于用户提供“是/否”或“一组可选选项”的输入。通过熟练掌握这两种控件的使用,你可以创建更加用户友好的交互式应用程序。 总的来说,VS2019中的MFC提供了丰富的API和...

    Flex Scale Box缩放盒子

    在本教程中,我们将深入探讨Flex Scale Box的核心概念、属性以及如何实现拖拽和缩放功能。 1. **基本概念** - **Flex容器(Flex Container)**:这是包含一系列flex项目(items)的元素,通过设置`display`属性为`...

    原生jQuery对话框插件dialogBox

    除了基本功能外,dialogBox还提供了丰富的选项和方法,如自动关闭、拖动、最大化、最小化等功能,以适应更多复杂的需求。在实际开发中,开发者可以根据项目需求灵活选择和配置,以实现最佳的用户体验。 总的来说,...

    Html可拖拽js弹框插件

    在可拖拽功能中,JS监听鼠标事件,当用户按下鼠标并移动时,计算鼠标与弹窗初始位置的偏移量,实时更新弹窗的位置。对于缩放功能,JS会获取到用户的缩放操作,动态调整弹窗的宽高。同时,JS还用于处理弹窗的打开、...

    轩辕剑枫之舞(Dosbox运行)

    《轩辕剑外传 枫之舞》是由大宇资讯制作的角色扮演游戏,于1995年1月6日在台湾发行。这款游戏是轩辕剑系列的首部...将文件解压后将文件夹“SWDA”中的“Play.bat”文件使用DOSBOX运行或拖拽到DOSBOX程序当中运行即可。

    Box viewer

    5. **交互式操作**:用户可以通过鼠标进行拖动、缩放、旋转等操作,以便从不同角度观察图数据。此外,可能还支持选择、高亮、隐藏节点和边等功能,增强用户体验。 6. **导出与保存**:Box Viewer可能允许用户将当前...

    图片文字滚动插件jQuery Scrollbox.zip

    图片文字滚动插件jQuery Scrollbox附件中提供了五种图片、文字滚动样式,只需调用jquery库和jQuery Scrollbox插件,然后再加一段简单的jquery代码即可使用,兼容性良好,冲突的概率比较低。

    c开发的游戏源码Magic Box

    在“Magic Box”中,可能使用了类似的技术来构建游戏界面,允许用户与游戏进行交互,如点击、拖动等操作。 三、游戏逻辑与算法 “Magic Box”游戏的核心在于其游戏逻辑和算法。这部分代码可能涉及游戏规则的实现,...

    table 列可左右拖动

    "table 列可左右拖动"的功能使得用户可以根据需要调整列宽,提高用户体验,特别是当表格内容较多,需要横向滚动条时,用户可以更方便地查看和操作表格。 实现这一功能通常涉及以下几个关键知识点: 1. **...

    MFC_Combo Box用法

    ### MFC_Combo Box用法详解 #### 一、引言 组合框(Combo Box)是一种常见的用户界面元素,它结合了文本输入框与下拉菜单的功能,为用户提供了一种直观且灵活的选择方式。在Microsoft Foundation Classes (MFC)框架...

    JS完美拖拽+拖动改变Div的宽高+关闭按钮

    提供的压缩包中的`完美拖拽拖动改变Div的宽高关闭按钮.html`文件包含了实现上述功能的HTML、CSS和JavaScript代码。通过阅读和理解这段代码,可以深入学习到如何结合HTML布局、CSS样式和JavaScript事件处理来创建...

    JS实现拖动页面内任意元素并交换内容

    本教程将详细讲解如何通过JS来实现这样的功能,尤其参考了淘宝网卖家中心中的可拖动框架。 首先,我们需要创建HTML结构,包含两个或多个可以被拖动的元素。例如,在`test1.html`中,我们可以有以下基本布局: ```...

    CSS可拖动的圆角窗口

    在本文中,我们将深入探讨如何使用CSS来创建一个可拖动的圆角窗口。这个功能在许多现代网页应用中非常常见,例如对话框、提示框或者自定义窗口。圆角窗口不仅美观,而且能提供更好的用户体验,而添加拖动功能则使...

Global site tag (gtag.js) - Google Analytics