第一步:在HTML頁面加入Javascript引用
這步主要是要在HTML頁面中插入Silverlight.js和createSilverlight.js這兩個檔案的引用,並建立一個HTML元素來作為silverlight外掛程式的宿主。
Silverlight.js是跨平台瀏覽所需要的一個輔助性檔案,你可以在Silverlight 1.0 SDK的Tools目錄找到。
首先開啟HTML頁面並在<head>部分添加下欄標籤:
Java代碼
- <script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript" src="Silverlight.js"></script>
再建立一個空白的createSilverlight.js,我們隨後會用到這個檔案。在你的HTML頁面中同樣也添加這個指令碼的引用,如下:
Java代碼
- <script type="text/javascript" src="createSilverlight.js"></script>
<script type="text/javascript" src="createSilverlight.js"></script>
最後得到這樣一個HTML頁面:
Java代碼
- <!DOCTYPE html PUBLIC
- "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <title>A Sample HTML page</title>
- <script type="text/javascript" src="Silverlight.js"></script>
- <script type="text/javascript" src="createSilverlight.js"></script>
- </head>
- <body>
- </body>
- </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>A Sample HTML page</title> <script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript" src="createSilverlight.js"></script> </head> <body> </body></html>
第二步 建立HTML宿主要元素和初始化段
在HTML檔案中添加下面三行就可以建立用來呈現Silverlight內容的HTML宿主要元素,
Java代碼
- <!-- Where the Silverlight plug-in will go-->
- <div id="mySilverlightPluginHost">
- </div>
<!-- Where the Silverlight plug-in will go--><div id="mySilverlightPluginHost"></div>
你可以根據需要修改<div>標記的ID。重複上面的步驟就可以在同一頁面內建立多個SilverLight的執行個體,不過要保證ID是唯一的。
建立初始化段:在剛添加的HTML標記之後加入下面的指令碼。
Java代碼
- <script type="text/javascript">
- // Retrieve the div element you created in the previous step.
- var parentElement =
- document.getElementById("mySilverlightPluginHost");
- // This function creates the Silverlight plug-in.
- createMySilverlightPlugin();
- </script>
<script type="text/javascript"> // Retrieve the div element you created in the previous step. var parentElement = document.getElementById("mySilverlightPluginHost"); // This function creates the Silverlight plug-in. createMySilverlightPlugin(); </script>
對於頁面中有多個SilverLight執行個體,則需重複上述步驟多次。你可以使用名稱唯一的函數,或者你使用一個函數然後用唯一的ID來作為參數來建立這些執行個體。同時要保證每段指令碼都緊跟在相關的DIV元素之後。
現在我們得到下面的html
Java代碼
- <!DOCTYPE html PUBLIC
- "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <title>A Sample HTML page</title>
- <script type="text/javascript" src="Silverlight.js"></script>
- <script type="text/javascript" src="createSilverlight.js"></script>
- </head>
- <body>
- <!-- Where the Silverlight plug-in will go-->
- <div id="mySilverlightPluginHost">
- </div>
- <script type="text/javascript">
- // Retrieve the div element you created in the previous step.
- var parentElement =
- document.getElementById("mySilverlightPluginHost");
- // This function creates the Silverlight plug-in.
- createMySilverlightPlugin();
- </script>
- </body>
- </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>A Sample HTML page</title> <script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript" src="createSilverlight.js"></script> </head> <body> <!-- Where the Silverlight plug-in will go--> <div id="mySilverlightPluginHost"> </div> <script type="text/javascript"> // Retrieve the div element you created in the previous step. var parentElement = document.getElementById("mySilverlightPluginHost"); // This function creates the Silverlight plug-in. createMySilverlightPlugin(); </script> </body></html>
第三步:定義建立函數來初始化外掛程式的執行個體
開啟第一步建立的 createSilverlight.js 並添加下面的JavaScript函數。
Java代碼
- function createMySilverlightPlugin()
- {
- Silverlight.createObject(
- "myxaml.xaml", // Source property value.
- parentElement, // DOM reference to hosting DIV tag.
- "mySilverlightPlugin", // Unique plug-in ID value.
- { // Per-instance properties.
- width:'300', // Width of rectangular region of
- // plug-in area in pixels.
- height:'300', // Height of rectangular region of
- // plug-in area in pixels.
- inplaceInstallPrompt:false, // Determines whether to display
- // in-place install prompt if
- // invalid version detected.
- background:'#D6D6D6', // Background color of plug-in.
- isWindowless:'false', // Determines whether to display plug-in
- // in Windowless mode.
- framerate:'24', // MaxFrameRate property value.
- version:'1.0' // Silverlight version to use.
- },
- {
- onError:null, // OnError property value --
- // event handler function name.
- onLoad:null // OnLoad property value --
- // event handler function name.
- },
- null); // Context value -- event handler function name.
- }
function createMySilverlightPlugin(){ Silverlight.createObject( "myxaml.xaml", // Source property value. parentElement, // DOM reference to hosting DIV tag. "mySilverlightPlugin", // Unique plug-in ID value. { // Per-instance properties. width:'300', // Width of rectangular region of // plug-in area in pixels. height:'300', // Height of rectangular region of // plug-in area in pixels. inplaceInstallPrompt:false, // Determines whether to display // in-place install prompt if // invalid version detected. background:'#D6D6D6', // Background color of plug-in. isWindowless:'false', // Determines whether to display plug-in // in Windowless mode. framerate:'24', // MaxFrameRate property value. version:'1.0' // Silverlight version to use. }, { onError:null, // OnError property value -- // event handler function name. onLoad:null // OnLoad property value -- // event handler function name. }, null); // Context value -- event handler function name.}
這個指令碼裡包含許多你想定製的參數,比如外掛程式的長寬(也可以用百分比), 包含呈現內容的XAML檔案名稱, 是否使用Windowsless模式。
在同一頁面裡如果有多個Silverlight外掛程式,則要為每一個建立一個新的函數。或者比較簡單的建立一個帶參數的函數,然後根據外掛程式的ID分別調用不同的代碼。
第四部 建立Silverlight呈現內容。
現在HTML檔案已經配置完畢,該建立呈現內容了。
在這個HTML所在的目錄下建立一個名叫"myxaml.xaml"的空白檔案。如果你在上一步使用了不同的檔案名稱,記得與之匹配。
如果SliverLight項目要進行事件處理,或者與代碼動態產生,或者與使用者互動,它需要一些額外的javascript指令碼,並在HTML頁面中添加引用。下面的例子裡我們引用了一個叫my-script.js的指令碼
Java代碼
- <script type="text/javascript" src="my-script.js"></script>
<script type="text/javascript" src="my-script.js"></script>
整個html如下:
Java代碼
- <!DOCTYPE html PUBLIC
- "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <title>A Sample HTML page</title>
- <script type="text/javascript" src="Silverlight.js"></script>
- <script type="text/javascript" src="createSilverlight.js"></script>
- <script type="text/javascript" src="my-script.js"></script>
- </head>
- <body>
- <!-- Where the Silverlight plug-in will go-->
- <div id="mySilverlightPluginHost">
- </div>
- <script type="text/javascript">
- // Retrieve the div element you created in the previous step.
- var parentElement = document.getElementById("mySilverlightPluginHost");
- createMySilverlightPlugin();
- </script>
- </body>
- </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>A Sample HTML page</title> <script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript" src="createSilverlight.js"></script> <script type="text/javascript" src="my-script.js"></script> </head> <body> <!-- Where the Silverlight plug-in will go--> <div id="mySilverlightPluginHost"> </div> <script type="text/javascript"> // Retrieve the div element you created in the previous step. var parentElement = document.getElementById("mySilverlightPluginHost"); createMySilverlightPlugin(); </script> </body></html>
建立多個外掛程式須知:
建立多個外掛程式只需要重複上面的2,3,4步驟。
每個宿主的<div>標籤需要有唯一的標示。
每一段初始代碼必須緊跟在對應的<div>標籤之後。
每個外掛程式的ID參數也必須是唯一的。