Flex由于在其Framwork里加入了DragDrop管理器,可以使得开发者在Flex应用中实现类似桌面的效果,默认情况下,Flex的拖拽管理器是针对List等控件的,实现这类控件之间的Item拖拽非常容易。下面是一个很简单的小例子
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="450" height="350" creationComplete="initApp()" backgroundColor="#FFFFFF" fontSize="12"> <mx:Script> <![CDATA[ private function initApp():void{ words.dataProvider=['Water','水','Car','汽车','House','房屋','Book','书籍','Music','音乐','Sandwich','三明治']; english.dataProvider=[]; chinese.dataProvider=[]; } ]]></mx:Script> <mx:Panel x="0" y="0" width="450" height="350" layout="absolute" title="Sort Words By Language"> <mx:Label x="7" y="3" text="Drag to Correct Language"/> <mx:List x="7" y="25" id="words" width="200" height="275" allowMultipleSelection="true" dragEnabled="true"></mx:List> <mx:Label x="223" y="6" text="English"/> <mx:List x="223" y="25" id="english" width="200" height="120" dropEnabled="true"></mx:List> <mx:Label x="223" y="150" text="中文"/> <mx:List x="223" y="177" id="chinese" width="200" height="120" dropEnabled="true"></mx:List> </mx:Panel></mx:Application>
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="400" backgroundColor="#FFFFFF" creationComplete="initApp()" layout="absolute"> <mx:Script> <![CDATA[ import mx.controls.DataGrid; import mx.controls.Image; import mx.collections.ArrayCollection; import mx.events.DragEvent; import mx.managers.DragManager; import mx.core.DragSource; [Bindable] public var total:Number=0; [Bindable] public var cartContents:ArrayCollection; private function initApp():void{ this.cartContents=new ArrayCollection(); } private function dragIt(event:MouseEvent,name:String,price:Number):void{ //CurrentTarget指定要实现拖拽事件的初始化目标 var dragInitiator:Image=event.currentTarget as Image; //指定一个dragSource来包括拖拽过程中包含的数据的对象 var dragSource:DragSource=new DragSource(); //向对象添加数据 dragSource.addData(name,'name'); dragSource.addData(price,'price'); //创建一个拖拽对象的代理作为拷贝 var dragProxy:Image=new Image(); dragProxy.source=event.currentTarget.source; //使用DragManager静态方法doDrag开始拖拽 DragManager.doDrag(dragInitiator,dragSource,event,dragProxy); } private function dragEnterHandler(event:DragEvent):void{ var dropTarget:DataGrid=event.currentTarget as DataGrid; if (event.dragSource.hasFormat('name') && event.dragSource.hasFormat('price')){ DragManager.acceptDragDrop(dropTarget); } } private function dragDropHandler(event:DragEvent):void{ var name:String= String(event.dragSource.dataForFormat('name')); var price:Number=Number(event.dragSource.dataForFormat('price')); this.cartContents.addItem({name:String(event.dragSource.dataForFormat('name')),price:String(event.dragSource.dataForFormat('price'))}); total+=price; } ]]> </mx:Script> <mx:Canvas x="19" y="10"> <mx:Image x="23" y="35" width="64" height="64" mouseMove="dragIt(event,'Dreamweaver',499);" source="@Embed(source='../assets/056.png')"/> <mx:Label x="41" y="107" text="499"/> <mx:Image x="23" y="133" width="64" height="64" mouseMove="dragIt(event,'Fireworks',299);" source="@Embed(source='../assets/057.png')"/> <mx:Label x="41" y="205" text="299"/> <mx:Image x="23" y="231" width="64" height="64" mouseMove="dragIt(event,'Flash',599);" source="@Embed(source='../assets/059.png')"/> <mx:Label x="41" y="303" text="599"/> </mx:Canvas> <mx:Label x="210" y="61" text="购物篮" fontSize="12"/> <mx:DataGrid x="129.5" y="102" id="cart" dataProvider="{cartContents}" dragEnter="dragEnterHandler(event);" dragDrop="dragDropHandler(event);" height="165" fontSize="12"> <mx:columns> <mx:DataGridColumn headerText="产品" dataField="name"/> <mx:DataGridColumn headerText="价格" dataField="price"/> </mx:columns> </mx:DataGrid> <mx:Label x="186" y="292" text="总计:{total}" fontSize="12"/> <mx:Label x="129.5" y="0" text="拖拽物品放入购物篮中" fontSize="12"/> <mx:HRule x="5" y="20" width="390"/> </mx:Application>
我的个人网站
www.webdesign-cn.com
www.levs.com
分享到:
相关推荐
在"Flex样式范例网站"中,我们可以期待看到一系列关于如何使用Flexbox进行网页设计的实例。 Flexbox的主要目标是为容器内的子元素提供更灵活的布局控制,包括水平或垂直对齐、自动换行、自适应大小分配等。在传统...
flex真是个很强大的工具,当然demo也是我们学习的主要方法,flex拖拽画矩形,很流畅的,一点不卡
在前端开发中,"flex拖拽"是一种常见交互设计,特别是在构建可自定义布局或需要用户手动调整元素位置的应用中。Flex布局(Flexible Box Layout)是CSS3的一种布局模式,它提供了一种更加灵活的方式来控制容器中子...
Flex特效范例源码主要涉及的是Adobe Flex技术,这是一套用于构建富互联网应用程序(Rich Internet Applications,RIA)的开源框架。Flex以其强大的组件库、数据绑定机制和丰富的图形效果而闻名,尤其适用于创建交互...
本篇文章将详细讲解Flex拖拽库的相关知识点。 一、Flex中的拖放(Drag-and-Drop)机制 1. 拖放事件模型:在Flex中,实现拖放功能涉及一系列的事件,包括`dragStart`、`drop`、`dragEnter`、`dragLeave`、`dragOver`...
### Flex拖拽功能详解 Flex框架提供了一套强大的机制用于实现拖放(drag and drop)功能,这在用户界面设计中极为常见,特别是在构建高度交互性的应用时。本文旨在深入探讨Flex中的拖拽功能,包括其工作原理、关键...
`Base64_FLEX编码范例`主要展示了如何在FLEX项目中实现Base64编码和解码功能。`Base64Util.as`是一个AS3类文件,包含了Base64的编码和解码方法。`Base64Util.docx`可能是文档说明,包含有关如何使用这些方法的详细...
在Flex中,我们可以为任何UIComponent创建一个DragSource,定义拖动时的数据。例如,如果要拖动一个列表项,我们可以这样设置: ```actionscript var dragSource:DragSource = new DragSource(); dragSource....
在本文中,我们将深入探讨Flex技术,特别是关于拖动、放大缩小以及在模拟地图场景中的应用。Flex是一种基于ActionScript 3.0的开放源代码框架,主要用于构建富互联网应用程序(RIA)。它允许开发者创建交互性强、...
这个主题聚焦于“Flex拖拽控件效果”,这是一项常见的用户交互功能,允许用户通过鼠标操作移动UI元素,提升应用的易用性和互动性。 在Flex中,实现拖放(Drag and Drop)功能主要涉及两个核心类:`DragManager`和`...
在这个场景中,我们关注的是Flex实现的拖拽控件,这是一种交互式UI元素,允许用户通过鼠标操作移动元素,提供了丰富的用户体验。 拖拽功能在Flex中可以通过使用内置的DragManager类和Event类来实现。DragManager类...
Flex SNMP范例是一个基于Flex3技术的源代码示例,用于实现SNMP(简单网络管理协议)的功能。Flex是Adobe公司推出的一种富互联网应用程序(Rich Internet Application,RIA)开发框架,它基于ActionScript编程语言和...
"flex拖拽效果"是指利用Flex布局来实现元素的拖放功能,使得用户可以通过鼠标或其他输入设备对页面上的元素进行移动和重新排列。这对于构建交互式界面、组织工作区或自定义布局等场景非常有用。 首先,要理解Flex...
在本案例中,我们关注的是一个特定的实现——"flex拖动树形",这是一种允许用户通过拖放操作在两个区域之间移动节点的自定义树形控件。 拖放功能是人机交互中常见的一种交互模式,用于在界面上移动元素,常用于文件...
Flex是一种由Adobe公司...总之,Flex拖拽树控件提供了丰富的交互体验,允许用户直观地管理和组织树形数据。通过理解并应用上述步骤和概念,开发者可以创建出高效且用户友好的界面,提高应用程序的可用性和用户体验。
在本项目中,“flex 拖拽框架和图表服务的实现”是一个利用Flex技术创建的交互式应用,允许用户通过拖放操作来交互地操纵界面元素。下面将详细介绍这个项目中的关键知识点。 1. Flex框架:Flex是ActionScript 3.0的...
在Flex开发中,"Flex可以拖拽的panel"是一个重要的功能点,它允许用户通过鼠标操作将面板(Panel)在界面上自由移动,提升用户体验,尤其是对于需要自定义布局的应用程序来说,这种交互方式非常实用。下面我们将深入...
标题"flex 拖拽效果程序"表明我们将关注的是如何在Flex中创建一个具有拖放功能的程序。在Flex中,这种功能主要通过DragManager和UIComponent类的拖放API来实现。让我们详细了解一下实现拖放效果的过程。 1. **启用...
在Flex4中,拖放(Drag and Drop,简称DnD)功能是一项强大的交互设计工具,它允许用户通过直观的拖动操作在界面上移动或转移数据。在本主题中,我们将深入探讨如何在Flex4中实现图片的拖放功能,包括两种模式:拖动...
这个范例“Flex Multiple File Uploader”是利用Flex技术实现的一个支持多文件同时上传的功能组件。在Web应用中,多文件上传功能通常用于让用户能够一次性选择并上传多个文件,提高用户交互体验。 首先,我们要理解...