flex中list或Combox中的子项上移下移操作
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
width="550" height="400">
<mx:Script>
<![CDATA[
import mx.utils.ObjectUtil;
import mx.collections.*;
[Bindable]
private var dp:ArrayCollection=new ArrayCollection([
{Artist:'Pavement1', Album:'Slanted and Enchanted',
Price:11.99, InStock: true},
{Artist:'Pavement2', Album:'Crooked Rain, Crooked Rain',
Price:10.99, InStock: false},
{Artist:'Pavement3', Album:'Wowee Zowee',
Price:12.99, InStock: true},
{Artist:'Asphalt1', Album:'Brighten the Corners',
Price:11.99, InStock: false},
{Artist:'Asphalt2', Album:'Terror Twilight',
Price:11.99, InStock: true},
{Artist:'Asphalt3', Album:'Buildings Meet the Sky',
Price:14.99, InStock: true},
{Artist:'Other', Album:'Other', Price:5.99, InStock: true}
]);
private function up():void{
if(list.selectedIndex>0){
var i:int=list.selectedIndex;
var tmp:Object=ObjectUtil.copy(list.selectedItem);
var tmpupper:Object=dp.getItemAt(i-1);
dp.setItemAt(tmpupper,i);
dp.setItemAt(tmp,i-1);
list.selectedIndex=i-1;
list.selectedItem=tmp;
}
}
private function down():void{
if (list.selectedIndex<dp.length-1){
var i:int=list.selectedIndex;
var tmp:Object=ObjectUtil.copy(list.selectedItem);
var tmplower:Object=dp.getItemAt(i+1);
dp.setItemAt(tmplower,i);
dp.setItemAt(tmp,i+1);
list.selectedIndex=i+1;
list.selectedItem=tmp;
}
}
]]>
</mx:Script>
<mx:List dataProvider="{dp}" id="list" labelField="Artist"></mx:List>
<mx:Button label="UP" click="{up();}" enabled="{list.selectedItem!=null}"/>
<mx:Button label="DOWN" click="{down();}" enabled="{list.selectedItem!=null}"/>
</mx:Application>