Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Рисование траектории 2 (линии) (http://www.flasher.ru/forum/showthread.php?t=103188)

Ostgur 31.10.2007 22:33

Рабочая версия кода выше :D
Код:

interval = 20; // интервал, в милисекундах
time = 2; // длительность анимации, в секундах
xy = [0, 0,      //начальное положение
          150, 0,
          150, 150,
          0, 180,
          0,0        //конечное положение
          ];

function draw1 (what,x0,y0,x1,y1){
        if (f > 1/k) return nextXY(); else { x1 = (x1-x0)*k*f; y1 = (y1-y0)*k*f; }
        what.clear();
        what.lineStyle(5, 0xff00ff, 100, true, "none", "round", "miter", 1);
        what.moveTo(x0,y0);
        what.lineTo(x0+x1,y0+y1);
        f++;
}
function nextXY(){
        pos +=2;
        ho = this.createEmptyMovieClip("line"+pos, pos);
        clearInterval(myInt);
        if(pos < xy.length)
        {
                myInt = setInterval(draw1, interval, ho, xy[pos-2], xy[pos-1], xy[pos], xy[pos+1]);
        }
        f=1;
}
pos = 0; f = 1;        k = interval/time/1000;
nextXY();


//UPDATE: draw => draw1 x => x1 y => y1


Fl00r 31.10.2007 23:29

? в смысле рабочая?

Disney75 01.11.2007 06:29

Ostgur согласен с Твоими предложениями... Последнее показалось наиболее удачным... есть над чем подумать... Только "думалка" пока еще в Action Script не въехала...) Много непонятного...((
1. Как мне сделать (использую Твой последний пример со своими координатами), чтобы у меня из одной точки выходило несколько линий одновременно... попытался доп. переменные ввести... не получилось... (линии двигаются с разной скоростью)
2. Линия получается поверх всех мувиков... а мне надо чтобы она только на фоне была... чтобы остальные объекты ей не перекрывались...

Ostgur 01.11.2007 16:17

Fl00r, у меня твоя версия не пашет чёт, ты используешь draw, x, y, а они оказываются зарезервированы флэш под что-то там.

Disney75, последний код не мой, а Fl00r, я просто его подправил :D

Disney75 01.11.2007 17:15

Да... спасибо... хорошо поправил..., а то и у меня его код не стал работать))

Тогда, Fl00r к тебе аналогичный вопрос...:rolleyes:

1. Как мне сделать (использую Твой последний пример со своими координатами), чтобы у меня из одной точки выходило несколько линий одновременно... попытался доп. переменные ввести... не получилось...
(линии должны двигаться с разной скоростью)

Создал еще один массив, добавил в функции nextXY доп. параметры... блин линия перерисовывается с др. координатами (из второго массива)

2. Линия получается поверх всех мувиков... а мне надо чтобы она только на фоне была... чтобы остальные объекты ей не перекрывались...

Fl00r 01.11.2007 17:52

ошибки от отсутствия флеша.
сейчас скачаю триал, а то FLex на AS 2.0 не пишет =)

Disney75 02.11.2007 16:35

Господа.... посмотрите, вот во что превратился код Fl00r'а...)
:eek: Но мне кажется я далек от истины...
Fl00r, у тебя когда линия доходила до конечных координат... она не исчезала... а мои исчезают...:confused: Как это поправить...

Код:

interval = 20; // интервал, в милисекундах
time = 2; // длительность анимации, в секундах

xy3 = [491.4, 473.5,      //начальное положение
          418.6,633.6,
          479.4,660.3,
          558.3,478.5,
          466.9,429.1,
          570.6,622.4,
          668.4,619.1,
          736.1,436.1,
          507.3,409.3,
          547.9,289.4,
          304.3,360.3,
          273.4,214.3,
          267.3,61.4          //конечное положение
          ]
