Adobe® Flash® Platform için ActionScript® 3.0 Başvurusu
Ana Sayfa  |  Paket ve Sınıf Listesini Gizle |  Paketler  |  Sınıflar  |  Yenilikler  |  Dizin  |  Ekler  |  Niçin İngilizce?
Filtreler: Sunucudan Veri Alınıyor...
Sunucudan Veri Alınıyor...
 

Paket flash.net 


flash.net paketi, yeni bir tarayıcı penceresi açılması, bir sunucuya URL isteği gönderilmesi ve sınıf diğer adlarıyla ilgilenilmesi için paket düzeyinde işlevler içerir.
Genel Yöntemler
 İşlevTanımlayan:
  
Daha önce registerClassAlias() yöntemi çağrılarak takma adı kaydedilmiş bir sınıfı arar.
flash.net
  
navigateToURL(request:URLRequest, window:String = null):void
Flash Player kabının bulunduğu uygulamada bir pencere açar veya değiştirir. (Genellikle bir tarayıcıdır.)
flash.net
  
registerClassAlias(aliasName:String, classObject:Class):void
Bir nesne Action Message Format (AMF) olarak kodlandığında nesnenin sınıfını (tür) korur.
flash.net
  
Bir sunucuya bir URL isteği gönderir, ancak yanıtları yok sayar.
flash.net
İşlev Ayrıntısı

getClassByAlias

()işlev
public function getClassByAlias(aliasName:String):Class

Dil Sürümü: ActionScript 3.0
Çalışma Zamanı Sürümleri: AIR 1.0, Flash Player 9, Flash Lite 4

Daha önce registerClassAlias() yöntemi çağrılarak takma adı kaydedilmiş bir sınıfı arar.

Bu yöntem flash.utils.getDefinitionByName() yöntemiyle etkileşime geçmez.

Parametreler

aliasName:String — Bulunacak takma ad.

Döndürür
Class — İlgili takma adla ilişkili sınıf. Bulunamazsa bir istisna atılır.

Atar
ReferenceError — Takma ad kaydedilmemiş.

İlgili API Öğeleri

navigateToURL

()işlev 
public function navigateToURL(request:URLRequest, window:String = null):void

Dil Sürümü: ActionScript 3.0
Çalışma Zamanı Sürümleri: AIR 1.0, Flash Player 9, Flash Lite 4

Flash Player kabının bulunduğu uygulamada bir pencere açar veya değiştirir. (Genellikle bir tarayıcıdır.) Adobe AIR'de işlem, varsayılan sistem web tarayıcısında bir URL açar

Önemli Güvenlik Notu

Geliştiriciler genellikle FlashVars gibi harici kaynaklardan alınan navigateToURL() işlevine URL değerleri iletir. Saldırganlar, siteler arası komut dosyası oluşturma gibi saldırıları gerçekleştirmek için bu harici kaynakları değiştirmeye çalışabilirler. Bu nedenle, geliştiriciler URL'leri işleve iletmeden önce doğrulamalıdır.

URL'ler için iyi bir veri doğrulaması, URL'nin genel uygulama içinde kullanımına bağlı olarak farklı şeyler ifade edebilir. En yaygın veri doğrulama teknikleri, URL'nin uygun bir şemaya ait olduğunun doğrulanmasını içerir. Örneğin, JavaScript'e istenmeden izin verilmesi: URL'ler siteler arası komut dosyası oluşturmaya yol açabilir. URL'nin etki alanınız içinde olduğunun doğrulanması, SWF dosyasının kimlik avı saldırıları yapan insanlar tarafından açık bir yeniden yönlendirici olarak kullanılamayacağını garanti eder. Ek güvenlik için, URL'nin yolunu doğrulamayı ve URL'nin RFC yönergelerine uyduğunu doğrulamayı seçebilirsiniz.

