Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Сніг, зроблений за допомогою action script, зовсім не такий, як справжній. Він теплий, ніжний і зовсім не прогнозується синоптиками :)

Зробити власний програмний сніг дуже просто.

Малюємо прямокутник шириною трохи більше ніж ширина робочої області (по висоті довільний) і обертаємо його в кліп marker. Надаємо йому Instancename c_begin.

Маємо його над робочою областю. Дублюємо цей кліп і йому присвоюємо ім'я c_end. Його розміщуємо внизу, під робочою областю. Виділяємо ці два кліпи і обертаємо ще в один кліп container.

Малюємо нашу сніжинку. У нашому випадку це грудочку снігу, намальований за допомогою OvalTool з радіальної заливкою. Обертаємо її в кліп part, зазначивши галочкою ExportforActionScript і призначивши клас PartClass:

Прибираємо part з робочою області.

Переходимо всередину кліпу container і на новому шарі в першому кадрі пишемо код:

Якщо зараз трохи розсунути краю флешки так, щоб було видно маркери то побачимо процес формування і знищення сніжинок

Замінимо грудочки на сніжинки з новорічного клипарта.

Усередині символу part видаляємо наш грудочку і розміщуємо по кадрам сніжинки. Шаром вище пишемо рядок коду, яка відповідає за випадковий вибір сніжинки:

gotoAndStop # 40; # 40; int # 41; # 40; Math. random # 40; # 41; * TotalFrames + 1 # 41; # 41; ;

Ось так виглядає таймлайн:

Програмний сніг (as3), флеш-анімація і дизайн

Щоб зробити взагалі круто, можна змусити сніжинки обертатися. В основній код в Update дописуємо:

clip. r = Math. random # 40; # 41; * 10 - 5;

в ClipUpdate дописуємо:

clip. rotation + = clip. r;

Отримуємо ось таку красу:

Можна ще погратися з 3D поворотом і, дописавши в ClipUpdate такі два рядки:

отримаємо щось таке:

Ще варто відзначити, що кліп container можна крутити (в тому числі і в 3D), змінювати йому розмір і т. Д. При цьому виходять гарні, неповторні ефекти.

P.s. Додам від себе трошки снігових картинок: зимові історії від Французької ілюстратора і аніматора Pascal Campion.

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Програмний сніг (as3), флеш-анімація і дизайн

Все набагато складніше.
У доках до MovieClip написано наступне:

public dynamic class MovieClip

Тут ключове слово dynamic - воно означає що ми можемо додавати довільні властивості об'єкта, компілятор буде лаятися на це, а в момент виконання програми нам за це нічого не буде (Не буде ексепшінов)
Якщо в описі класу немає цього слова, то компілятор нам не дасть скомпілювати даний код. Якщо ж ми "Хакамі" (myClassInstance [ "myUnknownProperty"] = 1) спробуємо звернеться до такого властивості в момент виконання програми, то зловимо ексепшін.

Наприклад Sprite описаний як public class Sprite. І з ним такі трюки не пройдуть.