(Go: >> BACK << -|- >> HOME <<)

 -Рубрики

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

Поиск сообщений в Jorjorych

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

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 11.07.2013
Записей: 1657
Комментариев: 21885
Написано: 29186


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

Четверг, 16 Марта 2017 г. 18:10 + в цитатник

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

Создаём пламя в 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
Часть 47 - Выставляем на ЛиРу картинки с Гугл фото!
Часть 48 - Сглаживание анимации в фотошопе на видео шкале.

Рубрики:  Уроки/Уроки флеш
Уроки/Adobe Flash
Метки:  

Процитировано 7 раз
Понравилось: 17 пользователям

Татьяна_Волкова_Литвинова   обратиться по имени Четверг, 16 Марта 2017 г. 18:23 (ссылка)
Георгий, а как добавить сглаживание пламени? Спасибо за урок!
Ответить С цитатой В цитатник
Перейти к дневнику

Четверг, 16 Марта 2017 г. 18:27ссылка
Задай этот вопрос на Демиарте в теме. Автор кода Монстер, может он отредактирует, подскажет.
ВАТ   обратиться по имени Четверг, 16 Марта 2017 г. 18:31 (ссылка)
Георгий, очень естественное пламя! Здорово! Спасибо!
Ответить С цитатой В цитатник
Перейти к дневнику

Четверг, 16 Марта 2017 г. 18:48ссылка
Да, здорово! Только я делюсь не своими скриптами. Вера, заходи на Деми, там Таня В_Л, хочется оживить флеш-ветку форума. Ты же там прописана.
Перейти к дневнику

Четверг, 16 Марта 2017 г. 18:57ссылка
Спасибо за приглашение и за урок! Какая разница чьи скрипты, главное что делишься. Я раньше частенько заходила, а сейчас всё некогда. Кстати о скриптах... Георгий, у меня есть очень много скриптов, я их скачала откуда то очень давно, даже когда ещё не знала флеш (зачем скачала и сохранила - не знаю, сейчас уже так не делаю), если хочешь я тебе их пришлю, может быть ты разберёшься что там такое. И муви клипы есть, может быть они с ними были, не помню сейчас.
Перейти к дневнику

Четверг, 16 Марта 2017 г. 18:59ссылка
Да, с благодарностью приму!
LiSu   обратиться по имени Четверг, 16 Марта 2017 г. 18:54 (ссылка)
Результат радует!
Ответить С цитатой В цитатник
Перейти к дневнику

Четверг, 16 Марта 2017 г. 18:57ссылка
Продолжение следует!
Irina-snez   обратиться по имени Четверг, 16 Марта 2017 г. 20:13 (ссылка)

Спасибо, Георгий, за замечательный урок!
Ответить С цитатой В цитатник
Перейти к дневнику

Четверг, 16 Марта 2017 г. 20:27ссылка
Ирина - мастер фракталов, это не урок, а только начальная его часть! Фракталы могут быть использованы тут!
S_V_N   обратиться по имени Четверг, 16 Марта 2017 г. 20:25 (ссылка)
Замечательно!!!
Ответить С цитатой В цитатник
Перейти к дневнику

Четверг, 16 Марта 2017 г. 20:29ссылка
Спасибо, Света! Играю с огнём! Но я аккуратно!
MissKcu   обратиться по имени Пятница, 17 Марта 2017 г. 17:00 (ссылка)
спасибо
Ответить С цитатой В цитатник
koreckolga   обратиться по имени Пятница, 17 Марта 2017 г. 23:01 (ссылка)
Спасибо большое, Георгий! Уже первый урок попробовала, но пока результата никакого, ничего не получается...)) На градиенте остановилась...))
Ответить С цитатой В цитатник
Перейти к дневнику

Суббота, 18 Марта 2017 г. 12:12ссылка
Оля, а на Демиарте можешь ставить вопрос? Я буду там продолжать тему, заодно отвечу.
Перейти к дневнику

Суббота, 18 Марта 2017 г. 13:13ссылка
Я давненько была там, но зарегистрирована. Спасибо, Георгий!
Перейти к дневнику
Перейти к дневнику

Понедельник, 20 Марта 2017 г. 08:28ссылка
Добренько!
Перейти к дневнику

Понедельник, 20 Марта 2017 г. 11:38ссылка
В ожидании!
Перейти к дневнику

Понедельник, 20 Марта 2017 г. 14:20ссылка
бегу, пока обед...)))
Комментировать К дневнику Страницы: [1] [Новые]
 

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

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

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

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