- 浏览: 551684 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
coosummer:
推荐使用http://buttoncssgenerator.c ...
【转载】CSS圆角按钮(一) -
saiarmuluo:
不错,支持。
java log4j日志 写入数据库 -
springdata_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
Freemarker 使用 -
zlbdexiaohao:
棒棒的
flex ToolTip汇总 -
hw_128:
demo的代码的,能不能发一下,谢谢 qq257515270 ...
java log4j日志 写入数据库
flex3 Drag
Drag 常用的方法
1.系统startDrag,stopDrag(适合单个拖拽)
2.Move()(适合多个拖拽)
3.DragManager (有默认的特效)
1.单个拖拽
private function mouseDownHandler():void{ demo.startDrag(); } private function mouseUpHandler():void{ demo.stopDrag(); } <mx:Button id="demo" mouseDown="mouseDownHandler()" mouseUp="mouseUpHandler()" />
2.拖拽区域限制
private function mouseDownHandler():void{ demo.startDrag(false,new Rectangle(0,0,can1.width-demo.width,can1.height-demo.height)); }
3.拖拽多个原理:把需要拖拽的对象放入一个 容器中拖拽这个容器
private function mouseDownHandler():void{ cv2.startDrag(); } private function mouseUpHandler():void{ cv2.stopDrag(); } <mx:Canvas id="cv1" width="544" height="324" backgroundColor="#FFFFFF"> <mx:Canvas id="cv2" x="0" y="39" width="197" height="159" verticalScrollPolicy="off" horizontalScrollPolicy="off" backgroundColor="green" buttonMode="true" mouseDown="mouseDownHandler()" mouseUp="mouseUpHandler()"> <mx:Button id="demo" label="demo" x="10" y="38"/> <mx:Button label="demo" x="76" y="60"/> <mx:Button label="demo" x="28" y="90"/> </mx:Canvas> </mx:Canvas>
4.拖拽多个控制拖拽区域(容器中x轴最小,最大的元素,y轴最大最小的元素)
<mx:Script> <![CDATA[ import mx.core.UIComponent; import mx.events.MoveEvent; private var maxXObj:Number; private var minXObj:Number; private var maxYObj:Number; private var minYObj:Number; private var tempArrayX:Array; private var tempArrayY:Array; private function mouseDownHandler():void{ this.cv2.startDrag(); tempArrayX=new Array(cv2.numChildren); tempArrayY=new Array(cv2.numChildren); for(var i:int;i<cv2.numChildren;i++) { var child:UIComponent= cv2.getChildAt(i) as UIComponent; tempArrayX[i]=child.x; tempArrayY[i]=child.y; } tempArrayX.sort(Array.NUMERIC); tempArrayY.sort(Array.NUMERIC); maxXObj=tempArrayX[tempArrayX.length-1]; minXObj=tempArrayX[0]; maxYObj=tempArrayY[tempArrayY.length-1]; minYObj=tempArrayY[0]; this.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler); } private function mouseUpHandler():void{ this.removeEventListener(MouseEvent.MOUSE_MOVE,moveHandler); if(cv2.x<(0-minXObj))//最左边 { this.cv2.x =(0-minXObj); } var temp1:Number=cv2.width-(maxXObj+demo.width); if(cv2.x>=this.width-(cv2.width-temp1))//最上面 { cv2.x=this.width-(cv2.width-temp1); } if(this.cv2.y <= (0-minYObj)){ this.cv2.y = (0-minYObj); } var temp2:Number=cv2.height-(maxYObj+demo.height); if(this.cv2.y >=this.height-(cv2.height-temp2)){//最上面 cv2.y=this.height-(cv2.height-temp2); } this.cv2.stopDrag(); } private function moveHandler(event:MouseEvent):void{ if(cv2.x<(0-minXObj))//最左边 { this.cv2.x =(0-minXObj); this.cv2.stopDrag(); } var temp1:Number=cv2.width-(maxXObj+demo.width); if(cv2.x>=this.width-(cv2.width-temp1))//最上面 { cv2.x=this.width-(cv2.width-temp1); this.cv2.stopDrag(); } if(this.cv2.y <= (0-minYObj)){//最上面 this.cv2.y = (0-minYObj); this.cv2.stopDrag(); } var temp2:Number=cv2.height-(maxYObj+demo.height); if(this.cv2.y >=this.height-(cv2.height-temp2)){//最下面 cv2.y=this.height-(cv2.height-temp2); this.cv2.stopDrag(); } } ]]> </mx:Script> <mx:Canvas id="cv2" x="0" y="39" width="197" height="159" verticalScrollPolicy="off" horizontalScrollPolicy="off" backgroundColor="green" buttonMode="true" mouseDown="mouseDownHandler()" mouseUp="mouseUpHandler()"> <mx:Button id="demo" label="demo" x="10" y="38"/> <mx:Button label="demo" x="76" y="60"/> <mx:Button label="demo" x="28" y="90"/> </mx:Canvas>
5.Move()方法控制
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.core.UIComponent; private var regX:Number; private var regY:Number; public var closeButton : UIComponent; protected function startDragging(event : MouseEvent) : void { regX = event.stageX - demo.x; regY = event.stageY - demo.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); } 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 { startDragging(event); } var tempx:Number; var tempy:Number; private function systemManager_mouseMoveHandler(event:MouseEvent) : void { event.stopImmediatePropagation(); tempx=event.stageX - regX; tempy=event.stageY - regY; if(tempx<0) { tempx=0; } if(tempx>this.width-demo.width) { tempx=this.width-demo.width; } if(tempy<0) { tempy=0; } if(tempy>this.height-demo.height) { tempy=this.height-demo.height; } demo.move(tempx,tempy); } private function systemManager_mouseUpHandler(event:MouseEvent) : void { if (!isNaN(regX)) stopDragging(); } private function stage_mouseLeaveHandler(event:Event) : void { if (!isNaN(regX)) stopDragging(); } ]]> </mx:Script> <mx:HBox id="demo" backgroundColor="green" mouseDown="{titleBar_mouseDownHandler(event)}" width="141" height="147" x="282" y="156"> </mx:HBox> </mx:Application>
6.使用DragManager拖拽
DragManager参考连接:
http://demojava.iteye.com/blog/1183448
发表评论
-
Flex4 模块 [转载]
2012-11-05 09:30 0使用flex4模块(1):传递数据到模块 在主程序与模块 ... -
Flex4 List改变了dataProvider,怎么锁定选中Item【转载】
2012-11-05 09:29 1114sfList.dataProvider = sfData; i ... -
解决flex嵌入字体导致文件过大的问题[转载]
2012-11-05 09:25 0众所周知,Flex嵌入字体 ... -
flex DataGrid 行列颜色设置
2012-05-06 20:00 9151群里一哥们问了个问题,就写了个这个demo DataGrid ... -
flex4 Spark DataGrid,title的字体居中
2012-03-20 21:23 6280【原创】flex4 Spark DataGrid,title的 ... -
flex4 Application backgroundImage
2012-03-10 15:13 2935群里一哥们问我 f4 设置 Application 的 bac ... -
flex 无法将“<mx:>”解析为组件执行.解决办法:
2012-03-09 16:34 8298flex项目导入早期版本 无法将“<mx:******& ... -
flex component 去掉点击加亮边框
2012-03-09 16:35 1101群里有人问我怎么去掉TextInput的文本框加亮。写下来 ... -
flex ProgressBar skin 修改
2012-03-09 16:36 2974f3的形式修改border: 其中 barSkin 是外边框 ... -
flex Draggable Flex Components
2012-03-08 20:38 1029Creating Resizable and Draggabl ... -
flex 3d云标签
2012-03-08 20:37 1631来自:http://downloads.wordpress.o ... -
AS html 形式超链接设置
2012-03-08 20:36 1651lbl.htmlText = " <b& ... -
flex IViewCursor 的应用
2012-03-08 20:35 1100IViewCursor 的应用 demo 效果图:可以上下 ... -
f4 spark 占位控件
2012-03-08 20:33 995halo的占位控件。<mx:Spacer width=& ... -
halo的grid DataGridColumn itemRenderer 混用 spark 组件
2012-03-03 14:20 1420halo的grid DataGridColumn itemRe ... -
flex DeferredInstanceFromFunction 使用
2012-03-02 21:54 1589flex DeferredInstanceFromFuncti ... -
flex ContextMenuItem 根据状态隐藏选项
2012-02-27 18:28 1391因群里一个群员的要求,写了这个demo,代码粗糙,根据一个控件 ... -
动态设置itemRenderer
2012-02-18 19:34 0<mx:TileList id="tl&quo ... -
【转】解决RemoteClass alias信息丢失
2012-02-18 19:15 800问题发生场景:flex程序中存在多个module都调用一个标记 ... -
flex tree icon
2012-02-14 19:53 33601.tree 改变每一项的 icon图标 <?xml ...
相关推荐
在本文中,我们将深入探讨如何在Flex环境中实现拖放(Drag & Drop)功能,这是一个非常实用的用户交互设计。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。拖放功能在Flex应用中...
一、Flex中的拖放(Drag-and-Drop)机制 1. 拖放事件模型:在Flex中,实现拖放功能涉及一系列的事件,包括`dragStart`、`drop`、`dragEnter`、`dragLeave`、`dragOver`和`dragDrop`等。这些事件使得开发者可以精确地...
11. **Flex Drag-n-Drop Library**: 一个拖放库,简化了Flex中的拖放操作实现。 12. **birdeye**: 大型数据可视化项目,包括关系分析、空间信息分析、数值分析等多个模块。 13. **antennae**: 基于Ant的Flex项目...
Flex3 是Adobe Flash平台的一个版本,它提供了丰富的用户界面组件和强大的数据绑定功能,用于创建交互式的Web应用程序。在Flex3中,组件的拖放功能是一项核心特性,它允许用户轻松地通过鼠标操作将一个对象从一处...
#### 十二、Flex Drag-n-Drop Library - **网址**:http://code.google.com/p/flex-drag-n-drop-lib/ - **简介**:提供了一套完整的拖放功能实现方案。 - **特点**: - 简单集成:只需要几行代码就能实现复杂的...
flex支持拖拽的DataGrid,如果去查api来置一些属性将会比较麻烦,这个DataGrid可以获取拖拽的内容,这是一个application,可以直接运行
在Adobe Flex应用程序开发中,拖拽(Drag and Drop)是一种非常实用的功能,它允许用户将数据或对象从一个位置移动到另一个位置。这种功能在视觉应用中尤其有用,比如在两个列表之间拖动数据项、重新定位容器中的...
在Flex编程中,移动折线图是一种常见的交互功能,它允许用户通过拖动来查看数据的不同部分,这对于处理大量数据或者需要动态分析趋势的应用来说非常有用。本篇将深入探讨如何在Flex中实现线图的左右移动,以及...
在 Flex 3 中,拖放功能(Drag & Drop)是一种常见且实用的用户交互方式,允许用户通过鼠标操作将一个对象从一处拖动到另一处,常用于文件管理、数据交换等场景。 拖放功能在 Flex 3 中主要由两个核心组件支持:`...
Flex框架提供了一套强大的机制用于实现拖放(drag and drop)功能,这在用户界面设计中极为常见,特别是在构建高度交互性的应用时。本文旨在深入探讨Flex中的拖拽功能,包括其工作原理、关键概念、以及如何在实际...
如果需要自定义拖动行为,可以通过监听`dragStart`、`drag`和`dragEnd`事件来进行控制。 2. **窗口尺寸改变**:窗口的大小改变通常发生在窗口边框上。当用户在窗口的边框处按下并拖动鼠标时,窗口会相应地调整其...
接下来,我们将深入探讨Flex中的拖拽(Drag)和伸缩(Resize)机制,以及ObjectHandle组件如何实现这些功能。 1. Flex框架:Flex是Adobe开发的一种用于构建富互联网应用(RIA)的开源框架,基于ActionScript和MXML。它...
拖拽功能也需要考虑不支持`drag`和`drop`事件的浏览器,可能需要用模拟的方式实现。 5. **库和框架支持** - **React**:在React中,可以使用`react-dnd`库来简化拖放操作,它提供了高阶组件和钩子函数来处理拖放...
Flex是Adobe公司开发的一种用于构建富互联网应用(RIA)的框架,它基于ActionScript和MXML,提供了丰富的用户界面组件和交互功能。在Flex中,拖拽编程是一种常见的交互设计方式,允许用户通过鼠标或其他输入设备将...
在Flex4中,拖放(Drag and Drop,简称DnD)功能是一项强大的交互设计工具,它允许用户通过直观的拖动操作在界面上移动或转移数据。在本主题中,我们将深入探讨如何在Flex4中实现图片的拖放功能,包括两种模式:拖动...
在Flex中,实现拖放(Drag and Drop)功能主要涉及两个核心类:`DragManager`和`DragInitiator`。`DragManager`是系统级别的服务,负责管理整个应用的拖放操作,而`DragInitiator`通常是一个可拖动的UI组件,如...
##### 11.7 拖拽(DragAndDrop) - **拖拽概念**:解释拖拽功能的概念。 - **实现方法**:指导如何实现在 AIR 中的拖拽功能。 ##### 11.8 复制与粘贴 - **复制粘贴介绍**:解释复制与粘贴功能。 - **实现方法**:...
这通常涉及监听鼠标事件,如mousedown,然后创建一个DragObject,包含拖动所需的信息(例如,被拖动的节点数据)。接着,调用DragManager.doDrag方法启动拖放过程。 接着,我们需要为目标区域设置DropTarget。在...
2. **Drag and Drop功能**:Flex内置了拖放(Drag and Drop)API,使得用户可以轻松实现节点的拖动。通过监听鼠标事件,如mousedown、mousemove和mouseup,可以创建自定义的拖放行为。用户只需点击节点并移动鼠标,...
在IT行业中,Flex是一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。这个实例涉及的是在Flex中的Tree组件实现节点的内部拖放功能,这对于创建交互式用户界面,尤其是数据层级结构的展示...