[html5] 学习笔记-Canvas应用
通过使用HTML5游戏开发的引擎CreatJS,创建HTML5 Canvas上的更好交互。
1、认识CreateJS
CreateJS是一个外部库,用它可以比Canvas更方便的绘制图形。
官网:http://createjs.com/
<html> <head> <title></title> <script src="easeljs-0.8.2.min.js"></script> </head> <body> <canvas id="canvas" width="500" height="500"></canvas> <script src="app.js"></script> </body> </html>
其中用到的app.js:
var canvas; var stage; var txt; var count=0; window.onload = function() { canvas = document.getElementById("canvas"); stage = new createjs.Stage(canvas); txt = new createjs.Text("number->","20px Arial","#ff7700"); stage.addChild(txt); createjs.Ticker.setFPS(30); createjs.Ticker.addEventListener("tick",tick); } function tick(e){ count++; txt.text="number->"+count+"!"; stage.update(); }
工程中添加了CreatJS中的easeljs-0.8.2.min.js。
2、使用Canvas制作炫酷的效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="easeljs-0.8.2.min.js"></script> </head> <body> <canvas id="canvas" width="1000px" height="500px"></canvas> <script src="app.js"></script> </body> </html>
其中用到的app.js
/** * Created by wwtliu on 14/8/11. */ var canvas; var stage; var img = new Image(); var sprite; window.onload = function(){ canvas = document.getElementById("canvas"); stage = new createjs.Stage(canvas); stage.addEventListener("stagemousedown",clickCanvas); stage.addEventListener("stagemousemove",moveCanvas); var data={ images:["2.png"], frames:{width:20,height:20,regX:10,regY:10} } sprite = new createjs.Sprite(new createjs.SpriteSheet(data)); createjs.Ticker.setFPS(20); createjs.Ticker.addEventListener("tick",tick); } function tick(e){ var t = stage.getNumChildren(); for(var i = t-1;i>0;i--){ var s = stage.getChildAt(i); s.vY +=2; s.vX +=1; s.x += s.vX; s.y += s.vY; s.scaleX = s.scaleY =s.scaleX+ s.vS; s.alpha += s.vA; if(s.alpha <= 0 || s.y >canvas.height){ stage.removeChildAt(i); } } stage.update(e); } function clickCanvas(e){ addS(Math.random()*200 + 100,stage.mouseX,stage.mouseY,2); } function moveCanvas(e){ addS(Math.random()*2 + 1,stage.mouseX,stage.mouseY,1); } function addS(count,x,y,speed){ for(var i = 0;i<count;i++){ var s = sprite.clone(); s.x = x; s.y = y; s.alpha = Math.random()*0.5 + 0.5; s.scaleX = s.scaleY = Math.random() +0.3; var a = Math.PI * 2 *Math.random(); var v = (Math.random() - 0.5) *30 *speed; s.vX = Math.cos(a) *v; s.vY = Math.sin(a) *v; s.vS = (Math.random() - 0.5) *0.2; // scale s.vA = -Math.random() *0.05 -0.01; // alpha stage.addChild(s); } }
工程中添加了CreatJS中的easeljs-0.8.2.min.js。
[html5] 学习笔记-Canvas应用的更多相关文章
- [html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形
在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中 ...
- [html5] 学习笔记-Canvas标签的使用
Canvas通过JavaScript来绘制2D图形.Canvas是逐像素渲染的.在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注.如果其位置发生变化,那么整个场景也需要重新绘制,包括 ...
- HTML5学习总结——canvas绘制象棋(canvas绘图)
一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...
- html5学习笔记一
HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg” controls=”controls”> ...
- Html5学习笔记1 元素 标签 属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HTML5学习笔记之表格标签
HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...
- HTML5 学习笔记(一)——HTML5概要与新增标签
目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...
- HTML5 学习笔记--------》HTML5概要与新增标签!
一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...
- HTML5学习笔记(一):HTML简介
Web前端涵盖的内容较多且杂,主要由3个部分组成:HTML标记语言.CSS样式语言和JavaScript脚本语言组成,而下面我们将先学习最新的标记语言HTML5. <!DOCTYPE>标记 ...
随机推荐
- RunLoop基础
序言 RunLoop一直是比较高级而又比较神秘的技术,一直以来都没有深入去阅读过苹果给出的官方文档.本篇文章就讲讲苹果官方文档中所介绍的RunLoop,再加上其开源性,让我们一起深入去研究其特性及与线 ...
- HMM的概率计算问题和预测问题的java实现
HMM(hidden markov model)可以用于模式识别,李开复老师就是采用了HMM完成了语音识别. 一下的例子来自于<统计学习方法> 一个HMM由初始概率分布,状态转移概率分布, ...
- iOS_init相关信息
第一.initWithNibName这个方法是在controller的类在IB中创建,但是通过Xcode实例化controller的时候用的. 第二.initWithCoder 是一个类在IB中创建但 ...
- 安装php扩展后,执行时找不到扩展 class xxx no found
当编译安装一个新的php扩展,例如安装redis, 安装后 执行 new Redis(), 如果发现找不到class Redis,可以先检查redis.so文件是否在php的扩展目录下, 如果发现是, ...
- 17、手把手教你Extjs5(十七)模块的新增、修改、删除操作
上节在Grid展示时做了一个金额单位可以手工选择的功能,如果你要加入其他功能,也只要按照这个模式来操作就行了,比如说你想改变金额字段的颜色.小数位数.零值是否显示.货币符号.单位显示在标题栏或者跟在金 ...
- memcached命令和配置
转自:http://www.tuicool.com/articles/VJzAvuB 安装配置 首先,编译.安装.配置libevent库,执行如下命令: wget https://github.com ...
- (中等) HDU 1828 Picture,扫描线。
Problem Description A number of rectangular posters, photographs and other pictures of the same shap ...
- 【转】C/CPP之static
静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值. 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见.用法1:函数内部声明 ...
- VS2010环境下使用VB开发网络编程(WinHttp)
首先点项目——>添加引用——>COM选项卡——>Microsoft WinHttp Services,version 5.1,然后点确定就可以添加Winhttp到项目引用中. 1.如 ...
- sysctl.conf和limit.conf备忘待查
#################################limits.conf设置################################### #修改最大进程和最大文件打开数限制v ...