你是否正在寻找关于easeljs的内容?让我把最宝贵的东西奉献给你:

今天借由

easeljs

这个脚本库,写一个简单的给大家当做为示范。

DEMO演示链接

这个demo的最终效果是游戏割绳子(Cut the Rope)中的小青蛙的表情。

首先简单介绍一下easeljs这个脚本库,它是我最近发现的一个用来绘制Canvas的脚本库,比起Canvas的底层API,这个脚本库的接口设计更简单易用,所以做起来就易如反掌了。这里有详细的

信息

文档

素材

我们今天要完成的是通过Canvas技术,一帧一帧绘制出来的,那么首先需要每一帧的素材。我们从

找到了一些素材,并把每一帧都切割成100*100像素的图像。这里我们选择了小青蛙的两个状态:点头的状态和撅嘴的失败的状态,一共19+13=32帧,。

在easeljs中,我们可以把多个连续的图像排列成为一张大图,再用脚本将其切割为多帧,所以我们把这些素材按顺序合并成一张100*3200的大图片,这跟CSS Sprites技术有异曲同工之妙。最后的图片保存为了

sprites.png

准备工作

首先,导入easeljs脚本库

_script src="easeljs.js">_/script>

然后,创建canvas标签

_canvas id="canvas" width="100" height="100">_/canvas>

准备编写JS

创建舞台(stage)

// create a new stage and point it at our canvas

var stage = new Stage(document.getElementById('canvas'));

创建小青蛙

小青蛙是由一个

BitmapAnimation

类创建出来的全局变量

icon

,这类对象可以在舞台中播放。而是由

sprites.png

中的图片循环播放生成的,这里我们需要通过另一个类创建对象:

SpriteSheet

,整个小青蛙的创建方法如下:

// create a SpriteSheet using "sprites.png" with a frame size of 100x100

var spriteSheet = new SpriteSheet({

images: ["sprites.png"],

frames: {width: 100, height: 100}

});

// create a BitmapAnimation to display frames from the sprite sheet

icon = new BitmapAnimation(spriteSheet);

播放

创建完毕之后,这个小青蛙的对象需要添加到舞台中:

// append into stage and start animations

stage.addChild(icon);

icon.gotoAndPlay(0);

Ticker.addListener(stage);

对上面的代码做一下解释:第一行代码是把小青蛙的对象添加到舞台,用到了舞台的

Stage.prototype.addChild

接口;第二行代码是让从第1帧开始播放,用到了

BitmapAnimation.prototype.gotoAndPlay

接口;第三行代码则是开始播放,它的原理有点意思,

Ticker

是easeljs中的又一个类,用来作为控制播放的“节拍器”。当我们使用

Ticker.addListener

方法时,节拍器会有节奏的触发第一个参数的

tick

函数(默认是20帧/秒),而

stage

对象刚好有一个默认函数

Stage.prototype.tick

,会把舞台中的所有元素向前播放一帧。这样,小青蛙的动作就会连贯的播放出来了。

我们现在看到的效果就是一只小青蛙连续的点头和撅嘴,是不是很可爱

此时的阶段性DEMO演示链接 1

加入的控制,让小青蛙连续点头

接下来加入一些的控制,比如让小青蛙处于循环点头的状态——事实上这才是割绳子游戏中的正常状态。

// bind animation events

icon.tick = function () {

if (icon.currentFrame == 18) {

icon.currentFrame = 0;

}

};

这里给

icon.tick

赋值一个函数,这个函数会在每一帧播放之后被触发。我们在这个函数中判断,如果播放到第19帧时,立即从第1帧继续播放。这样,小青蛙点头的就可以重复播放了。设置当前帧数的方法是修改

icon.currentFrame

的值。

此时的阶段性DEMO演示链接 2

加入小青蛙撅嘴状态的切换

在这个基础上,我们再加入让青蛙撅嘴的状态,并且可以通过回车键使小青蛙切换到撅嘴的状态。

window.onkeydown = function (event) {

if (event.keyCode == 13) {

icon.gotoAndPlay(19);

}

};

刷新页面,这时,我们看到,小青蛙还是处在连续点头的状态,当我们按下回车键时,小青蛙立刻从第20帧开始继续播放,即撅嘴。但有个小问题,因为节拍器是循环播放的,所以当撅嘴的播放完毕之后,会自动跳到第1帧。即重新回到连续点头的状态。

