createjs是一个轻量级的框架,稍微有点时间和耐心,就可以把全部源代码都看一遍,毕竟只有三十几个js文件。地址:http://www.createjs.com/

开发createjs的动画或游戏,没有重型的IDE或什么工具支持,我们只能从零开始写js。一方面,这样对于jser来说,足够灵活;另外一方面,createjs因此足够精简足够小。

createjs由几个库组成:

l easeljs,这个是核心,包括了显示列表、事件机制;

l preloadjs,用于预加载图片等;

l tweenjs,用于控制元件的缓动;

l soundjs,用于播放声音。

easeljs 81k,preloadjs 31k,soundjs 34k,tweenjs 18k,对于手机小动画或小游戏,其实只需要加载easeljs即可,因为核心库已经涵盖了简单图片的预加载功能。

开发步骤:

1、 下载类库,可以使用源代码,也可以使用压缩过的min.js,就好像平时写网页一样。

2、 建立html和canvas标签,onload后再执行createjs相关逻辑。

3、 编写createjs逻辑。这个非常简单,因为createjs只提供了最简单的基础功能,我们理解了基础功能后就可以叠积木了。

关于createjs,最关键是要理解类结构

上图列出了createjs的主要类结构,所有舞台上的内容都是元件,元件的基类是DisplayObject。Container可以包含子元件,舞台Stage本身也是Container。另外Sprite用于表现SpriteSheet帧动画人物、Bitmap用于展示纯静态的人物。

而Filter和Shadow则是滤镜分支,可以针对任意元件实现颜色变换、模糊、阴影等效果。使用滤镜的方式跟Flash一致,需要新建Filter实例,添加到目标元件的FilterList中,Createjs框架在下一帧就会把该元件加上滤镜效果。

下边以一个例子概要学习一下Createjs的使用:

   <script type="text/javascript">

        var stage;

        function init() {

            var canvas = document.getElementById("testCanvas");

            stage = new createjs.Stage(canvas);

            stage.autoClear = true;

//添加背景图

            var bg  = new createjs.Bitmap("../res/bg.jpg");

            stage.addChild(bg);

//增加5个小人,不断做旋转和放缩

            for (var i = 0; i < 5; i++) {

                var man = new createjs.Bitmap("../res/grossini.png");

                man.regX = 42;

                man.regY = 60;

                man.x = canvas.width/6*(i+1);

                man.y = canvas.height/5*4;

                man.scaleX = man.scaleY = 1;

                stage.addChild(man);

                createjs.Tween.get(man, {loop: true}, true)

                        .to({rotation: 360, scaleX:2, scaleY:2}, 1000).to({rotation: 360, scaleX:1, scaleY:1}, 1000);

                man.addEventListener("click", function(event) {

                    console.log("click", event.currentTarget);

                }); //监听点击非常方便,位图的透明区域忽略鼠标事件

            }

            var images = [];

            for (var i = 1; i <= 14; i++) {

                images.push("../res/grossini_dance_" + (i<10?("0"+i):i) + ".png");

            }

//增加5个帧动画小人,不断播放14帧画面

            for (var j = 0; j < 5; j++) {

                var sheet = new createjs.SpriteSheet({

                    images: images,

                    frames: {width: 85, height: 121, regX: 42, regY: 60}

                }); //需要设置每帧的宽高,注册点信息

                var man = new createjs.Sprite(sheet);

                man.framerate = 60/7;

                man.x = canvas.width/6*(j+1);

                man.y = canvas.height / 3;

                man.play();

                stage.addChild(man);

            }

            stage.update();

            createjs.Ticker.setFPS(60);

            createjs.Ticker.addEventListener("tick", tick);

        }

//这里有点猥琐,需要用户自行控制舞台不断update更新

        function tick(event) {

            stage.update(event);

        }

    </script>

