Просмотр полной версии : Эффект стирания слоя
Всем привет.
Задача: создать эффект "стирания слоя", например эффект курсора-ластика. Как это реализовать? Понятное дело, с помощью маски. А как сделать рисование этих самых "дырок" на слое-маске? Приходит в голову attachMovie на слое-маске в том месте, где находится курсор. Или, может быть, можно реализовать программным рисованием? Достаточно "дырок" простой круглой формы. Подскажите, пожалуйста.
orcpochta
26.11.2008, 21:14
Как это реализовать? Понятное дело, с помощью маски.
Не понятное.
Не понятное.
Гмм...Ну я вижу это так:
Делаем три слоя. На самом нижнем слое — изображение, которое у нас должно выглядеть самым верхним, то есть то, что именно мы стираем. На среднем слое — то изображение, которое будет выглядывать из-под стираемого слоя. Средний слой маскируется самым верхним слоем, то есть сначала его не видно. Таким образом, вначале мы видим нижний слой(он как будто у нас самый верхний). Далее, после того как мы добавляем изображения на слой-маску, они проявляют средний слой, то есть получается как бы дырка. Так вот, вопрос в том, как добавлять изображения на слой-маску.
То есть, грубо говоря, как реализовать "рисование" курсором.
http://www.flasher.ru/forum/attachment.php?attachmentid=17302&d=1184704313
orcpochta
26.11.2008, 22:57
"Не понятное." в том смысле, что можно, например, "прожигать" наложенный сверху битмэп, т.е. маскирование - это ваш выбор, коий не является абсолютной истиной...))
Жень Шень
27.11.2008, 11:48
Всем привет.
Задача: создать эффект "стирания слоя", например эффект курсора-ластика.
Я решил задачу так:
Создал "бутерброд" из двух клипов. На нижнем рисунок, В верхнем "рисуем-стираем". Внизу слева палитра размеров "резинки".
Это переделанный кусок кода из готовой рисовалки, поэтому возможно что-то лишнее. Я желал показать принцип.
Большое спасибо всем, кто ответил!
Скажите, пожалуйста, а если задача реализована таким способом:
// у меня используется градиентная маска
pic.cacheAsBitmap = true;
this.createEmptyMovieClip("msk", _root.getNextHighestDepth());
msk.cacheAsBitmap = true;
pic.setMask(msk);
mon = false;
i = 0;
c.onMouseDown = function ()
{
if (c.hitTest(_xmouse, _ymouse, true) == false)
{
mon = false;
}
else
{
mon = true;
}
};
c.onMouseUp = function ()
{
mon = false;
};
this.onEnterFrame = function ()
{
if (mon)
{
a = this.msk.attachMovie("brush", "b" + i, this.msk.getNextHighestDepth());
a._x = this._xmouse;
a._y = this._ymouse;
}
};
то как можно быстро удалить все приаттаченные мувики, то есть привести всё в исходное состояние?
Оболдеть))) Извините)))
c.onMouseDown = function ()
{
if (c.hitTest(_xmouse, _ymouse, true) == false)
{
mon = false;
}
else
{
mon = true;
}
};
Это вроде как
c.onMouseDown = function ()
{
mon = c.hitTest(_xmouse, _ymouse, true)
}
А удалить - ну конечно msk удалить и создать новый.
Добавлено через 3 минуты
Да, еще
this.createEmptyMovieClip("msk", _root.getNextHighestDepth());
Если this != _root то Вы рискуете не получить никакого msk.
Не обалдевайте, код не мой.
this=root, скрипт в кадре написан
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.