Aşağıdaki API'ler yalnızca mobil aygıtlardaki AIR uygulamalarında mevcuttur. Şu anda AIR masaüstü sürümlerinde veya Flash Player'da kullanılamamaktadır.
Ekran yönlendirme API'si
Ekran yönlendirme API'si sahne ve iPhone yönlendirmesiyle çalışmanıza imkan verir:
-
Stage.autoOrients
— Uygulamanın, aygıt döndürüldüğünde sahne alanını otomatik olarak yeniden yönlendirecek şekilde ayarlanıp ayarlanmayacağı. Flash Professional CS5 iPhone Ayarlar iletişim kutusunda Otomatik Yönlendirme seçeneği seçili olduğunda özellik
true
olarak ayarlanır. (Uygulama açıklayıcı dosyasında
autoOrients
öğesini
true
olarak da ayarlayabilirsiniz.) Bkz.
iPhone uygulama ayarları
. Stage nesnesi için bir
orientationChanging
olay dinleyicisi ekleyerek otomatik yeniden yönlendirmeyi iptal edebilirsiniz. Bu olay nesnesinin
preventDefault()
yöntemi çağrıldığında, otomatik yeniden yönlendirme iptal edilir.
Otomatik yönlendirme kullanırken en iyi sonucu almak için Sahne Alanı'nın
align
özelliğini şu şekilde ayarlayın:
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
-
Stage.deviceOrientation
—Aygıtın fiziksel yönlendirmesi. StageOrientation sınıfı, bu özelliğin değerlerini tanımlar.
-
Stage.orientation
—Sahne alanının geçerli yönlendirmesi. StageOrientation sınıfı, bu özelliğin değerlerini tanımlar.
-
Stage.supportsOrientationChange
—iPhone'da
true
, AIR uygulamasında ise
false
olarak ayarlanır.
-
Stage.setOrientation()
—Sahne alanının yönlendirmesini ayarlar. Bu yöntemin, yeni sahne alanının yönünü tanımlayan bir dize olan tek bir parametresi vardır. StageOrientation sınıfındaki sabitler parametrenin muhtemel değerlerini tanımlar.
-
StageOrientation—Sahne alanı yönlendirme değerlerini tanımlar. Örneğin,
StageOrientation.ROTATED_RIGHT
aygıtın varsayılan yönlendirmesine göre sağa döndürülen bir sahneyi ifade eder.
-
StageOrientationEvent—Ekran yönlendirmesi değiştiğinde sahne alanının gönderdiği olayları tanımlar. Bu olay kullanıcı iPhone aygıtını döndürdüğünde meydana gelir. İki tür olay vardır. Aygıt döndürüldüğünde Sahne alanı
orientationChanging
olayını gönderir. Sahne alanının yeniden yönlendirilmesini önlemek için,
orientationChanging
olay nesnesinin
preventDefault()
yöntemini çağırın. Sahne alanının yeniden yönlendirmesi tamamlandığında Sahne alanı bir kez daha
orientationChange
olayını gönderir.
Ekran yönlendirme API'si şu anda sadece mobil aygıtlardaki AIR uygulamalarında kullanılabilir. Bir mobil AIR uygulaması ve masaüstü AIR uygulaması kaynak kodu paylaşıyorsa, API'nin desteklenip desteklenmediğini kontrol etmek için
Stage.supportsOrientationChange
özelliğini kullanın.
Aşağıdaki örnekte, aygıtın kullanıcı tarafından döndürülmesine nasıl yanıt verileceği gösterilmektedir:
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE,
onOrientationChange);
function onOrientationChange(event:StageOrientationEvent):void
{
switch (event.afterOrientation) {
case StageOrientation.DEFAULT:
// re-orient display objects based on
// the default (right-side up) orientation.
break;
case StageOrientation.ROTATED_RIGHT:
// Re-orient display objects based on
// right-hand orientation.
break;
case StageOrientation.ROTATED_LEFT:
// Re-orient display objects based on
// left-hand orientation.
break;
case StageOrientation.UPSIDE_DOWN:
// Re-orient display objects based on
// upside-down orientation.
break;
}
Bu örnekte, farklı sahne yönlendirmeleri durumunda işlevsel kod yerine yorumlar mevcuttur.
Sahne alanının yönlendirmesini Stage nesnesinin
setOrientation
yöntemini çağırarak değiştirebilirsiniz. Yönlendirmenin ayarlanması eş zamanlı olmayan bir işlemdir.
orientationChange
olayını dinleyerek yönlendirmenin ne zaman tamamlanacağını kontrol edebilirsiniz. Aşağıdaki kod, sahne alanının sağ el yönlendirmesine göre nasıl ayarlanacağını gösterir:
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE,
onOrientationChange);
stage.setOrientation(StageOrientation.ROTATED_RIGHT);
function onOrientationChange(event:StageOrientationEvent):void
{
// Code to handle the new Stage orientation
}
Sahne döndükçe yeniden boyutlandırılır ve Stage nesnesi bir
resize
olayı gönderir.
resize
olayına yanıt olarak Sahnede display nesnelerini yeniden boyutlandırabilir ve konumlandırabilirsiniz.
NativeApplication.systemIdleMode ve SystemIdleMode
NativeApplication.systemIdleMode
özelliği iPhone'un boşta moduna geçmesini engellemenize izin verir. Varsayılan olarak, bir iPhone belli bir zaman boyunca dokunma ekranı etkileşimi olmazsa boşta moduna geçer. Boşta modu ekranın kararmasına neden olabilir. Ayrıca iPhone'un kilit moduna geçmesine de neden olabilir. Bu özellik iki değerden birine ayarlanabilir:
Bu işlev yalnızca mobil aygıtlarda desteklenir. Masaüstü işletim sistemi çalıştıran AIR uygulamalarında desteklenmez. Masaüstünde çalışan bir uygulamada,
NativeApplication.systemIdleMode
özelliğini ayarlamanın bir etkisi yoktur.
Aşağıdaki kod iPhone boşta modunun nasıl devre dışı bırakıldığını gösterir:
NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
CameraRoll
CameraRoll sınıfı iPhone film rulosuna görüntü eklemenize izin verir.
addBitmapData()
yöntemi iPhone film rulosuna bir görüntü ekler. Yöntemin tek bir parametresi vardır,
bitmapData
. Bu parametre film rulosuna eklenecek görüntüyü içeren BitmapData nesnesidir.
CameraRoll işlevi yalnızca mobil aygıtlarda desteklenir. Masaüstü işletim sistemi çalıştıran AIR uygulamalarında desteklenmez. Uygulamanızın CamerRoll işlevini çalışma zamanında destekleyip desteklemediğini kontrol etmek için, statik
CameraRoll.supportsAddBitmapData
özelliğini kontrol edin.
addBitmapData()
yöntemini çağırdıktan sonra, CameraRoll şu iki olaydan birini gönderir:
-
complete
—İşlem başarıyla tamamlandı.
-
error
—Bir hata oluştu. Örneğin, iPhone'da görüntüyü depolayacak kadar boş alan kalmamış olabilir.
Aşağıdaki kod film rulosuna sahne alanının (ekran yakalaması) bir görüntüsünü ekler:
if (CameraRoll.supportsAddBitmapData)
{
var cameraRoll:CameraRoll = new CameraRoll();
cameraRoll.addEventListener(ErrorEvent.ERROR, onCrError);
cameraRoll.addEventListener(Event.COMPLETE, onCrComplete);
var bitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
bitmapData.draw(stage);
cameraRoll.addBitmapData(bitmapData);
}
else
{
trace("not supported.");
}
function onCrError(event:ErrorEvent):void
{
// Notify user.
}
function onCrComplete(event:Event):void
{
// Notify user.
}
DisplayObject.cacheAsBitmapMatrix
cacheAsBitmapMatrix
özelliği,
cacheAsBitmap
true
olarak ayarlandığında bir görüntüleme nesnesinin nasıl oluşturulduğunu tanımlayan bir Matrix nesnesidir. Bu uygulama görüntüleme nesnesinin bitmap sürümünü oluştururken bu matrisi dönüştürme matrisi olarak kullanır.
cacheAsBitmapMatrix
ayarlı olduğunda, uygulama görüntüleme matrisi yerine, bu matrisi kullanarak oluşturulmuş önbelleğe alınmış bitmap görüntüsünü korur. (Görüntüleme matrisi, görüntüleme nesnesinin
transform.concatenatedMatrix
öğesinin değeridir.) Matris görüntüleme matrisiyle eşleşmezse, bitmap gerektiği şekilde ölçeklenir ve döndürülür.
cacheAsBitmapMatrix
olarak ayarlı bir görüntüleme nesnesi yalnızca
cacheAsBitmapMatrix
öğesinin değeri değiştiğinde oluşturulur. Bitmap, görüntüleme matrisine uymak için uygun olan şekilde ölçeklenir veya döndürülür.
Hem işlemci hem de GPU tabanlı görüntü oluşturma, GPU görüntü oluşturma genellikle daha fazla olsa da,
cacheAsBitmapMatrix
özelliğinin kullanımından faydalanır.
Not:
Donanım hızlandırmayı kullanmak için, Flash Professional CS5'teki iPhone Ayarları iletişim kutusunun Genel sekmesinde Görüntü Oluşturma'yı GPU'ya ayarlayın. (Ya da
renderMode
özelliğini uygulama açıklayıcısı dosyasında
gpu
olarak ayarlayın.)
Örneğin, aşağıdaki kod görüntüleme nesnesinin dönüştürülmemiş bitmap temsilini kullanır:
matrix:Matrix = new Matrix(); // creates an identity matrix
mySprite.cacheAsBitmapMatrix = matrix;
mySprite.cacheAsBitmap = true;
Aşağıdaki kod geçerli görüntü oluşturmayla eşleşen bir bitmap temsili kullanır:
mySprite.cacheAsBitmapMatrix = mySprite.transform.concatenatedMatrix;
mySprite.cacheAsBitmap = true;
Genellikle, kimlik matrisi (
new Matrix()
) veya
transform.concatenatedMatrix
yeterlidir. Ancak, GPU'ya farklı bir bitmap yüklemek için, küçültülmüş matris gibi farklı bir matris kullanabilirsiniz. Örneğin, aşağıdaki örnek x ve y eksenlerinde 0,5 küçültülmüş bir
cacheAsBitmapMatrix
matrisini uygular. GPU'nun kullandığı bitmap nesnesi daha küçüktür, ancak GPU onun boyutunu görüntüleme nesnesinin
transform.matrix
özelliğiyle eşleşmesi için ayarlar:
matrix:Matrix = new Matrix(); // creates an identity matrix
matrix.scale(0.5, 0.5); // scales the matrix
mySprite.cacheAsBitmapMatrix = matrix;
mySprite.cacheAsBitmap = true;
Genelde, görüntüleme nesnesini uygulamada görüntülenecek boyuta dönüştüren bir matris seçin. Örneğin, uygulamanız boyutu yarıya indirilmiş hareketli grafiğin bitmap sürümünü görüntülüyorsa, boyutu yarıya düşüren bir matris kullanın. Uygulamanız hareketli grafiği geçerli boyutlarından daha büyük görüntüleyecekse, o çarpanla ölçüyü arttıran bir matris kullanın.
cacheAsBitmapMatrix
özelliğinin ayarlı olduğu görüntüleme nesneleri için boyut açısından gerçekçi bir sınır vardır. Sınır 1020 x 1020 pikseldir.
cacheAsBitmapMatrix
özelliğinin ayarlı olduğu tüm görüntüleme nesnelerinin toplam piksel sayısı için gerçekçi bir sınır vardır. Sınır yaklaşık dört milyon pikseldir.
cacheAsBitmapMatrix
öğesini ve donanım hızlandırmayı kullanırken bir çok etken vardır. Hangi görüntüleme nesnelerinin o özellik kümesine sahip olması gerektiğini ve hangilerinin sahip olmaması gerektiğini bilmek önemlidir. Bu özelliği kullanmayla ilgili önemli bilgiler için bkz.
Donanım hızlandırma
.
Uygulamanızın hata ayıklama yapılarında GPU kullanımını tanılamak için GPU görüntü oluşturma tanılama özelliğini kullanabilirsiniz. Daha fazla bilgi için bkz.
Bir iPhone uygulamasında hata ayıklama
.
Ağ iletişimi notları
nativigateToURL()
işleviyle aşağıdaki URL şemalarının kullanılması belgenin harici bir uygulamada açılmasına neden olur:
URL şeması
|
nativeToURL() öğesine yapılan çağrının sonucu
|
Örnek
|
mailto:
|
Posta uygulamasında yeni bir mesaj açar.
|
str = "mailto:test@example.com";
var urlReq:URLReq = new URLRequest(str);
navigateToURL(urlReq);
|
sms:
|
Metin mesajı uygulamasında yeni bir mesaj açar.
|
str = "sms:1-415-555-1212";
var urlReq:URLReq = new URLRequest(str);
navigateToURL(urlReq);
|
tel:
|
Telefondaki bir telefon numarasını çevirir (kullanıcının onayı ile).
|
str = "tel:1-415-555-1212";
var urlReq:URLReq = new URLRequest(str);
navigateToURL(urlReq);
|
Bir iPhone uygulaması, https isteği gibi güvenli bir alışveriş sırasında sunucu kimliği doğrulama için yüklü kişisel imzalı kök sertifikaya dayanabilir. Bir sunucu yalnızca yaprak sertifikasını değil, kök sertifikaya zincirleme şekilde bağlı bulunan bütün orta düzey sertifikaları göndermelidir.