Código Flex :
<mx:Script>
<![CDATA[
import com.google.maps.Color;
import mx.graphics.IFill;
import mx.charts.ChartItem;
import mx.charts.series.items.ColumnSeriesItem ;
import mx.collections.ArrayCollection;
[Bindable]
private var rellenaChart:ArrayCollection = new ArrayCollection( [
{ Empresa: "Empresas Revisadas", monto: 65,color: 0x000000 },
{ Empresa: "Con Licencia Ambiental", monto: 39,color: 0x00FF00 },
{ Empresa: "Sin Licencia Ambiental", monto: 20,color: 0x0000FF },
{ Empresa: "En tramite", monto: 4,color: 0xFF0000 } ]);
private function color( item : ChartItem, index:Number ) : IFill
{
var curItem: ColumnSeriesItem = ColumnSeriesItem (item);
if(curItem.yNumber == 65) return(new SolidColor(0x0000FF, .7));
if(curItem.yNumber == 39) return(new SolidColor(0x00FF00, .7));
if(curItem.yNumber == 20) return(new SolidColor(0xFF0000, .7));
if(curItem.yNumber == 4) return(new SolidColor(0xFFFF00, .7));
else
return(new SolidColor(0x000000, 1)); }
]]>
</mx:Script>Ahora la funcion Legend, no me funciona ya que solo tengo una columna dibujada (aunque con distintos colores), funciona como componente:
Código Flex :
<mx:ColumnChart id="column" width="100%" height="100%" color="0x323232" showDataTips="true" dataProvider="{rellenaChart}">
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="Empresa"/>
</mx:horizontalAxis>
<mx:series>
<mx:ColumnSeries xField="Empresa" maxColumnWidth="25" yField="monto" displayName="Total" fillFunction="color"/>
</mx:series>
</mx:ColumnChart>
<mx:Legend dataProvider="{column}"/>Yo se que puedo usar un XML y navegar por los nodos y mas facil la cosa, pero no quiero complicarme mas... existe una forma de acceder a un valor del arrayCollection para usar en la etiqueta Legend, para que me muestre esos datos?
Osea, en el dataProvider del Legend emplear por databindig u otra forma un valor del ArrayCollection, como monto o Empresa?
Espero puedan ayudarme! y gracias
