<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/02/14/creating-timers-using-the-setinterval-method/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
		layout="vertical"
		verticalAlign="middle"
		backgroundColor="white" viewSourceURL="srcview/index.html">

	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.controls.dataGridClasses.DataGridColumn;

			private var interval:uint;

			private function startInt():void {
				interval = setInterval(getTime, 1000, "peter", getTimer());

				startButton.enabled = false;
				stopButton.enabled = true;
			}

			private function stopInt():void {
				if (interval) {
					clearInterval(interval);
					Alert.show("Interval stopped.");
					
					startButton.enabled = true;
					stopButton.enabled = false;
				}
			}

			private function getTime(param1:*, param2:*):void {
				arrColl.addItemAt({date:new Date(), p1:param1, p2:param2, timer:getTimer()}, 0);
			}

			private function date_labelFunc(item:Object, col:DataGridColumn):String {
				var dat:Date = item.date as Date;
				return dat.toTimeString();
			}

			private function timer_labelFunc(item:Object, col:DataGridColumn):String {
				return numberFormatter.format(item[col.dataField]);
			}
			
			private function diff_labelFunc(item:Object, col:DataGridColumn):String {
				return ((item.timer - item.p2) / 1000).toFixed(2);
			}
		]]>
	</mx:Script>

	<mx:NumberFormatter id="numberFormatter"
			useThousandsSeparator="true" />

	<mx:ArrayCollection id="arrColl" />

	<mx:ApplicationControlBar dock="true">
		<mx:Button id="startButton"
				label="start interval"
				click="startInt();" />
		<mx:Button id="stopButton"
				label="stop interval"
				enabled="false"
				click="stopInt();" />
	</mx:ApplicationControlBar>
	
	<mx:DataGrid id="list"
			dataProvider="{arrColl}"
			verticalScrollPolicy="on"
			width="100%">
		<mx:columns>
			<mx:DataGridColumn dataField="date"
					headerText="date:"
					labelFunction="date_labelFunc"
					width="200" />
			<mx:DataGridColumn dataField="timer"
					headerText="timer (ms):"
					labelFunction="timer_labelFunc"
					textAlign="right"
					width="100" />
			<mx:DataGridColumn dataField="p1"
					headerText="name:"
					width="100" />
			<mx:DataGridColumn dataField="p2"
					headerText="start (ms):"
					labelFunction="timer_labelFunc"
					textAlign="right"
					width="100" />
			<mx:DataGridColumn headerText="diff (sec):"
					labelFunction="diff_labelFunc"
					textAlign="right"
					width="100" />
		</mx:columns>
	</mx:DataGrid>
	
</mx:Application>

