OK, thanks. Just in case, here are the base classes: TiledCanvas < Container (100%) ..PodChrome < VBox (n of these) ....ReportModuleA < VBox (100%) (not a real module, just a VBox) ......ReportChrome < Canvas (100%) ........ReportA < VBox (100%, minimum 500) ..........Grid
On Tue, Jul 29, 2008 at 10:30 PM, Alex Harui <[EMAIL PROTECTED]> wrote: > In theory, if measure() returns different numbers than the last time it got > called, invalidateDisplayList gets called and eventually you get > updateDisplayList and go through layout again. > > > > Also, in theory, measuredMinWidth/measuredWidth (and heights) will be > different if you have % on reportChrome or not which might yield a clue. Or > the updateDL gets called a different number of times. I don't know what > each of these levels have for base classes. That might make a difference as > well. > > > > If you build up a test case base on the base classes for these components, > maybe that should be posted so we can take a closer look. Otherwise it > points to your custom code. > > > > -Alex > > > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of Richard Rodseth > Sent: Tuesday, July 29, 2008 9:52 PM > To: [email protected] > Subject: [flexcoders] Measurement and percentages (was measurement and > template components) > > > > Alex requested that I start a new thread to review. Here's the > relevant portion of the hierarchy (stated values are in both x and y > directions): > > TiledCanvas (100%) > ..PodChrome(n of these) > ....ReportModuleA (100%) (not a real module, just a VBox) > ......ReportChrome (100%) > ........ReportA (100%, minimum 500) > ..........Grid > > PodChrome and ReportModuleA are created in ActionScript at runtime. > > TiledCanvas is supposed to have scrollbars. Tested in isolation (i.e. > with a bunch of buttons as children, some with minimums set, it does. > In the above hierarchy, If I remove the 100% from ReportChrome, it > does. But with the percentage sizing of ReportChrome, it doesn't. > > It appears that all the measure() methods get called and return 500 or more. > I noticed the following in Container.getScrollableRect(). Possibly related? > > // width/height can be NaN if using percentages and > // hasn't been layed out yet. > if (!isNaN(child.width)) > right = Math.max(right, child.x + child.width); > if (!isNaN(child.height)) > bottom = Math.max(bottom, child.y + child.height); > > I also notice some code in UIComponent (I think) that was calling > invalidateDisplayList() immediately after invalidateSize(). Do those > need to be paired? Perhaps my code which constructs PodChrome and > ReportModuleA needs to call invalidateDisplayList. > >

