這篇是canvas初步實做,前文介紹詳見HTML5新嘗試 -- canvas標籤(1)
在下面,我將用<!DOCTYPE>宣告一個HTML5網頁,裡面包含簡單的html, head, body標籤,head中import進HTML5的框架之一modernizr-1.6.min.js檔案(按此下載),這是必須的,並且在body中放入一個簡單的canvas標籤。然而為免沒有支援HTML5 canvas的瀏覽器(例如你猜的到的:IE5前後版本)會看到一無所有的網頁造成使用者有困惑,在canvas標籤之間放入一串文字"Your browser cannot support the canvas!"。
是啊,雖然我們不能控制瀏覽器版本,但我們可以控制網頁使用者XD
<!DOCTYPE html> <html lang = "zh-TW"> <head> <meta charset = "BIG5"> <title></title> <script src = "modernizr-1.6.min.js"></script> <style> #c1{width:500px; height:300px; border:solid 1px red;} div{position:absolute; top:50px; left:50px; border:solid 1px green;} </style> </head> <body> <div> <canvas id="c1">Your browser cannot support the canvas!</canvas> </div> </body> </html>
在此我只放入了簡單的css樣式來凸顯我們現在的canvas圖紙範圍,待會的javascript畫圖動作都只能在其中完成。
紅框中為圖紙範圍 |
準備好了,現在我把畫圖的動作放進另一個hi.js檔中import進入我們的網頁。
<!DOCTYPE html> <html lang = "zh-TW"> <head> <meta charset = "BIG5"> <title></title> <script src = "modernizr-1.6.min.js"></script> //加入下面這一行,import我自己寫的javascript檔"hi.js" <script src = "hi.js"></script> <style> #c1{width:500px; height:300px; border:solid 1px red;} div{position:absolute; top:50px; left:50px; border:solid 1px green;} </style> </head> <body> <div> <canvas id="c1">Your browser cannot support the canvas!</canvas> </div> </body> </html>
而我的hi.js中寫了下面的內容
window.addEventListener("load", eventWindowLoaded, false); var Debugger = function(){}; Debugger.log = function(message){ try{ console.log(message); }catch(exception){ return; } } function eventWindowLoaded() { canvasApp(); } function canvasSupport() { return Modernizr.canvas; } function canvasApp() { if(!canvasSupport()){ return; } var theCanvas = document.getElementById("c1"); var context = theCanvas.getContext("2d"); Debugger.log("Drawing Canvas"); function drawScreen(){ context.fillStyle = "#ffffaa"; context.fillRect (0, 0, 500, 300); context.fillStyle = "#000000"; context.font = "20px_sans"; context.textBaseline = "top"; context.fillText("hello, world", 195, 80); context.strokeStyle = "#000000"; context.strokeRect (5, 5, 490, 290); } drawScreen(); }
現在來看看剛剛空白的網頁變成怎樣了。
給了他一個hello, world的字(其實是圖)在那兒 |
Continue...
April 24th, 2012
shesee@Taipei
沒有留言:
張貼留言