Сніг, зроблений за допомогою 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; ;
Ось так виглядає таймлайн:
Щоб зробити взагалі круто, можна змусити сніжинки обертатися. В основній код в Update дописуємо:
clip. r = Math. random # 40; # 41; * 10 - 5;
в ClipUpdate дописуємо:
clip. rotation + = clip. r;
Отримуємо ось таку красу:
Можна ще погратися з 3D поворотом і, дописавши в ClipUpdate такі два рядки:
отримаємо щось таке:
Ще варто відзначити, що кліп container можна крутити (в тому числі і в 3D), змінювати йому розмір і т. Д. При цьому виходять гарні, неповторні ефекти.
P.s. Додам від себе трошки снігових картинок: зимові історії від Французької ілюстратора і аніматора Pascal Campion.
Все набагато складніше.
У доках до MovieClip написано наступне:
public dynamic class MovieClip
Тут ключове слово dynamic - воно означає що ми можемо додавати довільні властивості об'єкта, компілятор буде лаятися на це, а в момент виконання програми нам за це нічого не буде (Не буде ексепшінов)
Якщо в описі класу немає цього слова, то компілятор нам не дасть скомпілювати даний код. Якщо ж ми "Хакамі" (myClassInstance [ "myUnknownProperty"] = 1) спробуємо звернеться до такого властивості в момент виконання програми, то зловимо ексепшін.
Наприклад Sprite описаний як public class Sprite. І з ним такі трюки не пройдуть.