
Код:
var mn:MovieClip = this;
var inter:Number = 0;
var i:Number = 0;
//
function createNew():Void {
mc = mn.attachMovie('mc_main', 'mc_main'+i, mn.getNextHighestDepth(), {_y:rand(90, 110), _alpha:rand(30, 100), _rotation:rand(-50, 50)});
mc._xscale = mc._yscale=rand(20, 150);
trace(mc._width);
trace(mc._x=Math.round((355/2)-(mc._width/2)));
}
//
function timeCr():Void {
i == 10 ? i=0 : i++;
createNew();
mc.onEnterFrame = function():Void {
if (this._currentframe == this._totalframes) {
delete this.onEnterFrame;
this.removeMovieClip();
}
};
}
//
function rand(a:Number, b:Number):Number {
return Math.round((b-a)*Math.random()+a);
}
//
inter = setInterval(timeCr, 1000);
1. Определяем переменные.

Код:
var mn:MovieClip = this;
var inter:Number = 0;
var i:Number = 0;
2. Функция которая генерирует случайное число от a до b. Числа a и b передаются в функцию извне как аргументы.

Код:
function rand(a:Number, b:Number):Number {
return Math.round((b-a)*Math.random()+a);
}
3. Функция которая аттачит на сцену мувик с бегущим человечком. Ссылка на новый мувик сохраняется в переменной mc. При вставке мувика, параметры _x, _y, _xscale, _yscale, _alpha, _rotation определяются случайным числом которое выдает функция rand(a,b)(мы определили эту функцию ранее).
mc._xscale=mc._yscale чтобы сохранять пропорции человечка( можно и не сохранять).
trace(mc._x=Math.round((355/2)-(mc._width/2))) - это я так, немного неуклюже определил точку вставки мувика, чтобы он вставлялся примерно в средине экрана, в зависимости от масштаба.

355 вероятно можно заменить на stage._width...

Код:
function createNew():Void {
mc = mn.attachMovie('mc_main', 'mc_main'+i, mn.getNextHighestDepth(), {_y:rand(90, 110), _alpha:rand(30, 100), _rotation:rand(-50, 50)});
mc._xscale = mc._yscale=rand(20, 150);
trace(mc._width);
trace(mc._x=Math.round((355/2)-(mc._width/2)));
}
4. Эта функция выполняет несколько задач:
- считает i(что в принципе и не нужно, но я как-то привык. Даже если бы мы вставляли все мувики с одним и тем же именем, flash все равно создает новые мувики, только обзывает их instance n)
- запускает функцию создания нового мувика
- удаляет отработавшие мувики. Отработавший, в данном случае, это мувик который дошел до своего последнего кадра. Как происходит удаление: для каждого нового мувика запускается событие onEnterFrame, с этим событием связана функция, которая отслеживает текущий кадр конкретного мувика. Если этот кадр равен последнему кадру, то данный мувик удаляется. Получается, что мы запускаем одновременно некоторое количество этих функций. Я проверял, производительность просаживается совсем незначительно.

Код:
function timeCr():Void {
i == 10 ? i=0 : i++;
createNew();
mc.onEnterFrame = function():Void {
if (this._currentframe == this._totalframes) {
delete this.onEnterFrame;
this.removeMovieClip();
}
};
}
5. И, наконец, код который все запускает. 1000 это интервал с которым будут создаваться новые мувики. Чем меньше это число, тем больше будет человечков в кадре и больше одновременных onEnterFrame.

Код:
inter = setInterval(timeCr, 1000);