Полноэкранные эффекты (свечение, обводка etc.)




Главная > Уроки > Анимация > Полноэкранные эффекты (свечение, обводка etc.)

Полноэкранные эффекты (свечение, обводка etc.)

Автор/переводчик статьи: Команда сайта flashmaster.org.ua

Дата: 2012-08-27

Несколько человек меня спрашивали, как я сделал эффект свечения окружения в игре Fallen. Вот я и решил поделится информацией с широкой общественностью. Кстати есть очень хорошее Продвижение сайтов в Могилеве, занимаются мои знакомые, хорошие сео специалисты.

 

Я наклепал небольшой примерчик который илюстрирует данную технологию. Нажимайте стрелки влево\вправо чтобы двигать блошкой и выбирайте из выпадающего списка различные бленд-эффекты. Наиболее круто смотриться режим overlay. В фаллене же применялся режим screen.

Для содержимого этой страницы требуется более новая версия Adobe Flash Player.

Получить проигрыватель Adobe Flash Player

 


Код примерчика:

//Создаём битмадату куда будем
копировать экран и применять эффект
var backBuffer:BitmapData;
backBuffer = new
BitmapData(stage.stageWidth,
stage.stageHeight, false);

//Создаём битмап который будет
отображать поверх все изменения и
привязываем к нему битмапдату
var b:Bitmap = new
Bitmap(backBuffer,PixelSnapping.ALWAYS);
//Размещаем битмап ниже элементов
управления
addChildAt(b,getChildIndex(blendList)-1);

//По-умолчанию отключаем блендинг b.blendMode="alpha";

//Создаём фильтр размытия
var blur_filter:BlurFilter = new
BlurFilter(10,10,2);

//Обновление параметров
function update(e : Event):void
{
//Если это первый кадр и элемент
управления не добавлен- выходим
if(blendList.selectedItem==null) return;
//Убираем элементы для которых
не хотим применять эффект
blendList.visible=false;

//Убираем сам битмап
b.visible=false;

//Лочим битмапдату
backBuffer.lock();
//Копируем в неё экран
backBuffer.draw(this,null,null,null,new Rectangle(0,0,stage.stageWidth, stage.stageHeight));
//Размываем
backBuffer.applyFilter(backBuffer, new Rectangle(0,0,stage.stageWidth,
stage.stageHeight), new Point(0,
0), blur_filter);
//Разлочиваем битмапдату
backBuffer.unlock();
//Показывем элементы управления
blendList.visible=true;
//Показываем битмап с размытым
содержимым
b.visible=true;
}
addEventListener(Event.ENTER_FRAME, update);

//Меняем на нужный режим блендинга
function
changeBlendMode(event:Event):void
{

b.blendMode=blendList.selectedItem.data;
}
blendList.addEventListener(Event.CHANGE, changeBlendMode);

//Управление блошкой
function keyDown(event:KeyboardEvent)
{
if(event.keyCode==Keyboard.LEFT)
flea.x-=5;
if(event.keyCode==Keyboard.RIGHT) flea.x+=5;
if(flea.x>stage.stageWidth)
flea.x=stage.stageWidth;
if(flea.x<0) flea.x=0;
}
stage.addEventListener(KeyboardEvent.KEY
_DOWN, keyDown);

blendList.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);

 

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


Понравился материал? Поделись с друзьями!





Подписаться на рассылку.

При перепечатки материалов ссылка на наш сайт обязательна!


 1