<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="init()" viewSourceURL="srcview/index.html">
	
	<mx:Script>
		<![CDATA[
			import mx.collections.SortField;
			import mx.collections.Sort;
			import mx.collections.ArrayCollection;
		
			[Bindable]
			private var arrColl:ArrayCollection;
		
			/** This method gets called by the main mx:Application tag and initializes/populates the ArrayCollection object with a bunch of random numbers. */
			private function init():void {
				var i:int;

				/* Initialize and populate the ArrayCollection object. */
				arrColl = new ArrayCollection();
				for (i = 0; i < 20; i++) {
					arrColl.addItem({data:getRandomNumber().toFixed(4)});
				}
			}

			/** This method returns a random floating-point number between 0 and 10000. */
			private function getRandomNumber():Number {
				return Math.random() * 10000;
			}
			
			/** This method gets called by the Button control's click handler and creates a new SortField and Sort object which are used to sort the ArrayCollection. */
			private function button_click():void {
				/* Create the SortField object for the "data" field in the ArrayCollection object, and make sure we do a numeric sort. */
				var dataSortField:SortField = new SortField();
				dataSortField.name = "data";
				dataSortField.numeric = true;

				/* Create the Sort object and add the SortField object created earlier to the array of fields to sort on. */
				var numericDataSort:Sort = new Sort();
				numericDataSort.fields = [dataSortField];

				/* Set the ArrayCollection object's sort property to our custom sort, and refresh the ArrayCollection. */
				arrColl.sort = numericDataSort;
				arrColl.refresh();
			}
		]]>
	</mx:Script>
	
	<mx:List id="list" dataProvider="{arrColl}" textAlign="right" labelField="data" width="100" />
	
	<mx:Button id="button" label="sort items" click="button_click()" />
	
</mx:Application>

