工作需要表格自动滚动和单元格变色,网上没找到合适的,所以自己做了个小例子,初学FLEX,求交流,抛砖引玉... 组件:WindowUI <?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" > <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.events.ItemClickEvent; import mx.controls.tabBarClasses.Tab; public var len:int; public var delay:int=600; private var timer:Timer; private static var i:int=0; private function tabBar_itemClick(evt:ItemClickEvent):void { viewStack.selectedIndex = evt.index; } public function initTimer():void { len = arrCollC.length; if(timer){ if(timer.running){ timer.stop(); play.label="循环播放(开始)" }else{ timer.start(); play.label="循环播放(停止)" } }else{ timer = new Timer(delay); timer.addEventListener(TimerEvent.TIMER, timerHandler); timer.start(); play.label="循环播放(停止)" } } private function timerHandler(evt:TimerEvent):void { var now:String = new Date().toTimeString(); if(arrCollC.length > 0) { //根据数据的变化 实现滚动 //arrCollC.addItemAt(arrCollC.getItemAt(0),arrCollC.length); //arrCollC.removeItemAt(0); //根据滚动条 实现滚动 //对于包含 3 个正文行和 1 个标题行的 DataGrid 控件,其 rowCount 属性为 4。 再减一当前执行次数 if(timer.currentCount+tableDemo.rowCount-2 == len) { i=0; tableDemo.verticalScrollPosition=i; timer.reset(); timer.start(); }else{ i+=1; tableDemo.verticalScrollPosition=i; } } } private function mouseOverThere():void{ if(timer.running){ timer.stop(); autoType.text="1"; }else if(autoType.text=="1"){ timer.start(); autoType.text="0"; } } ]]> </mx:Script> <mx:Style> .tb{ background-color:glay; fill-colors:glay; } </mx:Style> <mx:Array id="arr"> <mx:Object label="省周排名" /> <mx:Object label="城市周排名" /> <mx:Object label="网格周排名" /> <mx:Object label="省月排名" /> <mx:Object label="城市月排名" /> <mx:Object label="网格月排名" /> </mx:Array> <mx:ArrayCollection id="arrCollC"> <mx:source> <mx:Array> <mx:Object col1="A.1" col2="A.2" col3="A.3" col