Ölçekleme sırasında deformasyonu denetleme

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

Normalde, bir görüntüleme nesnesi ölçeklendiğinde (örneğin, yatay olarak genişletildiğinde), ortaya çıkan deformasyon nesneye eşit şekilde yayılır, böylece her bölüm eşit miktarda genişletilir. Grafik ve tasarım öğeleri için büyük ihtimalle istediğiniz budur. Ancak bazen, görüntüleme nesnesinin hangi bölümlerinin genişleyip hangi bölümlerinin değişmeden kalacağını denetlemeyi tercih edebilirsiniz. Buna verilebilecek yaygın bir örnek, yuvarlak köşeli dikdörtgen şeklinde bir düğmedir. Normal ölçeklemede, düğmenin köşeleri genişler ve düğme yeniden boyutlandırıldıkça köşe yarıçapı değişir.

<Yuvarlak köşeli bir düğmede ölçekleme deformasyonu>

Ancak bu durumda, görünebilir bir deformasyon olmadan ölçeklemenin gerçekleşmesi için (ölçeklenmesi gereken (düz kenarlar ve orta kısım) ve ölçeklenmemesi gereken belirli alanları (köşeler) belirleyebilmek için), ölçekleme üzerinde denetim elde edilmesi istenir.

<Deformasyon olmadan ölçeklenmiş düğme>

Nesnelerin ölçeklenme şekli üzerinde denetim sahibi olduğunuz görüntüleme nesneleri oluşturmak için, 9 dilimli ölçeklemeyi (Ölçek 9) kullanabilirsiniz. 9 dilimli ölçeklemeyle, görüntüleme nesnesi dokuz ayrı dikdörtgene bölünür (tic-tac-toe panosunun ızgarası gibi 3/3 ızgara). Dikdörtgenlerin aynı boyutta olması gerekmez—ızgara çizgilerinin nereye yerleştirileceğini siz atarsınız. Görüntüleme nesnesi ölçeklendiğinde, dört köşe dikdörtgeninde (örn. düğmenin yuvarlak köşeleri) bulunan içerik genişletilmez veya sıkıştırılmaz. Üst orta ve alt orta dikdörtgenleri dikey olarak değil yatay olarak ölçeklenirken, sol orta ve sağ orta dikdörtgenleri yatay olarak değil dikey olarak ölçeklenir. Orta dikdörtgen hem yatay hem de dikey olarak ölçeklenir.

<9 dilimli ölçekleme ızgarası>

Bunu göz önünde bulundurarak, bir görüntüleme nesnesi oluşturuyorsanız ve belirli bir içeriğin asla ölçeklenmemesini istiyorsanız, 9 dilimli ölçekleme ızgarasının bölme çizgilerinin, köşe dikdörtgenlerinin birinde içerik sona erecek şekilde yerleştirildiğinden emin olmanız gerekir.

ActionScript'te, görüntüleme nesnesinin scale9Grid özelliği için bir değer ayarlandığında, nesne için 9 dilimli ölçekleme etkinleştirilir ve nesnenin Ölçek 9 ızgarasında dikdörtgenlerin boyutu tanımlanır. Aşağıdaki gibi, scale9Grid özelliğinin değeri olarak bir Rectangle sınıfı örneğini kullanırsınız:

myButton.scale9Grid = new Rectangle(32, 27, 71, 64);

Rectangle yapıcısının dört parametresi, x koordinatı, y koordinatı, genişlik ve yüksekliktir. Bu örnekte, dikdörtgenin sol üst köşesi, myButton adındaki görüntüleme nesnesinde x: 32, y: 27 noktasına yerleştirilir. Dikdörtgen 71 piksel genişlikte ve 64 piksel uzunluktadır (Böylece sağ kenarı görüntüleme nesnesindeki 103 x koordinatında ve alt kenarı da görüntüleme nesnesindeki 92 y koordinatındadır.)

<Ölçek-9 ızgarasının temel dikdörtgeni>

Rectangle örneğinin tanımladığı bölgede bulunan gerçek alan, Ölçek 9 ızgarasının orta dikdörtgenini temsil eder. Diğer dikdörtgenler, burada gösterildiği gibi, Rectangle örneğinin kenarları genişletilerek Flash Player ve AIR tarafından hesaplanır:

<Temel dikdörtgenden kaynaklanan tam Ölçek-9 ızgarası>

Bu durumda, düğme yukarı veya aşağı ölçeklendikçe, yuvarlak köşeler genişletilmez veya daraltılmaz ancak diğer alanlar ölçeklemeyi barındıracak şekilde ayarlanır.

<Düğme her iki yönde ölçeklendikçe, 9 dilimli ölçeklemenin etkileri>
A.
myButton.width = 131;myButton.height = 106;

B.
myButton.width = 73;myButton.height = 69;

C.
myButton.width = 54;myButton.height = 141;