Örneğin, aşağıdaki kod, :// veya https:// ile başlamayan tüm URL'lerin reddedilmesiyle ve URL'nin kendi etki alanı adınızın içinde bulunduğunun doğrulanması ve gerçekleştirilen veri doğrulamasının basit bir örneğini gösterir. Bu örnek, tüm web uygulamaları için uygun olmayabilir ve URL'lere karşı ek kontrollerin gerekli olup olmadığını düşünmeniz gerekebilir.

     // AS3 Regular expression pattern match for URLs that start with http:// and https:// plus your domain name.
     function checkProtocol (flashVarURL:String):Boolean {
        // Get the domain name for the SWF if it is not known at compile time.
        // If the domain is known at compile time, then the following two lines can be replaced with a hard coded string.
        var my_lc:LocalConnection = new LocalConnection();
        var domainName:String = my_lc.domain;
        // Build the RegEx to test the URL.
        // This RegEx assumes that there is at least one "/" after the
        // domain. http://www.mysite.com will not match.
        var pattern:RegExp = new RegExp("^http[s]?\:\\/\\/([^\\/]+)\\/");
        var result:Object = pattern.exec(flashVarURL);
        if (result == null || result[1] != domainName || flashVarURL.length >= 4096) {
          return (false);
        }
        return (true);
     }  
     
      

Bir tarayıcıda çalışan local içeriğinde, "javascript:" pseudo-protokolünü belirten navigateToURL() öğesine yapılan çağrılara (ilk parametre olarak iletilen URLRequest nesnesi üzerinden) yalnızca SWF dosyasının ve içeren dosyanın (varsa) yerel güvenilir sanal alanda olması durumunda izin verilir. Bazı tarayıcılar javascript protokolünün navigateToURL() yöntemiyle kullanılmasını desteklemez. Bunun yerine, çevreleyen HTML sayfası içerisindeki JavaScript yöntemlerini çağırmak için ExternalInterface API öğesinin call() yöntemini kullanmayı düşünün.

Flash Player'da ve Adobe AIR'da uygulama dışı sanal alanlarda, genel olarak ayrılan bağlantı noktalarına bağlanamazsınız. Engellenen bağlantı noktalarının tam listesi için, bkz. "Ağ İletişimi API'lerini Kısıtlama", ActionScript 3.0 Geliştirici Kılavuzu.

Bir tarayıcıda çalışan Flash Player 10 ve sonrasında, bir açılır pencere açmak için programlama yoluyla bu yöntemin kullanılması başarılı olmayabilir. Çeşitli tarayıcılar (ve tarayıcı konfigürasyonları), herhangi bir anda açılır pencereleri engelleyebilir; tüm açılır pencerelerin görüntüleneceği garanti edilemez. Ancak bunu başarmanın en iyi yolu, yalnızca kullanıcı eyleminin doğrudan sonucu olarak çalıştırılan bir kodda (örneğin, fare tıklatması veya tuş basışı olayı gibi bir olay işleyicisinde) açılır pencere açmak için bu yöntemin kullanılmasıdır.

Flash Player 10 ve sonrasında, yükleme (POST gövdesi içinde "content-disposition" başlığında "filename" parametresiyle belirtilir) içeren çok bölümlü bir Content-Type (örneğin, "multipart/form-data") kullanırsanız, POST işlemi, yüklemelere uygulanan güvenlik kurallarına tabidir:

  • Fare tıklatma veya tuş basışı gibi kullanıcı tarafından başlatılan bir eyleme yanıt olarak POST işleminin gerçekleştirilmesi gerekir.
  • POST işlemi etki alanları arasıysa (POST hedefi, POST isteğini gönderen SWF dosyasıyla aynı sunucuda değilse), hedef sunucunun etki alanları arası erişime izin veren bir URL ilke dosyası sağlaması gerekir.

Ayrıca çok bölümlü herhangi bir Content-Type için sözdiziminin geçerli olması gerekir (RFC2046 standartlarına göre). Sözdizimi geçersiz görünüyorsa, POST işlemi, yüklemelere uygulanan güvenlik kurallarına tabi olur.

AIR'de, mobil platformlarda sms: ve tel: URI şemaları desteklenir. Android'de, vipaccess:, connectpro:, ve market: URI şemaları desteklenir. URL sözdizimi platform kurallarına tabidir. Örneğin, Android üzerinde, URI şeması küçük harfli olmalıdır. Bu şemalardan birini kullanan URL'ye gittiğinizde, çalışma zamanı şemayı işlemek için URL'yi varsayılan uygulamada açar. Bu yüzden, tel:+5555555555 öğesine gitmek belirtilen numara girilmiş biçimde numara çeviricisini açar. URL'yi işlemek için numara çeviricisi gibi ayrı bir uygulama veya yardımcı program bulunmalıdır.

