как сделать так что бы мувклип при повторе цикла не перерисовывася заново, а как бы дорисовывался к предыдущему.
конкретнее: есть точка. надо что бы при каждом проходе цикла for точка дорисовывалась, а она перерисовывается.
function newPt() {
this.menuItem_base.duplicateMovieClip("menuItem_"+i, i);
this["menuItem_"+i]._x = mas[i];
trace(mas[i]);
this["menuItem_"+i]._y = mas[i+1];
trace(mas[i+1]);
}
sergwizard
25.10.2005, 02:40
for здесь не катит. Лучше использовать if. Пример:
mas = [10,20,15,25,20,30,25,35,30,40,35,45,40,50,45,55,50,60,55,65,60,70,65,75]
i = 0;
function newPt() {
if(i<23){
menuItem_base.duplicateMovieClip("menuItem_"+i, i);
_root["menuItem_"+i]._x = mas[i];
trace(mas[i]);
_root["menuItem_"+i]._y = mas[i+1];
trace(mas[i+1]);
i+=2;
}else{
delete id;
}
}
id = setInterval(newPt,500);
теперь конкретно все не работает. Если можно, Сергей, предложите чотнибудь еще а то моя тупая башня уже 3-ий день бьется над этой задачей.
конкретнее что не работает : точки не рисуются вобще. а хочется что бы они рисовались то как.
---
есть н-ное кол-во внешних массивов.
mas("a"+n, n);
в этих массивах an[i]- это х,а an[i+2]- это у;
var x = _x;
var y = _y;
выставляем координаты начальной точки
x = mas[0];
trace("x "+x);
y = mas[1];
trace("y "+y);
рисуем линию
_root.createEmptyMovieClip("mc_drawing", x++);
this.mc_drawing.lineStyle(1, 0, 100);
this.mc_drawing.moveTo(x, y);
рисуем точки
for (i=0; i<mas.length; i=i+2) {
//вызываю твою функцию
newPt();
this["menuItem_"+i]._x = mas[i];
trace(mas[i]);
this["menuItem_"+i]._y = mas[i+1];
trace(mas[i+1]);
this.mc_drawing.lineTo(mas[i], mas[i+1]);
}
что-то забыл....
Посмотри в аттач, если я правильно понял, там то, что Тебе пригодится ...
sergwizard
25.10.2005, 13:14
Можно или так (пример):
masX = [10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220];
masY = [20,35,50,65,80,95,110,125,110,95,80,65,50,35,20,35,50,65,80,95,110,125];
i=0;
this.createEmptyMovieClip("line",1);
line.lineStyle(1,0,100);
line.moveTo(masX[0],masY[0]);
function newPt(){
this.onEnterFrame = function(){
i++
line.lineTo(masX[i],masY[i]);
(i>=masX.length-1)? delete this.onEnterFrame : null;
}
}
newPt();
или так:
masX = [10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220];
masY = [20,35,50,65,80,95,110,125,110,95,80,65,50,35,20,35,50,65,80,95,110,125];
i=0;
this.createEmptyMovieClip("line",1);
line.lineStyle(1,0,100);
line.moveTo(masX[0],masY[0]);
function newPt(){
i++;
if(i<=masX.length-1){
_root.line.lineTo(masX[i],masY[i]);
}
}
id = setInterval(newPt,300)
уважаемые мужики, я со все душой, но нихуя ниработает. sarjick твоя тема не окрывается ваще, можеш выслать мне на мыло s-@tut.by
sergwizard
26.10.2005, 21:30
Ты что, не можешь просто скопировать код и вставить его в первый фрейм? Ну, тогда смотри пример.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.