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

Flex拖拽-Canvas容器里拖动Box

    博客分类:
  • Flex
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import mx.core.IUIComponent;
			import mx.containers.Box;
			import mx.containers.Canvas;
			import mx.events.DragEvent;
			import mx.managers.DragManager;
			import mx.core.DragSource;
			import mx.core.UIComponent;
			private static const FORMAT:String = "box";

			private function boxMouseDownHandler(evt:MouseEvent):void{
				var iu:IUIComponent = evt.currentTarget as IUIComponent;
				var dragSource:DragSource = new DragSource();
				dragSource.addData( iu, FORMAT );
				DragManager.doDrag( iu, dragSource, evt );
			}
			
			private function canvasDragEnterHandler(evt:DragEvent):void{
				if(evt.dragSource.hasFormat(FORMAT)){
					DragManager.acceptDragDrop(Canvas(evt.currentTarget));
				}
			}
			
			private function canvasDragHandler(evt:DragEvent):void{
				var box:Box = Box(evt.dragInitiator);
				box.x = evt.localX;
				box.y = evt.localY;
			}
		]]>
	</mx:Script>
	
	<mx:Canvas backgroundColor="0xEEEEEE" width="500" height="200" horizontalCenter="0" verticalCenter="0" dragEnter="canvasDragEnterHandler(event)" dragDrop="canvasDragHandler(event)">
		<mx:Box width="20" height="20" backgroundColor="0x00FFCC" x="137" y="66" mouseDown="boxMouseDownHandler(event);"></mx:Box>
	</mx:Canvas>
</mx:WindowedApplication>

 

 

当<mx:Box>发出mouseDown事件时,boxMouseDownHandler 方法被调用并且拖拽源数据被增加到DragManager。
canvasDragEnterHandler检查拖拽源的格式
释放时canvasDragHandler方法改变拖拽源的位置

4
0
分享到:
评论

相关推荐

    Flex 拖拽图片代码

    - `mx:Canvas`:这是一个容器,用于放置拖拽后产生的新图片。 - `mx:Image`:这是一张初始图片,id 为 `img`,用户可以通过点击该图片开始拖拽。 接下来,我们逐个分析这几个函数的作用: **3.1 initApp() 函数** ...

    FLEX主要容器关系图

    在探讨"FLEX主要容器关系图"这一主题时,我们深入解析Flex框架中各种容器组件的层次结构与相互关联,这对于理解和应用Flex布局至关重要。Flex,作为Adobe推出的一款用于开发跨平台应用程序的开源框架,其核心优势...

    Flex_Boxs_BorderContainer_Canvas_DividedBox_Form

    在前端开发中,布局设计是至关重要的,而Flex布局(Flexible Box)则为现代Web页面提供了强大且灵活的布局解决方案。本教程将深入探讨“Flex_Boxs_BorderContainer_Canvas_DividedBox_Form”中的各个知识点,帮助你...

    Flex UI组件使用全集

    - **DivideBox**: 可调整大小的容器,允许用户通过拖拽来调整子组件的大小。 - **Form、FormHeading、FormItem**: 表单及其相关的标题和表单项。 - **Grid、GridItem、GridRow**: 表格布局及其相关的单元格和行。 - ...

    弹性布局,3d动画,animation动画,等等

    - **示例**: `box-shadow: 0px 0px 10px gold;` - **参数解释**: 第一个值为水平偏移量,第二个值为垂直偏移量,第三个值为模糊半径,第四个值为颜色。 #### 1.6 背景图片 - **background**: 用于设置元素的背景...

    flex3的cookbook书籍完整版dpf(包含目录)

    12.7节在Flex Effect里使用DisplacementMapFilter过滤器 12.8节创建AnimateColor 特效 12.9节使用Convolution Filter创建渐变效果 第十三章. 集合(439) 13.1节. 为ArrayCollection添加,排序和获取数据 13.2节. ...

    Flex clipContent 编程注意

    在Flex中,`clipContent`是`Container`类的一个公共属性,这意味着许多常见的容器组件,如`Accordion`、`Box`、`Canvas`、`Form`、`FormItem`、`LayoutContainer`、`Panel`、`Tile`、`ViewStack`等,都支持这一属性...

    2021年前端面试题汇总.docx

    6. Canvas、地理定位、拖拽 7. 本地存储:localStorage-没有时间限制的数据存储,sessionStorage---针对一个session的数据存储,当用户关闭浏览器窗口后,数据会被删除 8. 新事件:onresize、onscroll、onerror、on...

    CSS3.0参考手册

    - 弹性盒布局模型(Flexible Box),通过`display: flex`或`display: inline-flex`实现更加灵活的容器内元素布局。 8. **Grid布局** - CSS Grid布局提供二维网格系统,用`grid-template-columns`、`grid-template...

    web前端面试题

    - **盒模型差异**:IE6使用的是不同的盒模型计算方式,可以通过`box-sizing:border-box;`来解决。 - **透明度问题**:使用`filter:alpha(opacity=50);`代替`opacity:0.5;`来设置透明度。 - **背景图片重复问题**:...

    Web前端+后端+架构 21部从零玩转Web全栈超级架构师 2000集50G容量爆表-学完就够用!

    10. **CSS3样式:**覆盖CSS3新增的样式属性如`border-radius`、`box-shadow`、`text-shadow`等。 11. **响应式布局:**学习使用媒体查询(media queries)实现响应式网页设计。 12. **Flex布局与Grid布局:**理解...

Global site tag (gtag.js) - Google Analytics