That what I thought it should do, but it doesn't. Here's a simple test case:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute">

    <mx:Canvas backgroundColor="blue" id="container" resize="trace('resized
to ' + event.target.width + ' x ' + event.target.height)">
        <mx:Button width="100" height="50" label="Button"/>
        <mx:Label text="This is text, it's wider than the button!"
width="160" id="lb" horizontalCenter="0" verticalCenter="0"/>
    </mx:Canvas>

    <mx:Button click="trace('');container.setActualSize(400,200)"
label="Mess It up" horizontalCenter="0" verticalCenter="0"/>

</mx:Application>

Unless I'm mistaken, It shows that when the current size is not the correct
measure size (as it gets bigger on creationComplete, or as it gets smaller
when you click "mess it up"), you get a loop of updateDisplayList(),
measure(), etc until updateDisplayList() is followed by a measure() that
reports the same size that was last passed to updateDisplayList().

-Josh

On Fri, Jun 20, 2008 at 2:12 PM, Alex Harui <[EMAIL PROTECTED]> wrote:

>  Measure() should return the bound of the children factoring out centering
> offsets.
>
>
>  ------------------------------
>
> *From:* [email protected] [mailto:[EMAIL PROTECTED] *On
> Behalf Of *Josh McDonald
> *Sent:* Thursday, June 19, 2008 7:21 PM
> *To:* [email protected]
> *Subject:* [flexcoders] Problems with updateDisplayList() and measure()
> and infinite loops + bug in CanvasLayout?
>
>
>
> Hey guys,
>
> I've got a problem with some layout code I'm working on. I'm positioning a
> bunch of components, and their positions are determined by their measured
> size. However they are also being expanded larger that their measured size
> on occasion, which sends me into an infinite loop whenever one of my
> containers contains anything that's centred.
>
> I've figured out that this is due to CanvasLayout.measure() measuring
> children with horizontalCenter / verticalCenter at their current position,
> rather than at 0,0 which would make more sense to me. Not much I can do
> about this. It smells like a bug, but it might be on purpose.
>
> What should I do to combat this problem? I was thinking maybe setting a
> flag on updateDisplayList, that will make the next call to measure() return
> the same size no matter what, but that seems like a hack to me. And if
> there's an occasion where updateDisplayList() isn't followed immediately by
> measure() it'll break, and various other things just make it seem very
> frail.
>
> Has anybody come up against this sort of thing before? How did you tackle
> it?
>
> Cheers,
>
> -Josh
>
> --
> "Therefore, send not to know For whom the bell tolls. It tolls for thee."
>
> :: Josh 'G-Funk' McDonald
> :: 0437 221 380 :: [EMAIL PROTECTED]
>  
>



-- 
"Therefore, send not to know For whom the bell tolls. It tolls for thee."

:: Josh 'G-Funk' McDonald
:: 0437 221 380 :: [EMAIL PROTECTED]

Reply via email to