始めよう!Silverlight

第2回 SDKを導入しよう

この記事を読むのに必要な時間:およそ 4 分

Silverlight.createObjectEx関数の解説

Silverlight.createObjectEx関数は前述したようにブラウザに対応したSilverlightプラグインを書きだすための要素(object要素やembed要素)を出力します。引数には今回のサンプル以外にも様々な値を指定できます。詳細を以下に記載します。


Silverlight.createObjectEx({
//xamlの位置
source : “app.xaml”,
//Silverlightを出力するDOMでの親要素
parentElement : document.getElementById(“agContainer”),
//プラグインを書きだす要素のID属性の値
id : ”agControl”,
properties : {
//プラグインを書きだす要素のwidth(文字列)
width : “1024”,
//プラグインを書きだす要素のheight(文字列)
height:'530',
//対応したプラグインがない場合に
//インストールプロンプトを表示するかどうか
inplaceInstallPrompt:false,
//プラグインの背景色
background:'#FFFFFF',
//ウィンドウレスで表示するかどうか(文字列)
isWindowless:”false”,
//最大フレームレート(文字列)
framerate:”24”,
//表示するSilverlightのバージョン(文字列)
version:”1.0”
},
  events:{
//エラーが発生した場合に呼び出される関数
onError:null,
//ロードされた時に呼び出される関数
    onLoad:null
},
//初期パラメーター(文字列)
initParams:”foo-,bar-”,
//onLoadイベントハンドラーの第2引数に渡される値
context:null
});

Silverlight.createObjectEx関数はその名に⁠Ex⁠とついていることから,Silverlight.createObject関数の拡張版です。Silverlight.createObject関数はまったく同一の機能を持つ関数ですが,少しだけ書き方が異なります。

Silverlight.createObject(
  "plugin.xaml",
  parentElement,
  "myPlugin",
  {
    width:'1024',
    height:'530',
    inplaceInstallPrompt:false, 
    background:'white', 
    isWindowless:'false', 
    framerate:'24', 
    version:'1.0' 
  },
  {
    onError:null, 
    onLoad:null 
  },
  null, 
  null
);

Silverlight.createObject関数には引数を並び順で指定するようになっており,名前で指定することができません。Silverlight.createObjectEx関数のほうがより説明的な記述ができるようになっています。そのため見た目の分かりやすさという観点から,筆者はSilverlight.createObjectEx関数のほうを好んで使います。どちらを使うかは好みによるところが大きいのですが,チームで開発する場合などは統一する必要があるでしょう。

次回予告

今回はSilverlight1.0のSDKを導入して,前回のサンプルをSilverlight.jsを使う,またXAMLを外部ファイル化する形に書き換えました。それによりSilverlightの開発における基本的な構成になりました。また,その過程でSilverlight.jsを使っても最終的に作成されるものは前回と同様にプラグインを表示するobject要素(またはembed要素)だということも見ました。

次回は,Silverlight1.0を使って簡単な動きのあるアプリケーションを作成します。お楽しみに。

著者プロフィール

丸山和秀(まるやまかずひで)

株式会社アークウェイ システムクリエイター。趣味はドラム。社会人になりたてのころは職業はドラマーだと豪語していたが,いつのまにかシステム開発の楽しさにのめりこみ,仕事内容が職業になっていた。パッケージベンダにて金融向けパッケージソフトの開発を行うSEを経て現職へ。現在は研究開発としてRIAに取り組み中。