|
Çizim API`lerini Kullanmak (2)
<--- 1.Bölüm...........3.Bölüm
--->
2- DOLGU OLUŞTURMA
YÖNTEMLERİ:
Çizgi oluşturma metotları ile fareyi sanal bir kalem olarak kullanıp
çizgi oluşturabilir veya kare,üçgen gibi geometrik şekiller oluşturabilirsiniz.
Bu şekiller dolgu içermediklerinden sahnede yerleştirildikleri
alanda arkaplanda ne varsa gözlenecektir. Dolgu içeren şekiller
oluşturmanız için ek kodlara ihtiyaç vardır. Bunlar beginFill()
, beginGradientFill() ve endFill() komutlarıdır.
kodlara geçmeden evvel dolgu türlerinden bahsetmekte yarar var.
Flash ile 2 tür dolgu oluşturulur.
a- Solid Dolgular: Tek renk
kullanılan dolgulardır. Bu tür bir çalışmada dolguya katabileceğiniz
tek özellik saydamlık oranını değiştirmekten ibaret olacaktır.
b- Gradient Dolgular: Geçişken,kademeli
veya dereceli dolgular da denilir. Bu tür dolgularda 2 veya üzerinde
renk kullanabilirsiniz. 2 tür gradient dolgu vardır
-Linear
Dolgu: Doğrusal geçişli dolgulardır.
-Gradient
Dolgu: Dairesel geçişli dolgulardır.

Kodlarla renkler arası geçiş tayf eni, dolgunun
yatay düzlemle yaptığı açı ve saydamlık değerleri ayarlanabilir.
Şimdi kodlara gözatabiliriz.
beginFill(renk,saydamlık): Solid
dolgular için kullanılan bir komuttur. Renk alanına kullanılacak
rengin hexadecimal kodu, saydamlık alanına 0 ile 100 arasında
değişen bir alfa değeri yazılır.
beginFill(0xFF00FF,100); şeklinde. Saydamlık
değeri opsiyoneldir. Bir alfa değeri ile renkte saydamlık oluşturmak
istemiyorsanız bu parametreyi kullanmayabilirsiniz. beginFill(0xFF00FF);
gibi. Bu durumda flash alfa değerini 100 olarak kabul eder.
endFill(): Bir dolgunun tamamlandığını
gösteren bir komuttur.bu komutu kullanmadan dolgu oluşturamazsınız.Hem
beginFill hem de beginGradientFill komutundan sonra kod grubunu
endFill() ile kapatmanız şarttır.
beginGradientFill("dolgu_tipi","renkler","saydamlıklar","oranlar","matrix")
: Geçişken dolgular oluşturmaya yarayan bu kod grubunun
anlaşılması diğerlerine göre daha zordur. Çünkü mevcut parametrelerin
de alt parametreleri mevcuttur. Parantez içindeki koda ait parametreleri
sıra ile inceleyelim.
dolgu_tipi: Linear
veya radial olarak 2 seçeneğiniz vardır. Bu dolguların
görüntüsüne ait grafikler önceden sunulmuştu.
renkler: Bu
alanda dolguda kullanılacak renklerin hexadecimal değeri yazılır.
Birden fazla renk kullanılacağından bu kodları önce bir diziye
almak ve bu dizi elemanları olarak kod içinde kullanmak çok daha
uygun olacaktır.örneğin çalışmada 4 renk kullanılacaksa önce bir
dizi oluşturulur ve değerler bu diziye eleman olarak atanır:
renkler_array=[0xFF0000,0x00FFFF,0x620086,0x0000FF];
şeklinde. Bu dizinin nasıl kullanılacağı daha sonra tanımlanacaktır.
saydamlıklar: Dolguda
kullanılacak renklere uygulanacak alfa değerlerini içerir. Bunu
da bir diziye atayalım:
saydam_array=[100,90,100,80];
oranlar:
Renklerin biribirine geçişinin ornaını ayarlar. 0 ile 255 arası
bir değer verilir. Yine bir dizi oluşturalım:
oran_array=[255,255,125,125];
matrix: En
karışık parametre budur. 6 alt grup içerir.
matrix Type:Bu
alana daima "box" stringi yazılmalıdır.
x:
Gradient renklerin yatay pozisyondaki koorninatıdır.
y: Gradient dolgunun
dikey pozisyondaki koordinatıdır.
w: Dolgunun genişliği
h: Dolgunun yüksekliği
r: Dolguya uygulanacak
dönüş açısı.Bu değer radyan cinsinden verilir.
Bu değer kafanızı karıştırıyorsa ve derece olarak kullanmak isterseniz
bir dönüşüm dizini oluşturmalısınız.Şu dizini kullanabilirsiniz:
rotasyon=(istenilen_açı/180)*Math.PI;
Tüm bu açıklamalardan sonra bir gradient dolgu
için şöyle bir dizin yazılır:
rotasyon=(45/180)*Math.PI;
matrixOzellikleri = {matrixType:"box", x:-10 , y:-30
, h:150 , w:150 , r: rotasyon}
Burada matrixType herzaman yazılması gerektiği
gibi box olarak belirlenmiştir. x değeri -10 alındığından dolgunun
yatay konumunun şeklin en solunda 10 piksel daha dış kısmında
, y değeri -30 olarak atnadığından dolgunun şeklin dikey konumunun
30 piksel üstünden oluşmasını sağlıyoruz.h ve w değerleri 150
piksel olduğundan dolgunun yüksekliği ve eni bu değere eşitlenir.Son
olarak r değeri olarak 45 derece ataması yapılıyor.Burada kullanılan
rotasyon fonksiyonu önceden anlatıldığı gibi bu dizinin üstünde
oluşturulmalıdır.Dolgu 45 derece sağa rotasyon yapacaktır. Basit
bir örnek verelim:
Flash programını açın ve 1.kareye şu komutu vererek
filmi test edin:
_root.createEmptyMovieClip(
"gradient", 1 );
with ( _root.gradient ) {
renkler = [ 0xFF0000, 0x0000FF];
alfalar = [ 100, 100];
oranlar = [ 0, 255];
rotasyon=(45/180)*Math.PI;
matrix = { matrixType:"box", x:10, y:10, w:70, h:70,
r:rotasyon };
beginGradientFill( "linear", renkler, alfalar, oranlar,
matrix );
moveTo(10,10);
lineTo(10,100);
lineTo(100,100);
lineTo(100,10);
lineTo(10,10);
endFill();
}
Test sonucunu yukarıdaki bilgilerle beraber değerlendiriseniz
bu karmaşık kodu çok daha iyi yorumlayabilirsiniz. Artık bir sonraki
sayfamızda örneklere geçebiliriz.
<--- 1.Bölüm...........3.Bölüm
--->
|