好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

sprite.js

sprite.js 介绍

sprite.js 是跨平台的2D绘图对象模型库,它能够 支持 web、node、桌面应用和 微信小程序 的图形绘制和实现各种动画 效果 。sprite.js基于 canvas 快速 绘制 结构化 UI、动画和交互 效果 ,并发布到任何拥有canvas环境的平台上(比如浏览器、 小程序 和node)。 ?

快速 开始

一个 应用可以有多个场景,每个场景可以有多个图层,每个图层上可以有多个元素??

// 导出你要用到的对象

const { Scene,Sprite,Label } = window.spritejs;

// 初始化场景scene,它不是canvas,只是 一个 用来包裹canvas的div元素

this.scene = new Scene('#myCanvas',{

viewport: ['auto','auto'],

resolution: [750,1008],

stickMode: 'top'

});

// 创建背景图层layer,这个就是真正意义上的canvas了

this.bglayer = this.scene.layer('bg'); // bg 只是图层的别名,可以理解为canvas的id

下面以精灵Sprite为例

// 1.创建Sprite

const s = new Sprite('http://xxx.com/a.png');

// 2.设置 属性 ,精灵的 属性 等同于css3的样式,很好理解

s.attr({

anchor: [0.5,0.5],// 锚点,你可以理解为css3中的transform-origin

pos: [0,0],// 位置,最大为 750 * 1008 也就是场景的大小

size: [100,100],// 大小, 默 认为 图片 的宽高

scale: [0.9,0.9] // 缩放, 默 认 1 1

});

// 3. 添加 到图层

this.bglayer.append(s);

// 4.创建动画

s.animate([

{ x: 100,y: 100 },// 先运动到 100,100 位置

{ scale: [0.2,0.2] } // 再缩小到 0.2 0.2

],{

duration: 2000,// 时间2s

delay: 1000,// 延时1s 后执行

fill: 'both' // 保留在最后状态

})

如何创建连续的过程动画?

// 先移动到 100,100

await s.animate([

{ x: 100,y: 100 }

],{

duration: 1000,

fill: 'both'

}).finished;

// 停顿2s后,缩小到 0.2 0.2

await s.animate([

{ scale: [0.2,0.2] }

],

delay: 2000,

fill: 'both'

}).finished;

预加载

大家都知道,如果在canvas中直接使用网络 图片 ,会因无法读取到 图片 大小而绘制失败。一般会先进行 预加载 ,spritejs帮我们封装了 预加载 方法 。??

// 预加载

await this.scenne.preload(

{ id: 'bg',src: 'http://xxx.com/bg.png' },

{ id: 's',src: 'http://xxx.com/s.jpeg' },

)

// 使用

const s = new Sprite('s'); // 这个时候可以使用id来取到 图片

总结

像操作DOM对象一样操作画布上的图形元素

通过智能缓存大大提升渲染 性能

支持 多图层处理图形、文本、图像渲染

支持 DOM事件代理、 自定义 事件派发

使用ES6+语法和面向对象编程

结构化 对象树,对d3引擎友好,能够无缝使用

支持 服务器端渲染和 小程序

网站地址 : http://spritejs.org

GitHub: https://github.com/spritejs/spritejs

网站描述: 由360奇舞团开源的跨终端 canvas 绘图框架

sprite.js官方网站

官方网站: http://spritejs.org

如果觉得 网站内容还不错,欢迎将 网站 推荐给程序员好友。

查看更多关于sprite.js的详细内容...

  阅读:39次

上一篇

下一篇

