The following example shows how you can create a column chart as a component and invoke in application and access component variable.
dynamic values by calling the getDefintionByName() method.
ChartDef.mxml
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” creationComplete=”createComplete(event)”> <mx:Script> <![CDATA[ import MyComps.*; import flash.utils.getDefinitionByName; import mx.controls.*; private var CC:PanelComp;ColumnCompChart // Initiate ColumnCompChart component. private var MData:ArrayCollection = new ArrayCollection( [ { Country: “USA”, Gold: 35, Silver:39, Bronze: 29 }, { Country: “China”, Gold: 32, Silver:17, Bronze: 14 }, { Country: “Russia”, Gold: 27, Silver:27, Bronze: 38 } ]); private function createComplete(e:Event):void { var cls:Class = getDefinitionByName(“MyComps.ColumnCompChart”) as Class; var instance:Object = new cls(); instance.medalsAC=MData; // Assigning MData arrayCollection to medalAC [Component Variable] addChild(DisplayObject(instance) ); } ]]> </mx:Script> </mx:Application> |
ColumnCompChart.mxml
<?xml version=”1.0″ encoding=”utf-8″?> <mx:Panel xmlns:mx=”http://www.adobe.com/2006/mxml” width=”400″ height=”300″title=”My Chart”> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; public var medalsAC:ArrayCollection; ]]> </mx:Script> <mx:ColumnChart id=”Column1″ height=”100%” width=”100%” dataProvider=”{medalsAC}”> <mx:horizontalAxis> <mx:CategoryAxis categoryField=”Country”/> </mx:horizontalAxis> <mx:series> </mx:ColumnChart> |