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>
相关文章
相关标签/搜索