Понадобилось реализовать эффект конфетти на ActionScript 3.0. Естественно, решил поискать готовые решения. И не ошибся :-) Набрёл на маленькую заметку с говорящим названием Confetti Class for ActionScript 3.0. Автор заметки, Anthony Hessler, выложил готовое решение эффекта конфетти. И, согласитесь, решение качественное:
Красиво! А, самое главное, очень удобно в использовании.
Итак, рассмотрим детальнее...
Чтобы воспользоваться приведённым эффектом в флеш-проекте, нам понадобиться:
1. классы, написанные Anthony Hessler-ом;
2. TimelineMax от "зелёного носка";
3. несколько строчек кода.
Код следующий...
Код ActionScript 3.0:
/*
импортируем класс
*/
import com.hd.confetti.Confetti;
/*
создаём экземпляр класса с настройками по-умолчанию
*/
var confetti:Confetti = new Confetti();
/*
добавляем в список отображения
*/
addChild(confetti);
/*
запускаем воспроизведение эффекта
*/
confetti.start();
Если работу эффекта надо остановить, то используем метод stop: сгенерированные ранее частицы упадут, но генерация новых частиц происходить не будет. Метод clear удалит все частицы, сгенерированные до запуска этого метода. Метод remove просто всё удалит. Как видите, очень функциональный набор методов для управления эффектом.
Внешний вид эффекта, естественно, тоже настраивается. При создании экземпляра класса можно указать следующие настройки:
import com.hd.confetti.Confetti;
var confetti:Confetti = new Confetti({width:550, height:400, symbol:StarMovieClip, colors:[0xff0000, 0x00ff00, 0x0000ff], maxPieces:100});
addChild(confetti);
confetti.start();
где
- width:550 - ширина области эффекта;
- height:400 - высота области эффекта;
- symbol:StarMovieClip - мувиклип, который будет использоваться как основа для частиц;
- colors:[0xff0000, 0x00ff00, 0x0000ff] - массив цветов, в которые случайном образом будут окрашиваться частицы;
- maxPieces:100 - максимальное количество частиц.
Результат приведённого выше кода будет следующим:
Согласитесь, прикольная штука :-)
На всякий случай, выкладываю исходники - скачать исходники. Это на тот случай, если блог автора эффекта окажется недоступным.