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


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

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


JavaScript 的重生

2007‧0708
 
一開始是 HTML 擅場,再來是加上了 256 色的 Gif 動畫,後來是 DHTML 的年代 ( DHTML 說穿了就是 HTML + JavaScript )
雖然能讓網頁活蹦亂跳,但 JavaScript 畢竟不是很好學,Gif 動畫既醜檔案又大
於是乎更能活蹦亂跳、檔案又小的 Flash 出現了
 
Flash 一開始只是為了以向量動畫來取代笨笨的 Gif 動畫,所以 ActionScript 也只是聊備一格、做一些簡單的控制而已
於是乎一切就在當初考量不周 ( 沒人想到 Flash 後來會爆紅 ) 的基礎開始發展 ...
 
Flash 被迫要有更多的控制功能,於是乎 ActionScript 就越來越不向舊相容
Flash 被迫要能與 Server / DataBase 連接,於是乎 ActionScript 的長相就越來越奇怪
 
HTML 越來越難用 ( 天生受限、功能不足 ),故 XML 出現了
Flash 也越來越難用了 ( 雖然 Flash 有串流功能,但 SWF 檔是很老舊的架構:一樣是天生受限、功能不足 ),故 Ajax 出現了
Ajax ( Asynchronous JavaScript And XML, 非同步的 JavaScript 和 XML ) 簡單來說就是 JavaScript + XML,是個半新半舊的東東
 
類 - Ajax 的觀念早就存在許久了:網路聊天室在發言後不必 Refresh,就是這種觀念
Google Maps 更是把 Ajax 推向大眾的濫觴
 
 
總的來說:
 
‧HTML 的架構太老舊了,所以需要 XML ( 今天的網路環境還只是停留在 HTML → XML 的過渡期 )
 
‧DHTML ( HTML + JavaScript ) 不易於編製,所以 JavaScript 在 Flash 的興起後,幾乎被淘汰
 
‧Flash 的架構也有點舊了,所以 Ajax 出現了 ( JavaScript 算是第一次重生 )
 
‧微軟的 VBScript 沒人用,故微軟強化 JavaScript 為 Jscript ( 與 JavaScript 相容,但是架構更大 )
 並且用在 ASP.NET AJAX ( JavaScript 算是第二次重生 )
 
‧Silverlight 1.0 目前先支援 JavaScript ( JavaScript 第三次重生了 )
 如此可以保障您投資在 Script 上的時間,不會像 ActionScript 一樣地隨時被犧牲
 接著在 Silverlight 1.1 起,會支援 VB、C#、Ruby、Python、VBx、…
 Server 端更支援 ASP.NET、ASP.NET AJAX、PHP
 
 
 
再看一次這個 全螢幕 的小範例:( 呼叫了外部的串流視訊檔之後,就以 JavaScript 來控制按鍵、動畫與全螢幕 )
 
function media_stop(sender, args) { sender.findName("media").stop(); }

function media_pause(sender, args) { sender.findName("media").pause(); }

function media_begin(sender, args) { sender.findName("media").play(); }

function canvas_loaded(sender, args)
{ var control = sender.getHost(); control.content.onfullScreenChange = "onFullScreenChanged"; }

function toggle_fullScreen(sender, args)
{ var silverlightControl = sender.getHost(); silverlightControl.content.fullScreen = !silverlightControl.content.fullScreen; }

function onFullScreenChanged(sender, args)
{
var silverlightControl = sender.getHost();
var buttonPanel = sender.findName("buttonPanel");
if (silverlightControl.content.fullScreen == true)
{ buttonPanel.opacity = 0; }
else
{ buttonPanel.opacity = 1; }
var mediaPlayer = sender.findName("media");
mediaPlayer.width = silverlightControl.content.actualWidth;
mediaPlayer.height = silverlightControl.content.actualHeight;
}
 
 
 
使用 Flash,您將只有一種 Script 可用:ActionScript
Flash 與 Server 端的整合不易:只能選擇 Adobe Flex 等產品
 
使用 Silverlight,您可以挑選任何您學過且順手的 Script
Silverlight 與 Server 端的整合,更是在一開始架構時就考慮進去了

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