PDA

Просмотр полной версии : Вызов setInterval( ) несколько раз


map
26.09.2003, 13:20
Спасайте, ребята!
Функция рисует прямую линию динамично...Но только одну!

А мне надо 20. Характеристики линий и setInterval ()складированы в массивах и я их посылаю через параметры функции. Вызываю Dessin() несколько раз, а рисует только одну линию...Уже всё попробовал.
Что нужно сделать?
Пока не ответите - к машине не подойду...


function Dessin(nom, prf, wdth, clr, vsbl, x0, y0, xf, yf, pasX, pasY, vtss, obj)
{
// Controle();

var x=new Array();
var y=new Array();

var i=0;

x[0]=x0;
y[0]=y0;


_root.createEmptyMovieClip ("nom", prf);
_root.nom.lineStyle (wdth, clr, vsbl);
_root.nom.moveTo (x0,y0);

obj = new Object();

obj.interval=function ()
{

i++;

x[i]=x[i-1]+pasX;
y[i]=y[i-1]+pasY;

_root.nom.lineTo(x[i],y[i]);


if(x[i]>=xf){clearInterval(id);}

}

id=setInterval(obj, "interval", vtss);

}

Dimonius
26.09.2003, 15:58
Можешь более конкретный исходник выложить.

Пушистик
26.09.2003, 16:23
угу....а то ничё не понятно.....могу тока сказать что здесь наверняка чё-то не то...

id=setInterval(obj, "interval", vtss);

map
26.09.2003, 17:35
Я максимально упростил код, чтобы понятней было - поэтому отвечаю с задержкой...Нормально я ещё тестирую каждый параметр и в вычислении шага по У учитываю отрицательные значения по "х" и "у"...Запарился немного - и слои добавлял и мувики. Подскажите - я в прграммировании недавно да и поздно начал...
В этом варианте - если вызываю один раз, всё нормально...
Два - одна, блин, да ещё и кривая!

Пушистик
26.09.2003, 17:55
а я так и понял в чем трабла! :D
мона еще раз поподробнее....

map
26.09.2003, 18:37
Так...Сделал поподробней. Поясняю - я делаю метод, пардон, пытаюсь сделать, чтобы потом сто раз не переписывать. Он у меня спокойненько в отдельном файле лежать будет, а я его оттуда "инклюд"ом когда надо доставать буду, параметры менять и любоваться.
Абревеатура непонятная потому что на французском...
Метод вызова объекта приведён в "хелпе" АС и он работает...
Можно даже параметры с ним передавать, почему я его и использую...
ВОПРОС - чего он одновременно не рисует несколько линий?
Если технически невозможно - значит пойду карандаши точить...

iLoveYou
26.09.2003, 18:38
function Dessin(name, level, x0, y0, xf, yf, pasX, pasY, vtss) {
var x =[];
var y =[];
x[0] = x0;
y[0] = y0;
var i = 0;
var mc_name=_root.createEmptyMovieClip(name, level);
mc_name.lineStyle(1, 0x00ff00);
mc_name.moveTo(x0, y0);
var id = setInterval(function () {
i++;
x[i] = x[i-1]+pasX;
y[i] = y[i-1]+pasY;
mc_name.lineTo(x[i], y[i]);
if (x[i]>=xf) {clearInterval(id);
trace("YYYOOOOOO!");}
}, vtss);
}
Dessin("mc_1", 1, 100, 100, 500, 300, 10, 0, 10);
Dessin("mc_2", 2, 10, 300, 500, 300, 10, 0, 10);
Dessin("mc_3", 3, 20, 300, 300, 300, 10, 1, 10);

map
26.09.2003, 18:56
"iLoveYou"-je t'aime!
То что надо!!!
Всем огромное спасибо!!!
Карандаши остануться незаточенными...

iLoveYou
26.09.2003, 19:04
:)