Aşağıdaki kod, Android'de VIP Access ve Connect Pro uygulamalarını nasıl çağırabileceğinizi gösterir:

       //Invoke the VIP Access Application.
       navigateToURL(new URLRequest("vipaccess://com.verisign.mvip.main?action=securitycode"));
     
       //Invoke the Connect Pro Application.
       navigateToURL(new URLRequest("connectpro://"));
     
      

Parametreler

request:URLRequest — Gidilecek URL'yi belirten bir URLRequest nesnesi.

Adobe AIR'de çalışan içerik için, navigateToURL() işlevinin kullanılması sırasında, GET yöntemini kullandığı gibi POST yöntemini kullanan URLRequest öğesi (method özelliği URLRequestMethod.POST olarak ayarlanmış olan).

 
window:String (default = null)request parametresi tarafından gösterilen belgenin görüntüleneceği tarayıcı penceresi veya HTML karesi. Belirli bir pencerenin adını girebilir veya şu değerlerden birini kullanabilirsiniz:
  • "_self" geçerli penceredeki geçerli kareyi belirtir.
  • "_blank" yeni bir pencere belirtir.
  • "_parent" geçerli karenin üst öğesini belirtir.
  • "_top" geçerli penceredeki üst düzey kareyi belirtir.

Bu parametre için bir değer belirtmezseniz yeni bir boş pencere oluşturulur. Tek başına çalışabilen oynatıcıda, yeni bir ("_blank") pencere veya ada sahip bir pencere belirtebilirsiniz. Diğer değerler geçerli değildir.

Not: Dosya sistemine sahip yerel sanal alanda çalışan bir SWF dosyasındaki kod navigateToURL() işlevini çağırırsa ve window parametresi için özel bir pencere adı belirtirse, yeni pencerenin adı rastgele bir ada aktarılır. Ad "_flashXXXXXXXX" şeklindedir ve buradaki her X işareti rastgele bir onaltılık basamağı temsil eder. Aynı oturumda (içeren tarayıcı penceresini kapatmayı seçene kadar), işlevi yeniden çağırıp window parametresi için aynı adı belirtirseniz aynı rastgele dize kullanılır.


Atar
IOError request nesnesinin digest özelliği null değildir. URLRequest nesnesinin digest özelliğini yalnızca SWZ dosyası (bir Adobe platformu bileşeni) yüklenirken URLLoader.load() yöntemi çağrıldığında kullanmak üzere ayarlamalısınız.
 
SecurityError — Flash Player'da (ve Adobe AIR'da bulunan uygulama dışı sanal alan içeriğinde), bu hata aşağıdaki durumlarda atılır:
  • Güvenilmeyen yerel SWF dosyaları İnternet ile iletişim kuramayabilir. Bu SWF dosyasını ağa sahip yerel veya güvenilir olarak yeniden sınıflandırarak bu durumu önleyebilirsiniz.
  • Bir gezinme işlemi komut dosyası oluşturan sahte bir URL'yi değerlendirmeye çalıştı ancak içeren belge (genellikle bir tarayıcıdaki bir HTML belgesi) erişiminizin olmadığı bir sanal alandan. İçeren belgede allowScriptAccess="always" öğesini belirterek bu durumu önleyebilir.
  • SWF dosyanız, HTML dosyasının ve SWF dosyasının etki alanları eşleşmediğinde allowScriptAccess öğesini "none" değerine veya"sameDomain" değerine ayarlayan bir HTML sayfasında bulunuyorsa "_self", "_top" veya "_parent" özel pencerelerinde gezinemezsiniz.
  • Dosya sistemine sahip yerel sanal alanında bulunan bir SWF dosyasından, varsayılan olmayan bir ada sahip bir pencerede gezinemezsiniz.
  • Ortak olarak ayrılmış bağlantı noktalarına bağlanamazsınız. Engellenen bağlantı noktalarının tam listesi için, bkz. "Ağ İletişimi API'lerini Kısıtlama", ActionScript 3.0 Geliştirici Kılavuzu.
 
Error — Fare olayı veya tuş basışı olayı gibi bir kullanıcı eylemine yanıt olarak yöntem çağrılmazsa. Gereksinim yalnızca Flash Player'daki içeriğe ve Adobe AIR'da uygulama dışı sanal alan içeriğine uygulanır.

