I never got a reply to this, so I though I would try again and see if anyone can help.
Mike --- In [email protected], "Mike" <msl...@...> wrote: > > I need to create an instance of a PlotSeries icon. It's easy enough to > discover the PlotSeries item renderer: > > var renderer:ClassFactory = plotSeries.getStyle("itemRenderer"); > > However, if I have not figured out how to create an instance of the renderer > so I can add it to the display list. > > Here is a short test program, consisting of two files. The first file is a > VBox whose icon property should be set to the item renderer instance. > > // TestBox.mxml > <?xml version="1.0" encoding="utf-8"?> > <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"> > <mx:Script> > <![CDATA[ > import mx.controls.*; > import mx.charts.series.PlotSeries; > > public var plotSeries:PlotSeries; > public var generator:Class; > > override protected function createChildren():void { > super.createChildren(); > if (false) { // this works (icon is shown) > icon = generator; > } else { // does not work (no icon) > var renderer:ClassFactory = > plotSeries.getStyle("itemRenderer"); > icon = renderer.generator; > /* var x:* = renderer.newInstance(); > trace(x); */ > } > } > ]]> > </mx:Script> > </mx:VBox> > > > // index.mxml > /* This is the application; it contains two embedded images that can be used > to set the TestBox's icon property. That works. > > onPlotChartComplete() sets the icon. */ > <?xml version="1.0" encoding="utf-8"?> > <mx:Application > xmlns:local="*" > xmlns:mx="http://www.adobe.com/2006/mxml"> > > <mx:Script> > <![CDATA[ > import mx.collections.ArrayCollection; > import mx.charts.series.PlotSeries; > > [Bindable] > private var expensesAC:ArrayCollection = new ArrayCollection( [ > { Month: "Jan", Profit: 2000, Expenses: 1500, Amount: 450 }, > { Month: "Feb", Profit: 1000, Expenses: 200, Amount: 600 }, > { Month: "Mar", Profit: 1500, Expenses: 500, Amount: 300 } > ]); > > [Embed(source="warning.png")] > private static var WarningClass:Class; > > [Embed(source="error.png")] > private static var ErrorClass:Class; > > > private function onPlotChartComplete():void { > var testBox1:TestBox = new TestBox(); > testBox1.plotSeries = plotSeries1; > testBox1.generator = ErrorClass; > testBox1.label = "Error"; > tab.addChild(testBox1); > > var testBox2:TestBox = new TestBox(); > testBox2.plotSeries = plotSeries2; > testBox2.generator = WarningClass; > testBox2.label = "Warning"; > tab.addChild(testBox2); > } > ]]> > </mx:Script> > > <mx:PlotChart > creationComplete="onPlotChartComplete()" > dataProvider="{expensesAC}" > height="50%" > width="100%"> > <mx:series> > <mx:PlotSeries > id="plotSeries1" > xField="Expenses" > yField="Profit" > displayName="Plot 1" /> > <mx:PlotSeries > id="plotSeries2" > xField="Amount" > yField="Expenses" > displayName="Plot 2" /> > </mx:series> > </mx:PlotChart> > <mx:TabNavigator height="50%" id="tab" width="100%" /> > </mx:Application> > > > Suggestions? > > Mike >

