Skip to content

Latest commit

 

History

History
513 lines (472 loc) · 25.9 KB

CHANGELOG.md

File metadata and controls

513 lines (472 loc) · 25.9 KB

Version NEXT [Not Released]


CRITICAL (may break existing content):

  • Codebase ported to ES6 and transpiled to ES5 with Babel. Multiple build formats are provided (global, CommonJS, ES6).

OTHER:

  • Build process converted from Grunt to Gulp
  • Build process and shared files (Event, EventDispatcher, Ticker) moved to external repository which is a devDependency of this one.
  • WebGL is no longer a plugin, it has been fully integrated. WebGL will be leveraged by BitmapCache if support is found.

Version 0.8.2 [November 26, 2015]


CRITICAL (may break existing content):

  • MovieClip has been added to the minified EaselJS source. The movieclip minified script has been removed.

OTHER:

  • fixed compositeOperation value in DisplayProps.setValues (thanks @fumio)
  • documentation updates
  • upgraded tutorials to the latest EaselJS version, including content updates
  • fixed the SpriteSheetBuilder to support both SpriteSheet framerate and speed (instead of frequency)
  • fixed ignoreScale support in Graphic StrokeStyle command
  • bower updates: Removed bower.json from excludes
  • updated ScaleBitmap extra to the new extend/promote approach
  • changed SpriteSheet Array checks from instanceof to Array.isArray()
  • added StrokeDash support to SVGExporter
  • fixed issue with SVGExporter when the first lineTo has a zero-value for x or y
  • added image error handling to SpriteSheet
  • Grunt updates: Added shortcut "next" task

Version 0.8.1 [May 21, 2015]


CRITICAL (may break existing content):

  • Graphics.command now returns null after empty fill / stroke calls.
  • dispatchEvent now returns false instead of true to indicate an event had preventDefault called (DOM level 2 compatibility)
  • cursor is now inherited properly (cursors on children override parents)

OTHER:

  • added Graphics.StrokeDash and Graphics.setStrokeDash()
  • Graphics no longer appends redundant StrokeStyle commands
  • fixed an issue with preventDefault not working with drawstart and tickstart events
  • added bubbles and cancelable params to EventDispatcher.dispatchEvent()
  • reintroduced Sprite.initialize() for now, to support FlashCC spritesheet export
  • fixed an issue with stroke dash not being reset properly on Graphics.clear()
  • bitmap fills no longer throw RTEs when targeting an unloaded image
  • Sprite constructor now accepts 0 as frameOrAnimation param
  • added MouseEvent.relatedTarget
  • improved handling of Bitmap load errors
  • fixed Rectangle.pad
  • fixed issues with buttons playing on reset
  • added totalframes property and getDuration method to MovieClip

Version 0.8.0 [December 12, 2014]


CRITICAL (may break existing content):

  • modified behaviour of SpriteSheetBuilder.addFrame setupFunction, setupParams & setupScope params
  • removed the deprecated mousemove & mouseup events on MouseEvent
  • removed Graphics.inject() in favour of Graphics.append()
  • Sprite now properly displays the first frame of animations after calling gotoAndPlay() (thanks MannyC)
  • Moved Ticker into the "createjs" package since it will be included with TweenJS in future releases.
  • re-architected the class and inheritance model
    • initialize methods removed, use MySuperClass_constructor instead
    • helper methods: extend & promote (see the "Utility Methods" docs)
    • property definitions are now instance level, and in the constructor (performance gains)
    • the .constructor is now set correctly on all classes (thanks kaesve)
  • renamed initialize on geom classes to "setValues()"
  • removed secondary properties (visible, alpha, compositeOperation, shadow) and related functionality from Matrix2D
    • added DisplayProps to hold these properties + a matrix instance
  • Matrix2D was updated to be internally consistent with regards to matrix orientation
    • Matrix2D transform methods (ex. translate, rotate) now behave as append instead of prepend operations
  • renamed ColorMatrix.copyMatrix() to .copy() to reflect geom classes