İlgili API Öğeleri


Örnek  ( Bu örnek nasıl kullanılır? )

Şu örnek http://www.adobe.com URL'sini yeni bir pencerede açar ve kullanıcı oturumu hakkındaki, URLVariables nesnesinde yakalanan verileri web sunucusuna iletir.
package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLVariables;

    public class NavigateToURLExample extends Sprite {

        public function NavigateToURLExample() {
            var url:String = "http://www.adobe.com";
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "Your Name";
            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            try {            
                navigateToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}

Aşağıdaki örnek, navigateToURL() yöntemini kullanarak Flash Player'dan nasıl yeni tarayıcı açabileceğinizi gösterir. Örnek, ActionScriptExamples.com tarafından sağlanmıştır.
// Requires
// - Button symbol on Stage (or a display object, such as a MovieClip) with instance name "buttonSymbol"
//
buttonSymbol.addEventListener(MouseEvent.CLICK, buttonSymbol_click);
 
function buttonSymbol_click(evt:MouseEvent):void {
    var req:URLRequest = new URLRequest("http://www.adobe.com/");
    navigateToURL(req, "_blank");
}

Aşağıdaki örnekte, cihaz telefon tuş çeviricisinin belirli bir numarayla başlatılmasına yönelik sözdizimi gösterilmektedir.
var request:URLRequest = new URLRequest( "tel:+5555555555" );
navigateToURL( request );

Aşağıdaki örnekte, cihaz metin mesajı uygulamasının belirli bir alıcıyla başlatılmasına yönelik sözdizimi gösterilmektedir.
var request:URLRequest = new URLRequest( "sms:+5555555555" );
navigateToURL( request );

Aşağıdaki örnekte, Android Market uygulamasını başlatmaya yönelik sözdizimi gösterilmektedir. Arama parametresi Flash Player uygulamasını bulacak şekilde ayarlanır.
var request:URLRequest = new URLRequest( "market://search?q=pname:com.adobe.flashplayer" );
navigateToURL( request );

registerClassAlias

()işlev 
public function registerClassAlias(aliasName:String, classObject:Class):void

Dil Sürümü: ActionScript 3.0
Çalışma Zamanı Sürümleri: AIR 1.0, Flash Player 9, Flash Lite 4

Bir nesne Action Message Format (AMF) olarak kodlandığında nesnenin sınıfını (tür) korur. Bir nesneyi AMF'ye kodlarsanız bu işlev, nesnenin kodunu çözerken sınıfı kurtarabilmeniz için kendi sınıfına yönelik takma adı kaydeder. Bir kodlama bağlamı bir nesnenin sınıfına yönelik bir takma ad kaydetmemişse nesne bir anonim nesneye kaydedilir. Benzer bir şekilde, kod çözme bağlamı kayıtlı bir aynı takma ada sahip değilse, kodu çözülen veriler için anonim bir nesne oluşturulur.

LocalConnection, ByteArray, SharedObject, NetConnection ve NetStream öğelerinin her biri nesneleri AMF'ye kodlayan sınıflara birer örnektir.

Kodlama ve kod çözme bağlamlarının bir takma ad için aynı sınıfı kullanmasına gerek yoktur; destination sınıfının, source sınıfı tarafından serileştirilen tüm öğelere sahip olması durumunda isteyerek sınıfları değiştirebilirler.

Parametreler

aliasName:String — Kullanılacak takma ad.
 
classObject:Class — İlgili takma adla ilişkili sınıf.


Atar
TypeError — Her iki parametre de null olursa.

İlgili API Öğeleri


Örnek  ( Bu örnek nasıl kullanılır? )

Bu örnek ExampleClass için bir takma ad (com.example.eg) kaydetmek için registerClassAlias() işlevini kullanır. Sınıf için bir takma at kaydedildiğinden, nesne ExampleClass öğesinin bir örneği olarak seriden çıkarılabilir ve kod true değerini verir. registerClassAlias() çağrısı kaldırıldıysa, kod false değerini verir.
package {
    import flash.display.Sprite;
    import flash.net.registerClassAlias;
    import flash.utils.ByteArray;

    public class RegisterClassAliasExample extends Sprite {
        public function RegisterClassAliasExample() {
            registerClassAlias("com.example.eg", ExampleClass);
            var eg1:ExampleClass = new ExampleClass();
            var ba:ByteArray = new ByteArray();
            ba.writeObject(eg1);
            ba.position = 0;
            var eg2:* = ba.readObject();
            trace(eg2 is ExampleClass); // true
        }
    }
}

class ExampleClass {}

sendToURL

()işlev 
public function sendToURL(request:URLRequest):void

Dil Sürümü: ActionScript 3.0
Çalışma Zamanı Sürümleri: AIR 1.0, Flash Player 9, Flash Lite 4

Bir sunucuya bir URL isteği gönderir, ancak yanıtları yok sayar.

Sunucunun yanıtını incelemek için, URLLoader.load() yöntemini kullanın.

Ortak olarak ayrılmış bağlantı noktalarına bağlanamazsınız. Engellenen bağlantı noktalarının tam listesi için, bkz. "Ağ İletişimi API'lerini Kısıtlama", ActionScript 3.0 Geliştirici Kılavuzu.

SWF içeriğini barındıran HTML sayfasındaki object veembed etiketlerinin allowNetworking parametresini ayarlayarak bir SWF dosyasının bu yöntemi kullanmasını önleyebilirsiniz.

Flash Player 10 ve sonrasında, yükleme (POST gövdesi içinde "content-disposition" başlığında "filename" parametresiyle belirtilir) içeren çok bölümlü bir Content-Type (örneğin, "multipart/form-data") kullanırsanız, POST işlemi, yüklemelere uygulanan güvenlik kurallarına tabidir:

  • Fare tıklatma veya tuş basışı gibi kullanıcı tarafından başlatılan bir eyleme yanıt olarak POST işleminin gerçekleştirilmesi gerekir.
  • POST işlemi etki alanları arasıysa (POST hedefi, POST isteğini gönderen SWF dosyasıyla aynı sunucuda değilse), hedef sunucunun etki alanları arası erişime izin veren bir URL ilke dosyası sağlaması gerekir.

Ayrıca çok bölümlü herhangi bir Content-Type için sözdiziminin geçerli olması gerekir (RFC2046 standartlarına göre). Sözdizimi geçersiz görünüyorsa, POST işlemi, yüklemelere uygulanan güvenlik kurallarına tabi olur.

Güvenlikle ilgili daha fazla bilgi için, bkz. Flash Player Geliştirici Merkezi Konusu: Güvenlik.

Parametreler

request:URLRequest — Veri gönderilecek URL'yi belirten URLRequest nesnesi.


Atar
SecurityError — Güvenilmeyen yerel SWF dosyaları İnternet ile iletişim kuramıyor. Bu SWF dosyasını ağa sahip yerel veya güvenilir olarak yeniden sınıflandırarak bu durumu önleyebilirsiniz.
 
SecurityError — Ortak olarak ayrılmış bağlantı noktalarına bağlanamazsınız. Engellenen bağlantı noktalarının tam listesi için, bkz. "Ağ İletişimi API'lerini Kısıtlama", ActionScript 3.0 Geliştirici Kılavuzu.

Örnek  ( Bu örnek nasıl kullanılır? )

Şu örnek, kullanıcı oturumu hakkındaki, URLVariables nesnesinde yakalanan verileri http://www.etkiAlaniniz.com/application.jsp konumundaki uygulamaya iletir.
 package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
    import flash.net.sendToURL;

    public class SendToURLExample extends Sprite {

        public function SendToURLExample() {
            var url:String = "http://www.yourDomain.com/application.jsp";
            var variables:URLVariables = new URLVariables();
            variables.sessionId = new Date().getTime();
            variables.userLabel = "Your Name";

            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            trace("sendToURL: " + request.url + "?" + request.data);
            try {
                sendToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}

[ X ]Niçin İngilizce?
ActionScript 3.0 Başvurusu'ndaki içerik İngilizce görünür

ActionScript 3.0 Başvurusu'nun tüm bölümleri tüm dillere çevrilmemiştir. Bir dil öğesi çevrilmediğinde İngilizce görünür. Örneğin, ga.controls.HelpBox sınıfı hiçbir dile çevrilmez. Bu nedenle, başvurunun Türkçe versiyonunda ga.controls.HelpBox sınıfı İngilizce görünür.