Маски бывают разными

Небольшое дополнение к уроку Динамическая маска на ActionScript 3.0. Но на этот раз задача следующая: делаем такую динамическую маску , чтобы при стирании одной картинки проступала другая. Конечный результат должен выглядеть примерно так:

Итак, приступим.

На главной временной шкале создаём мувиклип container_mc. Внутри мувика container_mc создаём три слоя. На двух нижних слоях располагаем разные растровые картинки (в моём случае это image_1.png и image_2.png), а на верхнем слое создаём пустой мувиклип mask_mc (на самом деле, он не совсем пустой, но об этом чуть позже). Мувик mask_mc объявляем маской для ближайшего к нему изображения. Результат должен выглядеть примерно так:

Динамическая маска на ActionScript 3.0

Потом возвращаемся на главную временную шкалу и пишем код...

Код ActionScript 3.0:

var flag:Boolean = false; container_mc.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDowns); container_mc.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoves); container_mc.addEventListener(MouseEvent.MOUSE_UP, onMouseUps); function onMouseDowns(event:MouseEvent):void { flag = true; } function onMouseUps(event:MouseEvent):void { flag = false; } function onMouseMoves(event:MouseEvent):void { if (flag) { container_mc.mask_mc.graphics.beginFill(0x000000); container_mc.mask_mc.graphics.drawCircle(mouseX, mouseY, 40); container_mc.mask_mc.graphics.endFill(); } }

Вдаваться в объяснения не буду, так как код полностью позаимствовал из урока Динамическая маска на ActionScript 3.0, в котором код объяснён построчно. Изменены только пути до мувиков.

Если всё сделали правильно, то результат будет примерно такой:

Единственный момент, на котором стоит заострить внимание: использование масок может порождать множество проблем и с ними надо быть очень аккуратными. Именно поэтому в мувик mask_mc пришлось добавить немного "мусора", чтобы маска работала правильно. Увы, такова реальность :-(

Если что-то непонятно, то вот исходник - скачать исходники (под Adobe Flash CS6).

Автор: admin

Дата добавления: 2014-11-06

Просмотров: 2255

Рейтинг поста: +5-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): Лок
Дата добавления: 2014-11-16
Вот спасибо, как раз недавно искал исходник или урок для эффекта стирания монеткой защитного слоя, но только на as2 находил.
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-11-07
> Маску надо задавать динамически (в коде)

Это-то понятно. Сам так и делаю. Но почему она неправильно работает с пустым мувиком, созданным вручную? Могу ошибаться, но это как-то неправильно...

> а если закешировать маску и мувик как битмап - то можно применять маску с градиентной прозрачностью

Уже давно про это писал урок: Градиентная маска средствами ActionScript 3.0 - http://edapskov.ru/pages.php?id=130 :-) Тема, кстати, весьма интересная. Особенно, если кеширование с помощью cacheAsBitmap заменить фильтрами.
Комментатор
Комментарий добавил(а): Александр
Дата добавления: 2014-11-07
Маску надо задавать динамически (в коде)
img_mc.mask = mask_mc;
тогда и мусора не нужно будет.
а если закешировать маску и мувик как битмап - то можно применять маску с градиентной прозрачностью
img_mc.mask = mask_mc;
img_mc.cacheAsBitmap = mask_mc.cacheAsBitmap = true;
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Страница 2 из 2: 12
Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика