PDA

Просмотр полной версии : снова о дублировании клипа


Fokker
21.07.2005, 11:12
День добрый,почтенному собранию.
В учебничке разбираю пример о дублировании клипа (starParent).Код такой :

var numStars=5;
var i=1;
do {
duplicateMovieClip(starParent,"star"+i,i);
_root["star"+i]._x=Math.floor(Math.random()*551);
_root["star"+i]._y=Math.floor(Math.random()*401);
} while(i++<=numStars);

Не могу понять почему у меня на выходе получается 7 клипов? должно же быть вроде шесть
один родительский и пять копий.....где я затупил???

iNils
21.07.2005, 11:40
Когда i =5 (то есть уже произошло 5 дублирований) твоя проверка в последней строке сравнивает i с numStars (который тоже равен 5) и поскольку в условии стоит меньше или равно (а оно равно), то запускает цикл еще на один проход, но при это увеличивает i до 6. Происходит еще одно дублирование, но в слудущем сравнении i (=6) уже больше numStars и цикл заврешается.

Итого произошло в цикле 6 дублирований + оригинальный мувик.

Fokker
21.07.2005, 12:11
мерси

KUZEN
21.07.2005, 13:13
А по мне так проще так
for(var i =0;i<5;i++){
duplicateMovieClip(starParent,"star"+i,i);
_root["star"+i]._x=Math.floor(Math.random()*551);
_root["star"+i]._y=Math.floor(Math.random()*401);
}

Nirth
21.07.2005, 13:16
неа так легче=)

for(var i=0;i<5;i++){ starParent.duplicateMovieClip("star"+i,i,{_x:Math.floor(Math.random()*551),_y:Math.floor(Math.random()*401)});
}

KUZEN
21.07.2005, 13:18
я ждал этого ответа )))

Nirth
21.07.2005, 13:19
меня последнее время на сокращения потянуло=)