Красивый эффект снежной бури средствами ActionScript 3.0

Речь пойдёт о небольшой библиотеке классов на AS 3.0 под говорящим названием SnowStorm (автор - некто Greg Tczap), которая позволяет быстро и без проблем создать довольно реалистичный эффект снегопада. Хотя, если быть точным, готовый эффект больше напоминает снежную метель, вьюгу, чем снегопад (кстати, про создание реалистичного эффекта снегопада я уже писал - Реалистичный эффект падающего снега на ActionScript 3.0. Продолжение.).

Несомненным достоинством библиотеки SnowStorm (на мой, конечно, взгляд) является то, что вся графика генерируется кодом. А это значит, что мы без лишних приготовлений можем сразу перейти к написанию кода.

Первым делом, создадим на экране Flash Player-а лютую зимнюю пургу :-)

Код ActionScript 3.0:

/* импорт классов */ import com.tczap.fx.snowstorm.SnowStorm; /* создаём метель */ var snowStorm:SnowStorm = new SnowStorm(); /* задаём ширину и высоту той области, в которой мы хотим видеть эффект снежной бури */ snowStorm.width = 400; snowStorm.height = 400; /* указываем количество снежинок (в моём случае - 300 штук) и скорость их появления в миллисекундах */ snowStorm.createSnow(300,1000); /* добавляем эффект в список отображения */ addChild(snowStorm);

Результат:

Существует возможность настроить цвет и диаметр снежинок.

Код ActionScript 3.0:

/* импорт классов */ import com.tczap.fx.snowstorm.SnowStorm; /* создаём метель */ var snowStorm:SnowStorm = new SnowStorm(); /* задаём ширину и высоту той области, в которой мы хотим видеть эффект снежной бури */ snowStorm.width = 400; snowStorm.height = 400; /* задаём цвет и диаметр снежинок */ snowStorm.snowColor = 0xff0000; snowStorm.snowDiameter = 10; /* указываем количество снежинок (в моём случае - 300 штук) и скорость их появления в миллисекундах */ snowStorm.createSnow(300,1000); /* добавляем эффект в список отображения */ addChild(snowStorm);

Получим кровавый снегопад с довольно крупными хлопьями снега (в 10 px):

Ещё более интересные результат можно получить, если поиграть со свойством snowSpeedMultiplier, которое влияет на скорость падающих снежинок:

Код ActionScript 3.0:

/* импорт классов */ import com.tczap.fx.snowstorm.SnowStorm; /* создаём метель */ var snowStorm:SnowStorm = new SnowStorm(); /* задаём ширину и высоту той области, в которой мы хотим видеть эффект снежной бури */ snowStorm.width = 400; snowStorm.height = 400; /* задаём цвет и диаметр снежинок */ snowStorm.snowColor = 0xffffff; snowStorm.snowDiameter = 10; /* подстраиваем скорость пурги под свой вкус */ snowStorm.snowSpeedMultiplier = 20; /* указываем количество снежинок (в моём случае - 300 штук) и скорость их появления в миллисекундах */ snowStorm.createSnow(300,1000); /* добавляем эффект в список отображения */ addChild(snowStorm);

Результат:

А с помощью метода destroySnow() можно регулировать интенсивность снегопада. Метод принимает такие же параметры, как и ранее рассмотренный метод createSnow(), но только метод destroySnow() удаляет, а не добавляет снежинки. Причём удаление осуществляется не одномоментно, а очень плавно и постепенно. Смотрите сами...

Код ActionScript 3.0:

/* импорт классов */ import com.tczap.fx.snowstorm.SnowStorm; import fl.controls.Slider; import fl.events.SliderEvent; /* количество снежинок */ var snowflakes:uint = 300; /* создаём метель */ var snowStorm:SnowStorm = new SnowStorm(); /* задаём ширину и высоту той области, в которой мы хотим видеть эффект снежной бури */ snowStorm.width = 400; snowStorm.height = 400; /* задаём цвет и диаметр снежинок */ //snowStorm.snowColor = 0xffffff; //snowStorm.snowDiameter = 10; /* подстраиваем скорость пурги под свой вкус */ //snowStorm.snowSpeedMultiplier = 20; /* указываем количество снежинок (в моём случае - 300 штук) и скорость их появления в миллисекундах */ snowStorm.createSnow(snowflakes,1000); /* добавляем эффект в список отображения */ addChild(snowStorm); /* слайдер */ var slider:Slider = new Slider(); addChild(slider); slider.width = 300; slider.snapInterval = 10; slider.tickInterval = 10; slider.maximum = snowflakes; slider.value = snowflakes; slider.move(50, 20); slider.addEventListener(SliderEvent.CHANGE, changeSlider); function changeSlider(event:SliderEvent):void { snowStorm.destroySnow(event.value, 1000); }

Результат:

Перетаскиваем бегунок слайдера и наблюдаем, как снегопад усиливается или ослабевает.

Скачать библиотеку классов SnowStorm и исходники к данному уроку можно по следующей ссылке - скачать (под Adobe Flash CS5).

Автор: admin

Дата добавления: 2012-12-26

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

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

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

Социальные закладки:
Комментарии:
К данной заметке комментариев пока нет. Ваш комментарий может стать первым.
Добавить комментарий:







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

Идиот-тест

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

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