I'm wondering how best to blink a cell's background in a Spark Datagrid when data changes, i.e like in a real-time stock chart. I've seen a couple of methods, both seem specific to MX not Spark:
a) From: https://code.google.com/p/jpragma-utils/source/browse/trunk/JPragmaFlexUtils/src/com/jpragma/flexutils/renderers/BlinkWhenChangedRenderer.as?r=18 package com.jpragma.flexutils.renderers { import flash.events.Event; import mx.controls.DataGrid; import mx.controls.dataGridClasses.DataGridItemRenderer; import mx.controls.dataGridClasses.DataGridListData; public class BlinkWhenChangedRenderer extends DataGridItemRenderer { private var lastText:String = null; private var lastUID:String = null; private var frameCount:int = -1; override public function validateNow():void { var needBlink:Boolean = false; var valueIncreased:Boolean = false; super.validateNow(); if (!listData) { background = false; return; } var dgListData:DataGridListData = listData as DataGridListData; var dataGrid:DataGrid = dgListData.owner as DataGrid; if (dgListData.uid == lastUID) { if (lastText != dgListData.label) { needBlink = true; var oldNumValue:Number = new Number(lastText); var newNumValue:Number = new Number(dgListData.label); if (oldNumValue < newNumValue) { valueIncreased = true; } } } lastUID = dgListData.uid; lastText = dgListData.label; if (needBlink) { background = true; backgroundColor = (valueIncreased) ? 0x00FF00 : 0xFF0000; frameCount = 15; addEventListener("enterFrame", enterFrameHandler); } } private function enterFrameHandler(event:Event):void { frameCount--; if (frameCount < 0) { background = false; removeEventListener("enterFrame", enterFrameHandler); } else { if (backgroundColor >= 0xFF0000) { // red backgroundColor = (15 - frameCount) * 0x001111 + 0xFF0000; } else { // green backgroundColor = (15 - frameCount) * 0x110011 + 0x00FF00; } } } } } ---------------- b) In the past I've used animation, something like this: <?xml version="1.0" encoding="utf-8"?> <s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:parsley="http://www.spicefactory.org/parsley" paddingRight="3" verticalAlign="middle" > <fx:Declarations> <parsley:Configure/> <s:AnimateColor id="ani" colorPropertyName="color" colorFrom="{0xff0000}" colorTo="{0x000000}" duration="2000" /> </fx:Declarations> <fx:Script> </fx:Script> <s:Label id="txt" width="100%" textAlign="right"/> </s:VGroup> ----------------------- So, what's the recommended, least resource intensive, way of doing this in Spark? -- View this message in context: http://apache-flex-users.2333346.n4.nabble.com/Best-way-to-blink-a-Spark-Datagrid-cell-tp9334.html Sent from the Apache Flex Users mailing list archive at Nabble.com.
