child.parent needs to be cast to its correct type which should have validateDisplayList() as a legitimate method. So if the parent is a UIComponent: UIComponent(child.parent).validateDisplayList()
- Dan Freiman On 11/7/07, Daniel <[EMAIL PROTECTED]> wrote: > > Hey Daniel, > the validateDisplayList method it's not found... and the validateSize > doesn't work... > > Any others ideas? > > --- In [email protected] <flexcoders%40yahoogroups.com>, "Daniel > Freiman" <[EMAIL PROTECTED]> wrote: > > > > Components are resized by their parents, so even if an object is > > updated/measured it will not be resized until the parent is updated. > I'm not > > sure what the timing of the parent updating is relative to adding a > child. > > After calling 'addChild()' and before calling > 'layoutWindowsHorizontally()' > > try explicitly calling 'child.validateSize(true)' and ' > > child.parent.validateDisplayList()' > > > > - Dan Freiman > > > > On 11/2/07, Daniel <[EMAIL PROTECTED]> wrote: > > > > > > Hey guys, > > > > > > I'm working in an application where I need to layout a bunch of panels > > > called 'windows'. The container of this panels is another panel called > > > 'panelContainer'. I need to layout the windows horizontally, > > > vertically or absolute, depending of the button pressed byt the user. > > > Of course I could use the panelContainer.layout property, but I need > > > to set a move effect for each window, so I analyse the children of the > > > panelContainer and set the percentWidth and percentHeight and add a > > > listener for an updateComplete event for each Window. In the > > > updateCompleteHandler I move the Windows to its new X position with > > > the move effect, and calculate the X of the next window. > > > > > > My problem is when I add a new Window to panelContainer. The default > > > size of a new Window is 400x400. I add the Window to panelContaner > > > throught panelContainer.addChild(newWindow) and then I call to the > > > layoutWindows method. The new window should be treated like any other > > > window, right? This doesn't happen... In the updateCompleteHandler, > > > the recently added window still has the default size (400x400) instead > > > of the assigned percentWidth and percentHeight... > > > > > > Does anyone know why this happen? > > > > > > I'll post the code for the layoutWindowsHorizontally and the > > > updateComplete handler... > > > > > > private function layoutWindowsHorizontally ():void > > > { > > > posX = 0; // variable that sets the X position of each Window. > > > for (var i:int = 0; i < panelContainer.numChildren; i++) > > > { > > > if (panelContainer.getChildAt(i) is WindowPanel) // if a child of > > > the panelContainer is a WindowPanel > > > { > > > var p:WindowPanel = panelContainer.getChildAt(i) as WindowPanel; > > > // it sets its size > > > p.percentHeight = 100; > > > p.percentWidth = 100 / panelContainer.numChildren; > > > p.addEventListener("updateComplete",updateCompleteInHorizontal); > > > // and adds the listener to updateComplete > > > p.addEventListener(ResizeEvent.RESIZE, resizePanel); //adds a > > > resize effect to the window > > > > > > } > > > } > > > panelContainer.validateNow(); > > > } > > > > > > private function updateCompleteInHorizontal(event:Event):void // > > > called when the new size of the Windows are set. > > > { > > > var p:WindowPanel = event.currentTarget as WindowPanel; > > > moveEffect(p, posX, 0); // moves the panel to its position > > > posX = posX + p.width; // sets the X position of the next Window. > > > p.removeEventListener("updateComplete",updateCompleteInHorizontal); > > > // removes the listeners. > > > p.removeEventListener(ResizeEvent.RESIZE, resizePanel); > > > } > > > > > > Any help is appreciated... This is driving me crazy... > > > > > > > > > > > > > >

