![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2006
Сообщений: 113
|
Я хочу из прямоугольника вырезать центр, чтобы получилась рамка. Мне интересно, как это можно сделать? Логично было бы предположить, что можно в прямоугольник вписать еще один прямоугольник, поменьше, назначить его маской и.. как бы инвертировать, чтоли, если это возможно. Мне думается, что возможно, только я не знаю как...
|
|
|||||
|
[+4 12.03.07]
Регистрация: Jul 2006
Сообщений: 32
|
очень просто. если правильно написан ответ.?
никакой маски делать не надо! выделяете одним кликом само боди прямоугольника (если изначально фома была создана с рамкой) выделенную область удаляете кнопкой delete/ и все., а рамка остается (главное не выделять!) если же изначально было без рамки, то сверху на том же слое наклыдываете другой прямоугольник, меньшей формы, пока новый ещё!выделенный формы отцентрируйте. после - выделение убираете, формы сливаете (главное чтоб эти формы были разных цветов) потом выделяете внутрений и просто удаляете. все рамка готова, а потом делайте с ней что хотите. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 113
|
Мне программно все это сделать надо. Прямоугольник нарисовать ручками проблемы не вызывает
![]() |
|
|||||
|
ветеран форума
|
Проще программно нарисовать рамку
__________________
4am is time to rock |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 113
|
Удивительно, как до 8-й версии не реализовали такую простую вещь, как инвертирование маски - она везде есть. Чтобы заданная область не показывалась, а скрывалась. По-моему это очевидно нужная возможность
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну уж если ты в восьмерке делаешь, так и используй blend'ы.
А ругать гениальных разработчиков всяк горазд, кто хоть десять строк кода написал в своей жизни Просто инструменты гораздо более общее применение имеют, а на каждую конкретную задачу свой метод создавать - шибко жирно компиллятор будет весить ![]() // создаем контейнер
_root.createEmptyMovieClip("obadva_mc",1);
obadva_mc.createEmptyMovieClip("ramka_mc",1);
// рисуем внешний прямоугольник
with(obadva_mc.ramka_mc){
beginFill(0xFF0000); moveTo(10, 10);
lineTo(400, 10); lineTo(400, 300);
lineTo(10, 300); lineTo(10, 10);
endFill();
}
obadva_mc.createEmptyMovieClip("mask_mc",5);
// рисуем внутренний прямоугольник
with(obadva_mc.mask_mc){
beginFill(0xFFFF00); moveTo(30, 30);
lineTo(380, 30); lineTo(380, 280);
lineTo(30, 280); lineTo(30, 30);
endFill();
}
// назначаем режим наложения
obadva_mc.blendMode = 2
obadva_mc.mask_mc.blendMode = 11
// регулируем прозрачность дырки
obadva_mc.mask_mc._alpha = 50
Но это незаметно.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 14.11.2006 в 23:31. |
|
|||||
|
ветеран форума
|
function drawRect(mc:MovieClip, a:Number, b:Number):Void {
mc.moveTo(a, a);
mc.lineTo(b, a);
mc.lineTo(b, b);
mc.lineTo(a, b);
mc.lineTo(a, a);
}
function drawBorder(mc:MovieClip):Void {
mc.beginFill(0);
mc.lineStyle(1, 0);
drawRect(mc, 0, 100);
drawRect(mc, 10, 90);
mc.endFill();
}
_root.createEmptyMovieClip("brd", 1);
brd._x = 100;
brd._y = 100;
drawBorder(brd);
__________________
4am is time to rock |
|
|||||
|
ветеран форума
|
Или вообще так
function drawRect(mc:MovieClip, a:Number, b:Number):Void {
//Изменение последнего параметра lineStyle
//позволит срезать или скруглить углы рамки
mc.lineStyle(10, 0, 100, false, "normal", "square", "miter");
mc.moveTo(a, a);
mc.lineTo(b, a);
mc.lineTo(b, b);
mc.lineTo(a, b);
mc.lineTo(a, a);
}
_root.createEmptyMovieClip("a", 1);
drawRect(a, 0, 100);
__________________
4am is time to rock Последний раз редактировалось DarkLight; 15.11.2006 в 00:05. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|