DEPRECATED (will be removed in a future version):

  • Container.getNumChildren() in favour of Container.numChildren
  • DisplayObject.getStage() in favour of DisplayObject.stage
  • Graphics.getInstructions() in favour of Graphics.instructions
  • MovieClip.getLabels() in favour of MovieClip.labels
  • MovieClip.getCurrentLabel() in favour of MovieClip.currentLabel
  • SpriteSheet.getAnimations() in favour of SpriteSheet.animations
  • Ticker.getInterval() in favour of Ticker.interval
  • Ticker.getFPS() in favour of Ticker.framerate
  • Ticker.getPaused() / setPaused() in favour of Ticker.paused

PERFORMANCE:

  • added performance tests to extras
  • significant performance improvements:
    • vector graphics (especially in Graphics instances with large numbers of instructions)
    • filters (thanks pfirpfel & quasimondo) (~2-4x faster)
    • overall display list performance (~2x faster)
    • display object property access (~2x faster)
    • tick event propagation (~3x faster)

OTHER:

  • replaced a number of get/set methods with getter / setters. See the DEPRECATED section above for a list.
  • added setupFunction, setupData, labelFunction to SpriteSheetBuilder.addMovieClip
  • added SpriteStage & SpriteContainer for WebGL rendering
  • changes to how BitmapText works to support WebGL
  • added WebGL examples
  • added .visible to Matrix2D for use by DOMElement
  • updates to how DisplayObject.snapToPixel & Stage.snapToPixelEnabled interact
  • major improvements to Stage.nextStage to better handle layered canvases
  • ButtonHelper now sets mouseChildren to false, and reverts to default cursor when disabled
  • fixed issue introduced in 0.7.1 where getObjectsUnderPoint ignore elements without mouse listeners
  • doc updates
  • fixed example formatting in docs
  • simplified handling of custom data passed into Stage.update()
  • display object tick events will now include delta, time, paused, and runTime properties if a Ticker tick event object is passed as the first param to Stage.update()
  • added Stage.tick()
  • added Event.set()
  • added MovieClip.framerate and support for time based movieclips
  • Added Bower support, including grunt task for automatically updating bower.json
  • fixed an issue with Ticker.reset()
  • Ticker.getTime()/getEventTime() now return -1 if the Ticker has not been initialized
  • preventDefault support added to the tickstart and drawstart events
  • added Stage.drawRect to support selective rendering
  • major rewrite of Graphics to use specific command objects
  • added Graphics.getInstructions()
  • added Text.getMetrics()
  • fix for Text.getMeasuredWidth() when no font or an invalid font is specified
  • fix for spritesheets that included 0 width/height frames
  • the CreateJS CDN now supports https / SSL
  • improved how Sprite handles sequencing between animations with different speed values
  • added "change" event to Sprite
  • added "added" and "removed" events to DisplayObject
  • added the extras folder, with: SVGExport, Context2DLog, and PerformanceTests
  • added Graphics.store() / unstore()
  • examples now all use the combined lib
  • SpriteSheet.getNumFrames() now returns 0 instead of null if images are not loaded.
  • added some initial unit tests for the library
  • added helper methods to Rectangle: union, intersects, extend, intersection, pad, isEmpty, & contains.
  • updated clone() method for all classes
  • added Matrix2D.equals() method
  • added DisplayObject.transformMatrix
  • mouse interactions and getObjectsUnderPoint now respect masks
  • added a mode param to getObjectsUnderPoint() to respect mouseEnabled/mouseChildren and event listeners
  • added Stage.preventSelection to block accidental selection of document elements
  • added pt param to DisplayObject.localToGlobal, globalToLocal, and localToLocal methods
  • BlurFilter provides higher quality results (thanks quasimondo)
  • added MouseEvent.isTouch
  • added support for margin and spacing in sprite sheet data (thanks renatopp)

Version 0.7.1 [December 12, 2013]


  • fixed issue with mouseChildren not working with nested Containers
  • fixed issue where first call to Ticker.addEventListener() did not return the listener
  • added DisplayObject.tickEnabled & Container.tickChildren
  • fixed an issue related to modal dialogs and pointer position for mouse down
  • fixed an issue when calling gotoAndStop(animation) in the animationend event stack for the same animation
  • ColorMatrix no longer extends Array
  • fixed ColorMatrix.toArray(), .concat(), and .clone()
  • changed dblclick to use a canvas listener instead of global listener
  • added MouseEvent.localX/Y
  • fixed touch/multitouch in IE11
  • fixed issue with -1 mouse pointers (thanks cubica)
  • fixed issue with AlphaMapFilter (thanks Dave)
  • added willTrigger() to EventDispatcher
  • modified mouse event flow so items with no listeners are not checked for a hitTest.
    • avoids unnecessary cross-domain issues introduced in EaselJS 0.7.0, when loaded images don't have any mouse listeners on them.
  • getObjectsUnderPoint() and getObjectUnderPoint() now account for hitAreas

