前回Silverlight.jsから
Silverlight.createObjectを利用して
Silverlightのコンテンツを表示させる方法を紹介した。
前回は必要最低限度の情報だけだったが
今回はより多くの情報を紹介したい。
前回は
Silverlight.createObjectの引数は全部で5つと紹介したが
省略可能なものも含めると全部で7つのパラメーターが存在する。
Silverlight.createObject(
XAMLファイルのパス,
HTML内の表示位置,
オブジェクト名,
イニシャライズオブジェクト,
エラー処理等のオブジェクト,
引渡しパラメーター(文字列)(省略可),
コンテキストストリング(省略可)
)
これら合計7パラメーターが非省略時の全てで
場合によって利用することとなる。
Silverlight.createObjectは熟練するとコーディング量は
こちらの方が少ないので、悪くはないが
パタメーターをより認識しやすい形式に変更した
Silverlight.createObjectExという関数があるので
今回はそちらを紹介したい。
Silverlight.createObjectExは
Silverlight.createObjectと異なりパラメーターは1つのみとなる。
ただし1つだけの引数はオブジェクトの形式で引渡し、
そのオブジェクトのプロパティ名を決められた名前にすることで
実行が可能となる。サンプルを見てもらえれば
可読性の高さをお分かりいただけると思う。
01:<html>
02:<head>
03:<script type="text/javascript" src="js/Silverlight.js"></script>
04:<script language="JavaScript">
05:<!--
06: function init(){
07: Silverlight.createObjectEx(
08: {
09: source:"test.xaml",
10: parentElement:document.getElementById("helloworld"),
11: id:"helloworld",
12: properties:
13: {
14: width:'500',
15: height:'450',
16: inplaceInstallPrompt:false,
17: background:'#FF0000FF',
18: isWindowless:'false',
19: framerate:'24',
20: version:'1.0',
21: ignoreBrowerVer:false,
22: enableHtmlAccess:true
23: },
24: events:{onError:null, onLoad:null},
25: initParams: "param data string",
26: context:"context data string "
27: }
28: );
29: }
30://-->
31:</script>
32:</head>
33:<body onLoad="javascript:init();">
34:<center>
35:<div id="helloworld"></div>
36:</center>
37:</body>
38:</html>
前回紹介しなかったパラメーター等を簡単に紹介したい。
inplaceInstallPrompt:
Silverlightプラグインがインストールされていなかった場合に
表示される、ダウンロード先のリンクに詳細説明を表示させるか
どうか。trueなら詳細を表示する。デフォルトはfalse
background:
8桁指定の場合は初めの2桁はアルファチャンネルとなる。
isWindowlessをtrueなどにしてアルファチャンネルを00にすると
背景が完全に透過する。
isWindowless:
ウィンドウレス・コントロールとして表示するかを指定。
SilverlightオブジェクトのSettings.Windowlessプロパティに相当
frameRate:
フレームレート。デフォルト24 最大64
ignoreBrowserVer:
実行するWebブラウザのタイプやバージョンの確認を無視するか指定
enableHtmlAccess:
コンテンツがHTMLのコンテンツへアクセスすることを許可するか指定。
SilverlightオブジェクトのSettings.EnableHtmlAccessプロパティに相当
・完成形イメージ
http://www.iretj.com/~ak/study/silverlight/SilverlightCreateObjectEx.html