Olá, pessoal!
Tenho o seguinte código de drag and drop e duas dúvidas:
1 - Como faço pra quando eu clicar no objeto que foi criado com o drag and drop eu poder ver o ID desse objeto e interagir com ele?
2 - Tem como fazer isso com um componente externo criado por mim (imagem + botão, por exemplo)?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml" layout="horizontal" viewSourceURL="srcview/index.html" width="100%" height="100%">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.Image;
import mx.core.DragSource;
import mx.core.UIComponent;
import mx.events.DragEvent;
import mx.managers.DragManager;
private var teste_id:int;
private function doDragEnter(event:DragEvent):void
{
DragManager.acceptDragDrop(UIComponent(event.target));
}
private function showID():void {
Alert.show("entrei");
lbl.text = String(teste_id);
}
private function doDragDrop(event:DragEvent):void
{
var img:Image;
if (event.dragInitiator.parent == dropCanvas)
img = event.dragInitiator as Image;
else
{
img = new Image();
img.id = String(teste_id);
img.source = (event.dragInitiator as Image).source;
img.addEventListener(MouseEvent.MOUSE_DOWN, doDragStart);
img.addEventListener(MouseEvent.CLICK,showID);
dropCanvas.addChild(img);
teste_id++
}
img.x = event.localX - (event.dragSource.dataForFormat("localX") as Number);
img.y = event.localY - (event.dragSource.dataForFormat("localY") as Number);
}
private function doDragStart(event:MouseEvent):void
{
var dragInitiator:Image = event.currentTarget as Image;
var dragSource:DragSource = new DragSource();
var dragProxy:Image = new Image();
dragProxy.source = dragInitiator.source;
dragProxy.width = dragInitiator.width;
dragProxy.height= dragInitiator.height;
dragSource.addData(event.localX, "localX");
dragSource.addData(event.localY, "localY");
DragManager.doDrag(dragInitiator, dragSource, event, dragProxy);
}
]]>
</mx:Script>
<mx:VBox>
<mx:Image source="@Embed('assets/Hawk.jpg')" mouseDown="doDragStart(event)" />
</mx:VBox>
<mx:Canvas id="dropCanvas" width="100%" height="100%" borderColor="#1C5CC7" dragEnter="doDragEnter(event)" dragDrop="doDragDrop(event)" borderStyle="solid" cornerRadius="20" borderThickness="6" backgroundColor="#7E92FC"/>
<mx:Label text="Label" color="#FF000C" id="lbl"/>
</mx:Application>