Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос про рисование линии (http://www.flasher.ru/forum/showthread.php?t=142690)

Himerets 28.07.2010 12:46

Вопрос про рисование линии
 
Раньше пользовался этой вещью, щас забыл напрочь. Перерыл весь гугель, не нашел :(

Вообщем, рисуем мы квадрат, задав предварительно lineStyle, с толщиной, скажем 2.

Будет видно, что линия отрисовалась не снаружи квадрата, а как бы... половина ширины линии попала в область квардрата, а другая половина вышла наружу.

Стопудово помню, что есть какой-то аттрибут, который определяет будет ли линия полностью снаружи, полностью внутри, либо 50 на 50

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

iNils 28.07.2010 13:18

Такого атрибута нет и не было.
Я всегда ставлю толщину 0 и рисую вложенный квадрат для создания рамки.

Himerets 28.07.2010 13:21

Должен же в таком случае быть какой-то выход из этой ситуации

Код AS3:

        scorePanel.graphics.beginFill(0, 0.4);
                                scorePanel.graphics.lineStyle(4, 0xE1D3CE, 0.1, true);
                                scorePanel.graphics.drawRoundRect(0, 0, 254, 204, 20);
                                scorePanel.graphics.endFill();

смотрится очень убого из-за того,что линия накладывается на прямоугольник

iNils 28.07.2010 13:24

Код AS3:

scorePanel.graphics.beginFill(0, 0.4);
scorePanel.graphics.lineStyle(0, 0xE1D3CE, 0.1, true);
scorePanel.graphics.drawRoundRect(0, 0, 254, 204, 20);
scorePanel.graphics.drawRoundRect(4, 4, 254 - 8, 204 - 8, 20 - 8);
scorePanel.graphics.endFill();


Himerets 28.07.2010 13:28

Ща попробую

Добавлено через 5 минут
Тогда скорей так:

Код AS3:

scorePanel.graphics.beginFill(0, 0);
scorePanel.graphics.lineStyle(4, 0xE1D3CE, 0.1, true);
scorePanel.graphics.drawRoundRect(0, 0, 254, 204, 20);
scorePanel.graphics.beginFill(0, 0.4);
scorePanel.graphics.lineStyle(NaN);
scorePanel.graphics.drawRoundRect(2, 2, 254 - 4, 204 - 4, 20 - 4);
scorePanel.graphics.endFill();


Но это понятно.
Я точно помню, что был способ задать отрисовку линии снаружи/внутри или 50 на 50

Хемуль 28.07.2010 14:54

2 Himerets:
Ну, способов вообще много разных для чего угодно есть, а вот атрибута или параметра, который вот так вот просто переключить можно и получить то, что вы хотите, - нет.

Zebestov 28.07.2010 16:36

Himerets, может ты просто напутал — это в фотошопе эффект Stroke можно так "регулировать"

iNils 28.07.2010 17:19

Цитата:

Тогда скорей так:

Код AS3:

scorePanel.graphics.beginFill(0, 0);
scorePanel.graphics.lineStyle(4, 0xE1D3CE, 0.1, true);
scorePanel.graphics.drawRoundRect(0, 0, 254, 204, 20);
scorePanel.graphics.beginFill(0, 0.4);
scorePanel.graphics.lineStyle(NaN);
scorePanel.graphics.drawRoundRect(2, 2, 254 - 4, 204 - 4, 20 - 4);
scorePanel.graphics.endFill();


Это вообще бог знает что.

Цитата:

Я точно помню, что был способ задать отрисовку линии снаружи/внутри или 50 на 50
Такого не может быть в принципе, lineStyle задает стиль линии, а у линии нет понятие снаружи или внутри. Это есть у фигуры.


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

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