Harici API gereksinimleri ve avantajları

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

Harici API, ActionScript'in, Flash Player için kap olarak hareket eden bir "harici uygulamada" (genellikle bir web tarayıcısı veya bağımsız projektör uygulaması) çalışan kod ile ActionScript arasındaki iletişime yönelik bir mekanizma sağlayan bölümüdür. ActionScript 3.0'da, harici API işlevi ExternalInterface sınıfı tarafından sağlanır. Flash Player 8'den önceki Flash Player sürümlerinde fscommand() eylemi, kap uygulamasıyla iletişimi yürütmek için kullanılıyordu. ExternalInterface sınıfı fscommand() için bir değiştirmedir.

Not: Eski fscommand() işlevini kullanmanız gerekirse—örneğin, eski uygulamalarda uyumluluğu korumak veya üçüncü taraf SWF kap uygulaması ya da bağımsız Flash Player ile etkileşim kurmak için—bu, flash.system paketinde paket düzeyinde işlev olarak halen kullanılabilir.

ExternalInterface sınıfı, ActionScript ve Flash Player'dan bir HTML sayfasındaki JavaScript'e veya Flash Player örneğini içeren herhangi bir masaüstü uygulamasına kolayca iletişim kurmanıza olanak sağlayan bir alt sistemdir.

ExternalInterface sınıfı yalnızca şu koşullar altında kullanılabilir:

  • Windows (5.0 ve sonrası) için tüm desteklenen Internet Explorer sürümlerinde

  • Flash Player ActiveX denetimi örneğini kullanan masaüstü uygulaması gibi bir kap uygulamasında

  • Şu anda Firefox 1.0 ve sonrasını, Mozilla 1.7.5 ve sonrasını, Netscape 8.0 ve sonrasını ve Safari 1.3 ve sonrasını içeren NPRuntime arabirimini destekleyen herhangi bir tarayıcıda.

Diğer tüm durumlarda (örneğin bağımsız bir oynatıcı çalıştırılırken), ExternalInterface.available özelliği false değerini döndürür.

ActionScript'ten, HTML sayfasında bir JavaScript işlevini çağırabilirsiniz. Harici API, fscommand() öğesine göre daha gelişmiş işlevler sunar:

  • Yalnızca fscommand() işleviyle kullanabildiğiniz işlevleri değil, JavaScript işlevini de kullanabilirsiniz.

  • Herhangi bir ada sahip herhangi bir sayıda argüman iletebilirsiniz; bir komut ve tek bir dize argümanı iletmekle sınırlı değilsiniz Bu da API'nin fscommand() öğesinden daha fazla esnek olmasını sağlar.

  • Çeşitli veri türlerini (örn. Boolean, Number ve String) iletebilirsiniz; String parametreleriyle sınırlı değilsiniz.

  • Bir çağrının değerini alabilirsiniz ve bu değer hemen ActionScript'e döndürülür (yaptığınız çağrının döndürme değeri olarak).

Önemli: Bir HTML sayfasında Flash Player örneğine verilen ad (object etiketinin id niteliği) kısa çizgi (-) veya JavaScript'te operatör olarak tanımlanan diğer karakterleri (örn. +, *, /, \, ., v.b.) ActionScript tarafından yapılan ExternalInterface çağrıları kap web sitesi Internet Explorer'da görüntülendiğinde çalışmaz. Ek olarak, Flash Player örneğini tanımlayan HTML etiketleri (object ve embed etiketleri) bir HTML form etiketinde yuvalanırlarsa, ActionScript tarafından yapılan ExternalInterface çağrıları çalışmaz.