Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Эффект стирания слоя (http://www.flasher.ru/forum/showthread.php?t=118537)

NVer 26.11.2008 20:19

Эффект стирания слоя
 
Всем привет.
Задача: создать эффект "стирания слоя", например эффект курсора-ластика. Как это реализовать? Понятное дело, с помощью маски. А как сделать рисование этих самых "дырок" на слое-маске? Приходит в голову attachMovie на слое-маске в том месте, где находится курсор. Или, может быть, можно реализовать программным рисованием? Достаточно "дырок" простой круглой формы. Подскажите, пожалуйста.

orcpochta 26.11.2008 21:14

Цитата:

Сообщение от NVer (Сообщение 779958)
Как это реализовать? Понятное дело, с помощью маски.

Не понятное.

NVer 26.11.2008 21:30

Цитата:

Не понятное.
Гмм...Ну я вижу это так:
Делаем три слоя. На самом нижнем слое — изображение, которое у нас должно выглядеть самым верхним, то есть то, что именно мы стираем. На среднем слое — то изображение, которое будет выглядывать из-под стираемого слоя. Средний слой маскируется самым верхним слоем, то есть сначала его не видно. Таким образом, вначале мы видим нижний слой(он как будто у нас самый верхний). Далее, после того как мы добавляем изображения на слой-маску, они проявляют средний слой, то есть получается как бы дырка. Так вот, вопрос в том, как добавлять изображения на слой-маску.

То есть, грубо говоря, как реализовать "рисование" курсором.

iNils 26.11.2008 22:01

http://www.flasher.ru/forum/attachme...2&d=1184704313

orcpochta 26.11.2008 22:57

"Не понятное." в том смысле, что можно, например, "прожигать" наложенный сверху битмэп, т.е. маскирование - это ваш выбор, коий не является абсолютной истиной...))

Жень Шень 27.11.2008 11:48

Вложений: 1
Цитата:

Сообщение от NVer (Сообщение 779958)
Всем привет.
Задача: создать эффект "стирания слоя", например эффект курсора-ластика.

Я решил задачу так:
Создал "бутерброд" из двух клипов. На нижнем рисунок, В верхнем "рисуем-стираем". Внизу слева палитра размеров "резинки".
Это переделанный кусок кода из готовой рисовалки, поэтому возможно что-то лишнее. Я желал показать принцип.

NVer 28.11.2008 19:06

Большое спасибо всем, кто ответил!

Скажите, пожалуйста, а если задача реализована таким способом:
Код AS1/AS2:

// у меня используется градиентная маска
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;
    }
};

то как можно быстро удалить все приаттаченные мувики, то есть привести всё в исходное состояние?

Wolsh 28.11.2008 22:49

Оболдеть))) Извините)))
Код AS1/AS2:

c.onMouseDown = function ()
{
    if (c.hitTest(_xmouse, _ymouse, true) == false)
    {
        mon = false;
    }
    else
    {
        mon = true;
    }
};

Это вроде как
Код AS1/AS2:

c.onMouseDown = function ()
{
    mon = c.hitTest(_xmouse, _ymouse, true)
}

А удалить - ну конечно msk удалить и создать новый.

Добавлено через 3 минуты
Да, еще
Код AS1/AS2:

this.createEmptyMovieClip("msk", _root.getNextHighestDepth());

Если this != _root то Вы рискуете не получить никакого msk.

NVer 28.11.2008 23:39

Не обалдевайте, код не мой.
this=root, скрипт в кадре написан


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

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