Version 0.7.0 [September 25, 2013]


CRITICAL (may break existing content):

  • removed all onEvent handlers (ex. onClick, onTick, onAnimationEnd, etc)
  • removed Ticker.addListener and .removeListener
  • most mouse events now bubble
  • BitmapAnimation renamed to Sprite
  • MouseEvent now inherits from new Event class
  • sprite sheet data's animation .frequency property removed in favour of .speed
  • removed "target" from MouseEvent's param list
  • returning false from an event handler no longer causes dispatchEvent to return false, see Event.preventDefault
  • Added "use strict"; to everything.
  • renamed BoxBlurFilter to BlurFilter

DEPRECATED (will be removed in a future version):

  • MouseEvent mousemove/mouseup events, see DisplayObject pressmove/pressup
  • SpriteSheetUtils.flip()
  • SpriteSheetUtils.mergeAlpha()

OTHER:

  • implemented createjs Utils
  • implemented "use strict" mode
  • BitmapAnimation renamed to Sprite
  • renamed the "frequency" property in sprite sheet data to "speed" and changed functionality:
    • support for non-integer values
    • inverted outcome vs frequency. Ex. a "speed" value of 2 doubles playback speed, 0.5 halves it
  • added Sprite.framerate and SpriteSheet.framerate
  • added frameOrAnimation param to Sprite constructor
  • deprecated Sprite.offset (no longer functional)
  • added Ticker.timingMode and deprecated Ticker.useRAF
    • added Ticker.TIMEOUT, Ticker.RAF, Ticker.RAF_SYNCHED timing mode constants
  • added Ticker.getMeasuredTickTime()
  • Ticker now does not automatically init until a listener is added to it
  • added Ticker.reset()
  • added Stage.nextStage to relay interaction events
  • added Graphics.inject()
  • added Text.getMeasuredHeight()
  • fixes and improvements to Touch support
  • fixed setChildIndex when adding to an index lower than the item exists at already.
  • added Graphics.Command
  • merged lots of doc updates (thanks @peteshand)
  • lots of doc, example, & tutorial updates
  • included MouseEvent.nativeEvent for mouseover/out events
  • added rollover / rollout events to DisplayObject
  • prevented mouseover/out and rollover/out events from triggering if the mouse is not over the canvas
    • ex. within a scrolling div or DOM element layered over top
  • added pressmove / pressup events to DisplayObject
  • added Matrix2D.transformPoint() method
  • fixed an issue when adding the same listener to an event twice
  • added Event class, used by all events
  • MouseEvent inherits from new Event class
  • added .on and .off methods to EventDispatcher
  • fixed an issue with extending EventDispatcher
  • DisplayObject, SpriteSheet, and SpriteSheetBuilder now inherit from EventDispatcher
  • fixed an issue with the tick event's time value being epoch time instead of Timer time
  • added Ticker.getEventTime()
  • added Ticker.maxDelta
  • the initialize methods for Point, Rectangle, and Matrix2D are now public
  • added .copy() to Point, Rectangle, and Matrix2D
  • fixed an issue that could occur when reinitializing Matrix2D
  • added MovieClip.frameBounds
  • fixed errors when the lib was loaded in a browser with no canvas support (ex. IE8)
  • added support for .next on single frame spritesheet animations
  • added the BitmapText class
  • improved DOMElement redraw handling to avoid flicker and layout costs
  • added Stage mouseleave and mouseenter events
  • added tickstart, tickend, drawstart, and drawend events to Stage
  • added getBounds() functionality for all display objects
  • added MovieClip.getLabels() & getCurrentLabel()
  • Filter.getBounds() now returns null as its default value
  • bounds for cache() are now automatically adjusted for filters
  • improved BlurFilter performance and results (thanks to Mario Klingemann)
  • objects added to a MovieClip via addChild will now display over objects managed by the MovieClip
  • Fixed clone on AlphaMapFilter
  • Updated the build process to use NodeJS & Grunt.js. Please refer to the README in the build folder.

