![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 4
|
Всем привет.
Задача: создать эффект "стирания слоя", например эффект курсора-ластика. Как это реализовать? Понятное дело, с помощью маски. А как сделать рисование этих самых "дырок" на слое-маске? Приходит в голову attachMovie на слое-маске в том месте, где находится курсор. Или, может быть, можно реализовать программным рисованием? Достаточно "дырок" простой круглой формы. Подскажите, пожалуйста. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
__________________
скриптограф |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 4
|
Цитата:
Делаем три слоя. На самом нижнем слое — изображение, которое у нас должно выглядеть самым верхним, то есть то, что именно мы стираем. На среднем слое — то изображение, которое будет выглядывать из-под стираемого слоя. Средний слой маскируется самым верхним слоем, то есть сначала его не видно. Таким образом, вначале мы видим нижний слой(он как будто у нас самый верхний). Далее, после того как мы добавляем изображения на слой-маску, они проявляют средний слой, то есть получается как бы дырка. Так вот, вопрос в том, как добавлять изображения на слой-маску. То есть, грубо говоря, как реализовать "рисование" курсором. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
"Не понятное." в том смысле, что можно, например, "прожигать" наложенный сверху битмэп, т.е. маскирование - это ваш выбор, коий не является абсолютной истиной...))
__________________
скриптограф |
|
|||||
|
Цитата:
Создал "бутерброд" из двух клипов. На нижнем рисунок, В верхнем "рисуем-стираем". Внизу слева палитра размеров "резинки". Это переделанный кусок кода из готовой рисовалки, поэтому возможно что-то лишнее. Я желал показать принцип. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 4
|
Большое спасибо всем, кто ответил!
Скажите, пожалуйста, а если задача реализована таким способом: // у меня используется градиентная маска 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; } }; |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Оболдеть))) Извините)))
c.onMouseDown = function () { if (c.hitTest(_xmouse, _ymouse, true) == false) { mon = false; } else { mon = true; } }; А удалить - ну конечно msk удалить и создать новый. Добавлено через 3 минуты Да, еще Если this != _root то Вы рискуете не получить никакого msk.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 4
|
Не обалдевайте, код не мой.
this=root, скрипт в кадре написан |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|