Brilliant, thanks Gordon - not only a fix but also an explanation which is great

much appreciated

Matt
On 12 Apr 2007, at 01:28, Gordon Smith wrote:


You say your container is a DisplayObjectContainer. Is it also a Flex Container such as Canvas or VBox? If so, there is a bug with using swapChildrenAt() and maybe with swapChildren() as well. Try using removeChildAt() and addChildAt() instead.

A Flex Container does tricky stuff with child indexes and overrides child management APIs such as numChildren, addChildAt(), removeChildAt(), etc., because there are two kinds of children -- content children and non-content children. If you write

<HBox>
    <Button/>
    <Button/>
</HBox>

there are only two content children but, if the HBox has a background or scrollbars, there can be additional non-children children.

I think what happened is that the swapChildren() and swapChildrenAt () methods got added to DisplayObjectContainer in Player 9, and the Flex framework is not yet supporting them properly in the Container class.

- Gordon

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt Wicks
Sent: Wednesday, April 11, 2007 5:39 AM
To: [EMAIL PROTECTED]
Subject: Re: [flexcoders] swap Children>?

Thanks for this - still doesn't work though ... driving me mad


matt
On 11 Apr 2007, at 12:44, Ciarán wrote:

Hi Matt,

Sounds like there's a problem with flex updating the screen before the
children are swapped properly.

Try validating the component after the call to swap the children, and
catching any exception thrown.

try {
container.swapChildrenAt(ind,1);
container.validateNow();
}
catch (err:Error())
{

}

Does that make any difference?

Best Regards,
Ciarán

On 11 Apr 2007 03:44:04 -0700, Matt Wicks <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> Hi there all,
>
>
>
> bit of a puzzle I'm having and would be grateful for some help...
>
>
>
>
> container is a displayObjectContainer and objectToMove is a Display object
>
>
> var ind:int = container.getChildIndex(objectToMove)
>
>
>
>
> container.swapChildrenAt(ind,1)
>
>
> each time I run this I get an error that the supplied index is out of bounds . How can this be? ind is always 9 (of 10 childrren)??
>
>
> thanks as always
>
>
>
>
> matt
>
>






Reply via email to