掌握EaselJS,打造出色动画!

作者:九江麻将开发公司 阅读:45 次 发布时间:2023-06-01 23:42:54

摘要:如果你想让你的网站或者应用增添些趣味,EaselJS将是你的不二选择。这是一款来自 Adobe 的 HTML5 动画和游戏库,可以创建交互式的游戏和图形动画,EaselJS是 HTML5 的 [Canvas API](https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API),它使我们能够快速创建高质...

如果你想让你的网站或者应用增添些趣味,EaselJS将是你的不二选择。这是一款来自 Adobe 的 HTML5 动画和游戏库,可以创建交互式的游戏和图形动画,EaselJS是 HTML5 的 [Canvas API](https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API),它使我们能够快速创建高质量、高性能的 web 图形。

EaselJS 基于 Canvas 实现,可以让我们更加方便的使用 JavaScript 创建 Canvas 动画,渲染性能也比起传统 DOM 渲染要快得多,为此我们只需了解 EaselJS API,就可以很容易的为我们的 html 项目添加交互性和动画效果。

现在,我们将一步步学习 EaselJS 的使用方法,我们将从以下几个方面来学习:

* 创建 EaselJS 的元素

* 设置 EaselJS 的元素属性

* 创建动画帧

* 动画效果的应用

## 1. 创建 EaselJS 的元素

要在 HTML 页面中使用 EaselJS,首先要确保已经引用了 EaselJS 库文件,如下:

```html

EaselJS例子

```

如上所示,在文档头部引入 EaselJS 库文件,同时在body中添加一个 canvas 标签。canvas 就是我们可以在上面绘制各种图形的画布,我们可以用 EaselJS API 来绘制图形。

然后我们需要初始化一个 Stage 实例,也就是舞台,这是所有 EaselJS 显示对象的容器。你可以把舞台想象成是一个画板,所有的图形对象都是在这个画板上展示的。

```javascript

var stage = new createjs.Stage("myCanvas");

```

有了舞台,我们来创建一些对象吧!在 EaselJS 中,有很多类型的对象,包括:容器、位图、矢量图和文本等等。我们将从最简单的对象开始:形状。

```javascript

var circle = new createjs.Shape();

circle.graphics.beginFill("#00ff00").drawCircle(0, 0, 50);

circle.x = 100;

circle.y = 100;

stage.addChild(circle);

stage.update();

```

上述代码,我们创建了一个形状对象 circle,并设置该对象的颜色为绿色,然后在舞台上添加了这个形状。我们发现该形状显示在了屏幕上,并且位置也是如我们所预期的。

## 2. 设置 EaselJS 的元素属性

亲爱的朋友们,我们可以设置许多对象属性。在 EaselJS 中,常用的属性有:x 和 y 坐标、宽度和高度、透明度、舞台大小和其他一些对象特定的属性,比如 graphics 等等。

对于形状对象,我们还可以使用它的 graphics 属性来进行复杂的绘制操作。比如我们画一个小人:

```javascript

var man = new createjs.Shape();

man.graphics.beginFill("#0000ff").drawCircle(50, 50, 30)

.moveTo(50,80).lineTo(50,140).moveTo(30,100).lineTo(70,100);

man.x = 300;

man.y = 300;

stage.addChild(man);

stage.update();

```

如上代码,形状对象是使用 graphics 属性以编程方式绘制出来的,我们创建了一个包含头部、手、腿、身体的小人形状,然后将该形状在舞台上居中显示。

## 3. 创建 EaselJS 动画

我们完成了元素的创建,下面,让我们看如何让它们动起来吧!EaselJS 提供了 [Ticker类](https://createjs.com/docs/easeljs/classes/Ticker.html),该类派发 enterFrame 事件,并且自动更新 Stage 实例和所有其它与 Ticker 实例关联的对象,从而使我们能够创建动画。Ticker 实例默认情况下自动启动,使用者主动启动或停止它们。

```javascript

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

function handleTick(event) {

//这里就可以移动我们的对象

circle.x += 1;

circle.y += 1;

stage.update();

}

```

如上代码,我们调用了 `createjs.Ticker.addEventListener()`,并且监听事件 `tick`。这个事件每个位图渲染周期都会循环执行一次 \-\- 在每个渲染循环中更新每个对象的位置,然后重新绘制舞台。我们将上述代码放到创建舞台的代码块中,就可以看到形状对象 circle 在屏幕上移动了。

接下来,我们尝试同时移动小人和圆圈:

```javascript

createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;

createjs.Ticker.framerate = 60;

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

function handleTick(event) {

var deltaS = event.delta / 1000;

circle.x += 50 * deltaS;

circle.y += 50 * deltaS;

man.x += 150 * deltaS;

man.y += 150 * deltaS;

stage.update(event);

}

```

如上代码,我们在 `handleTick` 函数中新增了两行代码,来使小人和圆圈沿着一定的路径运动。看看效果(yeap,好看):

![效果](https://static.zhangkangyang.com/public/easeljs-anime.gif)

## 4. 动画效果的应用

现在我们已经了解了怎么使用 EaselJS 来创建形状对象,并添加动画效果了,但是这仅仅是一个开始。EaselJS 拥有强大的工具和组件,请查阅[官方文档](https://createjs.com/docs/easeljs/index.html)获取更多技巧和知识。

在这里,我们列举一些你可能想使用的功能:

- 事件侦听器

- 物理引擎

- 像素精灵表

- 补间缓动

- 淡入淡出效果

下面,让我们来看看如何使用缓动效果:

```javascript

createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;

createjs.Ticker.framerate = 60;

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

.to({x:stage.canvas.width - 75}, 1000, createjs.Ease.getPowInOut(4))

.to({y:stage.canvas.height - 75}, 1000, createjs.Ease.getPowInOut(4))

.to({x:75}, 1000, createjs.Ease.getPowInOut(4))

.to({y:75}, 1000, createjs.Ease.getPowInOut(4));

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

function handleTick(event) {

stage.update(event);

}

```

如上代码,使用 `Tween` 对象来创建缓动效果,通过 `loop` 属性设置循环播放。tween.to() 方法用于提供缓动效果的参数,可以控制具体的形状移动路径和时间等属性。最后使用 Ticker 来更新场景。

我们可以看到,小人重新在画布上出现,并按照我们定义的移动循环规则播放,非常出色。

至此,我们已经了解了 EaselJS 的基础知识,现在是时候将知识付诸实践了。EaselJS 非常易学易用,并且能够创建很多惊人的图形效果。开始动手吧!

  • 原标题:掌握EaselJS,打造出色动画!

  • 本文链接:https:////zxzx/10492.html

  • 本文由深圳飞扬众网小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与飞扬众网联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:166-2096-5058


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部

    ```

    如上所示,在文档头部引入 EaselJS 库文件,同时在body中添加一个 canvas 标签。canva"], "description": "如果你想让你的网站或者应用增添些趣味,EaselJS将是你的不二选择。这是一款来自 Adobe 的 HTML5 动画和游戏库,可以创建交互式的游戏和图形动画,EaselJS是 HTML5 的 [Canvas API](https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API),它使我们能够快速创建高质", "pubDate": "2023-06-01T23:42:54", "upDate": "2023-06-01T23:42:54", "lrDate": "2023-06-01T23:42:54" }