[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>标记 ...
随机推荐
- php中__clone() shallow copy 只是浅复制
什么是浅复制呢? 简单一点,就是说复制一个对象的时候,如果对象$Obj的一个属性的类型是引用类型的,比如 $person这个属性,指向的是一个 叫做 $objPerson的一个引用, 那么复制$Obj ...
- HUST 1027 Enemy Target!
求二分图的最小点覆盖集,并输出 对于每一个a[i][j]=1,我们从行i-->列j建立一条边 显然,这张图是一张二分图.左边的节点代表删除哪一行,右边的节点代表删除哪一列.中间的边代表所有a[i ...
- 将Web项目访问的URL项目名设置为"/"
工具:Eclipse 步骤: 1.鼠标右键项目名--->properties--->Web Project Setting--->Context root. 将Context roo ...
- SQL TOP分页
SQL TOP分页 2010-11-12 16:35:29| 分类: SQL | 标签: |字号大中小 订阅 1.分页方案一:(利用Not In和SELECT TOP分页) 语句形式: ...
- UNITY3D中的文件存储管理
使用Path对象判断路径的完整性和正确性 using System; using System.IO; class Test { public static void Main() { string ...
- keil mdk中如何确保某一段程序不被优化掉(转)
源:keil mdk中如何确保某一段程序不被优化掉 使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM. 比如,你在RO ...
- Android Material各种颜色设置
Blogpost about support appcompat v21 from Chris Banes
- matlab获取向量中出现次数最多的元素
向量X 1. tabulate(X) 返回一个矩阵:第一列为元素值,第二列为相应元素出现个数,第三列为相应元素个数占所有元素个数百分比 table = tabulate(X); %获取出现次数最多的元 ...
- unicode转GBK,GNK转unicode,解决FATFS中文码表占用ROM问题(转)
源:unicode转GBK,GNK转unicode,解决FATFS中文码表占用ROM问题 之前一直使用的512KB ROM的STM32,但是最近使用的只有128KB,想用FATFS显示支持长文件名,发 ...
- Codeforces Round 212 Div 2 报告(以前没写完,现在也没心情补了,先就这样吧)
A. Two Semiknights Meet 题目大意:有一个8x8的棋盘,上面放有两个骑士,骑士以“田字”的方式走.每个方格都被定义为good或者bad,问骑士能否在good的格子中相遇? 由于骑 ...