Эффект отражения (эффект зеркального отражения) - это очень популярный эффект не только при обработке фотографий, но и при создании web-приложений. Нередко он применяется и в флеш-приложениях. Давайте посмотрим, как такой эффект можно создать в flash-проекте, причём создать его буквально парой строчек кода ActionScript 3.0. И для этого воспользуемся уже готовым решением - классом Reflection (сам класс прилагается к исходнику, ссылка на который в конце поста) от Dustin Andrew.
Для примера создадим что-то подобное:
Но сперва сделаем заготовку: на сцене нашего проекта в Adobe Flash создадим MovieClip под именем mc, а на временную шкалу мувика mc поместим какую-либо картинку.
После этого можно переходить к коду...
Код ActionScript 3.0:
/*
импортируем класс
*/
import Reflection;
/*
создаём объект
*/
var reflect:Reflection = new Reflection(mc,0.6,0.6,0,0,1);
/*
добавляем объект на сцену
*/
addChild(reflect);
Всё! Эффект отражения добавлен к нашему мувику.
Теперь давайте усложним пример. Ранее мы создавали отражение для статичного мувиклипа. Но, допустим, у нас мувиклип содержит анимацию. Соответственно, отражение должно изменяться вместе с мувиком. Как это сделать? А надо, всего-навсего, перерисовывать наше отражение в каждом новом кадре. Например, так...
Код ActionScript 3.0:
/*
импортируем класс
*/
import Reflection;
/*
перерисовываем отражение в каждом новом кадре
*/
addEventListener(Event.ENTER_FRAME,onEnterFrames);
function onEnterFrames(event:Event)
{
/*
удаляем устаревшее отражение
*/
if (this.numChildren > 1)
{
this.removeChildAt(1);
}
/*
создаём новое отображение и добавляем его на сцену
*/
var reflect:Reflection = new Reflection(mc,0.6,0.6,0,0,1);
this.addChildAt(reflect,1);
}
Результат будет примерно следующим:
Как вы, наверно, уже заметили, конструктор объектов Reflection принимает несколько параметров. Первый параметр - это объект, для которого надо создать эффект отражения (в нашем случае таким объектом является мувиклип mc). А остальные пять параметров позволяют тонко настроить внешний вид отражения. Я не буду их описывать. Мы поступим гораздо проще - будем настраивать наш эффект зеркального отражения через небольшой визуальный редактор. Так и проще, и нагляднее.
Генератор кода ActionScript 3.0 для эффекта отражения:
Исходник (под Adobe Flash CS5.5) и сам класс Reflection скачать можно по данной ссылке. Спасибо за внимание :-)