CreateJS第0章- Canvas基礎

最近網頁遊戲比較火,之前作過一些小遊戲,可是過段時間就都忘了,今天在這裏記錄一下學習過程,以備後用。
作網頁遊戲有不少種框架,我是flash程序用Adobe出品的CreateJS最容易。基本上繼承了flash的大概框架像stage,MovieClip,顯示列表等等。
CreateJS是什麼?
CreateJS 中包含五款工具:
EaselJS:用於 Sprites、動畫、向量和位圖的繪製,建立 HTML5 Canvas 上的交互體驗(包含多點觸控),同時提供 Flash 中的「顯示列表」功能。
TweenJS:一個簡單的用於製做相似 Flash 中「補間動畫」的引擎,可生成數字或非數字的連續變化效果。
SoundJS:一個音頻播放引擎,可以根據瀏覽器性能選擇音頻播放方式。將音頻文件做爲模塊,可隨時加載和卸載。
PrloadJS:幫助你簡化網站資源預加載工做,不管加載內容是圖形、視頻、聲音、JS、數據……
官網地址:html

CreateJS怎麼來的?
從2008年以來HTML5標準就一直修訂,修訂,修訂。當時的目的就是爲了增強網頁的表現能力。一經推出就一發不可收拾的改到如今。其中最具魅力的就是Canvas標籤,這個標籤讓網頁製做複雜的矢量圖能爲可能。隨着移動端智能手機,各類pad的流行Canvas的前程一片光明。雖然Canvas標準出來了,可是畢竟是制定框架只定義了基本的接口,用官方的API作動畫和遊戲費時費力,不是通常人可以接受的。隨後各類基於Canvas的框架如雨後春筍般的出現了。今天的主角CreateJS也就應景而生。CreateJS應用最多的地方應該是Flash轉換Canvas,從之前的Toolkit 工具箱到如今的cs CC直接集成轉換工具。下面講講HTML5的核心之一Canvas。canvas

Canvas能幹什麼
Canvas 直譯爲 畫布 固然就作動畫,做畫板用的。理論上說flash能幹什麼Canvas就能幹什麼。可是做爲一個新的標準,缺點也是很明顯的。
首先兼容性問題:IE9如下都不支持,光這一點Canvas想要流行起來至少的5年或者更長時間(IE6是2001年10月面世,至今已經10多年了依然僵而不死)。
其次更嚴重的兼容問題:硬件加速WebGL雖然出來時間不短了,可是也只有最新的瀏覽器才能支持。致命的是IE如今全部版本都不支持(好消息是前兩天微軟宣佈加入WebGL標準)。
說完缺點再說說優勢
Canvas表明了網頁的將來!夠唬人吧,的確如此。雖然如今有不少問題,性能也至關於flash的10年前的水平,畢竟是不用插件就能夠全平臺運行,並且愈來愈多的技術會向這裏靠攏。靠着互聯網這面大旗,前面的路會愈來愈寬。我我的認爲現階段完美的動畫解決方案是PC端Flash+移動端Canvas。瀏覽器

Canvas怎麼用
以上都是廢話,上代碼。
最最最基礎初始化app

<!DOCTYPE >
<html >
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{M}</title>
<style>
body,canvas{margin:0;padding:0;}
</style>
</head>
<body >
<script>
 
var canvas
var context
//初始化
function init(){
    canvas = document.createElement("canvas");//建立畫布
    context = canvas.getContext("2d");//獲取畫布的內容,這裏的getContext如今只有一個參數2d,沒準未來會有3d。
    canvas.width = document.body.clientWidth;
    canvas.height = document.body.clientHeight;
    document.body.appendChild(canvas);
 
    lines(context);
    settext(context,"美女,你愛吃榴蓮麼?");
    drowArc(context);
}
//劃線
function lines(ct){
    ct.moveTo(100,100);//要劃線的起點
    ct.lineTo(400,400);//線的終點
    ct.lineWidth =10;//線條的粗細
    ct.strokeStyle="#cd2828";//線條顏色
    ct.stroke();//寫入到畫布,每條線段的結束必須渲染一下。
    ct.beginPath();//從新開始一個線段,若是沒有這個就會和上一個線段鏈接上
    ct.moveTo(100,400);
    ct.lineTo(400,100);
    ct.stroke();//重點,寫入到畫布
}
//文本
/*
fillText(文本,x,y)
*/
function settext(ct,txt){
    ct.fillStyle = "black";//設置字體
    ct.fillText (txt,200,400)//
 
}
//畫圓
/*
arc的參數 
 
context.arc(x,y,r,sAngle,eAngle,counterclockwise);
context.arc(x,y,半徑,起始角度,結束角度,是否順時針);
*/
function drowArc(ct){
    ct.beginPath();
    ct.arc(250,150,50,1.75*Math.PI,3.15*Math.PI);
    //ct.closePath();//閉合路徑
    ct.stroke();
}
init()
</script>
 
</body>
</html>
相關文章
相關標籤/搜索