通过使用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应用的更多相关文章

  1. [html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形

    在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中 ...

  2. [html5] 学习笔记-Canvas标签的使用

    Canvas通过JavaScript来绘制2D图形.Canvas是逐像素渲染的.在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注.如果其位置发生变化,那么整个场景也需要重新绘制,包括 ...

  3. HTML5学习总结——canvas绘制象棋(canvas绘图)

    一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...

  4. html5学习笔记一

    HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg”  controls=”controls”> ...

  5. Html5学习笔记1 元素 标签 属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. HTML5学习笔记之表格标签

    HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...

  7. HTML5 学习笔记(一)——HTML5概要与新增标签

    目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...

  8. HTML5 学习笔记--------》HTML5概要与新增标签!

      一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...

  9. HTML5学习笔记(一):HTML简介

    Web前端涵盖的内容较多且杂,主要由3个部分组成:HTML标记语言.CSS样式语言和JavaScript脚本语言组成,而下面我们将先学习最新的标记语言HTML5. <!DOCTYPE>标记 ...

随机推荐

  1. 照着例子学习 protobuf-lua

    参考文章:cocos2dx使用lua和protobuf 首先得下载protobuf-gen-lua的插件,插件Git地址在此. 下载完之后进入到protoc-gen-lua\plugin这个目录,并在 ...

  2. pip install -r requirements.txt 安装mysqldb失败 解决方案

    在pip.log中出现sh: 1: mysql_config: not found等一坨报错,因为没有安装另一个包: 只要原因是没有安装:libmysqlclient-dev sudo apt-get ...

  3. 改变Button文字和图片的位置

    button.imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth, 0, -labelWidth);button.titleEdgeInsets = UI ...

  4. truetype技术和矢量字库的技术原理及实现(转)

    源:truetype技术和矢量字库的技术原理及实现 广泛汉字矢量字库(HZKSLxxJ)格式             在矢量字库中,每个汉字都是以128   X   128点阵制成矢量数据.每个汉字  ...

  5. stm32使用LWIP实现DHCP客户端

    LWIP是一款开源的嵌入式网络协议栈,支持的功能很多,而且能在多任务环境下和单任务裸机环境下跑,今天说说他的移植过程,芯片为STM32,网卡为ENC28J60,无操作系统 首先下载LWIP的源代码,我 ...

  6. iOS开发UITableView基本使用方法总结 分类: ios技术 2015-04-03 17:51 68人阅读 评论(0) 收藏

    本文为大家呈现了iOS开发中UITableView基本使用方法总结.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITableViewDa ...

  7. Python爬虫框架Scrapy安装使用步骤

    一.爬虫框架Scarpy简介Scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,Scrapy完全用Python ...

  8. windows下Nodejs环境部署

    前言 Nodejs是基于v8引擎的轻量级框架,其特点为事件驱动.非阻塞.单线程.异步回调等. Nodejs相对于其他运行在服务器端的语言,容易学习,使用方便. 本文将介绍windows下Nodejs的 ...

  9. Grid (read-only) objects and methods (client-side reference)获取子表单对象的一些方法 Crm 2016

    https://msdn.microsoft.com/en-us/library/dn932126.aspx#BKMK_GridControl Updated: November 29, 2016 A ...

  10. UVa 103 - Stacking Boxes

    题目大意:矩阵嵌套,不过维数是多维的.有两个个k维的盒子A(a1, a1...ak), B(b1, b2...bk),若能找到(a1...ak)的一个排列使得ai < bi,则盒子A可嵌套在盒子 ...