Version 0.6.1 [May 14, 2013]


  • Updated demos:
    • propagate the tick event to the stage. This is a best practice.
    • Added AlphaMaskFilter demo.
    • Added a "Graphics Winding" demo
    • Added Safari note to the Cache demo
  • Updated documentation:
    • Added lots more examples.
    • Matrix2D.rotate
    • Matrix2D.tx named incorrectly
    • Stage.stagemousedown event (stagemouseup was doc'd twice)
    • DisplayObject.dblclick (case incorrect)
    • Fixed example in Stage documentation (incorrect)
    • Fixed example in Text documentation (missing quote)
    • Fixed updateContext method name in docs (was incorrectly set to "setupContext")
    • Added sample code to MovieClip documentation, and a MovieClip example.
    • Added optional parameters to MovieClip constructor
    • Updated description of DisplayObject.mouseEnabled
    • Fixed setPaused/getPaused descriptions in Ticker, and added some better descriptions, a few examples, and updated documentation throughout.
    • Updated SpriteSheetUtils/extractFrame documentation to mention Bitmap/sourceRect and security concerns
    • Updated Bitmap/cache methods to clarify caching usage for Bitmaps
    • Updated optional parameter for DisplayObject/cache
    • Added initial example in EaselJS to show interaction
  • Modified EventDispatcher to avoid unnecessary instanceof and apply
  • Replaced the width=0 hack (for clearing canvases) with a setTransform/clearRect in DisplayObject, Container, and SpriteSheetUtils.
  • Updated clearRect usages to use +1 on width and height to prevent crashes on Android (thanks mikelito)
  • Fixed Matrix2D.scale method to properly apply scale when rotated (thanks fumio)
  • Fixed bug with mouse and touch events in iOS's UIWebView (thanks cubica)

Version 0.6.0 [Feb 12, 2013]


  • added new event model with EventDispatcher class
  • added DisplayObject.cursor property
  • added Container.getChildByName() method
  • added ButtonHelper class
  • fixed error with AlphaMaskFilter
  • hitArea position now ignores the regX/Y of the target instance
  • added Log class to provide verbose errors while debugging
  • simplified & updated MovieClipPlugin to work with revised TweenJS plugin model
  • added DisplayObject.set() shortcut method
  • added MovieClip.autoReset property
  • added Graphics.isEmpty() method
  • improved support for empty masks
  • added SpriteSheetBuilder.progress
  • added SpriteSheetBuilder.timeSlice
  • removed the callback param on SpriteSheetBuilder.buildAsync, replaced with .onComplete
  • added SpriteSheetBuilder.onComplete and .onProgress
  • fixes for various MovieClip bugs
  • SpriteSheetBuilder now works correctly when adding more than one MovieClip
  • fixed an issue with SpriteSheetBuilder defining frames that exceeded the image bounds
  • added SpriteSheet.getFrameBounds()
  • added BitmapAnimation.getBounds()
  • added closePath support to Graphics.decodePath()
  • changed how animationEnd events are fired, to support calling stop() in the handler
  • animationEnd events now include a "next" value with the name of the next animation
  • event types for MouseEvents now follow DOM standards (mousedown, click, dblclick etc)
  • improved hitArea handling
  • added version.js
  • added MovieClip.currentFrame
  • documentation updates
  • new and improved build process, tools & documentation format
  • added Stage.enableDOMEvents() method
  • added default Stage.handleEvent() for integration with Ticker and new event model
  • deprecated Stage.snapToPixel API
  • added Graphics.ignoreScale API
  • added a matrix parameter to Graphics.beginBitmapFill

Version 0.5.0 [Aug 24, 2012]


  • moved all classes into a configurable createjs namespace
  • added support for multitouch
  • complete rewrite of drawing model to use a hybrid approach (save/restore & matrix)
  • added DisplayObject.mask
  • added Graphics.drawAsPath(ctx)
  • added Text.getMeasuredHeight()
  • added DisplayObject.updateContext(ctx)
  • added DisplayObject.getMatrix(matrix)
  • added DisplayObject.hitArea
  • fixed issue with Text not displaying if .text is 0 or false
  • fix for setChildIndex
  • fix for addChildAt with multiple params
  • added SpriteSheetBuilder
  • added MovieClip.actionsEnabled
  • updates to Ticker to improve support for requestAnimationFrame
  • better support for negative corner values on .drawRoundRectComplex
  • added stage.mouseMoveOutside & mouseEvent.rawX/Y
  • added "createjs.createCanvas()" to support for alternative canvases (ex. exCanvas)
  • added "scale" parameter to cache() and cleaned up the implementation
  • fix for DOMElement with Opera
  • various bug fixes and doc updates
  • changed setTransform to return the instance for use in chaining
  • started adding tutorials to address common questions and make it easier to get started
  • stage.mouseX/Y now defaults to 0 instead of null
  • text.textBaseline now defaults to "top" instead of null (resolved to "alphabetic")
  • text.textAlign now defaults to "left" instead of null
  • text.color now defaults to "#000" instead of null
  • parameters passed to Stage.update are now passed on to onTick handlers
    • for example, Ticker elapsedTime and paused params
  • correctly resolves mouse positions for CSS scaled canvases & canvases with borders/padding
  • added AlphaMapFilter & AlphaMaskFilter
  • added Touch.disable(stage)

Version 0.4.2 [Apr 18, 2012]


  • hot fix for issues with Ticker that caused reduced frame rates.
  • NO API CHANGES

Version 0.4.1 [Apr 14, 2012]


  • DisplayObject.tick has been renamed to onTick
  • fixed a problem with preloading sprite sheet images when using tile based sheets
  • worked around a bug in Safari with addFlippedFrames
  • added setChildIndex(), swapChildrenAt(), and swapChildren() to Container
  • made frequency param on enableMouseOver optional
  • worked around a Chrome 17 bug that would prevent text w/o maxwidth from rendering
  • additional fixes for video as a Bitmap source
  • rewrite of Ticker to simplify implementation and solve issues with useRAF in Safari
  • animations in BitmapAnimation now default to looping
  • added BitmapAnimation.play/stop()
  • added Bitmap.sourceRect
  • Ticker now supports an object with a tick method, or a function as a listener
  • renamed DisplayObject.tick to .onTick
  • added MovieClip class
  • added onComplete to SpriteSheet
  • added ColorMatrix class
  • added Graphics.decodePath for compressed vector paths
  • support for passing a canvas string id to the Stage constructor
  • various bug fixes and doc updates
  • updateCache now clears the cacheCanvas correctly

Version 0.4 [Nov 30, 2011]


  • completely rewrote BitmapSequence (now BitmapAnimation) & SpriteSheet including data format
    • BitmapSequence was renamed BitmapAnimation
    • SpriteSheet now handles calculating frame rects
    • support for multi-image sprite sheets
    • support for variable frame sizes
    • support for frame reuse (non-linear frame order)
    • support for frame registration points
    • SpriteSheet supports URIs as sources (and will handle preloading)
  • rewrote SpriteSheetUtils to support SpriteSheet changes
    • renamed .flip() to .addFlippedFrames() and changed functionality significantly
    • removed .frameDataToString()
  • fixed support for video sources in Bitmap
  • added support for null canvas for Stage
  • added DOMElement, an experimental display object for including DOM elements in the display list
  • separated tick and draw into separate phases to fix possible race conditions
  • added Matrix2D.isIdentity()
  • support for double click events (thanks to rbarazi)
  • added MouseEvent.nativeEvent and MouseEvent.target properties
  • fixes to Ticker, added second "paused" param when it calls tick
  • added experimental support for requestAnimationFrame to Ticker
  • fixed a problem with caching Container instances
  • fixed an issue with .parent not being assigned on children of cloned Containers
  • added filter support via DisplayObject.filters and Filter objects
    • added sample filters: ColorFilter, ColorMatrixFilter, and BoxBlurFilter
  • added DisplayObject.setTransform()
  • added DisplayObject.onDoubleClick handler (thanks to rbarazi)
  • added DisplayObject.cacheID and DisplayObject.getCacheDataURL()
  • performance optimization for DisplayObject drawing (6910e6849856bd0740f8)
  • added support for touch input (single point) via the Touch class
  • added support for passing an image URI to the Bitmap constructor
  • fixes to Shadow
  • optimizations
  • documentation updates

Version 0.3.2 [Mar 2, 2011]


  • added stage.mouseInBounds
  • added DisplayObject.onMouseOver and onMouseOut callbacks
  • added stage.enableMouseOver(freq)
  • improved support for calculating mouseX/Y in divs with relative positioning
  • fixed Graphics.clone()
  • fixed an issue with shadows not being reset properly
  • migrated to use YUIDocs instead of JSDocs
  • fixed an issue that prevented BitmapSequence instances with frameData from working with gotoAndPlay(frameNumber)

Version 0.3.1 [Feb 13, 2011]


  • fixed issues with hitTest and mouse event callbacks on Container instances.
  • added recursive clone option to Container and Shape
  • fix for snapToPixel
  • added cache, updateCache, and HelloWorld demos
  • extensive code cleanup, including improved support for jsdoc

Version 0.3 [Feb 8, 2011]


  • renamed Tick to Ticker
  • adding a listener to Ticker twice will now move it to the end of the listener list
  • added Ticker.getMeasuredFPS()
  • added Ticker.setFPS()
  • renamed Stage.tick to Stage.update and made Stage.tick point to Stage.update
  • made the pauseable param "true" by default on Ticker.addListener()
  • added Stage.toDataURL(backgroundColor, mimeType)
  • renamed Rectangle.w/h to width/height
  • improvements to commenting and documentation
  • formalized inheritance model to make code more readable
  • changed color to null instead of 0 in Shadow.IDENTITY
  • fixed an error with simple sprite sheets that weren't set to loop
  • implemented "tiny" instructions for Graphics. (ex. myGraphics.f("#0FF").c(x,y,r) )
  • fixed problems with Graphics.clone()
  • fixed bug with passing instructions to a Graphics object constructor
  • complete rewrite of the render engine to be cleaner and more flexible
  • added .decompose() method to Matrix2D
  • added .skew() method to Matrix2D
  • added .skewX/Y on DisplayObject
  • added SpriteSheetUtils.extractFrame(spriteSheet,frame) method
  • added basic multi-line support for Text
  • added DisplayObject.suppressCrossDomainErrors property
  • complete rewrite of the hit testing system to be cleaner and run 5-10x faster
  • improved the interaction model:
    • added .onPress, .onClick callbacks on DisplayObject
    • removed .mouseChildren from Container
    • made .mouseEnabled true by default
    • added .onMouseDown, .onMouseUp, and .onMouseMove callbacks on Stage
    • added MouseEvent
  • Stage.getObjectsUnderPoint() has been moved to Container
  • added Container.contains(child) method
  • added DisplayObject.compositeOperation
  • added appendProperties() and prependProperties methods to Matrix2D
  • added DisplayObject.hitTest() method
  • added stage.snapToPixelEnabled and displayObject.snapToPixel
  • added DisplayObject.updateCache()
  • renamed minified file from easeljs.js to easel.js
  • Re-factored directory layout

Version 0.2.1 [Jan 12, 2011]


  • optimized Graphics: reduced overhead by 80-90%
  • added drawPolyStar method to Graphics
  • fixed bug with using canvas as an image source for Bitmap
  • made mouseChildren true by default for stage
  • fixed major bug with Ticker.getTime()

Version 0.2 [Jan 6, 2011]


Focus on vector graphics and text.

  • repackaged all class files to "easeljs" instead of "com.gskinner"
  • added Graphics API, and revised Shape to use a Graphics instance
  • added Text class
  • added Point class and updated CoordTransform to use it
  • added Rectangle class
  • fixed minor issue with Ticker
  • added initial implementation of Stage.mouseX/Y (likely to change)
  • added new examples, updated others to work with revised APIs
  • minor tweaks, fixes to code and documentation
  • added support for multiple params on Container.addChild, addChildAt, removeChild & removeChildAt

Version 0.1 [Dec 17, 2010]


Initial release.