Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.02.2009, 21:04
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 1  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
Tools Создание бордера на shape

Помогите найти правильное решение, создания бордера вокруг уже созданой формы (любой сложности).
Пример (на словах): существует множество "movie clip" содержащих один слой с разнообразным "shape",
задача - пройтись по всем мувикам залить их определенным цветом, и нарисовать им бордер 1px другим цветом.

Для этого написал одну функцию (св. в конце темы),
но она плохо спраляется с определнными формами,
может ктось уже сталкивался с данной задачей, помогите плиз

Код AS1/AS2:
function changeColor(obj,fill,bg){
Name=obj._name;
obj.attachMovie(Name,'bg1',1,{_x:1,_y:1});
ColorBg = new Color(obj['bg1']);
ColorBg.setRGB(bg);
obj.attachMovie(Name,'bg2',2,{_x:-1,_y:1});
ColorBg = new Color(obj['bg2']);
ColorBg.setRGB(bg);
obj.attachMovie(Name,'bg3',3,{_x:1,_y:0});
ColorBg = new Color(obj['bg3']);
ColorBg.setRGB(bg);
obj.attachMovie(Name,'bg4',4,{_x:-1,_y:0});
ColorBg = new Color(obj['bg4']);
ColorBg.setRGB(bg);
obj.attachMovie(Name,'bg5',5,{_x:0,_y:1});
ColorBg = new Color(obj['bg5']);
ColorBg.setRGB(bg);
obj.attachMovie(Name,'bg6',6,{_x:0,_y:-1});
ColorBg = new Color(obj['bg6']);
ColorBg.setRGB(bg);
obj.attachMovie(Name,'bg7',7,{_x:1,_y:-1});
ColorBg = new Color(obj['bg7']);
ColorBg.setRGB(bg);
obj.attachMovie(Name,'bg8',8,{_x:-1,_y:-1});
ColorBg = new Color(obj['bg8']);
ColorBg.setRGB(bg);
 
obj.attachMovie(Name,'area',9,{_x:0,_y:0});
ColorFill = new Color(obj['area']);
ColorFill.setRGB(fill);
}
obj - сылка на "movie clip" который существует на сцене и в библиотеке установлен "Export for ActionScript"
fill - цвет заливки
bg - цвет бордера

Старый 19.02.2009, 23:24
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
класс GlowFilter. Пример использования.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 20.02.2009, 13:21
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 3  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
dimarik спасибо за ответ, и ссылочку (почитаю на досуге другие статьи).

попробывал этот фильтр, ничего хоррошего сказать не могу:
- он рисует не границу, а дает свечение, что приводит к закруглению
бордера на острых углах.
- много жрет ресурсов

Старый 20.02.2009, 13:44
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 4  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Раскройте смысл: "уже созданой формы" - кем, как и когда созданной?
Нужный эффект можно получить, но как бы универсальное решение будет за рамками приведенной функции и целесообразность таких затрат на обработку изображения вызывает сильные сомнения. Особенно, касаясь реализации на АС2.

Старый 20.02.2009, 14:32
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 5  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
работа ведется с векторной картой,
которая имеет большое количество "областей" отделенных друг от друга границой.
все области "shape", я взял в мувиклип, установил для них "Export for ActionScript" и задал то же имя на сцене.
При парсинге xml, каждая область должна быть залита определенным цветом + должна быть нарисована граница тоже определнного цвета.
т.к. областей очень много (+ будут еще аналогичные карты), и цветовые гаммы будут менятся, без actionscript обойтись не получится.

функция, что приведена в теме, почти справляется с своей задачей,
большие области выглядят так как нада, но мелкие и тонкие - поганенько,
поэтому хочу найти альтернативу.

Старый 20.02.2009, 14:47
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 6  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Непонимаю в чем проблема? Области по точкам рисуются? Если да то проблем вообще не может быть никаких...

GlowFilter нужно установить внутренний с маленьким блюром и большой "силой". Патом то что получится лучше срисовать в битмап и использовать...

Старый 20.02.2009, 15:39
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 7  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
области уже есть, их нужно закрасить и нарисовать бордер...
с GlowFilter уже наигрался, тормоза ужас... областей > 200, и это еще не предел

Старый 20.02.2009, 15:54
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 8  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Неправильно игрался

Старый 20.02.2009, 20:10
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 9  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
Цитата:
Сообщение от qazwsx Посмотреть сообщение
Неправильно игрался
повторяюсь, GlowFilter не подходит, т.к.
1. жрет много ресурсов
2. бордеры делает не те что мне нужно

Старый 20.02.2009, 20:44
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 10  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Потому что ты не правильно делаеш)

P.S Повторяю...

Смотри в сторону http://www.flasher.ru/forum/showpost...75&postcount=6

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
border , fill , shape
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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