Hi

We have a flex3 app, part of which has a dialog box from which the
user can pick a particular "graph"-type component to add to their
display.

Internally, this is generated with an <mx:Tile> list, where the
dynamic list of children is created then addChild()-ed to the tile.

This seems fine - but in certain circumstances seems appallingly slow.
To illustrate - if we have a test doing

   <mx:Tile id = "theTile" left="10" right="10" top="10" bottom="10"/>
                
Then if you do something like the following:

for(var i:int=0;i<50;i++)
{
  var j:Button = new Button();
                        
  j.width = 100;
  j.height = 75;

  theTile.addChild(j);                          
                        
}                               
                        

Then it executes very very fast - too fast to even notice. But if I
replace a 'button' with an mx.charts.LineChart it slows down to be a
couple of seconds, which is on the boundary of being acceptable. But
if I change it to be a (degrafa-based)
com.brightPoint.controls.DegrafaGauge, it's >5 seconds; not what you
want when a user should be flipping through pages quickly.

I tried replacing the mx:Tile with a new Spark BorderContainer, and
it's no better. It feels slower than flex3 was (but that's just a
vague impression).

I suspect I need to be fiddling with ItemRenderers, but I'm not sure
it's going to really help. Are these just badly implemented
components? Is there something else I can do to mitigate the initial
render slowness (e.g: is it actually burning time trying to lay
something out) ?

Reply via email to