임베디드 FLEX
글 수 19
2008.10.17 19:28:33 (*.105.125.81)
88164
이미지를 포함하고 있는 List 컴포넌트를 이용하여 드래그 드롭 이벤트 함수를 직접 작성하여 간단한 드래그 드롭에 대한 처리를 설명하는 예제이다.
소스 및 폼
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
fontFamily="굴림체" fontSize="16"
creationComplete="CreaetApp()">
<mx:Script>
<![CDATA[
import mx.controls.Image;
import mx.collections.ArrayCollection;
import mx.core.DragSource;
import mx.managers.DragManager;
import mx.core.IUIComponent;
import mx.events. *;
[Bindable] private var lbdataL1 : ArrayCollection;
[Bindable] private var lbdataL2 : ArrayCollection;
[Bindable] private var lbdataR : ArrayCollection;
[Bindable] [Embed(source='image/black.png')] private var imgBlack:Class;
[Bindable] [Embed(source='image/red.png')] private var imgRed:Class;
[Bindable] [Embed(source='image/blue.png')] private var imgBlue:Class;
[Bindable] [Embed(source='image/green.png')] private var imgGreen:Class;
[Bindable] [Embed(source='image/white.png')] private var imgWhite:Class;
private function CreaetApp():void {
lbdataL1 = new ArrayCollection();
lbdataL1.addItem({image:imgBlack});
lbdataL1.addItem({image:imgRed} );
lbdataL1.addItem({image:imgBlue} );
lbdataL1.addItem({image:imgGreen});
lbdataL1.addItem({image:imgWhite});
lbdataL2 = new ArrayCollection();
lbdataL2.addItem({image:imgBlack});
lbdataL2.addItem({image:imgRed} );
lbdataL2.addItem({image:imgBlue} );
lbdataL2.addItem({image:imgGreen});
lbdataL2.addItem({image:imgWhite});
lbLeft0.dataProvider=lbdataL1;
lbLeft1.dataProvider=lbdataL2;
lbdataR = new ArrayCollection();
lbRight0.dataProvider=lbdataR;
}
private function doDragEnter(event:DragEvent) :void {
var dragInitiator:List = List(event.dragInitiator);
var dragTarget:List = List(event.currentTarget);
if( dragInitiator.id == "lbLeft0" )
{
DragManager.acceptDragDrop(dragTarget);
DragManager.showFeedback(DragManager.COPY);
}
}
private function doDragDrop(event:DragEvent) :void {
var item:Object = lbLeft0.selectedItem;
lbdataR.addItem(item);
event.preventDefault();
}
]]>
</mx:Script>
<mx:Panel y="10" width="388" height="457"
layout="absolute" horizontalCenter="0" title="단방향">
<mx:List id="lbLeft0"
dragEnabled="true"
y="19" width="162" height="187" horizontalCenter="-86"
rowHeight="64">
<mx:itemRenderer>
<mx:Component>
<mx:Image source="{data.image}" />
</mx:Component>
</mx:itemRenderer>
</mx:List>
<mx:List id="lbLeft1"
dragEnabled="true"
y="216" width="162" height="178" horizontalCenter="-86"
rowHeight="64">
<mx:itemRenderer>
<mx:Component>
<mx:Image source="{data.image}" />
</mx:Component>
</mx:itemRenderer>
</mx:List>
<mx:List id="lbRight0"
dragEnter="doDragEnter(event)"
dragDrop="doDragDrop(event)"
y="19" width="162" height="375" horizontalCenter="84" rowHeight="64">
<mx:itemRenderer>
<mx:Component>
<mx:Image source="{data.image}" />
</mx:Component>
</mx:itemRenderer>
</mx:List>
</mx:Panel>
</mx:Application>
예제 실행



