如果你想不用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>
分享到:
相关推荐
MouseJoint不是连接两个固定点,而是将一个身体与屏幕上的鼠标位置相连,使得物体可以被拖动或移动。创建MouseJoint时,你需要指定目标点(鼠标位置)、最大力和频率等参数,以控制物体的动态行为。 基础概念包括...
本资源"防launcher拖拽滑动BOX盒子特效源码"提供了一个模仿Launcher滑动页面效果的示例,特别强调了拖拽控制与翻页滑动特效的融合。这个案例对于理解Workspace与CellLayout之间的交互关系具有很好的教学价值。 首先...
- **7.2.6 鼠标关节**:模拟鼠标拖动的行为,使刚体跟随鼠标指针移动。 ##### 7.3 关节工厂 介绍了如何使用Box2D提供的工厂方法来创建关节。 ##### 7.4 使用关节 详细讲解了如何操作各种类型的关节,包括如何...
- **API文档**:详细的API文档可访问[Box2D官网](http://box2d.org/documentation.html)获取。 - **社区讨论**:有关Box2D的问题和技术交流,可以访问[Box2D论坛](http://box2d.org/forum)。 综上所述,Box2D是一款...
- **Mac**:双击DMG文件,将DosBox图标拖拽到"Applications"文件夹进行安装。 - **Windows**:运行.exe文件,按照安装向导的指示完成安装。 3. **使用DosBox**: - 启动DosBox,你会看到一个模拟的DOS命令行界面...
综上所述,"BoundingBox标注工具"是图像处理和计算机视觉研究中不可或缺的助手,尤其在创建自定义训练数据集时。通过熟练掌握并利用此类工具,我们可以更高效地进行图像标注,进而提升机器学习模型的性能。
在Unity游戏引擎中,创建一个从用户界面(UI)中拖拽对象并实现平滑放置与拖动的效果是一项常见的交互设计。这个过程涉及到多个关键的技术点,包括UI元素的设置、碰撞检测、C#脚本编写以及物体的动态更新。下面我们将...
在MFC项目中,Check Box和Radio Button通常用于用户提供“是/否”或“一组可选选项”的输入。通过熟练掌握这两种控件的使用,你可以创建更加用户友好的交互式应用程序。 总的来说,VS2019中的MFC提供了丰富的API和...
在本教程中,我们将深入探讨Flex Scale Box的核心概念、属性以及如何实现拖拽和缩放功能。 1. **基本概念** - **Flex容器(Flex Container)**:这是包含一系列flex项目(items)的元素,通过设置`display`属性为`...
除了基本功能外,dialogBox还提供了丰富的选项和方法,如自动关闭、拖动、最大化、最小化等功能,以适应更多复杂的需求。在实际开发中,开发者可以根据项目需求灵活选择和配置,以实现最佳的用户体验。 总的来说,...
在可拖拽功能中,JS监听鼠标事件,当用户按下鼠标并移动时,计算鼠标与弹窗初始位置的偏移量,实时更新弹窗的位置。对于缩放功能,JS会获取到用户的缩放操作,动态调整弹窗的宽高。同时,JS还用于处理弹窗的打开、...
《轩辕剑外传 枫之舞》是由大宇资讯制作的角色扮演游戏,于1995年1月6日在台湾发行。这款游戏是轩辕剑系列的首部...将文件解压后将文件夹“SWDA”中的“Play.bat”文件使用DOSBOX运行或拖拽到DOSBOX程序当中运行即可。
5. **交互式操作**:用户可以通过鼠标进行拖动、缩放、旋转等操作,以便从不同角度观察图数据。此外,可能还支持选择、高亮、隐藏节点和边等功能,增强用户体验。 6. **导出与保存**:Box Viewer可能允许用户将当前...
图片文字滚动插件jQuery Scrollbox附件中提供了五种图片、文字滚动样式,只需调用jquery库和jQuery Scrollbox插件,然后再加一段简单的jquery代码即可使用,兼容性良好,冲突的概率比较低。
在“Magic Box”中,可能使用了类似的技术来构建游戏界面,允许用户与游戏进行交互,如点击、拖动等操作。 三、游戏逻辑与算法 “Magic Box”游戏的核心在于其游戏逻辑和算法。这部分代码可能涉及游戏规则的实现,...
"table 列可左右拖动"的功能使得用户可以根据需要调整列宽,提高用户体验,特别是当表格内容较多,需要横向滚动条时,用户可以更方便地查看和操作表格。 实现这一功能通常涉及以下几个关键知识点: 1. **...
### MFC_Combo Box用法详解 #### 一、引言 组合框(Combo Box)是一种常见的用户界面元素,它结合了文本输入框与下拉菜单的功能,为用户提供了一种直观且灵活的选择方式。在Microsoft Foundation Classes (MFC)框架...
提供的压缩包中的`完美拖拽拖动改变Div的宽高关闭按钮.html`文件包含了实现上述功能的HTML、CSS和JavaScript代码。通过阅读和理解这段代码,可以深入学习到如何结合HTML布局、CSS样式和JavaScript事件处理来创建...
本教程将详细讲解如何通过JS来实现这样的功能,尤其参考了淘宝网卖家中心中的可拖动框架。 首先,我们需要创建HTML结构,包含两个或多个可以被拖动的元素。例如,在`test1.html`中,我们可以有以下基本布局: ```...
在本文中,我们将深入探讨如何使用CSS来创建一个可拖动的圆角窗口。这个功能在许多现代网页应用中非常常见,例如对话框、提示框或者自定义窗口。圆角窗口不仅美观,而且能提供更好的用户体验,而添加拖动功能则使...