Tam 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;
Tam ekran etkileşimli modunu açmak için (Flash Player 11.3'te yeni),
displayState
özelliğini
StageDisplayState.FULL_SCREEN_INTERACTIVE
olarak ayarlayın:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
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ştirme
Bir 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.
Flash Player 11.3 ve üst sürümlerinde tam ekran etkileşimli modunu etkinleştirme
Flash Player 11.3 ve üst sürümleri, tüm klavye tuşları (tam ekran etkileşimli moddan çıkmaya yarayan
Esc
tuşu hariç) için tam destek sağlayan tam ekran etkileşimli modu destekler. Tam ekran etkileşimli mod, oyun oynamak için kullanışlıdır (örneğin, çok oyunculu bir oyunda sohbeti etkinleştirmek veya birinci şahıs nişancı oyunlarında WASD klavye kontrollerini etkinleştirmek için)
Bir HTML sayfasında gömülü SWF dosyası için tam ekran etkileşimli modunu etkinleştirmek üzere, Flash Player'ı gömmeye yönelik HTML kodunun aşağıdaki gibi,
param
etiketi ve
embed
niteliği ile birlikte
allowFullScreenInteractive
adı ve
true
değerini içermesi gerekir:
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
Flash yazma aracında, Dosya -> Yayınlama Ayarları seçeneklerini belirleyin ve Yayınlama Ayarları iletişim kutusunun HTML sekmesinde Yalnızca Flash - Tam Ekran Etkileşimli Moduna İzin Ver şablonunu seçin.
Flash Builder ve Flex'te HTML şablonlarının, tam ekran etkileşimli modunu 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,
allowFullScreenInteractive param
etiketini ve niteliğini eklemek üzere 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ında kullanılan) kullanıyorsa, aşağıdaki gibi bu işlev çağrısına
allowFullScreenInteractive
parametresini eklemeniz gerekir:
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
Bu, bağımsız Flash Player'da çalışan SWF dosyaları için geçerli değildir.
Tam ekran sahne boyutu ve ölçekleme
Stage.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ği
Flash 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:
-
Seçili basılamayan tuşlar, ok tuşları, boşluk tuşu ve sekme tuşu
-
Tam ekran modunu sonlandıran klavye kısayolları: Esc (Windows ve Mac), Control-W (Windows), Command-W (Mac) ve Alt-F4
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 fare desteği
Varsayılan olarak, tam ekran modundaki fare olayları aynen tam ekran modunda olunmadığı zamanki gibi çalışır. Ancak, tam ekran modunda fare kilidini etkinleştirmek için
Stage.mouseLock
özelliğini isteğe bağlı olarak ayarlayabilirsiniz. Fare kilidi, imleci devre dışı bırakır ve sınırsız fare hareketini etkinleştirir.
Not:
Fare kilidini, yalnızca masaüstü uygulamalar için tam ekran modunda etkinleştirebilirsiniz. Fare kilidinin tam ekran modunda olmayan uygulamalarda veya mobil aygıtlardaki uygulamalar için ayarlanması özel bir durum oluşturur.
Şu durumlarda fare kilidi otomatik olarak devre dışı bırakılır ve fare imleci tekrar görünür hale gelir:
-
Kullanıcı Escape tuşunu (tüm platformlar), Control-W (Windows) tuşlarını, Command-W (Mac) tuşlarını veya Alt-F4 (Windows) tuşlarını kullanarak tam ekran modundan çıktığında.
-
Uygulama penceresi odağı kaybettiğinde.
-
Tüm gizlilik iletişim kutuları da dahil olmak üzere ayar kullanıcı arabirimleri görünür olduğunda.
-
Dosya yükleme iletişim kutusu gibi bir yerel iletişim kutusu görüntülendiğinde.
mouseMove
olayı gibi fare hareketiyle ilişkilendirilmiş olaylar, olay nesnesini temsil etmek için MouseEvent sınıfını kullanır. Fare kilidi devre dışı durumdayken, farenin konumunu belirlemek için
MouseEvent.localX
ve
MouseEvent.localY
özelliklerini kullanın. Fare kilidi etkin durumdayken, fare konumunu belirlemek için
MouseEvent.movementX
ve
MouseEvent.movementY
özelliklerini kullanın.
movementX
ve
movementY
özellikleri, fare konumunun kesin koordinatlarını değil son olaydan itibaren fare konumunda gerçekleşmiş olan değişiklikleri içerir.
Tam ekran modunda donanım ölçekleme
Flash 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.