2009年9月20日 星期日

傳說中的Silverlight 3多點觸控(Multi-Touch)應用

SL3推出已久,傳說中,SL3支援Windows 7的Multi-Touch功能,為何是『傳說中』呢? 因為一直以來苦無Touch Screen設備可以讓我測試,害我在present Silverlight Application時,總是有那麼點小小的遺憾,這個心頭的遺憾始終揮之不去...(不是我不去買,是市面上還買不到通過W7認證的螢幕,不過大家別擔心,馬上你就會看到支援W7的Touch設備將如雨後春筍般的出現啦)

可能是微軟聽到了我在連續四場研討會的小小抱怨(...ㄟ...是懇求),終於肯弄台Touch Screen借我來玩玩,難得微軟這麼大發善心,此時不借更待何時,儘管當天要從遙遠的客戶處繞到微軟總部,但還是專程去了一趟...

周五,Touch Screen終於到手,回家第一件事情就是把塵封已久的Windows 7打開(是的,其實我W7早就灌好了很久,但是沒有Touch Screen始終讓我意興闌珊),把螢幕給接上去...怪怪,怎麼沒反應咧??? 東弄西弄,開始有畫面了(似乎觸控也work),只是怎麼解析度怪怪的,依照Anne跟我說的,只需要把螢幕接頭接上,插上USB就搞定啦???

研究了半天,原來根本不是Touch Screen的錯,Touch Screen還真的是接上去就可以用,原來是我剛灌好的Dell NB的W7顯卡驅動程式還沒安裝,導致無法輸出正確的訊號到Touch Screen,立刻到nVIDIA網站,下載,安裝,搞定。

嘿嘿嘿,接下來花了約莫1.5個小時,第一個Silverlight Multi-Touch應用程式完成!!! 底下是我寫好的第一個SL3 Multi-Touch應用程式範例,嘿,這應該是現階段少數可以用Multi-Touch控制的網站喔(有Windows 7+IE8+Touch Screen的朋友可以連上去測試一下Multi-Touch在Browser上執行的狀況):
http://blog.studyhost.com/BlogData/20090921/MultiTouchTestTestPage.html
PS.檔案很大是因為我用了一個MediaPlayer的控件,跟Multi-Touch無關...

但我想目前能測試的網友肯定不多,因為大家都還沒有Touch Screen,所以我拿攝影機錄製了一段Video,有興趣的朋友可以看看這段測試,你會看到我用SL做了一個簡單的網站,並且讓圖片、影片、圖表、資料等物件都可以透過Multi-Touch放大縮小,控制起來算是相當順暢(順暢度主要跟程式寫法有關,到是跟Hardware關係不大),詳細的Touch Screen實測報告容後再寫,如果我在TechDays的SL場次時間來得及,我會現場Demo一下(不保證一定來得及)。

總的來說,我拿到的這台Touch Screen蠻順的,真的是挺順,比起我過去用過的和聽說的都好很多,如果要我買我可能會買這種(而非那種All-In-One的PC或NB),只是大大一台螢幕攜帶比較不方便。(強烈降低我搬到TechDays Demo的意願)

而SL3要怎麼撰寫支援Multi-Touch的應用程式呢? 其實這部分一點也不困難,程式碼的部分我會在後天的TechDays和大家報告,同時在下一期的Run!PC雜誌和我後續的BLOG上會陸續和大家分享。^_^

嘿嘿,SL3...果然準備好了!

9 則留言:

勇震 提到...

老師,今天9/23在TechDays 2009聽到您精彩的課程,已讓我對Silverlight 3有了更深入的了解,但可能是因為今天的時間太趕了,許多程式碼都直接貼上您事先準備好的,在最後的時侯,好像有聽到關於Silverlight 3的部份,您可能會放在電子書中,不知您是會放在那一本書呢?所使用的語言是C OR VB呢?

匿名 提到...

董老師請問您一下,你的silverlight3.0是c#還是vb.net的呢?假如我沒有買2.0直接買3.0的是否會看得懂呢?會不會該講的基礎在3.0就都沒提到了呢?

David 提到...

SL3的書籍就是我在Blog首頁貼上的那本,請讀者需要特別注意的是,這本書是SL2的改版,整本書的紙本內容其實是原先SL2的內容,而SL3的部分則全部是以PDF檔案的形式收錄在DVD光碟中,再加上SL2, SL3的範例,以及SL2, SL3的教學影片等。

全書是以VB為主要的開發語言,如果您需要以C#為主的開發語言,我會有另外一本單就SL3內容的專書,是以C#/VB兩種語言同時撰寫的,不過這本專書並未包含SL2的部分,是單單只有SL3的新內容。

匿名 提到...

所謂的單就SL3的新書的意思是說,書本內容同時會包含C#和VB,又或者其中一種語言是以光碟來呈現呢?那新的專書的內容是和現在這本PDF的內容相同的嗎?

David 提到...

書籍內容會以VB呈現,光碟中會有C#和VB兩種不同的程式碼,而內容大約會比PDF多1/3,但完全不包含SL2的部分,也就是讀者需要有SL2的基礎才行。

承佑 提到...

HI 董老師
關於Multi-Touch,有兩點問題想請教您。
1. SL的多點觸控可支援到幾點?目前我看範例好像是2點,有可能支援到4點,甚至10點嗎 (在Multi-Touch LCD本身支援的情況下)?
2. 你覺得未來Multi-Touch的發展如何?會不會又是一個雷聲大雨點小的科技玩意? 對於一般商業環境,多點觸控能帶來什麼樣的改變? 現在是有環境、有系統,但好像沒有看到有殺手級的應用?
以上兩個問題,一個是比較技術性,另一個是比較概擴性的議題,就請老師有空時,再做回覆。謝謝。

David 提到...

to 承佑,
目前的multi-touch技術,只要device支援,在軟體面我們並沒有支援點數的限制,SL3所支援的Multi-touch,是透過一個collection傳回每一個被觸控的點的座標位置,因此可以取得Device所傳入的每一點。

而應用的部分,我會在下一期(應該是11月)的RunPC討論。

Mac 提到...

透過Google看到您的網頁。對多點觸控(Multi-Touch)程式的Demo覺得很有興趣,關於圖檔位置自由移動放大縮小如何實作,還有播放器的部分,是否為silverlight提供,以及網頁看起來有Live desktop的感覺,想請教一下開發所用到的技術或Lib是什麼?謝謝!!

David 提到...

to Mac,
圖檔位置自由移動是用了Silerlight 3中的Behaivor, 放大縮小是透過SL3中Scale變形機制,播放器的部分是MS expression Blend 3內建的Control, 網頁看起來有Live desktop的感覺也只是用SL中的Layout技巧,所用到的是微軟的Silerlight 3開發技術。^_^