1
我正在做一個匹配遊戲,在我的左邊有一些圖像,我可以將它們拖到我右邊的圖像上,如果它們匹配,它們都應該從舞臺上消失。拖動管理器 - 如何訪問dragDropHandler中拖動事件的目標?
MXML代碼:
<mx:VBox>
<mx:Repeater id="rp" dataProvider="{urlAC}">
<mx:Image width="150" height="150" source="{rp.currentItem}"
mouseMove="initiateDrag(event,event.currentTarget.getRepeaterItem())"/>
</mx:Repeater>
</mx:VBox>
<mx:VBox>
<mx:Repeater id="rp1" dataProvider="{matchAC}">
<mx:Image width="150" height="150" source="{rp1.currentItem}"
dragEnter="dragEnterHandler(event, event.currentTarget.getRepeaterItem())"
dragDrop="dragDropHandler(event)"/>
</mx:Repeater>
</mx:VBox>
事件處理程序:
private function initiateDrag(event:MouseEvent,path:String):void
{
findMatch(path);
var dragInitiator:Image = Image(event.currentTarget);
var datasource:DragSource = new DragSource();
datasource.addData(matchTarget, "match");
DragManager.doDrag(dragInitiator, datasource, event);
}
private function dragEnterHandler(event:DragEvent, pathMatch:String):void
{
var dropTarget:Image =event.currentTarget as Image;
if (event.dragSource.hasFormat("match") && event.dragSource.dataForFormat("match")==pathMatch)
{
DragManager.acceptDragDrop(dropTarget);
}
}
private function dragDropHandler(event:DragEvent):void
{
event.currentTarget.source="";
}
findMatch()是在我的XML認定文件,該文件正在拖動文件相匹配的文件的路徑的功能。獲得該路徑後,我將它發送到dragEnterHandler,並將其與dropTarget文件的路徑進行比較,如果它們相同,則接受它。然後在dragDropHandler中,我將第二張圖片的源路徑更改爲「」,以便它從舞臺上消失。如何訪問第一個文件(被拖動的文件),以便我可以將其路徑更改爲「」,以便將其刪除?