Делаем эффект анимацию снегопада (падающего снега)
В этом уроке вы узнаете, как сделать эффект анимацию снегопада (падающего снега) с помощью небольшого ActionScript.
Для этого урока я использовал программу Adobe Flash CS4.
1 Выбираем новый документ "ActionScript 3.0".
2 Создаем новый документ с нужными параметрами.
3 Импортируем на сцену программы изображение, которое будет нашим фоном и выставляем его по центру.
4 Выбираем инструмент "Овал (О)", отменяем его обводку, устанавливаем белый цвет заливки и рисуем им небольшой круг за пределами сцены.
5 Выбираем наш круг, нажимаем кнопку "F8", чтобы преобразовать его в фрагмент ролика, называем его "SnowFlake" и ставим все необходимые галочки.
6 Создаем новывй слой и называем его "ActionScript".
7 Выбираем первый кадр слоя (ActionScript), нажимаем кнопку "F9", чтобы открыть окно "Action Script" и вводим туда следующий код:
var snowflakes:Array = new Array(); var snowflakeProps:Dictionary= new Dictionary(true); var max_snowsize:Number = .04; // пиксели var snowflakesCnt:Number = 150; var oheight:Number; var owidth:Number; init(); function init():void { owidth = width; oheight = height; // количество for (var i:int=0; i<snowflakesCnt; i++) { var t:MovieClip = new SnowFlake();// t.name = "snowflake"+i; t.alpha = .2+Math.random()*.6; t.x = -(owidth/2)+Math.random()*(1.5*owidth); t.y = -(oheight/2)+Math.random()*(1.5*oheight); t.scaleX = t.scaleY=.5+Math.random()*(max_snowsize*10); var o:Object = new Object(); o.k = 1+Math.random()*2; o.wind = -1.5+Math.random()*(1.4*3); snowflakeProps[t] = o; addChild(t); snowflakes.push(t); } addEventListener(Event.ENTER_FRAME, snowFlakeMover); } function shakeUp():void{ for (var i:int=0; i<snowflakes.length; i++) { var t:MovieClip = snowflakes[i] as MovieClip; t.x = -(owidth/2)+Math.random()*(1.5*owidth); t.y = -(oheight/2)+Math.random()*(1.5*oheight); } } function snowFlakeMover(evt:Event):void { var dO:MovieClip; var o :Object; if(visible && parent.visible){ for (var i:int = 0; i < snowflakes.length; i++) { dO = snowflakes[i] as MovieClip; o = snowflakeProps[dO]; dO.y += o.k; dO.x += o.wind; if (dO.y>oheight+10) { dO.y = -20; } if (dO.x>owidth+20) { dO.x = -(owidth/2)+Math.random()*(1.5*owidth); dO.y = -20; } else if (dO.x<-20) { dO.x= -(owidth/2)+Math.random()*(1.5*owidth); dO.y = -20; } } } }
Идем в верхнее меню, в пункт "Управление-->Тестировать ролик ", чтоб посмотреть результат проделанной работы.
Скачать Исходник "Бесконечный снег в ролике"
Похожие уроки:
Эффект \ анимация падающих листьев (Листопад)