Adobe Air ve Pencereler
Herkese merhaba. Yine güzel bir yazı ile karşınızdayım. Adobe Air bildiğimiz gibi başlı başına bir framework. Bu da demektir ki birçok işlemi kendi içerisinde çözebiliyor. Tabi tüm bu konuların içerisinde önemli bir maddede pencereler. Kullanıcı ile etkileşime girdiğimiz pencereler üzerinde birçok işlemi yapabiliriz.
Bu derste bir Air çalışması üzerinden harici pencereler üreteceğiz. Alert gibi işlemler yapmak istiyorsak pencere konusuna hakim olmamız gerekiyor. Zaten birçok fonksiyon oldukça basit. Bazı ayarları yaptıktan sonra pencereyi atkifleştiriyoruz. Tek derste bitiriceğiz umarım…
Şimdi bir pencere oluşturacağız. Tabi ki öncelikle ayarlarını ve pencereyi tanımlamamız gerekiyor;
var ayarlar:NativeWindowInitOptions = new NativeWindowInitOptions();
ayarlar.systemChrome = NativeWindowSystemChrome.STANDARD;
ayarlar.type = NativeWindowType.UTILITY
ayarlar.transparent = false;
ayarlar.resizable = false;
ayarlar.maximizable = false;
Burada pencereyi oluşturmadan önce bir takım ayarlar tanımladık. Bu ayarlar bunlar ile sınırlı. x,y kordinatları, boyut gibi ölçüler pencere üzerinde yapılıyor. Ayarlarımızda öncelikle ayarlar isimli bir pencere ayarı tanımlıyoruz. Sonrasında systemChrome yani pencerenin görünüm ayarlarına Standard diyoruz. Ardından type yeni tür, trasparan mı değil mi, boyutlanabilsin mi, max hale getirilebilsin mi gibi false veya true cevaplı seçenekleri yerleştiriyoruz.
Haydi penceremizi oluşturalım;
var ayarlar:NativeWindowInitOptions = new NativeWindowInitOptions();
ayarlar.systemChrome = NativeWindowSystemChrome.STANDARD;
ayarlar.transparent = false;
var yeni_pencere:NativeWindow = new NativeWindow(ayarlar);
Gördüğünüz kodda ayarlarımızı tanımlıyoruz. Ayrıca birde NativeWindow yani pencere tanımlıyoruz. Ayarlarınıda ayarlar isimli ayar ile birleştiriyoruz.
Fakat bu halde pencere oluşmayacaktır. Pencereyi oluşturup, ekranda göstermek için aktif etmelisiniz;
//pencere kodları
yeni_pencere.activate();
Derseniz pencere görünecektir. Peki bu halde değilde kendi ayarlarınız ile göstermek istiyorsanız ne yapacaksınız. İşte o zaman;
yeni_pencere.title=”Oops!”;
yeni_pencere.width=200;
yeni_pencere.height=100;
yeni_pencere.x=stage.stageWidth/2;
yeni_pencere.y=stage.stageHeight/2;
İşte bu gibi fiziksel ayarlar pencerenin kendisine yapılıyor. Kodları açıklamayacağım çünkü hepsi belirgin şeyler. Bu ayarlar ile ufak bir alert ( uyarı ) penceresi açılabilir…
İstersek pencerenin ekrandaki görüntü sırası ile de oynayabilirsiniz;
yeni_pencere.alwaysInFront = true; //en üst
yeni_pencere.orderToFront() //öne getirir
yeni_pencere.orderInFrontOf() //belirli bir pencerenin önüne
yeni_pencere.orderToBack() //en arka
yeni_pencere.orderBehind() //belirli bir pencerenin arkasına
Buraya kadar hep pencerelerin görünümü ile oynadık. Fakat eğer ki kodlarımızı çalıştırırsanız bomboş olarak ekrana gelecektir. İçeri boş olan bir pencere de ne işe yarayabilir ki?
Tabi ki bunun da çözümü var. Mesela;
//pencere kodları
var txt:TextField = new TextField();
txt.text=”Oops! Hata yaptın!”;
yeni_pencere.stage.addChild(txt);
Dersek bir txt yaratılıp penceremizin içerisine yerleştirilecektir.
Şimdilik benden bu kadar. Diğer fonksiyonlar dinleyiciler ile alakalı fakat bir çoğu normal pencere kodlarıdır…
Herkese iyi günler, iyi çalışmalar…

21 Mart 2009 - 12:42
Merhaba..
çok açık, net faydalı bi ders olmuş.. bunun gibi derslerin devamınıda bekliyoruz.. Yeni açılan pencerenin simge durumuna küçültülmesi veya system tray ikon gibi.. Her yönden zevk veren çalışmalar olacaktır hem anlatması hem uygulaması
sizden öğrenmeyi sabırsızlıkla bekliyoruz (:
21 Mart 2009 - 16:30
Teşekkürler hocam. Çok yakında system tray konusunu işleyeceğim