第1节:dc.js    第2节:Chartkick    第3节:Tabulator    第4节:ganlab    第5节:github-profile-summary    第6节:anime    第7节:JSXGraph    第8节:sigma.js    第9节:doom-fire-algorithm    第10节:britecharts    第11节:deck-of-cards    第12节:awesome-d3    第13节:js-sequence-diagrams    第14节:nivo.js    第15节:skrollr    第16节:Planetary.js    第17节:GraphicsJS    第18节:G3D    第19节:incubator-echarts    第20节:Walkway.js    第21节:react-native-chart-kit    第22节:WebCola    第23节:gka    第24节:scrollreveal    第25节:Velocity.js    第26节:ichartjs    第27节:txt.wav    第28节:Ggraph    第29节:react-animations    第30节:CamanJS    第31节:ant-motion    第32节:Blotter.js    第33节:Chart    第34节:vivus.js    第35节:Paper.js    第36节:Flotr2    第37节:Vis.js    第38节:spirit    第39节:Chart.js    第40节:JS Charts    第41节:VexChords    第42节:vue-echarts-v3    第43节:popmotion.js    第44节:smoothie    第45节:Rough.js    第46节:wx-charts    第47节:vue-echarts    第48节:JsCharts    第49节:Sparky    第50节:svgomg    第51节:moveTo    第52节:lightweight-charts    第53节:Flot    第54节:flubber    第55节:morris.js    第56节:Cubism.js    第57节:dynamics.js    第58节:Plottable.js    第59节:SandDance    第60节:tween.js    第61节:RAWGraphs    第62节:spin.js    第63节:Chartist.js    第64节:vx    第65节:mxgraph    第66节:vue-trend    第67节:Dygraphs    第68节:quickchart    第69节:Bodymovin    第70节:Turf.js    第71节:Luma.GL    第72节:js2flowchart.js    第73节:G6    第74节:Rickshaw    第75节:mo.js    第76节:g2    第77节:pts.js    第78节:trianglify    第79节:shifty    第80节:recharts    第81节:markvis    第82节:MetricsGraphics.js    第83节:billboard.js    第84节:AwesomeChartJS    第85节:El Grapho    第86节:GreenSock-JS    第87节:VisualDL    第88节:cal-heatmap    第89节:tui.chart    第90节:TensorSpace.js    第91节:AmCharts    第92节:vizceral    第93节:crossfilter    第94节:Ronin    第95节:Fusioncharts    第96节:Processing.js    第97节:tauCharts    第98节:jspaint    第99节:Snap.svg    第100节:openlayers    第101节:Highcharts.js    第102节:GoJS    第103节:rete    第104节:inmap    第105节:tikzcd-editor    第106节:Frappé Charts    第107节:easy-pie-chart    第108节:jsplumb    第109节:sprite.js    第110节:ECharts    第111节:graphql-editor    第112节:granim.js    第113节:piecon    第114节:Fabric.js    第115节:zrender.js    第116节:hamburgers    第117节:Canvasjs    第118节:ola    第119节:apexcharts.js    第120节:maker.js    第121节:Graph Dracula    第122节:plotly.js    第123节:wunderbar    第124节:gpu.js    第125节:v-charts    第126节:model-viewer    第127节:zdog    第128节:Chartify    第129节:C3.js    第130节:Aristochart    第131节:hanzi-writer    第132节:Visual Alchemist    第133节:vue-amap    第134节:p5.js    第135节:anime.js    第136节:Paths.js    第137节:vs    第138节:cesium.js    第139节:echarts-gl    第140节:Birdseye    第141节:gl-matrix    第142节:WebPlotDigitizer    第143节:GraphiQL    第144节:SVG.js    第145节:d3.js    第146节:muze    第147节:animateplus    第148节:图表秀    第149节:F2.js    第150节:mapv    第151节:Raphael.js    第152节:nvd3.js    第153节:JSTS    第154节:medium-zoom    第155节:Envision.js    第156节:flowchart.js    第157节:Two.js    第158节:sheetsee.js    第159节:deck.GL    第160节:react-spring    第161节:KUTE.js    第162节:VisuAlgo    第163节:ONNX.js    第164节:Kline    第165节:Arbor.js    第166节:cytoscape.js    第167节:SVG-Morpheus    第168节:metabase