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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 23.03.2004, 11:20
Бодик вне форума Посмотреть профиль Отправить личное сообщение для Бодик Посетить домашнюю страницу Бодик Найти все сообщения от Бодик
  № 1  
Бодик
[+ 1.11 06.02.2006]
[+ 1.11 13.11.2005]

Регистрация: Jul 2003
Сообщений: 55
Отправить сообщение для Бодик с помощью ICQ
По умолчанию Трансформация

У меня есть мувик сложной формы (карта).
Как програмно сделать так, что бы вокруг карты появилась ее граница красного цвета?
__________________
ICQ 283387842
http://actionscript.com.ua

Старый 23.03.2004, 11:27
Cvazimodo вне форума Посмотреть профиль Отправить личное сообщение для Cvazimodo Найти все сообщения от Cvazimodo
  № 2  
Cvazimodo
[+1 10.07.06]

Регистрация: Jan 2003
Сообщений: 365
Самый простой вариан - создать вручную мувик чуть большего размера, поместить туда аналогичную по форме карты фигуру красного цвета. Изначально установить _alpha = 0, а потом увеличить (плавно или нет) до 100.

Старый 23.03.2004, 11:36
Бодик вне форума Посмотреть профиль Отправить личное сообщение для Бодик Посетить домашнюю страницу Бодик Найти все сообщения от Бодик
  № 3  
Бодик
[+ 1.11 06.02.2006]
[+ 1.11 13.11.2005]

Регистрация: Jul 2003
Сообщений: 55
Отправить сообщение для Бодик с помощью ICQ
Я так пробовал, но гарницы получаются неровными. Их толщина в одном месте больше, в одном меньше. Это из за того, что карта очень неправильной формы. Есть ли иной выход?
__________________
ICQ 283387842
http://actionscript.com.ua

Старый 23.03.2004, 15:17
fmsmith вне форума Посмотреть профиль Отправить личное сообщение для fmsmith Найти все сообщения от fmsmith
  № 4  
fmsmith

Регистрация: Nov 2001
Адрес: и провыплёвывает
Сообщений: 26
Установи аттрибуты инструмента "линия" такими, как тебе нужно для окантовки.
Выдели свою неправильной формы карту и попробуй клацнуть на ней инструментом "чернильница". Появится обрисовка её контура линией.
Потом выдели только линию и сделай из неё мувиклип.
Положи его на карту и сделай ему _visible=false или _alpha=0.
Потом, когда надо, делаешь его видимым.

Старый 23.03.2004, 15:29
Бодик вне форума Посмотреть профиль Отправить личное сообщение для Бодик Посетить домашнюю страницу Бодик Найти все сообщения от Бодик
  № 5  
Бодик
[+ 1.11 06.02.2006]
[+ 1.11 13.11.2005]

Регистрация: Jul 2003
Сообщений: 55
Отправить сообщение для Бодик с помощью ICQ
Спасибо, но как это сделать все прогамно. Ведь трогать мувик вручную нельзя
__________________
ICQ 283387842
http://actionscript.com.ua

Старый 23.03.2004, 16:30
fmsmith вне форума Посмотреть профиль Отправить личное сообщение для fmsmith Найти все сообщения от fmsmith
  № 6  
fmsmith

Регистрация: Nov 2001
Адрес: и провыплёвывает
Сообщений: 26
Не совсем понимаю, что мешает трогать мувик (кроме отсутствия исходника ), но это не моё дело.....
Есть два варианта
1. Создать сверху пустой мувик и рисовать в нём огибающую при помощи moveTo() и curveTo(), что может служить разновидностью меры наказания и надоест раньше, чем получится....
2.Сделать копию мува-карты, расположить её под оригиналом, потм в ней посредством ColorTransform залить карту тем же красным.....
Ну а потом методом тыка натыкать подходящие значения
_xScale,_yScale (возможно, они будут одинаковые).
При этом было бы неплохо, чтобы точка привязки мувика была бы не в "левом верхнем углу", а где-то в районе середины, ежели таковая ващще есть....


Согласен, что оба варианта корявые.....

Старый 23.03.2004, 16:38
Бодик вне форума Посмотреть профиль Отправить личное сообщение для Бодик Посетить домашнюю страницу Бодик Найти все сообщения от Бодик
  № 7  
Бодик
[+ 1.11 06.02.2006]
[+ 1.11 13.11.2005]

Регистрация: Jul 2003
Сообщений: 55
Отправить сообщение для Бодик с помощью ICQ
Понимаешь, у меня таких карт 100 штук. Вот я и хочу написать такой скрипт, который бы делал показывал красные границы для каждой отдельной части карты при наведении на нее мышкой. А то вручную это делать очень не хочется....
__________________
ICQ 283387842
http://actionscript.com.ua

Старый 23.03.2004, 17:16
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 8  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Атачишь в центр мувика мувик/красн.круг с разм., допустим -3x3/. Потом пишешь функцию разлёта в рандомном направлении и остановкой на границе и альфой =100
/начальная альфа =0/.Запуск функции разлёта/в неё же можно засунуть и атач/ лучше сунуть в setInterval(),
что бы не зависеть от fps. Через какое то время,
граница сформируется. Вопрос,? через какое время?

Старый 23.03.2004, 19:34
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 9  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Что то типа такого

MovieClip.prototype.razlet = function(name) {
this.xrand = 5*(Math.random()-.5);
this.yrand = 5*(Math.random()-.5);
this.onEnterFrame = function() {
if (name.hitTest(this._x, this._y, true)) {
this._x += this.xrand;
this._y += this.yrand;
} else {
this._x += 0;
this._y += 0;
this._alpha = 100;
delete this.onEnterFrame;
}
};
};
_root.nnn = 0;
function granisa(name) {
tx = name._x;
ty = name._y;
for (i=1; i<=100; i++) {
this.attachMovie("krug", "krug"+i+_root.nnn, i+_root.nnn);
this["krug"+i+_root.nnn]._x = tx;
this["krug"+i+_root.nnn]._y = ty;
this["krug"+i+_root.nnn]._alpha = 0;
this["krug"+i+_root.nnn].razlet(name);
}
_root.nnn += 100;
}
setInterval(function () {
granisa(_root.mc);
}, 1000);//остановить, допустим через 5сек./
В общем тяжелый случай.

Старый 23.03.2004, 23:00
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
похожее решение : нащупываем границу ( подойдет только для выпуклых фигур) и по ней рисуем тостую линию
MovieClip.prototype.getContur=function(n){
this.cx=new Array(n);
this.cy=new Array(n);
for(i=0;i<n;i++){
var x=y=0;
while(this.hitTest(this._x+x,this._y+y,true)){
x+=Math.cos(i*2*Math.PI/n);
y+=Math.sin(i*2*Math.PI/n);
}
this.cx[i]=x;
this.cy[i]=y;
}
}
MovieClip.prototype.drawContur=function(){
this.createEmptyMovieClip("cont",1);
var l=this.cx.length;
this.cont.lineStyle(10,0xFF0000);
this.cont.moveTo(this.cx[l-1],this.cy[l-1]);
for(i=0;i<l;i++) this.cont.lineTo(this.cx[i],this.cy[i]);
}

mc.getContur(64);// число точек контура : по вкусу
mc.drawContur();

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

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

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


 


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


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