<? 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>