UNPKG

image-reader

Version:

Allow you to control and switch an image source to play as a MovieClip.

187 lines (123 loc) 3.98 kB
image-reader ============ Allow you to control and switch an image source to play as a MovieClip. Installation ============ ``` npm install -S image-reader ``` How to use ========== ```javascript var ImageReader = require('image-reader'); var reader; // preload all your images, then reader = new ImageReader([ '/media/img1.jpg', '/media/img2.jpg', '/media/img3.jpg', '/media/img4.jpg', '/media/img5.jpg' ]); anim(); function anim() { requestAnimationFrame(anim); reader.update(); } ``` Documentation ============= ### Constructor ```javascript new ImageReader(images[, options]); ``` #### images `Array[String]` The image urls that are going to be switched. Preloading them will avoid flickering. --- ### Options #### autoplay `Boolean` `true` Start playing immediately when instanciated #### el `Image` `null` The targeting image element. If not provided, one will be created and must be inserted, accessible through `el` property. #### fps `Number` `30` FPS of the animation #### from `Number` `0` Starting url, indexed from the array you pass at constructor. #### loop `Boolean` `false` Loop when it reaches `to` value #### onComplete `Function` `null` Called when the animation complete. Does not work if repeat is set. #### onRepeat `Function` `null` Called at each repeat #### onRepeatComplete `Function` `null` Called when the animation has played all repeat #### repeat `Number` `0` How many time the animation should repeat #### retina `Boolean` `false` If true, the created image (if no one was provided) would be styled with `width` and `height` divided by 2 #### reverse `Boolean` `false` If `true`, animation will be played in reverse side #### to `Number` `null` Frame to stop the animation, indexed from the array you pass at constructor. --- ### Methods #### update([force]) Update the current image src according to `fps`. This method has to ba called by your own in a raf. - **force** `Boolean` `false` : If `force` is set to `true`, FPS will be ignore and current src will be updated #### play() Start playing from last known position #### pause() Pause at current position #### stop() Stop playing and set current position to `from` value #### reverse([side]) Switch playing side, optionaly forcing it - **side** `Boolean` `null` : Switch playing side. If side is set to `true`, normal side will be forced; `false` will force reverse. #### goFromTo([from, to]) `from` or `to` can be omitted. - **from** `Number` : Set starting frame and go to it - **to** `Number` : Set ending frame #### goToAndPlay(frame) - **frame** `Number` : Move cursor to `frame` and start playing #### goToAndStop(frame) - **frame** `Number` : Move cursor to `frame` and stop playing #### destroy() Stop playing and remove image element from the DOM --- ### Properties ###### Getters #### el `Image` Return the targeting image element. If no `el` was given to the constructor, you will have to add this to your page. #### current `Number` Return the current frame, index0 based #### total `Number` Return images array length ###### Setters #### fps `Number` FPS of the animation #### loop `Boolean` Loop when it reaches `to` value #### repeat `Number` How many time the animation should repeat #### onComplete `Function` Called when the animation complete. Does not work if repeat is set. #### onRepeat `Function` Called at each repeat #### onRepeatComplete `Function` Called when the animation has played all repeat --- Browser compatibility --------------------- If relies on `performance.now()`. You could need a polyfill for IE9 - `perfnow` polyfill installation with `npm install -S perfnow` Contribute ---------- First you should install [EditorConfig](http://editorconfig.org/) package in your code editor. Then, ``` cd .git/hooks ln -s ../../hooks/pre-commit npm install ``` Then 2 commands are available : - `npm run watch` watch and build js files - `npm run build` clean, build and uglify js files