Продолжим рассмотрение, начатое несколькими постами ранее, замечательной библиотеки классов на ActionScript 3.0, которая создаёт потрясающий по своей реалистичности эффект падающего снега. В прошлой части мы научились добавлять сам эффект в наши флеш-проекты. Сегодня мы познакомимся с тем, как настраивать эффект под свои надобности и художественный вкус.
Настройка параметров эффекта падающего снега в данной библиотеке осуществляется через изменение значений у свойств класса SnowDisplay.
Первым делом, нам надо знать, как изменить интенсивность эффекта, то есть количество падающих снежинок (кому-то нужен снегопад, а кому-то - редкие падающие снежинки). Для этого нам надо изменить значения двух свойств:
- waitCount - количество кадров перед появлением новой партии снежинок (по умолчанию стоит один кадр);
- particlesToAddEachFrame - количество одновременно добавляемых снежинок (по умолчанию за один кадр добавляется две снежинки).
Например, добавим в наш проект эффект слабенького-слабенького снегопада. Для этого через каждые 10 кадров будем добавлять всего одну снежинку.
Код ActionScript 3.0:
import com.flashandmath.dg.display.SnowDisplay;
var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight);
snow.waitCount = 10;
snow.particlesToAddEachFrame = 1;
addChild(snow);
Впрочем, лучше один раз увидить, чем десять раз прочитать. Смотрим...
Чего нет на приведённой выше демке? Правильно, там нет ветра. Как же добавить ветер в наш снегопад? Для этого у класса SnowDisplay есть два специальных свойства:
- windX - "ветер" по оси x (по умолчанию имеет значение 1);
- windY - "ветер" по оси y (по умолчанию стоит 1).
Оба свойства могут принимать не только положительные, но и отрицательные значения, что, как вы могли догадаться, влияет на направление ветра.
Давайте, для примера, создадим снегопад при сильном ветре...
Код ActionScript 3.0:
import com.flashandmath.dg.display.SnowDisplay;
var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight);
snow.windX = 10;
snow.windY = 2;
addChild(snow);
Результат:
Если же нам надо, чтобы ветер дул в другую сторону, то меняем значение windX на отрицательное.
Код ActionScript 3.0:
import com.flashandmath.dg.display.SnowDisplay;
var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight);
snow.windX = -10;
snow.windY = 2;
addChild(snow);
Естественно, мы имеем возможность влиять и на размеры снежинок. Для этого в нашем распоряжении есть следующие свойства:
- _maxParticleSize - максимальный размер снежинки (1,5 по умолчанию);
- minParticleSize - минимальный размер снежинки (1,5 по умолчанию);
- minScale - минимально возможное масштабирование снежинки (0,5 по умолчанию).
Но, честно говоря, я бы не советовал вам изменять эти настройки: смотреться это будет не очень красиво, а вот ресурсы "кушать" будет непомерно :-(
За глубину эффекта падающего снега отвечают следующие свойства:
- _fLen - фокусное расстояние (по умолчанию стоит 600);
- _zBack - положение по оси z самой отдалённой от зрителя снежинки (по умолчанию стоит 0);
- _zRange - диапазон, в рамках которого изменяется глубина снежинок, то есть её положение по оси z (по умолчанию стоит 500).
Играясь с глубинами, можно добиться разнообразных эффектов. Например, можно создать эффект идущего вдалеке сильного снегопада.
Код ActionScript 3.0:
import com.flashandmath.dg.display.SnowDisplay;
var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight/2);
snow._zBack = 1000;
snow._zRange = 1000;
addChild(snow);
Результат:
Должен признаться, что я осветил далеко не все настройки данной библиотеки классов. Впрочем, описанных настроек вполне достаточно для создания красивых эффектов с падающим снегом и не только (всё зависит только от вашей фантазии).
Исходник под Adobe Flash CS5.5 и саму библиотеку классов скачать можно тут.