The Easel JavaScript library provides a full, hierarchical display list, a core interaction model, and helper classes to make working with the HTML5 Canvas element much easier. Part of the CreateJS suite of libraries.
npm install @createjs/easeljsThis branch is in beta. Reporting issues is appreciated, please mention that it is for 2.0 in the issue body.
The StageGL class went under a heavy rewrite in 1.1 which has not been ported to ES2015 syntax. We have excluded it from this branch for the time being. It will be added back when the class is finalized.
Canvas-based image comparison unit tests are known to be failing, please don't report issues for this.
EaselJS is a library for building high-performance interactive 2D content in HTML5. It provides a feature-rich display
list to allow you to manipulate and animate graphics. It also provides a robust interactive model for mouse and touch
interactions.
It is excellent for building games, generative art, ads, data visualization, and other highly graphical experiences. It
works well alone, or with the rest of the CreateJS suite: SoundJS,
PreloadJS, and TweenJS.
It has no external dependencies, and should be compatible with virtually any framework you enjoy using.
#### NPM
npm install @createjs/easeljs --save
#### CDN
``javascript`
// Draw a square on screen.
import { Stage, Shape } from "@createjs/easeljs";
let stage = new Stage("myCanvas");
let shape = new Shape();
shape.graphics.beginFill("red").drawRect(0, 0, 120, 120);
stage.addChild(shape);
stage.update();
javascript
import { Sprite, SpriteSheet, Ticker } from "@createjs/easeljs";
let ss = new SpriteSheet({
frames: {
width: 32,
height: 64,
numFrames: 19
},
animations: {run: [0, 25], jump: [26, 63, "run"]},
images: ["./assets/runningGrant.png"]
});let sprite = new Sprite(ss, "run");
sprite.scaleY = sprite.scaleX = 0.4;
stage.addChild(sprite);
sprite.on("click", evt => sprite.gotoAndPlay("jump"));
Ticker.on("tick", stage);
``It was built by gskinner.com, and is released for free under the MIT license, which means you
can use it for almost any purpose (including commercial projects). We appreciate credit where possible, but it is not a
requirement.