air

Bu bölümde temel pencere işlemlerini göreceğiz. Bildiğiniz gibi çoğu işletim sistemi pencere mantığına dayalı çalışır. Birden fazla işlemler ayrı ayrı pencereler halinde işlenir. Aynı zamanda bir uygulama içerisinde de birden çok pencere işlenebilir. Örneğin çoğu programda yardım bölümü vardır. Bu yardım bölümleri genellikle harici bir pencerede açılır. Biz de hazırlayacağımız uygulamada çok defa harici bir pencereye ihtiyaç duyabiliriz. Flash veya Flex bileşenlerini kullanmadan kendimiz bir pencere bileşeni hazırlamak isteyebiliriz.

Pencere işlemleri uygulamalar açısından çok önemlidir, üstelik çok da kullanılır. Adobe air ile hazırladığımız projemizde harici pencereleri kullanabiliriz. Bu pencerenin tipini belirleyebilir, özelliklerini ayarlayabilir, pencereye veri gönderip pencereden veri alabiliriz. Tüm bu pencere işlemlerini flash.display paketine ait bazı pencere sınıflarıyla yapacağız. Şimdi detaya inmeden küçük bir örnek yapalım.

import flash.text.TextField;
import flash.display.NativeWindow;
import flash.display.NativeWindowInitOptions;
import flash.events.MouseEvent;
import flash.display.Sprite;

var yazi1:TextField = new TextField();
yazi1.text = "Yeni bir pencere aç...";
yazi1.width = stage.stageWidth;
yazi1.height = 30;
yazi1.background = true;
yazi1.backgroundColor = 0x0099FF;

var yazi2:TextField = new TextField();
yazi2.text = "Yeni bir pencere açtınız!...";
yazi2.width = 300;
yazi2.height = 30;
yazi2.background = true;
yazi2.backgroundColor = 0x0099FF;

var yazi3:TextField = new TextField();
yazi3.text = "Kapat";
yazi3.width = yazi2.width;
yazi3.height = 30;
yazi3.background = true;
yazi3.backgroundColor = 0xFF0000;
yazi3.y = yazi2.y + yazi2.height;

stage.addChild(yazi1);

var penSecenek:NativeWindowInitOptions = new NativeWindowInitOptions();
penSecenek.type = NativeWindowType.UTILITY;
var pen:NativeWindow = new NativeWindow(penSecenek);
pen.width = 300;
pen.height = 200;
pen.stage.align = StageAlign.TOP_LEFT;
pen.stage.scaleMode = StageScaleMode.NO_SCALE;

yazi1.addEventListener(MouseEvent.CLICK, yazi1F);

function yazi1F(e:MouseEvent)
{
	pen.activate();
}
pen.stage.addChild(yazi2);
pen.stage.addChild(yazi3);

yazi3.addEventListener(MouseEvent.CLICK,yazi2F);
function yazi2F(e:MouseEvent)
{
	pen.close();
}

Bu örneğimizde görüleceği gibi yazi1 isimli TextField nesnesine tıklandığında yeni bir pencere açılıyor. Açılan bu pencerede yazi3 TextField nesnesine tıklandığında kapatılıyor. Kodların bu denli kalabalık olması işlemlerin zor veya karmaşık olduğunu göstermiyor. Burada asıl işlem yeni bir pencere seçeneğinin ve bu pencere işlemlerinin geçerli olduğu bir pencere oluşturulmasıdır.

var penSecenek:NativeWindowInitOptions = new NativeWindowInitOptions();var pen:NativeWindow = new NativeWindow(penSecenek);

Bir Yorum Yazın