一次解決您對 .NET Framework、WPF、WPF/E、Silverlight、XAML、XBAP、Expression Studio( Web / Design / Blend / Media)… 所有的疑問


台灣市面上的爛書,90% 以上都是抄自使用手冊 ( 英翻中 ?! ),要不就是每一本書的前 2 / 3 都差不多 凸 =..= 凸。於是乎【火星人】大神俺就佛心大發:

把比上述更多的東東,全都建在 Blogger 上 !  ★ 放心,內文都是中英文對照 ★ ( 這些東東實在是太新了,俺寫的也難免會有錯誤,所以會不斷修正之 )


<object>、<embed>、去除網頁控制項的虛線

2007‧0715
 
<object>(IE) 範例
 
如同在網頁中置入 Flash,一樣可以採 <object> 的方式來置入 Silverlight:( 僅適用於 IE )



    <object
    type="application/ag-plugin"
    id="myControl"
    width="300"
    height="225"

    <param name="background" value="#333333" />
    <param name="enableFramerateCounter" value="true" />
    <param name="enableHtmlAccess" value="true" />
    <param name="initParams" value="paramValue1, paramValue2" />
    <param name="maxFrameRate" value="30" />
    <param name="onError" value="myErrorHandler" />
    <param name="onLoad" value="onLoad" />
    <param name="source" value="Your.xaml" />
    <param name="windowless" value="true" />
    </object>




 
type="application/ag-plugin"
type ( 類型 ):定義 MINE 的類型《格式是字串》

id="myControl"
id ( 識別名稱 ):因為一個網頁裡面可以塞入一個以上的 Silverlight,故每個 Silverlight 都要有一個 唯一的 識別名稱《格式是字串》
 
width="300"
width ( 寬度 ):單位為 pixels《格式是整數》( 但也可以是百分比,如 40% )
 
height="225"
height ( 高度 ):同 width
 
 
除了上述 4 項之外,下述只需留意 Background 與 XAML 檔,其餘的僅供參考 ( 日後筆者還會針對每個參數詳述範例之 )
 
更詳盡的說明,可以參考微軟的 MSDN
 
 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
 
param ( parameter, 參數 )

param name="background" value="#333333"
background ( 背景色 ):,預數值是 null ( 空 ) ( or 沒有這段語法,一樣是白色 ) 《參數值是字串 or 16進位制》,詳見 色碼表
 
param name="enableFramerateCounter" value="true"
enableFramerateCounter ( 啟動動畫每秒格數的計數 ):會在瀏覽器的狀態欄中顯示,預設值是 false 《參數值是 true or false, 即 Boolean 》
 
param name="enableHtmlAccess" value="true"
enableHtmlAccess ( 啟動存取 HTML ):決定 Silverlight 中的內容是否可以存取瀏覽器的 DOM ( Document Object Model, 文件的物件模型 )
                    預設值是 true 《參數值是 Boolean 》
 
param name="initParams" value="paramValue1, paramValue2"
initParams ( 啟始時的參數 ):使用者定義的一組啟始 ( iniitial ) 參數 《參數值是字串》
 
param name="maxFrameRate" value="30"
maxFrameRate ( 每秒最多的動畫格數 ):一秒內最多的動畫格數,預設值是 24 《參數值是整數》
 
param name="onError" value="myErrorHandler"
onError ( 錯誤事件 ):JavaScript 的錯誤處理函數,預數值是 default_error_handler 《參數值是字串》
 
param name="onLoad" value="onLoad"
onLoad ( 載入事件 ):JavaScript 的事件處理函數,預數值是 null ( 空 ) 《參數值是字串》
 
param name="source" value="Your.xaml"
source ( 來源檔 ):即 XAML 檔 《參數值是字串》
 
<param name="windowless" value="true"
windowless ( 非一般視窗的呆板貌 ):windowless 很難解釋,想成是 Flash 的 wmode 就對了 ,預設值是 false 《參數值是 Boolean 》
 
 
 

 
 
 
<embed> 的方式:(適用於所有的 Browser,含 IE) 範例
 
