Паук пришел-2

Вообще перед тем как я начал внедрять «паука», я сильно заблуждался –считая, что код и меня уже сделан, что можно внедрять уже существ, кроме базового (героя).
Но оказалось, что зря казалось. Пришлось переписывать и искать баги.

Как бы, в базовом Flash ролике, уже обрабатывалось событие INS_CREATURE (при загрузке героя) – оно помещала в базовые массив классов creatureList - id существа и его координаты.

Следом вызвалась функция insertCreature, в которой уже пришлось делать первые изменения:if (plid==_root.userid)
creature.mcname = "you_hero";
else creature.mcname = "creature_"+plid;

Собственно ничего страшного – определяем для каждого существа свой клип.
Далее идет запрос к серверу на тип существа и при получении данных вызывалась putCreatureInfo(sdata), в которую приходили разные данные о существе, в т.ч. и тип.
if (ct !=undefined) {
creaturesList[i].t = ct;
checkOrLoad(creaturesList[i].mcname,ct);}

Функция checkOrLoad примитивная и выглядит так: function checkOrLoad(mcname,typ)
{
if (typ == 1) /* spider */
{
if (_root[mcname] == undefined)
loadclipfromserver(_root.server_domain, "spider.swf",mcname);
}
}

В дальнейшем естественно откажусь от названий существ по «человеческому» названию и spider.swf станет creature_type1.swf, сейчас просто для более наглядного понимания кода.
А еще естественно при загрузке нужно ждать, думаю ввести глобальную переменную lockForLoad – которая будет запрещать действия пользователя, если грузится хотя-бы один клип.
Ну написал я все так здорово, но реально после этих правок при запуске – клип главного героя пропал с экрана и не появлялся. Типа включился режим невидимки.
После не быстрых поисков пришлось добавить в туже функцию putCreatureInfo строчку _root[creaturesList[i].mcname].swapDepths(3*sm+100+i);
Напомню, что sm константа = width*height лабиринта, по ней устанавливаем порядок глубины для всех клипов, чтобы верхнее закрытие, действительно закрывало сверху, а не перекрывалась стенами.