# Sprite.numChildren help!

**URL:** <https://forum.kirupa.com/t/sprite-numchildren-help/259601>\
**Category:** Uncategorized\
**Created:** [May 7, 2008, 1:28am UTC](https://forum.kirupa.com/t/sprite-numchildren-help/259601 "2008-05-07T01:28:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![adnan794](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@adnan794](https://forum.kirupa.com/u/adnan794)\
**Post date:** [May 7, 2008, 1:28am UTC](https://forum.kirupa.com/t/sprite-numchildren-help/259601/1 "2008-05-07T01:28:48Z")

</div>

Hello I don’t know why this is not working everything looks fine to me.

I am creating buttons and adding them to two static sprites \_mainSprite to hold main buttons and \_leftSprite to hold left buttons.

When I am tracing the value of \_mainSprite.numChildren inside the constructor its coming out to be “4” which is the number of top buttons. BUT WHEN I TRACE THE SAME VALUE INSIDE A STATIC CLASS FUNCTION THAT RETURNS \_MAINSPRITE ITS COMES OUT TO BE “0”.

I have tried everything and now need help.

Here is the code for my class

```auto

 

package 
{
 import flash.display.*;
 
 public class CreateMenuItems extends Sprite
 {
  // Class properties
  private static var _mainSprite:Sprite;
  private static var _leftSprite:Sprite;
 
  private var j:int = 0;
  private var k:int = 0;
        
  // Class Constructor
  public function CreateMenuItems(mArray:Array)
  {
    _mainSprite = new Sprite();
   _leftSprite = new Sprite();
   
    
for (var i:int = 0; i < mArray.length; i++)
   {
    var siteButton:DisablingButton = new DisablingButton(mArray*);

    if ( mArray*.id == 0)
    {   
     siteButton.x = siteButton.width * j;
     _mainSprite.addChild(siteButton);
     j++;
    }

    else
    {  
      siteButton.y = siteButton.height * k ;
      _leftSprite.addChild(siteButton);
      k++;
     
    } 

   } // end of for loop
   
   **// If I trace here inside the constructor it gives 4**
   trace(_mainSprite.numChildren);
  } // end of constructor
  
 
 public static function mainSprite():Sprite
  {   
** // If I trace here inside return sprite function it gives 0
 ** trace(_mainSprite.numChildren);
  
   return _mainSprite;
  }

  public static function leftSprite():Sprite
  {
   return _leftSprite;
  }
 

 }

}
 

```

Thanks in advance
