生活随笔
收集整理的這篇文章主要介紹了
用C#编写网页小应用程序(Applet)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學過Java的朋友可能都聽說過Java的歷史:當初Java是為機頂盒設備和手持設備設計的,可惜理念在當時太朝前,結果沒有被人所接受,于是Java的創始人James Gosling想到在網絡上碰碰運氣,當時吸引大家眼球的就是用Java編寫的一個Applet,早期Java的應用很多時用來編寫Applet,后來慢慢發展到J2ME/J2SE/J2EE三個分支。
現在RIA(Rich Internet Application,富互聯網應用系統)方面已經是Flash和sliverlight的天下了,所以微軟推出C#的時候沒有對類似Applet這樣的網頁小應用程序的支持,不過利用.net我們還是可以做出一些類似于Applet的網頁小應用程序來。當然,就像Java編寫的Applet需要客戶端安裝相應的JRE一樣,我們用C#編寫的小網頁應用程序也需要客戶端安裝相應版本的.net framework,否則網頁中小程序是沒有辦法正常運行的。
說明:寫這個程序只為娛樂,好像沒有太多實際用途,下面的效果其實用Flash或者sliverlight很將簡單就實現了。
?
且看一個在網頁上不停跳動的小球的代碼:
using ?System;using ?System.Collections.Generic;using ?System.ComponentModel;using ?System.Data;using ?System.Drawing;using ?System.Drawing.Drawing2D;using ?System.Drawing.Imaging;using ?System.Text;using ?System.Windows.Forms;using ?System.Threading;namespace ?BallGame{ ???? ???? ???? ???? ???? ???? ???? ???? ????public ?class ?BallControl?:?Control ????{ ????????private ?Rectangle?ballRegion?=?new ?Rectangle(0,?0,?50,?50); ????????private ?Thread?thread; ????????private ?Image?image; ????????private ?int ?speedX?=?4; ????????private ?int ?speedY?=?6; ????????public ?BallControl() ????????{ ????????????ClientSize?=?new ?Size(200,?300); ????????????BackColor?=?Color.Gray; ????????????thread?=?new ?Thread(new ?ThreadStart(Run)); ????????????thread.Start(); ????????} ????????protected ?override ?void ?OnPaint(PaintEventArgs?e) ????????{ ????????????if ?(image?!=?null ) ????????????{ ????????????????e.Graphics.DrawImage(image,?0,?0); ????????????} ????????} ???????? ???????? ???????? ????????public ?void ?Run() ????????{ ????????????while ?(true ) ????????????{ ????????????????image?=?new ?Bitmap(ClientSize.Width,?ClientSize.Height); ????????????????Graphics?g?=?Graphics.FromImage(image); ????????????????g.FillEllipse(Brushes.Blue,?ballRegion); ????????????????g.Dispose(); ????????????????if ?((ballRegion.X?<?0)?||?(ballRegion.X?+?ballRegion.Width?>=?ClientSize.Width)) ????????????????{ ????????????????????speedX?=?-speedX; ????????????????} ????????????????if ?((ballRegion.Y?<?0)?||?(ballRegion.Y?+?ballRegion.Height?>=?ClientSize.Height)) ????????????????{ ????????????????????speedY?=?-speedY; ????????????????} ????????????????ballRegion.X?+=?speedX; ????????????????ballRegion.Y?+=?speedY; ????????????????Invalidate(); ????????????????Thread.Sleep(300); ????????????} ????????} ????} } 將其編譯成dll文件,用如下命令(注意用.net framework的命令行,否則需要設置環境變量): csc /t:library /out:BallGame.dll BallGame.cs 這樣得到BallGame.dll 文件,再建立一個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" > < head > < meta ?http-equiv ="Content-Type" ?content ="text/html;?charset=gb2312" ?/> < title > C#編寫Applet之彈球</ title > </ head > < body > < object ?id ="t" ?classid ="BallGame.dll#BallGame.BallControl"height ="200"?width ="300" ?VIEWASTEXT> </ object > </ body > </ html > 下面是程序的運行效果: 用C#編寫網頁小應用程序要注意的幾點: 1、編寫的類應該繼承自Control類; 2、應該程序代碼編譯成dll類庫; 3、在網頁中通過<object></object>的形式嵌入,classId采用classid="dll的url地址#命名空間.類名"的形式。如示例中classid ="BallGame.dll#BallGame.BallControl"中BallGame.dll是放在網頁同一目錄下,BallControl類處在BallGame命名空間下。需要注意的是,好像沒有什么辦法來在程序中獲取網頁上設置的顯示尺寸,所以要保證網頁中設置的寬度和空間的尺寸一直。 有興趣的朋友可以到:http://www.netskycn.com/ballgame.html和http://www.netskycn.com/taiji.html查看我編寫的兩個用C#編寫的網頁小應用程序的運行效果。
轉載于:https://www.cnblogs.com/zhoufoxcn/archive/2008/08/01/2515702.html
總結
以上是生活随笔 為你收集整理的用C#编写网页小应用程序(Applet) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。