Flash CS3 Parçacık Sistemi Animasyonunu Optimize Etme
Şimdi Flash varR, CS3 parçacık sistemi kar yağışı animasyon tam istediğimiz gibi çalışıyor, kar sahne program kodunu optimize etmenin zamanı geldi. Önceki eğitimlerde yazdığımız animasyonu test ettiyseniz, muhtemelen bir süre sonra animasyonun bilgisayarınızın kaynaklarını görevlendirdiğini fark etmişsinizdir. Bu derste, animasyonu daha verimli hale getirmenin birkaç yoluna bakacağız.

Kod şimdi olduğu gibi, animasyonun her yeni karesini dinlemek için bir Etkinlik Dinleyicisi kullanıyoruz. Her yeni karede, kar tanesi işlevi (olay işleyici) yeni bir kar tanesi oluşturur ve bu kar tanesi Flash görüntüleme listesine ekler. Ardından, bu kartanenin konumunu ve alfa özelliklerini rastgele ayarlamak için Math.random () kullanıyoruz. Her karede yine kar yağışı fonksiyonunu çağırmak için ikinci bir Olay Dinleyici kullanıyoruz. Kar yağışı işlevi, kar tanesinin sahnenin sağ veya alt kenarının ötesine geçip geçmediğini kontrol eder. Öyleyse, kar yağışı işlevini tekrarlayan ikinci Olay Dinleyicisini kaldırırız. Bu, bir kar tanesi düşmeyi durdururken diğer kar taneleri düşmeye devam eder. Kar tanesi fonksiyonunun tekrarı kar yağışı animasyonunu yaratır. Şimdi yapmamız gereken kodu daha verimli olacak şekilde değiştirmek.

Birinci Yöntem

İlk yöntem, programımıza yalnızca bir kod satırı eklenmesini gerektirir. Kar yağışı fonksiyonunun içinde, kar tanesinin sahnenin ötesine geçip geçmediğini kontrol eden ve eğer öyleyse, Olay Dinleyicisini kaldırıp kar tanesinin düşmesini engelleyen bir koşullu ifademiz zaten var.
Kar tanesi hareket etmeyi durduruyor ancak sahnenin altında hala görülebilir. Hala görülebildiği ve hala görüntüleme listesinde olduğu için Flash hala bu kar tanesi üzerinde kaynak harcıyor. Kar tanesi ekran listesinden çıkarılırsa, kaynaklar serbest bırakılır ve animasyon daha verimli olur. Görüntüleme listesinde artık ihtiyaç duymadığımız kar taneleri kaldırmak için koşullu ifadeye removeChild kodu ekleyebiliriz.

eğer (_Snowflake.y> 370 || _Snowflake.x> 550)
{
stage.removeEventListener (Event.ENTER_FRAME, kar yağışı);
removeChild (_Snowflake);
}
Başka
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }


Filminizi test ettiğinizde, kar taneleri sahnenin sağ veya alt kenarına ulaştıkça kaybolur ve animasyon daha verimlidir.

Sonraki →

Telif Hakkı 2018 Adobe Systems Incorporated. Tüm hakları Saklıdır. Adobe ürün ekran görüntüleri, Adobe Systems Incorporated'ın izniyle kullanılmıştır. Adobe, Photoshop, Photoshop Albümü, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Köprü, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Havai Fişek, Contribute, Captivate, Flash Catalyst ve Flash Paper , Amerika Birleşik Devletleri ve / veya diğer ülkelerde Adobe Systems Incorporated'in [a] tescilli ticari markaları veya ticari markalarıdır.