Эффект огня на ActionScript 3.0

Класс Flamer - это класс на языке ActionScript 3.0, написанный Jon-ом Howard-ом для реализации эффекта огня (эффекта горения). Данная реализация эффекта привлекает своей простотой и удобством. А сам эффект получается достаточно реалистичным и не слишком ресурсоёмким.

Итак, рассмотрим пример использования класса Flamer (сам класс можно найти по ссылке в самом начале поста или взять из исходников к уроку, ссылка на которые находится в конце этого поста).

Сперва нарисуем объект, к которому хотим применить эффект. Пусть это будет Sprite с рисунком окружности...

Код ActionScript 3.0:

var sprite:Sprite = new Sprite(); sprite.graphics.beginFill(0xffffff,1); sprite.graphics.drawCircle(0,0,50); sprite.graphics.endFill(); addChild(sprite); sprite.x = 275; sprite.y = 200;

Результат:

Заготовка у нас есть. Переходим к основной части...

Код ActionScript 3.0:

/* импорт классов */ import flash.display.Sprite; import swingpants.effect.Flamer; /* объект, к которому будем применять эффект */ var sprite:Sprite = new Sprite(); sprite.graphics.beginFill(0xffffff,1); sprite.graphics.drawCircle(0,0,50); sprite.graphics.endFill(); addChild(sprite); sprite.x = 275; sprite.y = 200; /* Создаём экземпляр класса Flamer Параметры: 1-й - объект, к которому будет применён эффект; 2-й и 3-й - ширина и высота области, в которой будет отображаться эффект */ var flamer:Flamer = new Flamer(sprite,550,400); addChild(flamer); /* обновляем эффект в каждом кадре */ addEventListener(Event.ENTER_FRAME, onEnterFrames) function onEnterFrames(event:Event):void { flamer.update(); }

Результат:

Согласитесь, эффект получился довольно симпатичным.

Кстати, эффект имеет несколько полезных настроек. Так, например, с помощью метода setFlameDirection() можно изменить направление языков пламени. Давайте направим язык пламени в сторону верхнего правого угла флеш-ролика.

Код ActionScript 3.0:

/* импорт классов */ import flash.display.Sprite; import swingpants.effect.Flamer; import flash.geom.Point; /* объект, к которому будем применять эффект */ var sprite:Sprite = new Sprite(); sprite.graphics.beginFill(0xffffff,1); sprite.graphics.drawCircle(0,0,50); sprite.graphics.endFill(); addChild(sprite); sprite.x = 275; sprite.y = 200; /* Создаём экземпляр класса Flamer Параметры: 1-й - объект, к которому будет применён эффект; 2-й и 3-й - ширина и высота области, в которой будет отображаться эффект */ var flamer:Flamer = new Flamer(sprite,550,400); addChild(flamer); /* направление языков пламени */ flamer.setFlameDirection(new Point(1,-1)); /* обновляем эффект в каждом кадре */ addEventListener(Event.ENTER_FRAME, onEnterFrames) function onEnterFrames(event:Event):void { flamer.update(); }

Результат:

С помощью всё того же метода setFlameDirection() мы можем сделать языки пламени более мощными...

Код ActionScript 3.0:

/* импорт классов */ import flash.display.Sprite; import swingpants.effect.Flamer; import flash.geom.Point; /* объект, к которому будем применять эффект */ var sprite:Sprite = new Sprite(); sprite.graphics.beginFill(0xffffff,1); sprite.graphics.drawCircle(0,0,50); sprite.graphics.endFill(); addChild(sprite); sprite.x = 275; sprite.y = 200; /* Создаём экземпляр класса Flamer Параметры: 1-й - объект, к которому будет применён эффект; 2-й и 3-й - ширина и высота области, в которой будет отображаться эффект */ var flamer:Flamer = new Flamer(sprite,550,400); addChild(flamer); /* направление языков пламени */ flamer.setFlameDirection(new Point(3,-3)); /* обновляем эффект в каждом кадре */ addEventListener(Event.ENTER_FRAME, onEnterFrames) function onEnterFrames(event:Event):void { flamer.update(); }

Результат:

А метод setFlameColour() позволяет настроить цвет пламени. Для этого в качестве единственного параметра методу setFlameColour надо указать одно из следующих значений:

0 - красно-оранжевое пламя (как в ранее приведённых примерах);

1 - синеватое пламя (напоминает горение бытового газа);

2 - жёлто-зелёное пламя;

3 - ядовито-зелёное пламя;

4 - пурпурное пламя.

Код ActionScript 3.0:

/* импорт классов */ import flash.display.Sprite; import swingpants.effect.Flamer; import flash.geom.Point; /* объект, к которому будем применять эффект */ var sprite:Sprite = new Sprite(); sprite.graphics.beginFill(0xffffff,1); sprite.graphics.drawCircle(0,0,50); sprite.graphics.endFill(); addChild(sprite); sprite.x = 275; sprite.y = 200; /* Создаём экземпляр класса Flamer Параметры: 1-й - объект, к которому будет применён эффект; 2-й и 3-й - ширина и высота области, в которой будет отображаться эффект */ var flamer:Flamer = new Flamer(sprite,550,400); addChild(flamer); /* цвет пламени */ flamer.setFlameColour(1); /* направление языков пламени */ flamer.setFlameDirection(new Point(2,-2)); /* обновляем эффект в каждом кадре */ addEventListener(Event.ENTER_FRAME, onEnterFrames) function onEnterFrames(event:Event):void { flamer.update(); }

Результат:

Эффект огня хорошо смотрится не только на статичных спрайтах, но и на анимированных MovieClip-ах...

Код ActionScript 3.0:

/* импорт классов */ import flash.display.Sprite; import swingpants.effect.Flamer; import flash.geom.Point; /* объект, к которому будем применять эффект */ var animMc:AnimMc = new AnimMc(); addChild(animMc); animMc.x = 275; animMc.y = 200; /* Создаём экземпляр класса Flamer Параметры: 1-й - объект, к которому будет применён эффект; 2-й и 3-й - ширина и высота области, в которой будет отображаться эффект */ var flamer:Flamer = new Flamer(animMc,550,400); addChild(flamer); /* цвет пламени */ flamer.setFlameColour(3); /* направление языков пламени */ flamer.setFlameDirection(new Point(2,-2)); /* обновляем эффект в каждом кадре */ addEventListener(Event.ENTER_FRAME, onEnterFrames) function onEnterFrames(event:Event):void { flamer.update(); }

Результат:

Вот, пожалуй, и всё, что я хотел рассказать о классе Flamer. Скачать исходники к данному уроку и сам класс Flamer можно по следующей ссылке - скачать исходники (под Adobe Flash CS5).

Спасибо за внимание :-)

Автор: admin

Дата добавления: 2013-03-09

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

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

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

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): Просто я
Дата добавления: 2013-03-10
Вау, просто офигительный эффект!
Добавить комментарий:







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

Идиот-тест

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

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