canvas框架::createjs入门的更多相关文章

  1. html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  2. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  3. OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

    OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的 ...

  4. Spring.NET依赖注入框架学习--入门

    Spring.NET依赖注入框架学习--入门 在学些Spring.net框架之前,有必要先脑补一点知识,比如什么是依赖注入?IOC又是什么?控制反转又是什么意思?它们与Spring.net又有什么关系 ...

  5. 框架-spring入门总结

    框架-spring入门总结 参考: http://www.cnblogs.com/heavenyes/p/3908546.html http://www.cnblogs.com/heavenyes/p ...

  6. MvvmLight框架使用入门(四)

    本篇我们着重介绍ViewModelBase,演示Set和RaisePropertyChanged方法的使用,以及就Cleanup方法释放资源展开讨论. ICleanup 接口.实现该接口的ViewMo ...

  7. MvvmLight框架使用入门(三)

    本篇是MvvmLight框架使用入门的第三篇.从本篇开始,所有代码将通过Windows 10的Universal App来演示.我们将创建一个Universal App并应用MvvmLight框架. ...

  8. node.js Web应用框架Express入门指南

    node.js Web应用框架Express入门指南 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-28 我要评论 这篇文章主要介绍了node.js Web应用框架Express入门 ...

  9. Surging 分布式微服务框架使用入门

    原文:Surging 分布式微服务框架使用入门 前言 本文非 Surging 官方教程,只是自己学习的总结.如有哪里不对,还望指正. 我对 surging 的看法 我目前所在的公司采用架构就是类似与S ...

  10. Surging 微服务框架使用入门

    原文:Surging 微服务框架使用入门 前言 本文非 Surging 官方教程,只是自己学习的总结.如有哪里不对,还望指正.  我对 surging 的看法 我目前所在的公司采用架构就是类似与Sur ...

随机推荐

  1. CTFcrackTools-V3 – 一款旨在帮助 CTFer 在 CTF 中发挥作用的一个框架

    CTFcrackTools-V3 CTFcrackTools重置版 作者:米斯特安全-林晨.摇摆.奶权 米斯特安全团队首页:http://www.hi-ourlife.com/ 部分插件来源:希望团队 ...

  2. 使用Pylint规范你的Python代码

    Pylint是一个Python代码风格的检查工具,功能上类似于pychecker,默认用PEP8作为代码风格标准,它所提供的功能包括:检查代码行的长度,检查变量命名是否符合规范,检查声明的接口是否被真 ...

  3. 验证resneXt,densenet,mobilenet和SENet的特色结构

    简介 图像分类对网络结构的要求,一个是精度,另一个是速度.这两个需求推动了网络结构的发展. resneXt:分组卷积,降低了网络参数个数. densenet:密集的跳连接. mobilenet:标准卷 ...

  4. 【xsy1143】 兔子的数字 搜索

    题目大意:请找到第$k$大的数,满足各位数字之和等于各位数字之积.其中$k≤10^{18}$. 首先我们要确定这个第$k$大的数有多大 我们用$f[i][j][he][ji]$表示我们要搜索一个$i$ ...

  5. rabbitmq系列三 之发布/订阅

    1.发布/订阅 在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker).在本篇教程中,我们要做的跟之前完全不一样 —— 分发一个消息给多个消费者(consumers).这种模 ...

  6. 剑指offer五十一之构建乘积数组

    一.题目 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不 ...

  7. (转)mysql原生在线ddl和pt-osc原理解析

    原文:http://blog.csdn.net/zengxuewen2045/article/details/52017247 https://github.com/mysql-inception/i ...

  8. redmine3.3.3 rake db:migrate 报错invalid byte sequence in US-ASCII (Argument Error) 解决方法

    这个错误有点莫名其妙,系统默认的就是utf-8,可bundle就是不对.. rake db:migrate 结果没有任何错误,反而是网页passenger 提示了这个错误 参考:https://git ...

  9. oauth2.0实现sso单点登录的方式和相关代码

    SSO介绍 什么是SSO 百科:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...

  10. (01)JVM-内存三大核心区域以及分析

    package org.burning.sport.jvm; /** *  从JVM调用的角度分析Java程序对内存空间的使用, * 当JVM进程启动的时候,会从类加载器路径中找到包含main方法的入 ...