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]

