<?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方法改变拖拽源的位置
分享到:
相关推荐
- `mx:Canvas`:这是一个容器,用于放置拖拽后产生的新图片。 - `mx:Image`:这是一张初始图片,id 为 `img`,用户可以通过点击该图片开始拖拽。 接下来,我们逐个分析这几个函数的作用: **3.1 initApp() 函数** ...
在探讨"FLEX主要容器关系图"这一主题时,我们深入解析Flex框架中各种容器组件的层次结构与相互关联,这对于理解和应用Flex布局至关重要。Flex,作为Adobe推出的一款用于开发跨平台应用程序的开源框架,其核心优势...
在前端开发中,布局设计是至关重要的,而Flex布局(Flexible Box)则为现代Web页面提供了强大且灵活的布局解决方案。本教程将深入探讨“Flex_Boxs_BorderContainer_Canvas_DividedBox_Form”中的各个知识点,帮助你...
- **DivideBox**: 可调整大小的容器,允许用户通过拖拽来调整子组件的大小。 - **Form、FormHeading、FormItem**: 表单及其相关的标题和表单项。 - **Grid、GridItem、GridRow**: 表格布局及其相关的单元格和行。 - ...
- **示例**: `box-shadow: 0px 0px 10px gold;` - **参数解释**: 第一个值为水平偏移量,第二个值为垂直偏移量,第三个值为模糊半径,第四个值为颜色。 #### 1.6 背景图片 - **background**: 用于设置元素的背景...
12.7节在Flex Effect里使用DisplacementMapFilter过滤器 12.8节创建AnimateColor 特效 12.9节使用Convolution Filter创建渐变效果 第十三章. 集合(439) 13.1节. 为ArrayCollection添加,排序和获取数据 13.2节. ...
在Flex中,`clipContent`是`Container`类的一个公共属性,这意味着许多常见的容器组件,如`Accordion`、`Box`、`Canvas`、`Form`、`FormItem`、`LayoutContainer`、`Panel`、`Tile`、`ViewStack`等,都支持这一属性...
6. Canvas、地理定位、拖拽 7. 本地存储:localStorage-没有时间限制的数据存储,sessionStorage---针对一个session的数据存储,当用户关闭浏览器窗口后,数据会被删除 8. 新事件:onresize、onscroll、onerror、on...
- 弹性盒布局模型(Flexible Box),通过`display: flex`或`display: inline-flex`实现更加灵活的容器内元素布局。 8. **Grid布局** - CSS Grid布局提供二维网格系统,用`grid-template-columns`、`grid-template...
- **盒模型差异**:IE6使用的是不同的盒模型计算方式,可以通过`box-sizing:border-box;`来解决。 - **透明度问题**:使用`filter:alpha(opacity=50);`代替`opacity:0.5;`来设置透明度。 - **背景图片重复问题**:...
10. **CSS3样式:**覆盖CSS3新增的样式属性如`border-radius`、`box-shadow`、`text-shadow`等。 11. **响应式布局:**学习使用媒体查询(media queries)实现响应式网页设计。 12. **Flex布局与Grid布局:**理解...