CreateJS第0章- Canvas基础
最近网页游戏比较火,以前做过一些小游戏,但是过段时间就都忘了,今天在这里记录一下学习过程,以备后用。
做网页游戏有很多种框架,我是flash程序用Adobe出品的CreateJS最容易。基本上继承了flash的大概框架像stage,MovieClip,显示列表等等。
CreateJS是什么?
CreateJS 中包含五款工具:
EaselJS:用于 Sprites、动画、向量和位图的绘制,创建 HTML5 Canvas 上的交互体验(包含多点触控),同时提供 Flash 中的“显示列表”功能。
TweenJS:一个简单的用于制作类似 Flash 中“补间动画”的引擎,可生成数字或非数字的连续变化效果。
SoundJS:一个音频播放引擎,能够根据浏览器性能选择音频播放方式。将音频文件作为模块,可随时加载和卸载。
PrloadJS:帮助你简化网站资源预加载工作,无论加载内容是图形、视频、声音、JS、数据……
官网地址:
CreateJS怎么来的?
从2008年以来HTML5标准就一直修订,修订,修订。当时的目的就是为了加强网页的表现能力。一经推出就一发不可收拾的改到现在。其中最具魅力的就是Canvas标签,这个标签让网页制作复杂的矢量图能为可能。随着移动端智能手机,各种pad的流行Canvas的前程一片光明。虽然Canvas标准出来了,但是毕竟是制定框架只定义了基本的接口,用官方的API做动画和游戏费时费力,不是一般人能够接受的。随后各种基于Canvas的框架如雨后春笋般的出现了。今天的主角CreateJS也就应景而生。CreateJS应用最多的地方应该是Flash转换Canvas,从以前的Toolkit 工具箱到现在的cs CC直接集成转换工具。下面讲讲HTML5的核心之一Canvas。
Canvas能干什么
Canvas 直译为 画布 当然就做动画,作画板用的。理论上说flash能干什么Canvas就能干什么。但是作为一个新的标准,缺点也是很明显的。
首先兼容性问题:IE9以下都不支持,光这一点Canvas想要流行起来至少的5年或者更长时间(IE6是2001年10月面世,至今已经10多年了依然僵而不死)。
其次更严重的兼容问题:硬件加速WebGL虽然出来时间不短了,但是也只有最新的浏览器才能支持。致命的是IE现在所有版本都不支持(好消息是前两天微软宣布加入WebGL标准)。
说完缺点再说说优点
Canvas代表了网页的未来!够唬人吧,的确如此。虽然现在有很多问题,性能也相当于flash的10年前的水平,毕竟是不用插件就可以全平台运行,而且越来越多的技术会向这里靠拢。靠着互联网这面大旗,前面的路会越来越宽。我个人认为现阶段完美的动画解决方案是PC端Flash+移动端Canvas。
Canvas怎么用
以上都是废话,上代码。
最最最基础初始化
- <!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>
CreateJS第0章- Canvas基础的更多相关文章
- CreateJS第1章 EaselJS基础 (画图)
这章学学EaselJS的基本常用API首先下载createjs库,在项目文件里新建一个js文件夹放里面http://code.createjs.com/ 各种形状 var sp = new creat ...
- HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识
一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...
- HTML5移动开发学习笔记之Canvas基础
1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- canvas基础之旅
canvas 主要使用2D rendering context API 实现其功能和特效. canvas 一般浏览器都支持,但在ie9之前的是不支持的.(解决办法:添加IxplorerCanvas ...
- canvas 基础知识整理(二)
html部分: <canvas id="myCanvas" width="800" height="800" ></can ...
- canvas 基础知识整理(一)
canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本 ...
- 【windows核心编程】 第六章 线程基础
Windows核心编程 第六章 线程基础 欢迎转载 转载请注明出处:http://www.cnblogs.com/cuish/p/3145214.html 1. 线程的组成 ① 一个是线程的内核 ...
随机推荐
- oracle 简单SQL
1, insert into test select * from test;(造测试数据) 2, create table b as select * from a; (创建表结构一样的空表,数据可 ...
- Musical Theme - poj 1743(求最大不重叠重复子串)
题目大意: * 有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题. * “主题”是整个音符序列的一个子串,它需要满 ...
- WinForm------自定义YearMonthEdit组件
转载: http://www.cnblogs.com/axing/p/3201066.html 注意: 1.需要在vs里面,添加一个YearMonthEdit组件,然后将链接里面的代码拷贝到里面 2. ...
- 用函数生成select选择框
// 生成 html select option 标签 function build_options($options, $opt='',$k='') { $frags = array(); if ( ...
- sqlserver 遇到以零作除数错误的处理 不报错的解决方法
使用sqlserver 的选项来禁止出现以零除的错误中断,让而让其为null set ansi_warnings offSET ARITHABORT offSET ARITHIGNORE on sel ...
- Android中的主题Theme
系统自带的Theme: android以及为我们定义好了一些theme,需要是我们直接可以拿来使用. 常用的Theme通常如下: android:theme="@android:style ...
- 基于xmpp openfire smack开发之openfire介绍和部署[1]
前言 http://blog.csdn.net/shimiso/article/details/8816558 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也 ...
- 首页在linux下的哪个文件夹
/data/mindo/tomcat-live/webapps/ROOT/WEB-INF/templates/default/pages/index.jsp svn检出地址 https://sif ...
- 如何自定义echarts主题
上一篇,选择echarts原有的主题样式,那么如何自定义自己的主题 与选择原有主题类似 1.echarts官网地址http://echarts.baidu.com/echarts2/doc 在工具中 ...
- NUll在oracle与sqlserver中使用相同与区别
最近在使用Oracle进行开发,遇到很多与以前使用sqlserver的不同语法.今天遇到null在两种数据库上面操作上的差别,在此记录两种数据库上的差异. null 与字符串相加 1.在oracle中 ...