Жуть. Вот я переписал - практически то же самое. Снежинка в библиотеке.

Код:
// ------------------------------
// maxflakes is the total number
// of snowflakes at any time
// watch out, too high a number will cause excessive CPU load
// ---------------------------------
stop();
var maxFlakes:Number = 200;
//сколько их сейчас?
var total:Number = 0;
// двигает снежинку, если надо - удаляет и делает новую.
function moveFlake():Void{
this._y += this.speed;
if( this._y > Stage.height ){
createFlake();
this.removeMovieClip();
}
}
// изготовление снежинки
function createFlake():Void{
var i:Number = getNextHighestDepth();
//trace("i:"+i);
var mc = attachMovie( "flake", "flake"+i, i);
mc._x = Math.random()*Stage.width;
mc.speed = Math.random()*4 + 2;
mc._xscale = mc._yscale = Math.floor( Math.random()*100 ) + 50;
mc.onEnterFrame = moveFlake;
}
// первоначальное изготовление снежинок
function createFlakes():Void{
//trace( total );
if( total++ < maxFlakes) createFlake();
else clearInterval (bornInt);
}
var bornInt:Number = setInterval( createFlakes, 25 );
см. исходник