Връщаме се на нашето работно поле и местим снежинката извън него (9). Може и да я изтриете. Сега трябва да добавим и АS-та. Правим нов слой (Layer (10) ). Трябва да отворим полето Actions и пишем следния код :
//генерира 100 снежинки
amount = 100;
//в две променливи присвояваме дължината и височината на Сцената
//с цел кода да е валиден и в други флашки
mWidth = Stage.width;
mHeight = Stage.height;
//цикъл for от 0 до броя на снежиниките
for (var i = 0; i<amount; i++) {
//в нова променлива записваме създавнето на снежинката
//чрез тази променлива ще можем да манипулираме всичко снежинки
//"flake" е името в Linkage, а НЕ Instance Name
thisFlake = this.attachMovie("flake", "flake"+i, i);
//с with ще опишем позицията, големината и прозрачността на снежинката
//тъй като сме във for ще се генерират нови стойности за всяка снежинка
with (thisFlake) {
_x = Math.random()*mWidth;
_y = Math.random()*mHeight;
_xscale = _yscale=_alpha=40+Math.random()*60;
}
//от тук се оказва, че всяка снежинка ще се движи с различна скорост
thisFlake.yspeed = Math.random()*2+.1;
thisFlake.increment = -0.025+Math.random()*0.05;
//дори да има stop(); с този onEnterFrame ще можем да добавим една динамичност на движенията
//на всяка снежинка
thisFlake.onEnterFrame = function() {
this.radians += this.increment;
this._y += this.yspeed;
this._x += Math.sin(this.radians);
if (this._y>=mHeight) {
this._y = -10;
this._x = -10+Math.random()*mWidth;
}
if (this._x>=mWidth || this._x<=0) {
this._y = -10;
this._x = -10+Math.random()*mWidth;
}
};
}
Готови сме. За да видим резултата трябва да комбинираме Ctrl + Enter.
Можете да използвате техниката и да я внедрите в други анимаций или картички например. Ето демо на резултата.
10х на accorp
Урока подготви : bubust за : uroci.net
За връзка bubust@data.bg
Урокът може да се разпространява след разрешение от автора.