<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%"
	applicationComplete="initApp();">
<mx:Script>
	<![CDATA[
		import mx.events.CollectionEvent;
		import mx.managers.DragManager;
		import mx.events.DragEvent;
		import mx.collections.ArrayCollection;
		import mx.events.CollectionEventKind;
		
		[Bindable]
		private var data_providerA:ArrayCollection;
		[Bindable]
		private var data_providerB:ArrayCollection;
		
		private function initApp():void{
			data_providerA = new ArrayCollection();
			data_providerB = new ArrayCollection();
			data_providerA.source = [{label:"One",data:"One"},
									{label:"Two",data:"Two"}];
			listA.dragEnabled = true;
			listB.dropEnabled = true;
			data_providerB.addEventListener(CollectionEvent.COLLECTION_CHANGE, dataBChanged);
		}
		
		private function dataBChanged(event:CollectionEvent):void{
			tracer("*******data changed********");
			for(var i:Number=0;i<data_providerB.length;i++){
				data_providerB.getItemAt(i).label = (i+1)+". "+data_providerB.getItemAt(i).data;
				if(i>0){
					tracer("item["+(i-1)+"] === item["+i+"]?");
					tracer(data_providerB.getItemAt(i) === data_providerB.getItemAt(i-1));
				}
			}
			tracer("**************************");
		}
		
		private function tracer(msg:*):void{
			output.text += msg.toString()+"\n";
		}
	]]>
</mx:Script>

	<mx:List dataProvider="{data_providerA}" 
		height="180" 
		horizontalCenter="-100" 
		id="listA" 
		width="180" top="40">
	</mx:List>
	<mx:List dataProvider="{data_providerB}" 
		id="listB" 
		height="180" 
		horizontalCenter="100" 
		width="180" 
		top="40">
	</mx:List>
	<mx:TextArea y="228" width="380" height="200" horizontalCenter="0" id="output"/>
	<mx:Label y="10" text="将左边的列表项拖至右端中" width="380" fontSize="12" horizontalCenter="0"/>
	
</mx:Application>

