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: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Matt 
Wicks
Sent: Wednesday, April 11, 2007 5:39 AM
To: flexcoders@yahoogroups.com
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] 
<mailto:matt%40thewebforge.co.uk> co.uk> 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