Görüntüleme nesnelerini önbelleğe almaFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü İster bir uygulama, isterse karmaşık komut dosyaları yazılmış animasyonlar oluşturun, Flash uygulamasındaki tasarımlarınızın boyutu arttıkça, performans ve en iyileştirmeyi göz önünde bulundurmanız gerekir. Statik kalan bir içeriğiniz (örn. dikdörtgen bir Shape örneği) olduğunda, Flash Player ve AIR uygulaması içeriği en iyileştirmez. Bu nedenle, dikdörtgenin konumunu değiştirdiğinizde, Flash Player veya AIR uygulaması Shape örneğinin tamamını yeniden çizer. SWF dosyanızın performansını artırmak için, belirtilen görüntüleme nesnelerini önbelleğe alabilirsiniz. Görüntüleme nesnesi, bir yüzeydir, temel olarak örneğin vektör verilerinin bir bitmap sürümü olup SWF dosyanızın akışı sırasında çok da değiştirmek istemediğiniz verilerdir. Bu nedenle, önbelleğe almanın etkinleştirilmiş olduğu örnekler, SWF dosyası oynatıldıkça sürekli olarak yeniden çizilmez, bu da SWF dosyasının hızlı şekilde oluşturulmasını sağlar. Not: Vektör verilerini güncelleyebilirsiniz, bu sürede yüzey yeniden oluşturulur. Dolayısıyla, yüzeyde önbelleğe alınan vektör verilerinin SWF dosyasının tamamında aynı kalması gerekmez.
Görüntüleme nesnesinin cacheAsBitmap özelliği true değerine ayarlandığında, görüntüleme nesnesinin kendi bitmap temsilini önbelleğe alması sağlanır. Flash Player veya AIR uygulaması, örnek için bir yüzey nesnesi oluşturur ve bu nesne vektör verisi yerine önbelleğe alınmış bir bitmap'tir. Görüntüleme nesnesinin sınırlarını değiştirirseniz, yüzey yeniden boyutlandırılmaz, yeniden oluşturulur. Yüzeyler diğer yüzeylerin içinde yuvalanabilir. Alt yüzey, bitmap'ini üst yüzeyinin üzerine kopyalar. Daha fazla bilgi için, bkz. Bitmap önbelleğe almayı etkinleştirme. DisplayObject sınıfının opaqueBackground özelliği ile scrollRect özelliği, cacheAsBitmap özelliği kullanılarak bitmap'in önbelleğe alınmasıyla ilgilidir. Bu üç özellik birbirinden bağımsız olsa da, opaqueBackground ve scrollRect özellikleri, bir nesne önbelleğe alındığında en iyi şekilde çalışır—yalnızca cacheAsBitmap öğesini true değerine ayarladığınızda opaqueBackground ve scrollRect özellikleri için performans avantajı elde edersiniz. Görüntüleme nesnesi içeriğini kaydırma hakkında daha fazla bilgi için, bkz. Görüntüleme nesnelerini yatay ve dikey kaydırma. Opak bir arka plan ayarlama hakkında daha fazla bilgi almak için, bkz. Opak bir arka plan rengi ayarlama. cacheAsBitmap özelliğini true değerine ayarlamanızı gerektiren, alfa kanalı maskeleme hakkında bilgi almak için, bkz. Görüntüleme nesnelerini maskeleme. Önbelleğe alma ne zaman etkinleştirilmeliGörüntüleme nesnesi için önbelleğe alma etkinleştirildiğinde bir yüzey oluşturulur ve bu da karmaşık vektör animasyonlarının daha hızlı oluşturulmasına yardımcı olma gibi birçok avantaj sağlar. Önbelleği etkinleştirmek isteyeceğiniz birçok senaryo vardır. SWF dosyalarınızın performansını artırmak için önbelleğe almayı her zaman etkinleştirmek isteyeceğiniz düşünülebilir ancak önbelleğe almanın etkinleştirilmesinin performansı artırmadığı, hatta düşürdüğü durumlar da vardır. Bu bölümde, önbelleğe almanın kullanılması gereken senaryolar açıklanmakta ve normal görüntüleme nesnelerinin ne zaman kullanılması gerektiği anlatılmaktadır. Önbelleğe alınan verilerin genel performansı, örneğinizin vektör verilerinin ne kadar karmaşık olduğuna, verinin ne kadarını değiştirmek istediğinize ve opaqueBackground özelliğini ayarlayıp ayarlamamanıza bağlıdır. Küçük bölgeleri değiştiriyorsanız, yüzey kullanma ile vektör verilerini kullanma arasındaki fark göz ardı edilebilir. Uygulamayı konuşlandırmadan önce çalışmanızla iki senaryoyu da test etmek isteyebilirsiniz. Bitmap önbelleğe alma ne zaman kullanılmalıAşağıda, bitmap önbelleğe almayı etkinleştirdiğinizde önemli avantajlar elde edebileceğiniz tipik senaryolara yer verilmiştir.
Bu senaryoların tümünde bitmap önbelleğe almanın etkinleştirilmesi, vektör grafiklerini en iyileştirerek uygulamanın yanıt verme hızını artırıp etkileşimini geliştirir. Ayrıca bir görüntüleme nesnesine her filtre uyguladığınızda, cacheAsBitmap öğesini açıkça false değerine ayarlasanız da bu öğe otomatik olarak true değerine ayarlanır. Görüntüleme nesnesinden tüm filtreleri temizlerseniz, cacheAsBitmap özelliği en son ayarlandığı değere döndürülür. Bitmap önbelleğe almayı kullanmaktan ne zaman kaçınmalıBu özelliğin yanlış koşullarda kullanılması SWF dosyanızın performansını olumsuz yönde etkileyecektir. Bitmap önbelleğe almayı kullanırken şu yönergeleri unutmayın:
Bitmap önbelleğe almayı etkinleştirmeBir görüntüleme nesnesi için bitmap önbelleğe almayı etkinleştirmek üzere, nesnenin cacheAsBitmap özelliğini true değerine ayarlarsınız: mySprite.cacheAsBitmap = true; cacheAsBitmap özelliğini true değerine ayarladıktan sonra, görüntüleme nesnesinin otomatik olarak pikselleri koordinatların tamamına birleştirdiğini fark edebilirsiniz. SWF dosyasını test ettiğinizde, karmaşık bir vektör görüntüsünde gerçekleştirilen herhangi bir animasyonun daha hızlı şekilde oluşturulduğunu görmeniz gerekir. cacheAsBitmap öğesi true ayarına getirilse de, aşağıdakilerden biri veya birkaçı oluştuğunda bir yüzey (önbelleğe alınmış bitmap) oluşturulmaz:
Ön bellekteki bitmap dönüştürme matrisleriTaşınabilir cihazlar için AIR uygulamalarında, cacheAsBitmap özelliğini her ayarladığınızda cacheAsBitmapMatrix özelliğini de ayarlamanız gerekir. Bu özelliği ayarlamanız daha geniş bir aralıktaki dönüştürmeleri, yeniden oluşturmayı tetiklemeden, görüntü nesnesine uygulayabilmenizi sağlar. mySprite.cacheAsBitmap = true; mySprite.cacheAsBitmapMatrix = new Matrix(); Bu matrix özelliğini ayarladığınızda aşağıdaki ek dönüştürmeleri de görüntü nesnesini yeniden ön belleğe almadan, nesneye uygulayabilirsiniz.
Bu dönüştürmeler ön belleğe alınan bitmap'e doğrudan uygulanır. |
|