Ok I'm sleepy & this is off the top of my head (no Flash tested) but it should give you general idea.
mcFireball.moveEnemy();
was causing error because you're trying to reach it by saying it's a function within the mcFireball class. To understand better (example): You have a Game_Stages.as class file and each level is a function so to run level 5 you would say similar to what you had.. Game_Stages.Level5(); Now consider is mcFireBall a class file? does it have a moveEnemy function? See why Flash cries?
Possible Solution
for (var i :Number = 0; i < fireballs; i++)
{
if (array[i] == null)
{ trace("Error here"); return; }
trace(array[i]);
var mcFireball :fireball = array[i];
moveEnemy(mcFireball); //do moveEnemy func with mcFireball as input
}
Then you can do moveEnemy
like below. In this function we now reference the same input as "fball"
public function moveEnemy(fball:Sprite):void
{
if ((fball.x + fball.width > this.stage.stageWidth) || (fball.x - fball.width <= 0))
{ _nEnemyMovementSpeed *= -1; }
else
{fball.x += _nEnemyMovementSpeed; }
}
This assumes that mcFireball is a sprite (and should work whether its a library object or created by code)