function draw1 (w){
        if (f > 1/k) return nextXY();
        else
        {
                x1 = (w[2]-w[0])*k*f;
                y1 = (w[3]-w[1])*k*f;
                x2 = (w[4]-w[0])*k*f;
                y2 = (w[5]-w[1])*k*f;
                x3 = (w[6]-w[0])*k*f;
                y3 = (w[7]-w[1])*k*f;
                x4 = (w[8]-w[0])*k*f;
                y4 = (w[9]-w[1])*k*f;
                x5 = (w[10]-w[0])*k*f;
                y5 = (w[11]-w[1])*k*f;
                x6 = (w[12]-w[0])*k*f;
                y6 = (w[13]-w[1])*k*f;
                x7 = (w[14]-w[0])*k*f;
                y7 = (w[15]-w[1])*k*f;
                x8 = (w[16]-w[0])*k*f;
                y8 = (w[17]-w[1])*k*f;
                x9 = (w[18]-w[0])*k*f;
                y9 = (w[19]-w[1])*k*f;
                x10 = (w[20]-w[0])*k*f;
                y10 = (w[21]-w[1])*k*f;
                x11 = (w[22]-w[0])*k*f;
                y11 = (w[23]-w[1])*k*f;
                x12 = (w[24]-w[0])*k*f;
                y12 = (w[25]-w[1])*k*f;
               
                ho1.clear();
                ho1.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho1.moveTo(w[0],w[1]);
                ho1.lineTo(w[0]+x1,w[1]+y1);
               
                ho2.clear();
                ho2.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho2.moveTo(w[0],w[1]);
                ho2.lineTo(w[0]+x2,w[1]+y2);
               
                ho3.clear();
                ho3.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho3.moveTo(w[0],w[1]);
                ho3.lineTo(w[0]+x3,w[1]+y3);
               
                ho4.clear();
                ho4.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho4.moveTo(w[0],w[1]);
                ho4.lineTo(w[0]+x4,w[1]+y4);
               
                ho5.clear();
                ho5.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho5.moveTo(w[0],w[1]);
                ho5.lineTo(w[0]+x5,w[1]+y5);
               
                ho6.clear();
                ho6.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho6.moveTo(w[0],w[1]);
                ho6.lineTo(w[0]+x6,w[1]+y6);
               
                ho7.clear();
                ho7.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho7.moveTo(w[0],w[1]);
                ho7.lineTo(w[0]+x7,w[1]+y7);
               
                ho8.clear();
                ho8.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho8.moveTo(w[0],w[1]);
                ho8.lineTo(w[0]+x8,w[1]+y8);
               
                ho9.clear();
                ho9.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho9.moveTo(w[0],w[1]);
                ho9.lineTo(w[0]+x9,w[1]+y9);
               
                ho10.clear();
                ho10.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho10.moveTo(w[0],w[1]);
                ho10.lineTo(w[0]+x10,w[1]+y10);
               
                ho11.clear();
                ho11.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho11.moveTo(w[0],w[1]);
                ho11.lineTo(w[0]+x11,w[1]+y11);
               
                ho12.clear();
                ho12.lineStyle(2, 0xFFFF33, 100, true, "none", "round", "miter", 1);
                ho12.moveTo(w[0],w[1]);
                ho12.lineTo(w[0]+x12,w[1]+y12);
        }
        f++;
}
function nextXY(what){
        ho1 = this.createEmptyMovieClip("line"+1, 1);
        ho2 = this.createEmptyMovieClip("line"+2, 2);
        ho3 = this.createEmptyMovieClip("line"+3, 3);
        ho4 = this.createEmptyMovieClip("line"+4, 4);
        ho5 = this.createEmptyMovieClip("line"+5, 5);
        ho6 = this.createEmptyMovieClip("line"+6, 6);
        ho7 = this.createEmptyMovieClip("line"+7, 7);
        ho8 = this.createEmptyMovieClip("line"+8, 8);
        ho9 = this.createEmptyMovieClip("line"+9, 9);
        ho10 = this.createEmptyMovieClip("line"+10, 10);
        ho11 = this.createEmptyMovieClip("line"+11, 11);
        ho12 = this.createEmptyMovieClip("line"+12, 12);
        clearInterval(myInt);
        if(pos < what.length)
        {
                //myInt = setInterval(draw1, interval, what[pos-2], what[pos-1], what[pos], what[pos+1]);
                myInt = setInterval(draw1, interval, what);
        }
        f=1;
}
pos = 0; f = 1;        k = interval/time/1000;
nextXY(xy3);
//UPDATE: draw => draw1 x => x1 y => y1


etc 02.11.2007 17:33

Disney75, отредактируйте свой пост и оформите код тегами [code][/code].


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

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