I think it may have to do with calling addEventListener. I think it may be adding and adding and adding. Is there a way to create a timer that calls a function every time an interval is reached? I've experimented with using useWeakReference but I don't see a difference. Any help would be appreciated.
--- In [email protected], "doepositive" <[EMAIL PROTECTED]> wrote: > > I'm changing the selectedIndex of a data grid with a simple function > call triggered by a Timer. I posted something a few weeks ago about > the same topic when changing an image. I was under the impression > that it was the image that was makeing the IE object size grow but it > seems with this new test that there is another issue with automating > a function with a Timer. Does anybody have any work arounnd for this > problem? I can't belive that this type of thing is an issue with a > platform like flex. > > Here is the working code...it's pretty straight forward. I just don't > get it. > > ---------------------------CODE------------------------------------- -- > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="vertical" > width="577" > height="68" > horizontalAlign="center" paddingBottom="0" paddingLeft="0" > paddingRight="0" paddingTop="0" > verticalAlign="middle" initialize="RSSfeed.send()" > creationComplete="ShortTimer()"> > > <mx:Script> > <![CDATA[ > import mx.controls.Alert; > private function nav(myUrl:String):void > { > var urlToNav:URLRequest = new URLRequest(myUrl); > navigateToURL(urlToNav,"_blank"); > } > [Bindable] > private var num:int = 1; > ////move the visible section of the data grid in focus > private function changeIndex():void > { > entries.scrollToIndex(num);//entries refers to the data > grid below > if (num < RSSfeed.lastResult.rss.channel.item.length){ > num++;//increase if thess than the length of > the feed > }else{ > num = 1;//set back to 1 > } > } > private function ShortTimer():void > { > // creates a new five-second Timer > var minuteTimer:Timer = new Timer(1000, 5); > // designates listeners for the interval event and the > completion event > minuteTimer.addEventListener(TimerEvent.TIMER, onTick); > minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, > onTimerComplete); > > // starts the timer ticking > minuteTimer.start(); > } > private function onTick(evt:TimerEvent):void > { > if(evt.target.currentCount == 5){ > ShortTimer(); > } > } > public function onTimerComplete(evt:TimerEvent):void > { > changeIndex() > ShortTimer(); > } > > > ]]> > </mx:Script> > <mx:Style> > DataGrid { > backgroundAlpha: 1; > backgroundColor: #000000; > alternatingItemColors: #ffffff, #eff1f2; > horizontalGridLines: true; > letterSpacing: 0; > horizontalGridLineColor: #990000; > verticalGridLines: false; > useRollOver: false; > borderThickness: 2; > borderColor: #ffffff; > selectionColor: #000000; > color: #ff0000; > textSelectedColor: #ff0000; > textIndent: 0; > dropShadowEnabled: true; > shadowDistance: 3; > shadowDirection: right; > fontSize: 14; > fontWeight: normal; > headerStyleName: "mydataGridHeaderStyle"; > } > > .mydataGridHeaderStyle { > color: #999999; > letterSpacing: 0; > } > </mx:Style> > <mx:HTTPService showBusyCursor="true" id="RSSfeed" > url="http://www.weather.gov/alerts/ma.rss" resultFormat="object" /> > <mx:DataGrid sortableColumns="false" width="506" height="48" > id="entries" dataProvider="{RSSfeed.lastResult.rss.channel.item}" > horizontalCenter="0" verticalCenter="0" > click="nav(RSSfeed.lastResult.rss.channel.item > [entries.selectedIndex].link)" cornerRadius="6" borderStyle="solid" > borderColor="#00ff00" alternatingItemColors="[#000000, #000000]" > selectedIndex="1"> > <mx:columns> > <mx:DataGridColumn dataField="title" > headerText="Mass Weather Advisory Feed" fontSize="9" > wordWrap="true"/> > </mx:columns> > </mx:DataGrid> > </mx:Application> >

