<?xml version="1.0" encoding="utf-8"?>
<mx:Application
width="300"
height="200"
paddingLeft="0"
paddingTop="0"
paddingRight="0"
paddingBottom="0"
xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">
<mx:List
id="plList"
width="300"
height="200"
labelField="@name"
iconField="@icon"
dataProvider="{playlists.pl}"
dragEnabled="true"
dragMoveEnabled="true"
dropEnabled="true"
dragOver="listDragOverHandler(event)"/>
<mx:XML id="playlists">
<root>
<pl name="Playlist1" icon="myIcon" canMove="1" />
<pl name="Radio" icon="myIcon2" canMove="0" />
<pl name="Random" icon="myIcon" canMove="1" />
<pl name="Best 90" icon="myIcon" canMove="1" />
<pl name="Custom" icon="myIcon2" canMove="0" />
</root>
</mx:XML>
<mx:Script>
<![CDATA[
import mx.managers.DragManager;
import mx.events.DragEvent;
[Bindable]
[Embed("../assets/normal.png")]
public var myIcon:Class;
[Bindable]
[Embed("../assets/smart.png")]
public var myIcon2:Class;
private function listDragOverHandler( event:DragEvent ):void
{
event.preventDefault();
var selectedItem :XML = XML(plList.selectedItem);
var move :Number = Number(selectedItem.attribute('canMove'));
if (event.dragSource.hasFormat("items") && move)
{
event.currentTarget.showDropFeedback(event);
DragManager.showFeedback(DragManager.MOVE);
return;
}
event.currentTarget.hideDropFeedback(event);
DragManager.showFeedback(DragManager.NONE);
}
]]>
</mx:Script>
</mx:Application>