此时的阶段性DEMO演示链接 3

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/shenmilingyu/article-6069-1.html

显卡支持html5,教你入门EaselJS做HTML5[转载]相关推荐

  1. html5拓扑图图入门,如何使用HTML5 Canvas动态的绘制拓扑图

    如何使用HTML5 Canvas动态的绘制拓扑图 使用HTML5 Canvas动态的绘制拓扑图: HTML5中引入新的元素canvas,其drawImage 方法允许在 canvas 中插入其他图像( ...

  2. html5中切换图片怎么做,HTML5编程实战之二:用动画的形式切换图片

    用动画的形式切换图片 varwidth, height;varcontext, image, functionId;vardrawLeft, drawWidth;vardrawTop, drawHei ...

  3. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 -首页最新文章经典回顾开发- Web前端- Py ...

  4. python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)

    原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...

  5. python画图代码大全-纯干货:手把手教你用Python做数据可视化(附代码)

    原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...

  6. 影音服务器nas硬盘,手把手教您用win10做NAS:搭配emby,VM虚拟群晖,直通硬盘!打造家庭影音媒体服务器!...

    手把手教您用win10做NAS:搭配emby,VM虚拟群晖,直通硬盘!打造家庭影音媒体服务器! 2020-02-23 20:14:28 1551点赞 10291收藏 1129评论 创作立场声明:Win ...

  7. C# SuperSocket 手把手教你入门 傻瓜教程---1(服务器单向接收客户端发送数据)

    C# SuperSocket 手把手教你入门 傻瓜教程系列教程 C# SuperSocket 手把手教你入门 傻瓜教程---1(服务器单向接收客户端发送数据) C# SuperSocket 手把手教你 ...

  8. 文章如何做伪原创 SEO大神教你几招做原创网站文章的心得

    想要创作出好的文章并被百度所喜欢,就非常需要SEO的优化能力,以及要对文章进行塬创或伪塬创,那么,如何做伪塬创文章?以及如何做好塬创网站文章呢?对此,本文小编就为大家带来了几招做"塬创&qu ...

  9. 手把手教你入门Git --- Git使用指南(Linux)

    手把手教你入门Git - Git使用指南(Linux) 系统:ubuntu 18.04 LTS 本文所有git命令操作实验具有连续性,git小白完全可以从头到尾跟着本文所有给出的命令走一遍,就会对gi ...

最新文章

  1. 如何在CSDN MarkDown中居中显示并设置本地图像大小
  2. JavaScript的主要功能
  3. 微软sccm服务器,System Center 2012R2系列之SCCM部署
  4. centos中使用python遇到的几个问题
  5. BaseExecutor.query()-清空本地缓存
  6. linux卸载anaconda_Win10安装Anaconda和Pytorch(CPU版)
  7. html怎么把一段文字设置为连接到下一个网页的按钮,网页设计三合一模拟试题(一)...
  8. 【Git】Git兼容GitHub和Gitee的问题与对策
  9. 浅谈Spring事务隔离级别
  10. hdu 2586 (LCA)
  11. Java中的序列问题-2
  12. MyBatis的三个基本要素
  13. 解决WPS文档不加载金格office360签章的问题
  14. 谷歌退出中国是N败俱伤
  15. delphi反编译ded加密解密之反汇编工具
  16. 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)-D:数圈圈(数位DP)
  17. HTML5常见面试题及答案(一)
  18. 方程求解的实验 matlab,matlab 实验四 求微分方程的解
  19. 最好的开源App锦集
  20. C语言青蛙过河游戏超详细教程【附源码】

热门文章

  1. 获取网站上的旅游攻略信息,并作数据可视化
  2. 动态规划--股票(一次买入卖出和两次买入卖出)
  3. 汽车座椅通风改装多少钱 东莞虎门则徐改座椅通风 宝马X5改座椅通风
  4. 高中数学必修4知识点:第二章平面向量(复习必备)图文
  5. MATLAB高等光学仿真——反射率,折射率(补充)
  6. 清华大学镜像及其他镜像
  7. html基础和CSS基础
  8. 精选SpringBoot笔记,华为19级高工亲撰1700页笔记真的太强了
  9. 苹果远程服务器未响应,win10 远程服务器未响应
  10. 计算机类投稿心得(转