Makale Özeti

Her Silverlight projesinde yer alması şart olan Silverlight.js JavaScript dosyası içerisinde saklı olan JavaScript fonksiyonlarını ve kullanımlarını incelediğimiz bu makalede createObject, createObjectEx ve isInstalled metodlarının kullanımına göz atacağız.

Makale

Her Silverlight projesinde yer alan en önemli dosyalardan biri Silverlight.js dosyasıdır. Bu dosya içerisinde özünde üç farklı JavaScript fonksiyonu tanımlanmıştır. Bunlar createObject, createObjectEx ve isInstalled fonksiyonlarıdır. Bu fonksiyonlardan createObjectEx yarattığımız her yeni Silverlight projesinde otomatik olarak kullanılan bir fonksiyondur. Bu makalemiz boyunca bu fonksiyonlarla yapabileceklerimize ve Silverlight.js dosyasının derinliklerine ineceğiz.

createObject ve createObjectEx Metodları

Her iki metod da aslında aynı işi yapıyor. Arada tek farkı createObject metodu aldığı parametreleri tek tek alırken createObjectEx metodu bir JSON dizisi olarak alıyor olması. Gelin hızlıca aldıkları parametrelere ve anlamlarına bir göz atalım.

  • Source: Silverlight animasyonuna yüklenecek olan XAML kaynağına ait bir adres veya sayfa içi blok ID'si alabilir.
  • Parent: Silverlight animasyonunun sayfada içerisine yerleştirileceği HTML elementinin ID bilgisini alır.
  • ID: Sayfadaki Silverlight animasyonunun adı olacak olan ID bilgisini alır. Bu ID sayfadaki başka bir HTML elementi tarafından kullanılmamış olmalıdır.
  • Properties : Silverlight animasyonu ile ilgili genişlik, yükseklik, fon rengi gibi özellikleri bir dizi olarak alır.
  • Events: Silverlight animasyonu ilk yaratılırken bağlanabilecek JavaScript durum fonksiyonlarının tanımlandığı yerdir. Tanımlanabilen durumlar onLoad ve onError durumlarıdır.
  • initParam: Kullanıcı tarafından gerektiğinde tanımlanan parametrelerdir.
  • Context: Kullanıcı tarafından gerektiğinde aktarılabilen ve onLoad duruma aktarılacak olan bir parametredir.

  Silverlight.createObjectEx({

    source: "Page.xaml",

    parentElement: document.getElementById("silverlightControlHost"),

    id: "SilverlightControl",

    properties: {

      width: "100%",

      height: "100%",

      version: "1.0"

    },

    events: {

      onLoad: Silverlight.createDelegate(scene, scene.handleLoad)

      }

    }

createObjectEx Metodu kullanım örneği.

  Silverlight.createObject(

    "Page.xaml",

    document.getElementById("silverlightControlHost"),

    "SilverlightControl",

    {

      width: "100%",

      height: "100%",

      version: "1.0"

    },

    {

      onLoad: Silverlight.createDelegate(scene, scene.handleLoad)

      }

    }

createObject Metodu kullanım örneği.

Yukarıda iki metod arasındaki kullanım farkını daha net bir şekilde görebilirsiniz. Her iki metod içerisinde de Properties listesi bir JSON listesi olarak aktarılıyor. Şimdi gelelin bu liste içerisinde neleri tanımlayabiliyor olduğumuza.

  • Width: Silverlight nesnesinin genişliğini belirler. Sabit bir piksel değeri olabileceği gibi bir yüzde değeri de içerebilir.
  • Height: Silverlight nesnesinin yüksekliğini belirler. Sabit bir piksel değeri olabileceği gibi bir yüzde değeri de içerebilir.
  • background: Silverlight nesnesinin fon rengini belirler. Varsayılan değeri null şeklindedir ve bu durum fon renginin beyaz olmasına neden olur.
  • isWindowless: Silverlight nesnesinin sayfa içerisinde nesnelerden bağımsız olarak yerleştirilebilmesini sağlar. True değeri aktarıldığında nesnenin background değeri artık şeffaflık da içerebilir. Silverlight animasyonu önüne HTML kontrollerini overlay koyabilmek için de bu teknik kullanılır.
  • frameRate: Silverlight nesnesinin maksimum gösterebileceği saniyede kare sayısını sınırlar. Desteklenen en yüksek sayı 64 şeklindedir. Varsayılan değer 24'tür.
  • inplaceInstallPrompt: Değeri true olduğunda standart Silverlight yükleme görseli yerine kullanıcı sözleşmesine de link içeren bir görsel kullanılır. Böylece kullanıcı Microsoft web sitesine yönlenmeden doğrudan Plug-In'i yüklemeye başlayabilir.
  • version: Silverlight animasyonunun çalıştırılabilmesi için istemcide yüklü olması gereken minimum Silverlight Plug-In sürümünü belirler.
  • ignoreBrowserVer: Silverlight animasyonu yüklenmeden önce tarayıcının Silverlight destekleyip desteklemediğinin kontrol edilmemesini sağlar. Varsayılan değeri false şeklindedir.
  • enableHtmlAccess: Silverlight animasyonu içerisindeki nesnelerin animasyon dışındaki sayfadaki HTML elementlerine ulaşıp ulaşamayacağını belirler. Varsayılan değeri true şeklindedir.

isInstalled

Otomatik kontrol işlemlerinin yanı sıra isterseniz kendi kontrol kodunuzu yazarak Silverlight.js içerisindeki isInstalled metodunu da kullanabilirsiniz. Böylece istemci tarafında hangi Silverlight Plug-In'in yüklü olduğunu görebilirsiniz.

    if(Silverlight.isInstalled("1.0"))

    {

      createSilverlight();

    }

    else

    {

      alert("AMAN TANRIM! Silverlight yüklü değil!!");

    }

Yukarıda gördüğünüz kod ile Silverlight Plug-In'in 1.0 sürümünün yüklü olup olmadığı kontrol ediyoruz. Eğer yüklü değilse uygun bir uyarı mesajı :) gösteriyoruz. Farklı senaryolarda bu noktada kullanıcıya farklı görsel uyarılar gösterilebilir.

Silverlight.js tarafında detaylar bu kadar. Hepinize kolay gelsin.

Daron Yöndem
MCT, MCPD, MCITP, MCTS, MCSD, MCAD
MCDBA, MCP, ACP, ICSD, IEL'03
http://daron.yondem.com