Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Вызов setInterval( ) несколько раз (http://www.flasher.ru/forum/showthread.php?t=49571)

map 26.09.2003 13:20

Вызов setInterval( ) несколько раз
 
Спасайте, ребята!
Функция рисует прямую линию динамично...Но только одну!

А мне надо 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

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

Пушистик 26.09.2003 17:55

а я так и понял в чем трабла! :D
мона еще раз поподробнее....

map 26.09.2003 18:37

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

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

:)


Часовой пояс GMT +4, время: 11:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.