0

我正在开发一个 Flex 项目,我将不得不使用拖放功能。我有一个 TileList,里面装满了图像作为项目,还有一个 Canvas。我使用 tilelist 的“dragEnabled”“dragMoveEnabled”属性使图像(项目)可拖动,但不能使画布成为可放置区域。

顺便说一句,我是 flex 新手,所以请让它简单一点。谢谢你

4

2 回答 2

0

拖放功能可以手动添加到任何非基于列表的控件。看一眼:

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7cfc.html#WS2db454920e96a9e51e63e3d11c0bf69084-7d03

如果您在尝试实现上述内容后仍然苦苦挣扎,请发布一些代码,我将很乐意提供更多帮助。

于 2012-05-07T10:19:12.117 回答
0

我最终制作了这段代码!

<?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 图像。任何帮助..我将不胜感激

于 2012-05-08T02:32:40.543 回答