[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>标记 ...
随机推荐
- ZOJ 3940 Modulo Query
0--M对某个数字取模,相当于把0--M区间进行切割,每次暴力切割一下.结果的算的时候二分一下即可... 看了官方题解才会... #include<cstdio> #include< ...
- man info --help区别
--help: 是一个工具选项,可以用来显示一些工具的信息 man : 可以显示系统手册页中的内容,这些内容大多数都是对命令的解释信息 PS: () Space 键可以显示下一屏的文本信息 () q ...
- [iOS Animation]-CALayer 性能优化
性能优化 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...
- (中等) POJ 1436 Horizontally Visible Segments , 线段树+区间更新。
Description There is a number of disjoint vertical line segments in the plane. We say that two segme ...
- 自适应网页设计/响应式Web设计
zccst转 很早就有人设想,能不能”一次设计,普遍适用”,让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整布局(layout)? 一.”自适应网页设计”的概念 2010年,Ethan Ma ...
- 设计模式笔记之一:MVP架构模式入门(转)
写在前面:昨天晚上,公司请来专家讲解了下MVP,并要求今后各自负责的模块都要慢慢的转到MVP模式上来.以前由于能力有限,没有认真关注过设计模式.框架什么的,昨晚突然兴趣大发,故这两天空闲时间一直在学习 ...
- S3C2440触摸屏驱动详解
2440的触摸屏转换接口搭载在ADC接口之上,使用上比ADC接口多了一些花样,首先,触摸屏接口有几种转换模式 1. 普通转换模式 单转换模式是最合适的通用ADC转换.此模式可以通过设置ADCCON(A ...
- Thinking in scala (2)---- 最大公约数
gcd.scala object gcd{ def main(args:Array[String]){ println( gcd1(args(0).toInt,args(1).toInt)) prin ...
- SVN打基线
分成trunk.tags.branches的话,那直接从trunk copy 到tags下面就可以或者按照你自己的目录,只要规定好就行 选择要打基线的项目的根目录,右击鼠标,在弹出的菜单中选择“分支/ ...
- PHP获取当前类名、函数名、方法名
PHP获取当前类名.方法名 __CLASS__ 获取当前类名 __FUNCTION__ 当前函数名(confirm) __METHOD__ 当前方法名 (bankcard::confirm) _ ...