Форум 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)
-   -   Как через lineTo нарисовать dotted line? (http://www.flasher.ru/forum/showthread.php?t=68711)

MyXus 03.09.2005 14:34

Как через lineTo нарисовать dotted line?
 
сабж.
+ может можно как-то создать свой паттерн для лайнов?

MyXus 03.09.2005 14:54

Видимо это сильно-дурацкий вопрос =)
Но как бы то ни было, у _root. в выпадающем списке касательно лайнов есть только lineStyle, moveTo, lineTo. У лайнстайла причём паттерн указать нельзя.. Как же быть? :confused:

Iv 03.09.2005 18:01

www.dembicki.org - смотри классы
FreeSelector.as
RectangularSelector.as

Sh@man 05.09.2005 13:06

Вот такой вариант (mc.dashTo() - by Ric Ewing (ric@formequalsfunction.com) - version 1.2 - 5.3.2002)

Код:

MovieClip.prototype.dashTo = function(startx, starty, endx, endy, len, gap) {
        //
        // startx, starty = beginning of dashed line
        // endx, endy = end of dashed line
        // len = length of dash
        // gap = length of gap between dashes
        //
        // if too few arguments, bail
        if (arguments.length < 6) {
                return false;
        }
        // init vars
        var seglength, deltax, deltay, segs, cx, cy;
        // calculate the legnth of a segment
        seglength = len + gap;
        // calculate the length of the dashed line
        deltax = endx - startx;
        deltay = endy - starty;
        delta = Math.sqrt((deltax * deltax) + (deltay * deltay));
        // calculate the number of segments needed
        segs = Math.floor(Math.abs(delta / seglength));
        // get the angle of the line in radians
        radians = Math.atan2(deltay,deltax);
        // start the line here
        cx = startx;
        cy = starty;
        // add these to cx, cy to get next seg start
        deltax = Math.cos(radians)*seglength;
        deltay = Math.sin(radians)*seglength;
        // loop through each seg
        for (var n = 0; n < segs; n++) {
                this.moveTo(cx,cy);
                this.lineTo(cx+Math.cos(radians)*len,cy+Math.sin(radians)*len);
                cx += deltax;
                cy += deltay;
        }
        // handle last segment as it is likely to be partial
        this.moveTo(cx,cy);
        delta = Math.sqrt((endx-cx)*(endx-cx)+(endy-cy)*(endy-cy));
        if(delta>len){
                // segment ends in the gap, so draw a full dash
                this.lineTo(cx+Math.cos(radians)*len,cy+Math.sin(radians)*len);
        } else if(delta>0) {
                // segment is shorter than dash so only draw what is needed
                this.lineTo(cx+Math.cos(radians)*delta,cy+Math.sin(radians)*delta);
        }
        // move the pen to the end position
        this.moveTo(endx,endy);
};


ffffff 05.09.2005 13:39

Цитата:

Сообщение от BitSky
www.dembicki.org - смотри классы
FreeSelector.as
RectangularSelector.as


а ты ни где не видел мануал по этим классам?
просто лично я плохо представляю для чего они нужны и как ими пользоваться... хотя бы исходник и сих использованием :)

iNils 05.09.2005 13:45

Цитата:

Сообщение от ffffff
а ты ни где не видел мануал по этим классам?
просто лично я плохо представляю для чего они нужны и как ими пользоваться... хотя бы исходник и сих использованием :)

Ну учитывая что эти классы сам Ив написал, то мануалы если есть, то он их и писал :)

Iv 05.09.2005 14:37

загляни в конец класса.
все мануалы и примеры там.

Idalgo 27.04.2007 14:26

продолжу старую тему:
www.dembicki.org - явно не то, что должно быть
а предложеный класс от Ric Ewing - только для прямых линий

Может есть другие варианты?
Или можно подвязать сюда Stroke? Кто нибудь знает?

etc 27.04.2007 14:36

http://sharedfonts.com/dembicki_org/

Idalgo 27.04.2007 15:01

Цитата:

Сообщение от __etc

Спасибо, кстати ссылки на RectangularSelector.as и FreeSelector.as там почему-то неправильные.
Вот правильные:
http://sharedfonts.com/dembicki_org/...larSelector.as
http://sharedfonts.com/dembicki_org/FreeSelector.as

Idalgo 30.04.2007 14:07

Я так понял, что решения, позволяющего рисовать пунктиром (или хотя бы имитировать рисование) нет. Масимально, что можно - это провести одну или несколько lineTo пунктиром. Для curveTo аналогичных примеров в природе нет?

etc 30.04.2007 14:14

http://bezier.ru/

Idalgo 30.04.2007 14:31

Цитата:

Сообщение от __etc

- без комментариев?

MyXus 30.04.2007 14:32

да ты скачай класс, почитай, поюзай
потом придумаешь какие комменты тебе нужны..

etc 30.04.2007 14:34

Класс Bezier в руки.


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

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