PDA

Просмотр полной версии : Изменить код


sams_
08.05.2004, 18:22
Вот этот:

butt._x = 0;
buttwidth = butt._width+1;
num = 0;
for (var i = 0; i<10; i++) {
butt.duplicateMovieClip("butt"+num, num);
mc = this["butt"+num];
mc._x = buttwidth*i;
num++;
}
butt._visible = 0;

Цель — заставить дубликаты клипа butt загружаться последовательно, а не "все сразу".
Потыкался, не выходит чего-то.
Буду благодарен за совет.

kazakov_gin
08.05.2004, 19:11
butt._x = 0;
buttwidth = butt._width+1;
num = 0;
function draw(){
if(num<10){
butt.duplicateMovieClip("butt"+num, num);
mc = this["butt"+num];
mc._x = buttwidth*i;
num++;
}
}
setInterval(draw,10);
butt._visible = 0;

sams_
08.05.2004, 20:21
Не пашет, однако.

artfla$her
09.05.2004, 02:08
Во-первых, в скрипте у kazakov_gin-а приращение _x не идет, т.к. *i, а не *num. Во-вторых, скрипт все равно не пойдет, потому что использован this вместо _root. И, в-третьих, скорость в 10 миллсекунд очень уж зверская, неужто надеялся отследить появления шариков? ;) Вот работающий код (у меня работающий):

butt._x = 0;
buttwidth = butt._width+1;
num = 0;
function draws(){
if(num<10){
butt.duplicateMovieClip("butt"+num, num);
mc = _root["butt"+num];
mc._x = buttwidth*num;
num++;
}
}
setInterval(draws,10);
butt._visible = 0;

О том, что код на самом деле очень глупый, я промолчу :) Функцию с именем draw не рекомендую использовать (по-крайней мере в 2004), т.к. она уже зарезервирована.
Удачи.

kazakov_gin
09.05.2004, 08:12
Сори, я даж не проверял, думал у него всё остальное правильно, ну и написал просто задержку.
приращение _x не идет, т.к. *i, а не *num
Ну эт я просто не заметил :rolleyes:
А время опять же от болды поставил :p

sams_
09.05.2004, 15:08
to artfla$her:

спасибо, теперь всё идёт "по плану".

P.S.: Вместе с сообщением о "глупом коде" хорошо бы вывешивать пример "умного". Я не пытаюсь выцыганить у тебя "гениальное" решение, просто этот код прекрасно справляется с поставленой задачей, а хорошему, как известно, предела нет.

artfla$her
10.05.2004, 01:29
Вместе с сообщением о "глупом коде" хорошо бы вывешивать пример "умного"
Согласен, как оформлять код - дело вкуса, но, по-моему, здесь было бы лучше написать хотя бы так:

butt._x = 0;
buttsLevel = 10;
space = 10;
maxObj = 10;
createTime = 100;
countCopy = 0;
function copies(){
countCopy++;
buttName = "butt"+countCopy;
duplicateMovieClip("butt", buttName, buttsLevel+countCopy);
_root[buttName]._x = butt._x+(butt._width+space)*countCopy;
if(countCopy>maxObj){
clearInterval(butInt);
}
}
butInt = setInterval(copies,createTime)

Ведь ширина и проч. основного клипа не меняется, а пробелы и т.п. удобнее, на мой взгляд, задавать в начальных переменных, не касаясь основного кода. Хотя и это далеко не лучший вариант. :) Просто прикольнее делать собственный код "управляемым", так сказать, легко настраиваемым.

Да и вообще какая разница - главное работает ;)