AIR uygulamasında yerel pencerelerle çalışma için hızlı açıklamalar ve kod örnekleri için Adobe Geliştirici Bağlantısındaki hızlı başlamayla ilgili makalelere bakın.
AIR, Flash®, Flex™ ve HTML programlama tekniklerini kullanarak yerel işletim sistemi pencereleri oluşturmak için kullanımı kolay, platformlar arası bir pencere API'si sunar.
AIR'le uygulamanızın görünümünü geliştirmede büyük bir özgürlüğe sahip olursunuz. Oluşturduğunuz pencereler Mac'te çalışırken Apple stiliyle eşleşerek, Windows'ta çalışırken Microsoft uygulamalarına uyarak ve Linux'ta pencere yöneticisiyle uyum halinde çalışarak, platforma özgü bir kod satırına sahip olmadan standart bir masaüstü uygulaması gibi görünebilir. Veya uygulamanız nerede çalışırsa çalışsın kendi stilinizi oluşturmak için Flex çerçevesinin sağladığı skin desteği olan, genişletilebilir kromu kullanabilirsiniz. Masaüstüne karşı saydamlık ve alfa karışımı için tam desteğe sahip vektör ve bitmap resmi içeren kendi pencere kromunuzu bile oluşturabilirsiniz. Dikdörtgen pencerelerden sıkıldınız mı? Yuvarlak bir tane çizin.
AIR'deki Pencereler
AIR, pencerelerle çalışmak için üç ayrı API destekler:
-
ActionScript odaklı NativeWindow sınıfı, en düşük düzeyli pencere API'sini sağlar. NativeWindows sınıfını ActionScript ve Flash Professional uygulamalarında kullanın. Uygulamanızda kullanılan pencereleri özelleştirmek için NativeWindow sınıfını genişletmeyi düşünün.
-
HTML ortamında, tarayıcı tabanlı web uygulamasında olduğu gibi JavaScript Window sınıfını kullanabilirsiniz. JavaScript Window yöntemine yapılan çağrılar, temel yerel pencere nesnelerine iletilir.
-
Flex çerçevesi mx:WindowedApplication ve mx:Window sınıfları, NativeWindow sınıfı için bir Flex “sarma“ sağlar. Flex ile bir AIR uygulaması oluşturduğunuzda, WindowedApplication bileşeni Application bileşeninin yerini alır ve Flex uygulamanızda her zaman başlangıç penceresi olarak kullanılmalıdır.
ActionScript pencereleri
Bir NativeWindow sınıfıyla pencereler oluşturduğunuzda, Flash Player sahnesini kullanın ve listeyi doğrudan görüntüleyin. NativeWindow sınıfına görsel bir nesne eklemek için nesneyi pencere sahnesinin görüntü listesine veya sahnedeki başka bir görüntüleme nesnesi kabına ekleyin.
HTML pencereleri
HTML pencereleri oluşturduğunuzda, içeriği görüntülemek için HTML, CSS ve JavaScript kullanırsınız. HTML penceresine görsel bir nesne eklemek için, bu içeriği HTML DOM'a eklersiniz. HTML pencereleri, NativeWindow öğesinin özel bir kategorisidir. AIR ana bilgisayarı HTML pencerelerinde temel NativeWindow örneğine erişim sağlayan bir
nativeWindow
özelliği tanımlar. Bu özelliği burada açıklanan NativeWindow özellikleri, yöntemleri ve olaylarına erişmek için kullanabilirsiniz.
Not:
JavaScript Window nesnesi de, mevcut pencere için komut dosyası oluşturmaya yönelik
moveTo()
ve
close()
gibi yöntemlere sahiptir. Örtüşen yöntemler olduğunda, en uygun yöntemi kullanabilirsiniz.
Flex Framework pencereleri
Flex çerçevesiyle pencereler oluşturduğunuzda, pencereyi doldurmak için genellikle MXML bileşenlerini kullanırsınız. Bir Flex bileşenini bir pencereye eklemek için, bileşen öğesini pencerenin MXML tanımına eklersiniz. İçeriği dinamik olarak eklemek için ActionScript de kullanabilirsiniz. mx:WindowedApplication ve mx:Window bileşenleri Flex kapları olarak tasarlanmıştır ve NativeWindow nesneleri Flex bileşenlerini doğrudan kabul edemezken, bu bileşenler edebilir. Gerektiğinde, NativeWindow özellikleri ve yöntemlerine
nativeWindow
özelliği kullanılarak WindowedApplication ve Window nesneleri aracılığıyla erişilebilir.
İlk uygulama penceresi
Uygulamanızın ilk penceresi sizin için AIR tarafından otomatik olarak oluşturulur. AIR, uygulama tanımlayıcı dosyasının
initialWindow
öğesinde belirtilen parametreleri kullanarak pencere özelliklerini ve içeriğini ayarlar.
Kök içerik bir SWF dosyası ise, AIR bir NativeWindow örneği oluşturur, SWF dosyasını yükler, ve bunu pencere sahnesine ekler. Kök içerik bir HTML dosyası ise, AIR bir HTML penceresi oluşturur ve HTML'i yükler.
Yerel pencere sınıfları
Yerel pencere API'si aşağıdaki sınıfları içerir:
Paket
|
Sınıflar
|
flash.display
|
|
flash.events
|
|
Yerel pencere olay akışı
Yerel pencereler, ilgili bileşenleri önemli bir değişikliğin gerçekleşmek üzere olduğuna veya gerçekleştiğine dair bilgilendirmek için olaylar gönderir. Birçok pencere ilişkili olay, çiftler halinde gönderilir. İlk olay, bir değişikliğin gerçekleşmek üzere olduğuna dair uyarır. İkinci olay, değişikliğin yapıldığını bildirir. Bir uyarı olayını iptal edebilirsiniz, ancak bir bildirim olayını iptal edemezsiniz. Aşağıdaki sıra, kullanıcı pencerenin büyütme düğmesini tıklattığında gerçekleşen olay akışını gösterir:
-
NativeWindow nesnesi bir
displayStateChanging
olayı gönderir.
-
Hiçbir kayıtlı kullanıcı olayı iptal etmezse, pencere büyür.
-
NativeWindow nesnesi bir
displayStateChange
olayı gönderir.
NativeWindow nesnesi ayrıca pencere boyutu ve konumuyla ilgili değişiklikler için de olaylar gönderir. Pencere, bu ilgili değişiklikler için uyarı olayları göndermez. İlgili değişiklikler şunlardır:
-
Büyütme işlemi nedeniyle pencerenin sol üst köşesi hareket ettiğinde
move
olayı gönderilir.
-
Büyütme işlemi nedeniyle pencere boyutu değiştiğinde
resize
olayı gönderilir.
Bir NativeWindow nesnesi, pencereyi simge durumuna küçültme, yeniden yükleme, kapatma, taşıma ve yeniden boyutlandırma sırasında olayları benzer bir sırayla gönderir.
Uyarı olayları yalnızca, pencere kromu veya başka işletim sistemin tarafından kontrol edilen bir mekanizma bir değişiklik başlattığında gönderilir. Pencere boyutu, konumu veya görüntü durumunu değiştirmek için bir window yöntemini çağırdığınızda, pencere yalnızca değişikliği bildirmek için bir olay gönderir. İsterseniz pencere
dispatchEvent()
yöntemini kullanarak bir uyarı olayı gönderebilir ve değişiklik devam etmeden önce uyarı olayınızın iptal edilip edilmediğini kontrol edebilirsiniz.
Pencere API sınıfları, yöntemleri, özellikleri ve olaylarıyla ilgili ayrıntılı bilgi için bkz.
Adobe Flash Platformu için ActionScript 3.0 Başvurusu
.
Yerel pencere stili ve davranışını denetleyen özellikler
Aşağıdaki özellikler, bir pencerenin temel görünümü ve davranışını denetler:
-
type
-
systemChrome
-
transparent
-
owner
Bir pencere oluşturduğunuzda, pencere yapıcısına iletilen NativeWindowInitOptions nesnesindeki bu özellikleri ayarlarsınız. AIR, özellikleri ilk uygulama penceresi için uygulama tanımlayıcıdan okur. (Uygulama tanımlayıcıda ayarlanamayan ve her zaman
normal
olarak ayarlanmış olan
type
özelliği hariç.) Bu özellikler pencere oluşturulduktan sonra değiştirilemez.
Bu özelliklerin bazı ayarları birbirleriyle uyumsuzdur:
transparent
özelliği
true
olarak veya
type
özelliği
lightweight
olarak ayarlandığında
systemChrome
özelliği
standard
olarak ayarlanamaz.
Pencere türleri
AIR pencere türleri, üç işlevsel pencere türü oluşturmak için yerel işletim sisteminin krom ve görünürlük niteliklerini birleştirir. Koddaki tür adlarına başvurmak için NativeWindowType sınıfında tanımlanan sabitleri kullanın. AIR, aşağıdaki pencere türlerini sağlar:
Tür
|
Açıklama
|
Normal
|
Tipik bir pencere. Normal pencereler tam boyutlu krom stilini kullanır ve Windows görev çubuğu ile Mac OS X pencere menüsünde görünürler.
|
Hizmet penceresi
|
Bir araç paleti. Hizmet pencereleri sistem kromunun daha ince bir versiyonunu kullanır ve Windows görev çubuğu ile Mac OS X pencere menüsünde görünmezler.
|
Hafif
|
Hafif pencereler krom içermez ve Windows görev çubuğunda veya Mac OS X pencere menüsünde görünmezler. Ayrıca, hafif pencereler Windows'ta Sistem (Alt+Ara çubuğu) menüsü içermezler. Hafif pencereler, açılır kutular gibi kısa süreli görüntü alanları açan bildirim kabarcıkları ve denetimler için uygundur.
type
özelliği hafif olarak ayarlandığında
systemChrome
özelliği
none
olarak ayarlanmalıdır.
|
Pencere kromu
Pencere kromu, kullanıcıların masaüstü ortamında bir pencereyi değiştirmesine olanak veren denetimlerin kümesidir. Krom öğeleri, başlık çubuğu, başlık çubuğu düğmeleri, kenarlık ve yeniden boyutlandırma kıskaçlarını içerir.
Sistem kromu
systemChrome
özelliğini
standard
veya
none
olarak ayarlayabilirsiniz. Pencerenize kullanıcının işletim sistemi tarafından oluşturulan ve stillendirilen standart denetimler kümesini vermek için
standard
sistem kromunu seçin. Pencere için kendi kromunuzu sağlamak istiyorsanız
none
olarak ayarlayın. Koddaki sistem kromu ayarlarına başvurmak için NativeWindowSystemChrome sınıfında tanımlanan sabitleri kullanın.
Sistem kromu sistem tarafından yönetilir. Uygulamanızın denetimlerin kendisine doğrudan erişimi yoktur, ancak denetimler kullanıldığında gönderilen olaylara tepki verebilir. Pencere için standart krom kullandığınızda,
transparent
özelliği
false
olarak ve
type
özelliği
normal
veya
utility
olarak ayarlanmalıdır.
Flex kromu
Flex WindowedApplication veya Window bileşenlerini kullandığınızda pencere, sistem kromunu veya Flex çerçevesi tarafından sağlanan kromu kullanabilir. Flex kromunu kullanmak için, pencere oluşturmak üzere kullanılan
systemChrome
özelliğini
none
olarak ayarlayın. mx bileşenleri yerine Flex 4 spark bileşenlerini kullandığınızda, Flex kromu kullanabilmek için skin sınıfını belirtmelisiniz. Dahili kaplamaları veya kendi kaplamanızı kullanabilirsiniz. Aşağıdaki örnek, dahili spark WindowedApplication dış görünüm sınıfının pencere kromu sağlamak için nasıl kullanılacağını gösterir:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Style>
@namespace "library://ns.adobe.com/flex/spark";
WindowedApplication
{
skinClass:ClassReference("spark.skins.spark.SparkChromeWindowedApplicationSkin");
}
</fx:Style>
</s:WindowedApplication>
Daha fazla bilgi için bkz.
Flex 4'ü Kullanma: AIR pencere kapları hakkında: Pencere kromunu kontrol etme
Özel krom
Sistem kromu olmadan bir pencere oluşturduğunuzda, kullanıcı ve pencere arasındaki etkileşimleri işlemek için kendi krom denetimlerinizi eklemeniz gerekir. Dikdörtgen olmayan, şeffaf pencereler de yapabilirsiniz.
mx:WindowedApplication veya mx:Window bileşenleri ile özel krom kullanmak için,
showFlexChrome
stilini
false
değerine ayarlamalısınız. Yoksa, Flex pencerelerinize kendi kromunu ekler.
Pencere şeffaflığı
Bir pencerenin masaüstü veya diğer pencerelerle alfa karışımına izin vermek için
transparent
özelliğini
true
olarak ayarlayın.
transparent
özelliği pencere oluşturulmadan ayarlanmalıdır ve değiştirilemez.
Şeffaf bir pencerenin varsayılan bir arka planı yoktur. Uygulama tarafından çizilen, nesne içermeyen pencere alanları görünmezdir. Görüntülenen bir nesne birden küçük bir alfa ayarına sahipse, aynı penceredeki, diğer pencerelerdeki ve masaüstündeki görüntüleme nesneleri de dahil nesnenin altındaki her şey görünür.
Şeffaf pencereler, şekil açısından düzensiz olan, “yavaşça kaybolan” veya görünmez olan kenarlıklara sahip uygulamalar oluşturmak istediğinizde kullanışlıdır. Ancak, Alfa karışımlı büyük alanlar oluşturmak uzun sürebilir, bu nedenle efekt tutumlu kullanılmalıdır.
Önemli:
Linux'ta fare olayları tam saydam piksellerden geçmez. Büyük, tam saydam alanlar içeren pencereler oluşturmaktan kaçınmalısınız, çünkü bu şekilde kullanıcının masaüstündeki diğer pencere ve öğelere erişimini engelleyebilirsiniz. Mac OS X ve Windows'ta, fare olayları tam saydam piksellerden geçer.
Şeffaflık, sistem kromu içeren pencerelerle kullanılamaz. Ayrıca, HTML'deki SWF ve PDF içeriği şeffaf pencerelerde görüntülenmeyebilir. Daha fazla bilgi için, bkz.
HTML sayfasına SWF ve PDF içeriği yüklenirken dikkate alınması gerekenler
.
Statik
NativeWindow.supportsTransparency
özelliği, pencere şeffaflığının kullanılabilir olup olmadığını bildirir. Şeffaflık desteklenmediğinde, uygulama siyah bir arka plana karşı birleştirilir. Bu durumlarda, uygulamanın tüm saydam alanları opak siyah olarak görüntülenir. Bu özelliğin
false
değerinde olması ihtimaline karşı bir destek sağlamakta fayda vardır. Örneğin, kullanıcıya bir uyarı iletişim kutusu veya geri dönüşlü, dikdörtgen, şeffaf olmayan bir kullanıcı arabirimi görüntüleyebilirsiniz.
Şeffaflığın Mac ve Windows işletim sistemleri tarafından her zaman desteklendiğini unutmayın. Linux işletim sistemlerinde destek, bileşik pencere yöneticisini gerektirir, ancak bileşik pencere yöneticisi etkin olduğunda bile, kullanıcı görüntü seçenekleri veya donanım yapılandırması nedeniyle saydamlık kullanılamayabilir.
MXML uygulama penceresinde şeffaflık
Pencereyi
şeffaf
olarak oluştursanız bile, MXML penceresinin arka planı varsayılan olarak opaktır. (Pencerenin köşelerindeki şeffaflık efektine dikkat edin.) Pencereye şeffaf bir arka plan oluşturmak için, stil sayfasındaki arka plan rengi ve alfa değerini veya uygulamanızın MXML dosyasında bulunan <mx:Style> öğesini ayarlayın. Örneğin, aşağıdaki stil bildirimi arka plana biraz şeffaf, yeşil bir gölge verir:
WindowedApplication
{
background-alpha:".8";
background-color:"0x448234";
}
HTML uygulama penceresinde şeffaflık
İçinde bulunduğu pencere şeffaf olsa bile, HTML pencereleri ve HTMLLoader nesnelerinde görüntülenen HTML içeriğinin arka planı varsayılan olarak opaktır. HTML içeriği için görüntülenen varsayılan arka planı kapatmak için,
paintsDefaultBackground
özelliğini
false
olarak ayarlayın. Aşağıdaki örnek bir HTMLLoader oluşturur ve varsayılan arka planı kapatır:
var htmlView:HTMLLoader = new HTMLLoader();
htmlView.paintsDefaultBackground = false;
Bu örnek, bir HTML penceresinin varsayılan arka planını kapatmak için JavaScript kullanır:
window.htmlLoader.paintsDefaultBackground = false;
HTML belgesinde bulunan bir öğe, bir arka plan rengi ayarlıyorsa, bu öğenin arka planı şeffaf olmaz. Kısmi bir şeffaflık (veya opaklık) değerinin ayarlanması desteklenmez. Ancak, benzer bir görsel efekt elde etmek için PNG biçimindeki şeffaf bir grafiği bir sayfanın veya sayfa öğesinin arka planı olarak kullanabilirsiniz.
Pencere sahipliği
Bir pencere bir ya da daha fazla başka pencereye
sahip olabilir
. Bu sahip olunan pencereler her zaman ana pencerenin önünde görüntülenir, ana pencereyle birlikte simge durumuna getirilip geri yüklenir ve ana pencere kapatıldığında kapanır. Pencere sahibi olma durumu başka bir pencereye aktarılamaz veya kaldırılamaz. Bir pencere yalnızca tek bir ana pencerenin olabilir, ancak sınırsız sayıda pencereye sahip olabilir.
Pencere sahipliğini araç paletleri ve iletişim kutuları için kullanılan pencerelerin yönetimini kolaylaştırmak için kullanabilirsiniz. Örneğin, Kaydet iletişim kutusunu bir belge penceresiyle ilişkili bir şekilde görüntülediyseniz, belge penceresinin iletişim kutusunun sahibi olması iletişim kutusunu otomatik olarak belge penceresinin önünde tutar.
Görsel bir pencere kataloğu
Aşağıdaki tablo, Mac OS X, Windows ve Linux işletim sistemlerinde pencere özellik ayarlarının farklı bileşimlerinin görsel efektlerini gösterir:
Pencere ayarları
|
Mac OS X
|
Microsoft Windows
|
Linux
*
|
Type: normal
SystemChrome: standart
Transparent: false
|
|
|
|
Type: hizmet
SystemChrome: standart
Transparent: false
|
|
|
|
Type: Herhangi biri
SystemChrome: yok
Transparent: false
|
|
|
|
Type: Herhangi biri
SystemChrome: yok
Transparent: true
|
|
|
|
mxWindowedApplication veya mx:Window
Type: Herhangi biri
SystemChrome: yok
Transparent: true
|
|
|
|
*
Compiz pencere yöneticisi ile Ubuntu
Not:
Aşağıdaki sistem kromu öğeleri AIR'de desteklenmez: Mac OS X Araç Çubuğu, Mac OS X Proxy Simgesi, Windows başlık çubuğu simgeleri ve diğer sistem kromu.
|
|
|