Mobil AIR uygulamalarına özgü ActionScript API'leri

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:

  • SystemIdleMode.NORMAL —iPhone normal boşta modu davranışını sergiler.

  • SystemIdleMode.KEEP_AWAKE —Uygulama iPhone'un boşta moduna girmesini önlemeye çalışır.

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.