AX 爱鲜报

EaselJS

EaselJS 是 CreateJS 套件中的 HTML5 Canvas 2D 渲染库,提供层级显示列表、鼠标与触摸交互模型及精灵动画等辅助类,可高效构建游戏、广告、数据可视化等图形密集型应用。

爱鲜报评分

0.0

0 人评分

8.2k

星数

否

中文

JavaScript

主语言

是

活跃

57

贡献者

人工分析

EDITORIAL

推荐理由

EaselJS 的 API 借鉴 Flash 显示列表,对熟悉 AS3 或 Flash 的开发者非常友好,能快速上手 Canvas 开发。它无外部依赖、采用 MIT 协议,可独立使用或与 SoundJS、PreloadJS、TweenJS 组合成完整游戏开发栈。项目成熟稳定、社区资源丰富,适合需要精细控制 Canvas 渲染的 2D 交互项目。

适用场景

  • HTML5 2D 小游戏开发
  • 交互式广告与营销页面
  • 数据可视化与图形展示
  • 精灵动画与逐帧动画
  • Flash/AS3 项目迁移到 Canvas

优点

  • 显示列表模型清晰,层级管理方便
  • 内置鼠标与触摸交互模型
  • 精灵表与动画 API 完善
  • 无外部依赖,可独立或配合 CreateJS 套件使用
  • MIT 协议,商用友好

缺点

  • 项目维护活跃度较低,更新缓慢
  • WebGL 支持(StageGL)功能有限
  • 现代前端框架下需手动集成,缺少官方组件封装
  • 文本渲染能力较弱,仅支持单行文本
上手难度 进阶

EaselJS 简介

EaselJS 是 CreateJS 套件中的核心 2D 渲染库,用于在 HTML5 Canvas 上构建高性能的交互式图形内容。它提供了一套层级化的显示列表(Display List),让开发者可以像操作 DOM 树一样组织、变换和动画化图形对象。

核心特性

  • 显示列表:所有可视元素继承自 DisplayObject,支持 x/y、旋转、缩放、斜切、透明度、阴影等通用属性。
  • 交互模型:内置鼠标与触摸事件,可直接在显示对象上监听 click 等事件。
  • 精灵动画:通过 SpriteSheet 与 Sprite 管理逐帧动画与序列播放。
  • 矢量绘图:Graphics 提供链式绘图 API,配合 Shape 渲染矢量图形。
  • 统一时钟:Ticker 提供可暂停的集中式帧循环管理。

快速上手

在 Canvas 上绘制一个红色方块:

var stage = new createjs.Stage('myCanvas');
var shape = new createjs.Shape();
shape.graphics.beginFill('red').drawRect(0, 0, 120, 120);
stage.addChild(shape);
stage.update();

精灵动画示例:

var ss = new createjs.SpriteSheet({
  frames: { width: 32, height: 64, numFrames: 19 },
  animations: { run: [0, 25], jump: [26, 63, 'run'] },
  images: ['./assets/runningGrant.png']
});

var sprite = new createjs.Sprite(ss, 'run');
stage.addChild(sprite);
sprite.on('click', function () { sprite.gotoAndPlay('jump'); });
createjs.Ticker.on('tick', stage);

主要类一览

类 作用
Stage 根级显示容器,负责更新与渲染
Container 可嵌套的显示容器,用于分组管理
Bitmap 绘制图片、视频或 Canvas
Sprite 播放精灵表帧动画
Shape / Graphics 矢量图形绘制
Text / BitmapText 文本渲染
StageGL 基于 WebGL 的 Stage 替代实现(功能有限)

适用与注意

EaselJS 的 API 受 Flash 显示列表启发,对 JS 与 AS3 开发者都较为友好。它无外部依赖,可与 SoundJS、PreloadJS、TweenJS 组合使用。需要注意的是,项目近年维护活跃度不高,WebGL 支持仍有限,文本渲染仅支持单行,在现代框架中集成时通常需要自行封装。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。