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