Форум 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, 23:11
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 6  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

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

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

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

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

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

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

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

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

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

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

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

Теги
border , fill , shape
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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