Sahne Alanı özelliklerini ayarlamaFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü Stage sınıfı, DisplayObject sınıfının çoğu özellik ve yöntemini geçersiz kılar. Bu geçersiz kılınmış özellik veya yöntemlerden birini çağırırsanız, Flash Player ve AIR bir istisna atar. Örneğin, uygulama için ana kap olarak konumu sabitlenmiş olduğundan, Sahne Alanı x veya y özelliğine sahip değildir. x ve y özellikleri, bir görüntüleme nesnesinin, kabına göre konumunu ifade eder ve Sahne Alanı başka bir görüntüleme nesnesi kabında bulunmadığından bu özellikler geçerli değildir. Not: Stage sınıfının bazı özellik ve yöntemleri, yalnızca yüklenen birinci SWF dosyası olarak aynı güvenlik sanal alanında bulunan görüntüleme nesneleri için kullanılabilir durumdadır. Ayrıntılar için, bkz. Sahne Alanı güvenliği.
Oynatma kare hızını denetlemeBir uygulamaya yüklenen tüm SWF dosyalarının kare hızını ayarlamak için, Stage sınıfının framerate özelliği kullanılır. Daha fazla bilgi için bkz. Adobe Flash Platformu için ActionScript 3.0 Başvurusu. Sahne Alanı ölçeklemeyi denetlemeEkranda Flash Player'ı veya AIR'yi temsil eden bölüm yeniden boyutlandırıldığında, çalışma zamanı bunu düzeltmek için Sahne Alanı'nı otomatik olarak ayarlar. Stage sınıfının scaleMode özelliği, Sahne Alanı içeriklerinin nasıl ayarlanacağını belirler. Bu özellik, flash.display.StageScaleMode sınıfında sabitler olarak tanımlanan dört farklı değere ayarlanabilir:
Adobe AIR için sahne ölçek modu ayarlamaSahne alanının scaleMode özelliği, sahne ölçeklerini belirler ve bir pencere yeniden boyutlandırıldığında alt öğe görüntü ekranlarını kırpar. AIR uygulamasında sadece noScale modu kullanılır. Bu modda sahne ölçeklendirilmez. Bunun yerine, sahnenin boyutu pencerenin sınırları içinde direkt olarak değişir. Pencere daha küçük bir boyuta yeniden boyutlandırılırsa nesneler kırpılabilir. Sahne ölçek modülleri, sahnenin boyutunu veya boyut oranını her zaman kontrol edemeyeceğiniz Web tarayıcı gibi ortamlarda kullanılmak üzere tasarlanmıştır. Sahne alanı, uygulamanıza en uygun boyut veya boyut oranıyla eşleşmediği zaman bu boyut, en az ödünle seçim yapmanızı sağlar. AIR'de sahne alanının kontrolü daima sizdedir, bu yüzden çoğu durumda içeriğinizi yeniden düzenlediğinizde veya pencere boyutlarınızı ayarladığınızda sahne alanını ölçeklendirmeye kıyasla daha iyi sonuçlar elde edersiniz. Tarayıcıda ve AIR başlangıç penceresinde, pencere boyutu ile başlangıç ölçek çarpanı arasındaki ilişki, yüklenen SWF dosyasından okunabilir. Ancak NativeWindow nesnesi oluşturduğunuz zaman AIR uygulaması, pencere boyutu ile 72:1 ölçek faktörü arasında nedensiz bir ilişki seçer. Bu nedenle, pencereniz 72x72 pikselse, pencereye eklenen 10x10 piksellik bir dikdörtgen, 10x10 piksellik doğru boyutu çizer. Diğer taraftan, pencere 144x144 pikselse o zaman 10x10 piksellik bir dikdörtgen, 20x20 piksele ölçeklendirilir. Bir pencere sahnesi için noScale yerine scaleMode kullanmakta ısrarcıysanız, penceredeki herhangi bir görüntü nesnesinin ölçek faktörlerini sahnenin geçerli genişliği ve yüksekliğinin 72 piksel oranında ayarlayarak durumu düzeltebilirsiniz. Örneğin aşağıdaki kod client isimli görüntü nesnesi için gerekli ölçek faktörünü hesaplar: if(newWindow.stage.scaleMode != StageScaleMode.NO_SCALE){ client.scaleX = 72/newWindow.stage.stageWidth; client.scaleY = 72/newWindow.stage.stageHeight; } Not: Flex ve HTML pencereleri sahneyi scaleMode öğesinden noScale öğesine otomatik olarak ayarlar. scaleMode öğesinin değiştirilmesi, bu tür pencerelerde kullanılan otomatik mizanpaj mekanizmalarını bozar.
Tam ekran modunda çalışmaTam ekran modu, herhangi bir kap kenarlığı veya menüler olmadan, bir filmin sahne alanını izleyicinin tüm monitörünü dolduracak şekilde ayarlamanıza olanak sağlar. SWF dosyası için tam ekran modunu etkinleştirme ve devre dışı bırakma arasında geçiş yapmak üzere, Stage sınıfının displayState özelliği kullanılır. displayState özelliği, flash.display.StageDisplayState sınıfındaki sabitler tarafından tanımlanan değerlerden birine ayarlanabilir. Tam ekran modunu açmak için, displayState özelliğini StageDisplayState.FULL_SCREEN olarak ayarlayın: stage.displayState = StageDisplayState.FULL_SCREEN; Flash Player'da, tam ekran modu yalnızca fare tıklatmasına (sağ tıklatma dahil) veya tuş basışına yanıt olarak ActionScript üzerinden başlatılabilir. Uygulama güvenlik sanal alanında çalışan AIR içeriği için bir kullanıcı hareketine yanıt olarak tam ekran moduna girilmesi gerekmez. Tam ekran modundan çıkmak için, displayState özelliğini StageDisplayState.NORMAL olarak ayarlayın. stage.displayState = StageDisplayState.NORMAL; Ayrıca kullanıcı, odağı farklı bir pencereye geçirerek veya çok sayıdaki tuş birleşimlerinden birini kullanarak (Esc tuşu (tüm platformlar), Control-W (Windows), Command-W (Mac) ya da Alt-F4 (Windows)) tam ekran modundan çıkmayı seçebilir. Flash Player'da tam ekran modunu etkinleştirmeBir HTML sayfasında gömülü SWF dosyası için tam ekran modunu etkinleştirmek üzere, Flash Player'ı gömmeye yönelik HTML kodunun aşağıdaki gibi, allowFullScreen adı ve true değeri ile bir param etiketini ve embed niteliğini içermesi gerekir: <object> ... <param name="allowFullScreen" value="true" /> <embed ... allowfullscreen="true" /> </object> Flash geliştirme aracında, Dosya -> Yayınlama Ayarları seçeneklerini belirleyin ve Yayınlama Ayarları iletişim kutusunun HTML sekmesinde Yalnızca Flash - Tam Ekran Moduna İzin Ver şablonunu seçin. Flex'te, HTML şablonunun tam ekranı destekleyen <object> ve <embed> etiketlerini içerdiğinden emin olun. SWF gömme etiketleri oluşturmak için bir web sayfasında JavaScript kullanıyorsanız, allowFullScreen param etiketini ve niteliğini eklemek için JavaScript'i değiştirmeniz gerekir. Örneğin, HTML sayfanız AC_FL_RunContent() işlevini (Flash Professional ve Flash Builder tarafından oluşturulan HTML sayfaları tarafından kullanılan) kullanıyorsa, aşağıdaki gibi bu işleve allowFullScreen parametresini eklemeniz gerekir: AC_FL_RunContent( ... 'allowFullScreen','true', ... ); //end AC code Bu, bağımsız Flash Player'da çalışan SWF dosyaları için geçerli değildir. Not: Pencere Modu'nu (HTML'de wmode) Opak Penceresiz (opak) veya Saydam Penceresiz (saydam) olarak ayarlarsanız, tam ekran penceresi her zaman opak olur
Tam ekran modunu tarayıcıda Flash Player ile kullanmaya yönelik güvenlikle ilgili kısıtlamalar da bulunmaktadır. Bu kısıtlamalar Güvenlik konusunda açıklanmıştır. Tam ekran sahne boyutu ve ölçeklemeStage.fullScreenHeight ve Stage.fullScreenWidth özellikleri, hemen duruma girilirse, tam ekran boyutuna girilirken kullanılan monitör yüksekliğini ve genişliğini döndürür. Siz bu değerleri aldıktan sonra ancak tam ekran moduna girmeden önce, kullanıcının tarayıcıyı bir monitörden diğerine taşıma olanağı varsa, bu değerler yanlış olabilir. Bu değerleri Stage.displayState özelliğini StageDisplayState.FULL_SCREEN olarak ayarladığınız olay işleyicisinde alırsanız, değerler doğrudur. Birden çok monitöre sahip kullanıcılar için, SWF içeriği yalnızca bir monitörü dolduracak şekilde genişler. Flash Player ve AIR uygulaması, SWF'nin en büyük bölümünü hangi monitörün içerdiğini belirlemek için bir metrik kullanır ve tam ekran modu için bu monitörü kullanır. fullScreenHeight ve fullScreenWidth özellikleri yalnızca tam ekran modu için kullanılan monitör boyutunu gösterir. Ayrıntılı bilgi için Adobe Flash Platformu için ActionScript 3.0 Başvurusu'nda bulunan Stage.fullScreenHeight ve vStage.fullScreenWidth bölümüne bakın. Tam ekran modu için Sahne Alanı ölçekleme davranışı, normal moddakiyle aynıdır; ölçekleme, Stage sınıfının scaleMode özelliği tarafından denetlenir. scaleMode özelliği StageScaleMode.NO_SCALE olarak ayarlanırsa, Sahne Alanı'nın stageWidth ve stageHeight özellikleri, SWF tarafından kaplanan ekran alanının boyutunu (bu durumda, ekranın tamamı) yansıtacak şekilde değişir; tarayıcıda görüntülenirse, ayarı bu denetimlerin HTML parametreleri denetler. Tam ekran modu etkinleştirildiğinde veya devre dışı bırakıldığında bunu algılayıp yanıt vermek için Stage sınıfının fullScreen olayını kullanabilirsiniz. Örneğin, bu örnekteki gibi, tam ekran moduna girerken veya tam ekran modundan çıkarken ekrandaki öğeleri yeniden konumlandırmak, ekrana öğe eklemek veya ekrandan öğe kaldırmak isteyebilirsiniz: import flash.events.FullScreenEvent; function fullScreenRedraw(event:FullScreenEvent):void { if (event.fullScreen) { // Remove input text fields. // Add a button that closes full-screen mode. } else { // Re-add input text fields. // Remove the button that closes full-screen mode. } } mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw); Bu kodun da gösterdiği gibi, fullScreen olayının olay nesnesi, tam ekran modunun etkinleştirilip (true) etkinleştirilmediğini (false) belirten fullScreen özelliğini içeren bir flash.events.FullScreenEvent sınıfı örneğidir. Tam ekran modunda klavye desteğiFlash Player bir tarayıcıda çalışırken, klavye olayları ve TextField örneklerindeki metin girişi gibi klavyeyle ilgili tüm ActionScript, tam ekran modunda devre dışı bırakılır. İstisnalar (etkin tuşlar) şunlardır:
Bu kısıtlamalar, bağımsız Flash Player veya AIR uygulamasında çalışan SWF içeriği için mevcut değildir. AIR, klavye girdisine izin veren etkileşimli bir tam ekran modunu destekler. Tam ekran modunda donanım ölçeklemeFlash Player veya AIR uygulamasını sahne alanının belirli bir bölgesini tam ekran moduna ölçekleyecek şekilde ayarlamak için Stage sınıfının fullScreenSourceRect özelliğini kullanabilirsiniz. Flash Player ve AIR, varsa kullanıcının bilgisayarındaki grafik ve video kartını kullanarak donanımda ölçekler ve genellikle içeriği yazılım ölçeklemeden daha hızlı bir şekilde görüntüler. Donanım ölçeklemeden yararlanmak için, sahne alanının tamamını veya bir kısmını tam ekran moduna ayarlarsınız. Şu ActionScript 3.0 kodu, sahne alanının tamamını tam ekran moduna ayarlar: import flash.geom.*; { stage.fullScreenSourceRect = new Rectangle(0,0,320,240); stage.displayState = StageDisplayState.FULL_SCREEN; } Bu özellik geçerli bir dikdörtgene ayarlandığında ve displayState özelliği tam ekran moduna ayarlandığında, Flash Player ve AIR belirtilen alanı ölçekler. ActionScript içinde piksel olarak gerçek Sahne Alanı boyutu değişmez. Flash Player ve AIR, “Tam ekran modundan çıkmak için Esc düğmesine basın” mesajını barındıracak şekilde dikdörtgenin boyutu için minimum bir sınırı zorlar. Bu sınır genellikle yaklaşık 260 x 30 pikseldir ancak platforma ve Flash Player sürümüne bağlı olarak değişiklik gösterebilir. fullScreenSourceRect özelliği yalnızca Flash Player veya AIR tam ekran modunda olmadığında ayarlanabilir. Bu özelliği düzgün bir şekilde kullanmak için, öncelikle bu özelliği ayarlayın, ardından displayState özelliğini tam ekran moduna ayarlayın. Ölçeklemeyi etkinleştirmek için, fullScreenSourceRect özelliğini bir dikdörtgen nesnesine ayarlayın. stage.fullScreenSourceRect = new Rectangle(0,0,320,240); Ölçeklemeyi devre dışı bırakmak için, fullScreenSourceRect özelliğini null olarak ayarlayın. stage.fullScreenSourceRect = null; Flash Player ile tüm donanım ivmesi özelliklerinden yararlanabilmek için, özelliği Flash Player Ayarları iletişim kutusundan etkinleştirin. İletişim kutusunu yüklemek için, tarayıcınızdaki Flash Player içeriğinin üzerinde sağ tıklatın (Windows) veya Control tuşuna basarak tıklatın (Mac). Birinci sekme olan Görünüm sekmesini seçin ve Donanım ivmesini etkinleştir onay kutusunu tıklatın. Doğrudan ve GPU birleştirme penceresi modlarıFlash Player 10, doğrudan ve GPU birleştirme olmak üzere iki pencere modu sunar, bu pencereleri Flash geliştirme aracındaki yayın ayarlarından etkinleştirebilirsiniz. Bu modlar AIR uygulamasında desteklenmez. Bu modlardan yararlanabilmek için, Flash Player için donanım ivmesini etkinleştirmeniz gerekmektedir. Doğrudan modu, grafikleri ekrana itmek için en hızlı ve en doğrudan yolu kullanır ve bu da video oynatımı için avantaj sağlar. GPU birleştirme modu, birleştirme işlemini hızlandırmak için video kartında grafik işleme birimini kullanır. Video birleştirme, tek bir video görüntüsü oluşturmak için birden çok görüntü katmanlama işlemidir. GPU ile birleştirme hızlandırıldığında, YUV dönüştürme, renk düzeltme, döndürme veya ölçekleme ve karışım performansı artırılabilir. YUV dönüştürme, video kameraların ve ekranların kullandığı RGB (kırmızı, yeşil, mavi) renk modeline iletim için kullanılan bileşik analog sinyallerin renk dönüştürmesini ifade eder. Birleştirmeyi hızlandırmak için GPU'nun kullanılması, CPU'ya yüklenecek olan bellek ve hesaplama gereksinimini azaltır. Bu da standart tanımlı videoların daha akıcı şekilde oynatılmasını sağlar. Bu pencere modlarını uygularken dikkatli olun. GPU birleştirmenin kullanılması bellek ve CPU kaynakları için maliyetli olabilir. Bazı işlemler (örn. karışım modları, filtre uygulama, kırpma veya maskeleme) GPU'da gerçekleştirilemezse, bu işlemler yazılım tarafından yapılır. Adobe, bu modları kullanırken her HTML sayfası için kendinizi bir SWF dosyasıyla sınırlamanızı ve bant reklamlar için bu modları etkinleştirmemenizi önerir. Flash uygulamasının Filmi Test Et işlevi, donanım ivmesini kullanmaz ancak Yayınla Önizle seçeneği üzerinden bu işlevi kullanabilirsiniz. SWF dosyanızda maksimum ekran yenileme hızı olan 60'tan yüksek bir kare hızının ayarlanması gereksizdir. Kare hızının 50 ile 55 arasında bir değere ayarlanması, zaman zaman çeşitli nedenlerle oluşabilen bırakılan karelere neden olur. Doğrudan modunu kullanabilmek için Windows'ta 128 MB VRAM ile Microsoft DirectX 9 ve Apple Macintosh, Mac OS X v10.2 veya daha üstü için OpenGL gerekmektedir. GPU birleştirme için Windows'ta 128 MB VRAM ile Microsoft DirectX 9 ve Pixel Shader 2.0 desteği gerekir. Mac OS X ve Linux'ta GPU birleştirme için OpenGL 1.5 ve birçok OpenGL uzantısı (framebuffer nesnesi, çoklu doku, gölgelendirici nesneleri, gölgeleme dili, parça gölgelendirici) gerekir. Flash sekmesindeki Donanım İvmesi menüsünü kullanarak, Flash uygulamasının Yayın Ayarları iletişim kutusu üzerinden her SWF dosyasında direct ve gpu ivme modlarını etkinleştirebilirsiniz. Yok seçeneğini belirlerseniz, HTML sekmesindeki Pencere Modu ayarının belirttiği gibi, pencere modu default, transparent veya opaque, ayarına geri döndürülür. |
|