I won't spell it out for you, here's some spawning code from a game i just finished.
_root.zombiebase3.duplicateMovieClip("zombie" +_root.zombspawn, _root.zombspawn + 1000);
_root["zombie"+_root.zombspawn]._x = _root["spawn"+spawnpoint]._x ;
_root["zombie"+_root.zombspawn]._y = _root["spawn"+spawnpoint]._y ;
_root.zombspawn ++;
'zombiesbase3' is the movieclip you want to duplicate, put a copy of the MC off screen and use its instance name.
"+_root.zombspawn +'s 1 each time, so that the movieclip that spawns doesnt have a conflicting name.
"zombie"+_root.zombspawn is the name of the new movieclip. this code makes zombie1, then zombie 2, etc
_root.zombspawn + 1000 is the depth that the clip will spawn at. + zombiespawn is important, otherwise there's conflicting depths.
_root["zombie"+_root.zombspawn]._x = _root["spawn"+spawnpoint]._x ;
sets the new movieclips X to that of a spawnpoint, but you'll use simple numbers instead of
_root["spawn"+spawnpoint]._x .
Probably confusing, but yeah, i'm not proof reading it.
"zombie"+_root.zombspawn is the name of the created.