我正在开发一个 Flex 项目,我将不得不使用拖放功能。我有一个 TileList,里面装满了图像作为项目,还有一个 Canvas。我使用 tilelist 的“dragEnabled”和“dragMoveEnabled”属性使图像(项目)可拖动,但不能使画布成为可放置区域。
顺便说一句,我是 flex 新手,所以请让它简单一点。谢谢你
我正在开发一个 Flex 项目,我将不得不使用拖放功能。我有一个 TileList,里面装满了图像作为项目,还有一个 Canvas。我使用 tilelist 的“dragEnabled”和“dragMoveEnabled”属性使图像(项目)可拖动,但不能使画布成为可放置区域。
顺便说一句,我是 flex 新手,所以请让它简单一点。谢谢你
拖放功能可以手动添加到任何非基于列表的控件。看一眼:
如果您在尝试实现上述内容后仍然苦苦挣扎,请发布一些代码,我将很乐意提供更多帮助。
我最终制作了这段代码!
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
//Import classes####################################################################
import mx.managers.DragManager;
import mx.core.DragSource;
import mx.events.DragEvent;
import flash.events.MouseEvent;
// IMAGES ###########################################################################
[Bindable]
[Embed(source="assets/images/thumb/1.jpg")]
public var photo1:Class;
[Bindable]
[Embed(source="assets/images/thumb/2.jpg")]
public var photo2:Class;
// FUNCTIONS ###########################################################################
import mx.core.DragSource;
import mx.managers.DragManager;
import mx.events.DragEvent;
import mx.controls.Alert;
private function dragEnterHandler(event:DragEvent):void {
if (event.dragSource.hasFormat("items")){
DragManager.acceptDragDrop(Canvas(event.currentTarget));
}
}
private function dragDropHandler(event:DragEvent):void {
}
]]>
</mx:Script>
<!-- ######## CONTROLS ############################################################ -->
<!-- canvas -->
<mx:Canvas dragDrop="{dragDropHandler(event)}" dragEnter="{dragEnterHandler(event)}" x="395" y="10" width="436" height="486" backgroundColor="#FFFFFF">
</mx:Canvas>
<!-- tile list -->
<mx:TileList x="0" y="10" height="100%" width="154" columnCount="1" id="tl" maxColumns="1" dragEnabled="true" dragMoveEnabled="false" allowMultipleSelection="false" >
<mx:dataProvider>
<mx:Array>
<mx:Object label="photo 1" icon="{photo1}" data="photo" />
<mx:Object label="photo 2" icon="{photo2}" data="photo" />
</mx:Array>
</mx:dataProvider>
</mx:TileList>
</mx:Application>
画布现在接受我的拖动,但是当我将图像放到它上面时,图像就消失了。我知道我必须创建一个函数来处理 DragDrop 事件,但我真的不知道如何获取 dragSource 图像。任何帮助..我将不胜感激