-Рубрики

 -Поиск по дневнику

Поиск сообщений в ВалИв

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 08.10.2016
Записей: 25968
Комментариев: 1825
Написано: 28469


Пламя свечи на AS3

Пятница, 17 Марта 2017 г. 07:50 + в цитатник
Цитата сообщения Jorjorych Пламя свечи на AS3

Это вторая часть урока. Начало тут.

Создаём пламя в AS3 кодом, который любезно предоставил Монстер.
Проверил работоспособность в Adobe Flash CS6 и в Adobe Animate CC 2017. Нормально! Разве что добавить сглаженности пламени.

1. Создаём на рабочем столе папку проекта с именем, скажем, "Plamya_AS3"
2. Создаём документ Action Script 3.0, нажимаем комбинацию клавиш Ctrl+Shift+S (или: Файл>Сохранить как..), даём название "Plamya_AS3" и !сохраняем в папке проекта!
3. Создаём файл AS3:( Файл>Создать>Файл Action Script )

Пламя свечи, AS2



и прописываем в него код:
 

CODE
package {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;

/**
 * ...
 * @author MOHCTEP
 * @version:
 * @created: 14.03.2017 14:35
 * @description:
 * Flame - Класс пламени свечи
 */
public class Flame extends Sprite {
 /**
  * Конструктор класса. Дожидается добавления на сцену.
  */
 public function Flame() {
  stage ? init() : addEventListener(Event.ADDED_TO_STAGE, init);
 }
 
 /**** LISTENERS SECTION ****/
 
 /**
  * Сцена доступна - начинаем инсталляцию:
  * Подписываемся на событие перехода по кадрам - Event.ENTER_FRAME
  * и на событие завершения анимации будущих "частичек" пламени - Event.COMPLETE
  * @param e - Event.ADDED_TO_STAGE
  */
 private function init(e:Event = null):void {
  removeEventListener(Event.ADDED_TO_STAGE, init);
  addEventListener(Event.REMOVED_FROM_STAGE, destroyer);
  // entry point
  addEventListener(Event.ENTER_FRAME, flameBurn);
  addEventListener(Event.COMPLETE, removeBurn);
 }
 
 /**
  * "Ежекадровая" процедура.
  * "Добываем" из библиотеки 3 экземпляра "flame".
  * Ставим, масштабируем и поворачиваем их немножко рандомно.
  * И показываем, добавив в список отображения.
  * @param e - Event.ENTER_FRAME
  */
 private function flameBurn(e:Event):void {
  var new_flame:MovieClip;
  for (var i:int = 0; i < 3; i++) {
   new_flame = new flame();
   new_flame.x = Math.random()*2-1;
   new_flame.rotation = 1 + Math.random() * 3 - 3;
   new_flame.y = Math.random();
   new_flame.alpha = Math.random() * 0.5 + 0.5;
   new_flame.scaleX = .2 + Math.random() * .8;
   new_flame.scaleY = .5 + Math.random() * .7;
   addChild(new_flame);
  }
 }
 /**
  * Какой-то из ранее добавленных экземпляров пламени отчитался о завершении своей анимации.
  * Удалим его из списка отображения.
  * @param e - Event.COMPLETE
  */
 private function removeBurn(e:Event):void {
  removeChild(e.target as MovieClip);
 }
 /**
  * Нас удалили со сцены.
  * Отпишемся от всех, ранее назначенных, собвтий и почистим список отображения.
  * @param e - Event.REMOVED_FROM_STAGE
  */
 private function destroyer(e:Event):void {
  removeEventListener(Event.REMOVED_FROM_STAGE, destroyer);
  // remove all listeners, displayObjects, etc...
  removeEventListener(Event.ENTER_FRAME, flameBurn);
  removeEventListener(Event.COMPLETE, removeBurn);
  while (numChildren) removeChildAt(0);
 }
}

}



4. !Важно! Сохраняем Файл AS3 в папку проекта под именем Flame. Обязательно файл проекта Plamya_AS3.fla и файл Flame.as должны находится в одной папке!
5. Создаём в библиотеке мувик (Фрагмент ролика) flame ... повторяем все действия из поста №1 от пункта 1 до пункта 16 включительно, только код на 20-м кадре будет таким:
 

CODE
import flash.events.Event;

dispatchEvent(new Event(Event.COMPLETE,true));
stop();
//Остановим воспроизведение и рапортуем сцене о его завершении.



6. Вернёмся на монтажный кадр и в единственном кадре единственного слоя впишите код:
 

CODE
var fl:Flame = new Flame();
fl.x=274;
fl.y=216;
addChild(fl);



7. Нажмите Ctrl+Enter - должно проигрываться следующее:




В следующей части урока создадим подобие открытки




Вижу: интерес к теме по количеству скачиваний исходника и вложений есть.

Хотелось бы прочитать Ваши пожелания, замечания, дополнения в комментариях! Это же форум!

Исходник: Присоединённый файл  Plamya_AS3.rar ( 5,94 KB ) Кол-во скачиваний: 1


Присоединённый файл  Безымянный_1.swf ( 1,96 KB ) Кол-во скачиваний: 32
Присоединённый файл  PlamyaAS3_AF_CS6.swf ( 67,64 KB ) Кол-во скачиваний: 29

 

 

Серия сообщений "МОИ УРОКИ. ":
Часть 1 - Создание флеш-альбома "Листалка" в программе FLIP Flash Album Deluxe 2
Часть 2 - Наложение футажей в фотошопе на временной шкале.2-й урок
...
Часть 44 - Реалистичное пламя свечи на AS2
Часть 45 - Пламя свечи. Продолжение урока.
Часть 46 - Пламя свечи на AS3

Серия сообщений "анимация":
анимация
Часть 1 - Учимся вместе. Делаем кнопочку для бродилки САМИ
Часть 2 - Всё о фильтрах фотошопа (бродилка)
...
Часть 32 - Уроки от Виктории - Украшаем елочку.
Часть 33 - Уроки от Виктории ч 2. А снег идет...
Часть 34 - Пламя свечи на AS3

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку