Форум 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)
-   -   Как нарисовать пунктирную линию путем AS2? (http://www.flasher.ru/forum/showthread.php?t=88461)

Fl00r 24.11.2006 02:45

Что, по сути, тоже самое, что и в моём случае... Вся разница в оформлении. У тебя — как функция

etc 24.11.2006 02:54

lineStyle — это не есть ошибка. Я не собираюсь передавать в функции все параметры lineStyle (а их не менее пяти в восьмой версии), пусть сам юзер задаёт эти параметры извне и только те, какие ему нужны.

К тому же, ты допустил три ошибки:
1) Невозможность задать цвет линии и её толщину вне функции (даже параметрически в самой функции тоже нельзя);
2) Повесил задание одного и того же стиля в цикле, а не перед циклом;
3) Добавление lineTo(x2,y2) приводит к тому, что последний штрих будет неверной длины;

Так это у меня ошибки или у тебя?

Fl00r 24.11.2006 02:57

Хорошее замечание.
У меня видим — тоже ошибки. Но они не столь критичные, сколь те, что были у тебя. Смирись. У тебя оно в принципе работало не верно. И проблема не в lineStyle.

etc 24.11.2006 03:00

Fl00r, прочитай про свою третью ошибку (я отредактировал пост) и осознай наконец, что такое пунктирная линия и то, что её последний штрих не обязан попадать в конечную координату.

И прекрати со мной спорить — мы в разных весовых категориях.

miramax 24.11.2006 03:04

Цитата:

Сообщение от __etc
И прекрати со мной спорить — мы в разных весовых категориях.

LOL:D :D :D. Проблем с самооценкой у тебя точно не возникает ;)
Ап чём спор? Неужели кто-то из вас не сможет нарисовать пунктирную линию?

Fl00r 24.11.2006 03:05

3) Он будет неверной длины потому, что иначе будет неверной длины сама линия. Это решается конечно, но мне не до этого. Это СИМВОЛ того, что я об этом подумал. Что такое пунктирная линия я изучал в университете. Вольности мне еще позволительны.

Твою категорию я уже оценил ).

Я не спорю. Я исправляю твои ошибки (ок, разобрались).
Претензии в ЛС.

Fl00r 24.11.2006 03:07

Как видишь, miramax, у меня последний штрих — не той длины ). Длиною мереемся )

etc 24.11.2006 03:12

И четвертая ошибка:

Код:

drawDashLine = function(target_mc,x1,y1,x2,y2,step,width) {
        var xd = x2-x1;
        var yd = y2-y1;
        var dist = Math.sqrt(xd*xd+yd*yd);
        var steps = Math.round(dist/(step+width));
        var cos = xd/dist;
        var sin = yd/dist;
        var xe = width*cos;
        var ye = width*sin
        for (var i=0;i<steps;i++) {
                var x = x1+i*(step+width)*cos;
                var y = y1+i*(step+width)*sin;
                target_mc.lineStyle(0, 0x000000);
                target_mc.moveTo(x,y);
                target_mc.lineTo(x+xe,y+ye);
        }
        target_mc.lineTo(x2,y2)
}
this.lineStyle(0,0);
drawDashLine(this,0,10,547,10,10,5);

Я задал ширину черточки в 5 пикселей, а шаг — 10. Логично предположить, что длина просвета и длина штриха будут равны. Однако, у тебя это не так. Ну и, как я уже говорил, последний штрих получился длиннее остальных.

miramax, я — смогу :)

Fl00r, так какие ошибки ты у меня исправил? Я пока вижу добавление ошибок, а не исправление.

з.Ы. Впрочем, понятия шага и ширины, похоже, у нас разные, так что четвертой ошибки нет =)

Fl00r 24.11.2006 03:22

Я задавал ширину штриха и ширину просвета. Это логичнее, тк подумай, что выйдет если ширина шага =10 а ширина штриха - 20... просвет минус 10 пикселей? =)
Учитывая, что ты действовал исходя из этого — твои ошибки списываются ). Переходишь в супертяжелый вес. Осиливший пунктир )

Fl00r 24.11.2006 03:22

Вот вот )


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

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