Flex拖拽 Canvas容器里拖动Box
2009-02-18
缩略显示
Flex拖拽-Canvas容器里拖动Box
文章分类:Web前端关键字: flex, flex拖拽, canvas, box
<?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方法改变拖拽源的位置
相关文档:
Adobe在开发Flex最有利的工具就是Flex Builder,然而,工欲善其事,必先利其"键",快速键对一般开发者来说都非常有用,非但如此,很多快速键与组合键是会与其他软体或系统都有雷同之处,举个例子来说,Ctrl + C就是复制,Ctrl + V就是贴上,看看许多作业系统与编辑软体是不是都一样呢?若你有注意到就会不难发现,其实Flex ......
下载地址一:
http://download.macromedia.com/pub/flex/flex_builder/FB3_win.exe
大小: 424 MB ;未进行压缩的 Flex Builder 3 安装文件
不用注册登录,可以直接下载。
下载地址二:
http://trials.adobe.com/Applications/.../FB3_WWEJ.exe
大小: 385.84 MB ; 已经压缩的 Flex Builder 3 安装文件
需要注册 ......
在项目中用到了多个module时,在第一次加载Module是可以的。在第二次加载module时会出现转换失败
解决方法:
如下为解决办法:在要调用远程对象的Application文件里面,加上如下声明语句:
import flash.net.registerClassAlias;
registerClassAlias("JAVA端的类全名",A ......
最近项目需要运用到FLEX,但GOOGLE一下发现可用的资料实在太少了。
找了好久发现google code上在这个还不错,还有很多东西可以好好研究研究
http://code.google.com/p/as3gif/
下面的例子是将动态GIF绑定到SPRITE上
package com.render
{
import flash.display.Sprite;
import flash.events.IOErr ......
关键字: flex, 拖拽函数
Flex组件内置了处理拖拽事件的接口,有些控件已经实现了拖拽功能,比如List、DataGrid、Menu、TileList、Tree,在设置相关的拖拽属性后,它们都可以在相同类型的组件之间利用鼠标来实现数据的转移。
allowDragSelection 是否可以拖选
&n ......