Actually given it first grows to 160, then goes back to 161, it's waiting
until the measure() is within one pixel :)

resized to 100 x 50
resized to 130 x 50
resized to 145 x 50
resized to 153 x 50
resized to 157 x 50
resized to 159 x 50
resized to 160 x 50

resized to 400 x 200
resized to 280 x 109
resized to 220 x 64
resized to 190 x 50
resized to 175 x 50
resized to 168 x 50
resized to 164 x 50
resized to 162 x 50
resized to 161 x 50


-Josh

On Fri, Jun 20, 2008 at 2:30 PM, Josh McDonald <[EMAIL PROTECTED]> wrote:

> 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]
>



-- 
"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