AIR'de yerel pencerelerin temelleriAdobe AIR 1.0 ve üstü 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 PencerelerAIR, pencerelerle çalışmak için üç ayrı API destekler:
ActionScript pencereleriBir 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 pencereleriHTML 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 pencereleriFlex ç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 penceresiUygulamanı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:
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:
Yerel pencere stili ve davranışını denetleyen özelliklerAşağıdaki özellikler, bir pencerenin temel görünümü ve davranışını denetler:
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ürleriAIR 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:
Pencere kromuPencere 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 kromusystemChrome ö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 kromuFlex 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 kromSistem 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ıkPencereyi ş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ğiBir 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ğuAş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:
*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.
|
|