FLEX拖拽小例子不知道错在哪

Mad7Fish 2009-06-09 10:49:49
如题,我在练习拖拽事件时遇到了问题。找不到原因为什么拖拽后接受容器不接收我的拖拽对象。请各位帮我看看我这段代码的问题好吗??我是菜菜鸟!谢谢各位了!


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:view="view.*"
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" xmlns:myImage="src.Images.*" creationComplete="initApp()">
<mx:Image x="269" y="220" source="FlexLogo.gif" id="img" width="72" height="23"/>
<mx:Canvas x="269" y="268" width="200" height="200" id="canvas_1" label="123">
</mx:Canvas>

<mx:Script>
<![CDATA[
import mx.core.DragSource;
import mx.core.IUIComponent;
import mx.events.DragEvent;
import mx.managers.DragManager;
internal function initApp():void
{
canvas_1.addEventListener(DragEvent.DRAG_ENTER,onEnter);
canvas_1.addEventListener(DragEvent.DRAG_OVER,overHandler);
img.addEventListener(MouseEvent.MOUSE_MOVE,doDrag);
}

internal function onEnter(evt:DragEvent):void
{
var enterTarget:IUIComponent = evt.target as IUIComponent;
DragManager.acceptDragDrop(enterTarget);
}

internal function doDrag(evt:MouseEvent):void
{
var dragTarget:IUIComponent = evt.currentTarget as IUIComponent;
var ds:DragSource = new DragSource();
var obj:Object= new Object();
obj.name="PIC.001";
ds.addData(obj,"PicName");
var dragImage:Image = new Image();
dragImage.source = "FlexLogo.gif";
dragImage.width=72;
dragImage.height=23;
DragManager.doDrag(dragTarget,ds,evt,dragImage,0,0,0.8,true);

}
internal function overHandler(evt:DragEvent):void
{
var newImg:Image = new Image();
newImg.source = "FlexLogo.gif";
canvas_1.addChild(newImg);
newImg.x=canvas_1.mouseX;
newImg.y=canvas_1.mouseY;
var obj:Object;
obj.name = evt.dragSource.dataForFormat("name");
newImg.toolTip = obj.name;

}
]]>
</mx:Script>
</mx:Application>
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mad7Fish 2009-06-16
  • 打赏
  • 举报
回复
啊,谢谢,我很菜,我再研究下。说起来这段代码是仿照着 《FLEX第一步》中第八章的内容作的。
liang3179 2009-06-12
  • 打赏
  • 举报
回复
没太看懂你的代码,
不过感觉你好像根本就没有触发你的函数,拖拽就无效了。

我没看懂你的函数有什么功能,呵呵。
king_wuzheng 2009-06-10
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:view="view.*"
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" xmlns:myImage="src.Images.*" creationComplete="initApp()">
<mx:Image x="269" y="220" source="logo_csdn.gif" id="img" width="72" height="23"/>
<mx:Canvas x="115" y="325" width="200" height="200" id="canvas_1" label="123" backgroundColor="#000000">
</mx:Canvas>

<mx:Script>
<![CDATA[
import mx.core.DragSource;
import mx.core.IUIComponent;
import mx.events.DragEvent;
import mx.managers.DragManager;
internal function initApp():void
{
canvas_1.addEventListener(DragEvent.DRAG_ENTER,onEnter);
img.addEventListener(MouseEvent.MOUSE_MOVE,doDrag);
canvas_1.addEventListener(DragEvent.DRAG_DROP,drop);
function drop(evt:DragEvent):void{
var newImg:Image = new Image();
newImg.source = "logo_csdn.gif";
canvas_1.addChild(newImg);
newImg.x=canvas_1.mouseX;
newImg.y=canvas_1.mouseY;
newImg.toolTip = evt.dragSource.dataForFormat("name") as String;
}
}

internal function onEnter(evt:DragEvent):void
{
var enterTarget:IUIComponent = evt.target as IUIComponent;
DragManager.acceptDragDrop(enterTarget);
}

internal function doDrag(evt:MouseEvent):void
{
var dragTarget:IUIComponent = evt.currentTarget as IUIComponent;
var ds:DragSource = new DragSource();
var obj:Object= new Object();
obj.name="PIC.001";
ds.addData(obj,"PicName");
var dragImage:Image = new Image();
dragImage.source = "logo_csdn.gif";
dragImage.width=72;
dragImage.height=23;
DragManager.doDrag(dragTarget,ds,evt,dragImage,0,0,0.8,true);

}
]]>
</mx:Script>
</mx:Application>

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