Nope.
I confirmed what you are seeing but couldn't figure out why in the limited time I had to look at it.
I am going to have to defer to someone more knowledgeable.
--- In
flexcoders@..., Pan Troglodytes <chimpathetic@...> wrote:
>
> No ideas on this one?
>
> On Wed, Jun 17, 2009 at 12:00 PM, Pan Troglodytes <chimpathetic@...>wrote:
>
> > I have a test program that, as far as I can tell, does the same thing using
> > an MXML component and the equivalent actionscript. When I click on the
> > button to execute the AS version, everything is fine. But when I click on
> > the button to execute the MXML version, I get a layout flicker. It's bad
> > enough that if you try to click on the MXML button over and over really
> > fast, you'll wind up clicking the main app and the menu will go away.
> > Here's the code:
> >
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <Application
> > xmlns="
http://www.adobe.com/2006/mxml"
> > layout="absolute"
> > >
> > <Script>
> > <![CDATA[
> > import mx.containers.GridItem;
> > import mx.controls.Label;
> > import mx.controls.DateField;
> > private function addCategoryAS():void
> > {
> > var gi:GridItem;
> > var gr:GridRow = new GridRow;
> >
> > gi = new GridItem;
> > gr.addChild(gi);
> > gi.addChild(new Label);
> >
> > addRow(gr);
> > }
> >
> > private function addCategoryMXML():void
> > {
> > var gr:GridRow = new TestGridRow;
> > gr.initialize(); // this is just to try to make it equivalent -
> > doesn't change flicker
> >
> > addRow(gr);
> > }
> >
> > private function addRow(gr:GridRow):void
> > {
> > grid.addChildAt(gr, 0);
> >
> > var gi:GridItem;
> >
> > gi = gr.getChildAt(0) as GridItem;
> > (gi.getChildAt(0) as Label).text = "item " + grid.numChildren +
> > ":";
> >
> > gr.validateSize(true);
> > var verticalGap:Number = grid.getStyle("verticalGap");
> > popup.scrollRect = new Rectangle(0, 0, Math.max(popup.width +
> > gr.measuredWidth),
> > popup.height + gr.measuredHeight + (isNaN(verticalGap) ? 0 :
> > verticalGap));
> > if (popup.localToGlobal(new Point(0, 0)).y <
> > popup.owner.localToGlobal(new Point(0, 0)).y)
> > popup.y -= gr.measuredHeight + (isNaN(verticalGap) ? 0 :
> > verticalGap);
> > }
> > ]]>
> > </Script>
> >
> > <Canvas bottom="0">
> > <PopUpButton id="myPopupButton" openAlways="true">
> > <popUp>
> > <Canvas id="popup">
> > <Grid id="grid" paddingTop="4" paddingBottom="4" paddingLeft="4"
> > paddingRight="4"
> > fontSize="12" backgroundColor="0xFFFFFF" borderStyle="outset"
> > borderThickness="2"
> > >
> > <GridRow>
> > <GridItem>
> > <Button label="Add AS" click="addCategoryAS()"/>
> > <Button label="Add MXML" click="addCategoryMXML()"/>
> > </GridItem>
> > </GridRow>
> > </Grid>
> > </Canvas>
> > </popUp>
> > </PopUpButton>
> > </Canvas>
> > </Application>
> >
> > TestGridRow.mxml:
> > <?xml version="1.0" encoding="utf-8"?>
> > <GridRow xmlns="
http://www.adobe.com/2006/mxml">
> > <GridItem>
> > <Label/>
> > </GridItem>
> > </GridRow>
> >
> >
> > I've dug through the generated code and have not been able to find anything
> > that I think would account for the problem. This is frustrating, because
> > what I really want to do is a more complicated MXML component to make it a
> > lot nicer to add rows in my addCategory function. But I can't as long as
> > it's going to be so jittery.
> >
> > Thanks!
> >
> > --
> > Jason
> >
>
>
>
> --
> Jason
>