public virtual AsDisplayObject removeChildAt(int index, bool dispose)
 {
     if (index >= 0 && index < getNumChildren())
     {
         AsDisplayObject child = mChildren[index];
         child.dispatchEventWith(AsEvent.REMOVED, true);
         if (getStage() != null)
         {
             AsDisplayObjectContainer container = child as AsDisplayObjectContainer;
             if (container != null)
             {
                 container.broadcastEventWith(AsEvent.REMOVED_FROM_STAGE);
             }
             else
             {
                 child.dispatchEventWith(AsEvent.REMOVED_FROM_STAGE);
             }
         }
         child.setParent(null);
         index = mChildren.indexOf(child);
         if (index >= 0)
         {
             mChildren.splice(index, (uint)(1));
         }
         if (dispose)
         {
             child.dispose();
         }
         return(child);
     }
     else
     {
         throw new AsRangeError("Invalid child index");
     }
 }
        public virtual AsDisplayObject addChildAt(AsDisplayObject child, int index)
        {
            int numChildren = (int)(mChildren.getLength());

            if (index >= 0 && index <= numChildren)
            {
                child.removeFromParent();
                if (index == numChildren)
                {
                    mChildren.push(child);
                }
                else
                {
                    mChildren.splice(index, (uint)(0), child);
                }
                child.setParent(this);
                child.dispatchEventWith(AsEvent.ADDED, true);
                if (getStage() != null)
                {
                    AsDisplayObjectContainer container = child as AsDisplayObjectContainer;
                    if (container != null)
                    {
                        container.broadcastEventWith(AsEvent.ADDED_TO_STAGE);
                    }
                    else
                    {
                        child.dispatchEventWith(AsEvent.ADDED_TO_STAGE);
                    }
                }
                return(child);
            }
            else
            {
                throw new AsRangeError("Invalid child index");
            }
        }