从TileList拖动图像并在Flex 3中放置Canvas

时间:2012-05-07 02:45:52

标签: actionscript-3 flex canvas drag-and-drop flex3

我正在开发一个Flex项目,我将不得不使用拖动和放大器。丢弃功能。 我有一个TileList填充图像作为项目,和一个画布。我使用了tilelist的“dragEnabled”“dragMoveEnabled”属性来使图像(项目)可以拖动,但不能使画布成为可丢弃的区域。

顺便说一下,我是新手,所以请简单一点。 谢谢你

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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图像。 任何帮助..我将不胜感激