與 <object> 相同,故不贅述了
 


    <embed
    type="application/ag-plugin"
    id="myControl"
    width="300"
    height="225"

    background="#333333"
    enableFramerateCounter="true"
    enableHtmlAccess="true"
    initParams="paramValue1, paramValue2"
    maxFrameRate="30"
    OnError="myErrorHandler"
    OnLoad="onLoad"
    source="Your.xaml"
    windowless="false"
    />




 
 

 
 
 
去除網頁中 Flash 的虛線
 
 
這是在網頁中置入 Flash 的標準長相:
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-TW" lang="zh-TW"> ← XHTML 宣告
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5" /> ← Meta ( 繁體 )
<title>Flash</title>
</head>
<body bgcolor="#ffffff"> ← 網頁底色
<!--影片中用到 URL--> ← 預留,非必要
<!--影片中用到文字--> ← 預留,非必要
<!-- saved from url=(0013)about:internet --> ← 非必要
↓ IE ActiveX control 開始 ↓
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="01" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="01.swf" /> ← swf 檔
<param name="quality" value="best" />
<param name="scale" value="noborder" />
<param name="wmode" value="transparent" /> ← wmode:可背景透明,與網頁融合
<param name="bgcolor" value="#ffffff" /> ← Flash 底色
</object>
↑ IE ActiveX control 結束 ↑
↓ Netscape Embed ↓
<embed src="01.swf" quality="best" scale="noborder" wmode="transparent" bgcolor="#ffffff" width="550" height="400" name="01" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</body>
</html>
 
 
 
可以精簡為:(embed 通吃所有的瀏覽器) 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>Flash</title>
</head>
<body bgcolor="#ffffff">
<embed src="01.swf" quality="best" scale="noborder" wmode="transparent" bgcolor="#ffffff" width="550" height="400" name="01" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</body>
</html>
 
 
 
如果要把 *.swf 檔嵌入網頁,只需要下述即可:
 
<embed src="swf 檔的 URL" quality="best" wmode="transparent" width="寬 ( pixels )" height="高 ( pixels )">
 
 
把上述的語法貼入 Blogger
Blogger 在 <embed …> 的後面要加上 </embed>,才可以符合 XHTML 的要求 :
<embed src="http://mars.blend.googlepages.com/004.swf" quality="best" wmode="transparent" width="469" height="485"></embed>
 
 
 ↖ 這是 Flash
↑ Flash 並無設底色,因為 wmode="transparent",所以 Flash 就會與網頁融合 ↑
 
如果是以 IE 來看,當滑鼠移到 Flash 上面去,就會出現虛線(以 GreenBrowser 來看,則無虛線)
 
 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
 
滑鼠移過來看看,虛線不見蛋了:
 
↖ 這是 Flash
 
去掉 Flash 虛線的方法有很多種,筆者採用了最簡單的方法:把 <embed> 語法的改寫成 JavaScript
( 商用市場還是以 IE 為主流,故筆者不考慮 / 也沒測試 FireFox 是否能支援本方法 )
 
 
下載唄:( 其中有背景圖,更易於看出 wmode 的效果 )
 

 
 
 

 
 
 
Silverlight 可否「既 embed、又沒有虛線、易於置入、可以貼入到 Blogger 中」?!
 
 
↖ 這是 Silverlight

 
 
 
語法非常簡單:( embed 語法改寫、沒有虛線、易於置入 )
 
‧先在 <head></head>中載入 JavaScript
 <script src="loadsilverlight.js" type="text/javascript"></script>
 
‧在網頁中置入 Silverlight
 <script language="JavaScript" type="text/javascript">LoadSilverlight("01.xaml",469,485,"application/ag-plugin")</script>
 
 ( 四個參數依序為:XAML 檔、寬、高、Plug-In,第 4 項不能修改之 )
 
 
下載唄:
  

筆者搞的一些小作品 筆者搞的 Flash 破解 Silverlight 俺搞的 30 首小曲子 ( 每首約花半個小時編曲 ) 在 PDF 檔嵌入 Flash ( 丑角與交趾陶的編製過程 ) IE-Based CD Title ( 筆者八百年前搞的 )