PDA

Просмотр полной версии : attachMovie работает только 3 раза?


Чттос
16.03.2009, 18:15
Здравствуйте. Следующий код вызывает функцию "newMuha" каждые полторы секунды, но при этом, после 3х раз attachMovie больше в ней не работает. Подскажите пожалуйста, в чем проблема - не могу понять :o

//прячем мышь и цепляем молоток
Mouse.hide();
molotok_mc.onMouseMove = function() {
this._x = _xmouse;
this._y = _ymouse;
updateAfterEvent();
};
//задаем движение молотка на щелчек
var udar:Object = new Object();
udar.onMouseDown = function() {
trace("ok");
_root.molotok_mc.play();
};
Mouse.addListener(udar);


var i:Number = 0;
function newMuha() {
this.attachMovie("muha_id","muha"+i+"_mc",_root.molotok_mc.getDepth()-1-i);

//задаем координаты прилетающих мух случайно
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random()*(max-min+1))+min;
return randomNum;
}
var n:Number = randRange(10, 800-this["muha"+i+"_mc"]._width);
var p:Number = randRange(10, 500-this["muha"+i+"_mc"]._height);

this["muha"+i+"_mc"]._x = n;
this["muha"+i+"_mc"]._y = p;


//муха начинает ходить
function poshla(u) {
_root["muha"+u+"_mc"].play();
}
setTimeout(poshla,1000,i);


//муха исчезает
function ischezla(k) {
unloadMovie(_root["muha"+k+"_mc"]);
}
setTimeout(ischezla,7000,i);

i++;

}

setInterval(this,"newMuha",1500);

alekslitvinenk
16.03.2009, 18:27
this.attachMovie("muha_id","muha"+i+"_mc",_root.molotok_mc.getDepth()-1-i);сто процентов косяк с глубиной мувиков...

Чттос
16.03.2009, 19:07
ну он мне-то их дает как минимум 3 штуки... правда глубина получается очень глубокая. вот-то я и думаю, нет ли какого-нибудь ограничения в глубине?
глубина курсора равна -16381 и каждый новый клип получает глубину на (1+i) меньше.


---------------------------------------------
добавлено через минуту
---------------------------------------------

в самом деле была проблема в глубине! я сделала глубину равную просто i, но теперь.. подскажите пожалуйста, как мне сделать чтоб курсор был ВСЕГДА НАД создающимися клипами? с учетом что уровень клипов напрямую зависит от их количества, а количесвто - неограниченное???

nOobCrafter
16.03.2009, 19:09
Ну измени — узнаешь.

Stargazer
16.03.2009, 19:31
с учетом что уровень клипов напрямую зависит от их количества, а количесвто - неограниченное???

Собираетесь аттачить неограниченное число мувиклипов?
А с производительностью будет всё в порядке?

Zik.
16.03.2009, 19:32
можешь попробовать:

клип.swapDepths(500000);

alekslitvinenk
16.03.2009, 21:44
кстати, мувики с отрицательной глубиной нельзя удалять программно

Чттос
16.03.2009, 23:43
Собираетесь аттачить неограниченное число мувиклипов?
А с производительностью будет всё в порядке?
да, я мувики удаляю через 6 секунд.

кстати, мувики с отрицательной глубиной нельзя удалять программно
можно, но для этого надо использовать метод как у меня, unloadMovie(_root["muha"+k+"_mc"]);

можешь попробовать:
клип.swapDepths(500000); - получилось!



всем спасибо, проблема решена, все работает!!!!!! :yahoo: