Сегодня продолжим тему маскирования в ActionScript 3.0 и научимся создавать красивые градиентные маски.
Но сперва нам надо создать визуальный объект, к которому мы позднее и применим градиентную маску. Таким объектом будет MovieClip под именем mc. Итак, создаём на рабочей сцене Adobe Flash (лично я воспользуюсь Adobe Flash CS5.5) мувиклип mc. Затем давайте поместим внутрь данного мувика фотографию (эффект градиентной маски лучше всего смотрится, если его применить именно к цветным фотографиям).
А теперь переходим к коду, который будем писать на главной временной шкале...
Код ActionScript 3.0:
/*
создаём спрайт в форме элипса с радиальным градиентом в качестве заливки
этот спрайт мы потом и сделаем маской
*/
var mymask:Sprite = new Sprite();
var matrix:Matrix = new Matrix();
matrix.createGradientBox(550,400);
mymask.graphics.lineStyle();
mymask.graphics.beginGradientFill(GradientType.RADIAL,[0xFFFFFF,0xFFFFFF],[1,0],[125,255],matrix);
mymask.graphics.drawEllipse(0,0,550,400);
mymask.graphics.endFill();
addChild(mymask);
/*
объявляем маской для мувика mc ранее созданный спрайт с градиентной заливкой
*/
mc.mask = mymask;
/*
а теперь самое главное - кэшируем объект и маску
без этого создать эффект градиентной маски не получится
*/
mc.cacheAsBitmap = true;
mymask.cacheAsBitmap = true;
В результате мы получаем следующее:
Есть и альтернативный способ создания градиентной маски - с помощью фильтров. Например, с помощью фильтра GlowFilter.
Код ActionScript 3.0:
var mymask:Sprite = new Sprite();
var matrix:Matrix = new Matrix();
matrix.createGradientBox(550,400);
mymask.graphics.lineStyle();
mymask.graphics.beginGradientFill(GradientType.RADIAL,[0xFFFFFF,0xFFFFFF],[1,0],[125,255],matrix);
mymask.graphics.drawEllipse(0,0,550,400);
mymask.graphics.endFill();
addChild(mymask);
mc.mask = mymask;
var glow:GlowFilter = new GlowFilter();
glow.color = 0x000000;
mc.filters = [glow];
mymask.filters = [glow];
Результат:
Согласитесь, второй способ открывает очень широкие возможности для экспериментов. Ведь применение к градиентной маске разных фильтров с разными настройками даёт в результате огромное многообразие эффектов. Остаётся только экспериментировать.
Исходник к данному уроку под Adobe Flash CS5.5 скачать можно здесь.