What is the class who's updateDL is overridden?
 
It feels like the module's measuredWidth/Height is driven by the right
side of the child. As you center you push the child to the right so the
container says it wants to be wider and then you push again...

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Ben Clinkinbeard
Sent: Friday, March 14, 2008 10:54 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Re: Why are modules so buggy?



Yep, updateDisplayList() gets called continuously with an ever
increasing width argument. I let it go above 100,000 before I closed the
browser window. I've switched the code to use the w and h args that get
passed in as well but it still happens. Now that we know what the
problem is how do we figure out the why and how to prevent it?

Thanks,
Ben



On Fri, Mar 14, 2008 at 1:42 PM, Alex Harui <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote:


        

        Assuming you've sized the button before you hit this code, you
are also in danger if there is a scale factor applied to the component.
We recommend using the unscaledWidth/Height parameters passed into
updateDisplayList instead of this.width/height as they are not affected
by scale.
         
        Setting a child's x,y will trigger invalidation in some
containers.  Normally, the invalidateDisplayListFlag is still set at
this time which prevents another invalidation pass.  However, if it
affects the scrollbar calculation it could ripple back up and make the
parent think about its size again.
         
        If scrollPolicy="on" the scrollbar is factored into the
measurements.  If not, it isn't.
         
        I would check the numbers you are using and see if that updateDL
gets called over and over and what numbers it gets.
         
        -Alex

________________________________

        From: flexcoders@yahoogroups.com
<mailto:flexcoders@yahoogroups.com>  [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders@yahoogroups.com> ] On Behalf Of Ben Clinkinbeard
        Sent: Friday, March 14, 2008 10:30 AM
        To: flexcoders@yahoogroups.com
<mailto:flexcoders@yahoogroups.com> 
        Subject: Re: [flexcoders] Re: Why are modules so buggy?
        
        

        So (unsurprisingly) I tried a shortcut and it seems like your
scrollbar theory is correct. I first tried setting the scroll policies
of demon button's parent to off but that didn't help. I then changed
demon button's positioning (in updateDisplayList()) to 0, 0 and that
fixed the issue. Its nice to have it showing the module but I can't be
too excited since the positioning obviously can't stay at 0, 0.
        
        The original lines from inside updateDisplayList() look like
this:
        
        nextBtn.x = this.width - nextBtn.width - 15;
        nextBtn.y = ( this.height - nextBtn.height ) / 2;
        
        Seems reasonable to me, am I missing something?
        
        Thanks yet again!
        Ben
        
        
        

        On Fri, Mar 14, 2008 at 12:20 PM, Alex Harui <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote:
        

                

                OK, that smells like invalidation loops.  At the end of
the validation pass something remains invalidated so we do another
validation pass, but something still ends up invalidated, so we....

                 

                Until we get a complete validation, the app won't show,
and after app startup, until a new component finishes validation, it
won't show up.

                 

                I debug this by setting a breakpoint in
LayoutManager.doPhasedInstantiation.  If you try it on a test app, you
should see that it gets called 3 to 8 times and stops when the app shows
up.  If you have an invalidation loop, it never stops getting called,
and then I debug into it to see who keeps ending up dirty and then try
to figure out why.

                 

                Your demon button could be forcing some edge condition
where scrollbars show up then go away (hysteresis).

                 

                -Alex

                 

                
________________________________


                From: flexcoders@yahoogroups.com
<mailto:flexcoders@yahoogroups.com>  [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders@yahoogroups.com> ] On Behalf Of ben.clinkinbeard
                Sent: Friday, March 14, 2008 6:54 AM
                To: flexcoders@yahoogroups.com
<mailto:flexcoders@yahoogroups.com>  

                Subject: [flexcoders] Re: Why are modules so buggy?

                

                

                 

                Hi Alex,
                
                We are using ModuleLoader so the GC thing shouldn't be
an issue. (I
                tried it with ModuleManager this morning to no avail
either.)
                
                The animation is just a placeholder at this point so its
just a 10
                frame tween created in Flash CS3 with a stop() at the
beginning and
                end. When it finishes loading we tell it to play(). The
speedup is
                only present when I add the demon button with addChild()
instead of
                rawChildren.addChild() so I don't think it is related to
any
                intentional framerate increases.
                
                I did what you suggested and checked that the module
exists, has the
                correct parent, correct x, y, width and height and all
of those
                properties return the expected values. Not sure what you
mean about
                checking invalidation flags though.
                
                More weirdness in today's testing: Our basic setup is
that we have a
                few ModuleLoaders that are on stage and sized but have
visibility set
                to false and we don't give them a url value until we
want them to
                load. When they've finished loading we turn them
visible. If I set
                visible to true and set url to the specified module swf
the
                application never gets out of frame one. The progress
bar shows the
                load completing in the sense that the bar is full width
but thats it.
                The progress bar stays on stage and the app just sits.
We never see
                our actual application stage.
                
                So. Con. Fused.
                
                Thanks for your help,
                Ben
                
                --- In flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> , "Alex Harui" <[EMAIL PROTECTED]> wrote:
                >
                > Well, it doesn't ring any bells, but someone else hit
a problem where
                > they were loading the module twice and timing issues
from the module
                > being cached in the browser cache affected whether it
worked or not.
                > 
                > 
                > 
                > The classic no-show problem is when the IModuleInfo
handle returned from
                > ModuleManager is kept only in a local variable to the
function that
                > calls ModuleManager.getModule Then a GC can punt the
module and that
                > can happen "randomly". If you are using ModuleLoader,
you won't run
                > into this problem.
                > 
                > 
                > 
                > How does the animation SWF work? Is it code-based,
frame-based,
                > timer-based? We pump up the frame-rate during app
startup, so that
                > could affect animations.
                > 
                > 
                > 
                > I guess I would start by proving after no-show that
the module actually
                > exists, and introspect it for sizes, parenting,
invalidation flags, etc.
                > 
                > 
                > 
                > ________________________________
                > 
                > From: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
[mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
] On
                > Behalf Of ben.clinkinbeard
                > Sent: Thursday, March 13, 2008 8:00 PM
                > To: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> 
                > Subject: [flexcoders] Re: Why are modules so buggy?
                > 
                > 
                > 
                > Thanks Alex. Unfortunately, and as usually seems to be
the case, this
                > is happening inside of a fairly complex structure.
Something else I
                > just noticed though is also strange. When the app
loads we have a SWF
                > that gets loaded and plays an animation before
presenting a button
                > that can be clicked which takes you to the module.
When the problem
                > arises as I originally described, the intro animation
also plays much
                > quicker than usual. Its at least twice as fast as the
SWF plays when
                > the problem is not present.
                > 
                > Does that give you any clues?
                > 
                > Thanks,
                > Ben
                > 
                > --- In flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
<mailto:flexcoders%40yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> >
                > , "Alex Harui" <aharui@> wrote:
                > >
                > > It is a known bug that % width/height doesn't work
in modules and
                > using
                > > percentWidth/Height is the workaround.
                > > 
                > > 
                > > 
                > > Can't think of any reason for the second behavior.
I'll look at a test
                > > case if you want.
                > > 
                > > 
                > > 
                > > ________________________________
                > > 
                > > From: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
<mailto:flexcoders%40yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> >
                > [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
<mailto:flexcoders%40yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> >
                > ] On
                > > Behalf Of ben.clinkinbeard
                > > Sent: Thursday, March 13, 2008 7:04 AM
                > > To: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
<mailto:flexcoders%40yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> > 
                > > Subject: [flexcoders] Why are modules so buggy?
                > > 
                > > 
                > > 
                > > I've admittedly only been using them for a short
time but they seem
                > > phenomenally fickle. Our basic setup is that we have
States defined in
                > > the main app, each of which holds a module and sets
its visibility
                > > accordingly. Couldn't be much more straightforward.
                > > 
                > > The other day my module stopped appearing when I set
the layout
                > > property of one of its child components
(TeaserWindow). The way I
                > > ended up fixing it was by changing the mx:Module tag
from width="100%"
                > > height="100%" to percentWidth="100"
percentHeight="100".
                > > 
                > > Today my module has stopped showing up when I
changed one of
                > > TeaserWindow's child components (a Button) from
being added to
                > > rawChildren to being added as a regular child.
TeaserWindow has 3
                > > child buttons and only this specific one being in
children causes this
                > > issue. The (totally illogical) "fix" of using
percentWidth and
                > > percentHeight is not preventing this latest absurd
behavior.
                > > 
                > > I am at a complete loss as to how the child
composition of a child of
                > > the Module or the layout mode of a child could cause
the entire module
                > > not to show. Note that even when it doesn't show it
reports its
                > > visible property as true and width and height as
being correct.
                > > 
                > > Am I taking crazy pills?
                > >
                >

                

                


        

        


 

Reply via email to