canvas库的使用

第三方的canvas库

面向对象方式

  • 一切皆对象
  • 如何定义对象 ①Object构造函数 ②直接量 {} ③自定义构造函数 再new
    ** 构造函数 new一个构造函数就可以得到对象(实例)*
  • this
  • 原型 prototype / 原型链

konva概念

  • 舞台 stage,整个视图看做是一个舞台 stage,舞台中可以绘制很多个层 layer
  • 层 layer,layer下面可以有很多的group
  • 组 group,group下面可以有 矩形、图片、其他形状等
  • 图形

基本操作

  • 创建舞台
new Konva.Stage({
      container:'container'  //存放舞台的容器
      width:window.innerWidth  //设置全屏
      height:
  })
  • 创建层
    new Konval.Layer({}) //创建一个层
    stage.add(layer) //将层添加到舞台
  • 图形或组添加到 层
  • 图形添加到组
  • 绘制 layer.draw()

基本图形

  • Konva.Rect() 矩形
  • Konva.Circle() 圆形
  • Konva.Ellipse() 椭圆
  • Konva.Text() 文字
  • Konva.Image() 图片
  • Konva.Line() 划线
  • Konva.star() 星星
  • ....

事件

类似于jquery
rect.on("mouseenter", function(){ this.rotation(45); layer.draw(); }).on("mouseleave", function(){ this.rotation(0); layer.draw(); })

动画

  • tween对象 指定动画持续时间 指定变化的样式 tween.play()

    • tween可以控制所有数字类型的属性进行动画处理,比如:x, y, rotation, width, height, radius, strokeWidth, opacity, scaleX等
    • tween.play() //播放动画
    • tween.pause() //暂停动画
    • otween.reset() //重置动画
    • otween.finish() //立即结束动画
  • 简写 图形.to()是对tween的封装

  • Animation对象
    var anim=new Konva.Animation(function(frame){
    //动画系统提供的frame有三个属性可以使用:
    var time=frame.time //动画执行总时间
    var timeDiff=frame.timeDiff //距离上一帧的时间
    var frameRate=frame.frameRate //帧率(即1000/时间间隔)
    //动画的动作

    },layer)
    anim.stop()//结束动画

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,185评论 2 32
  • 第三方的canvas库 konvaJS https://konvajs.github.io/ 通用 echar...
    飞鱼_JS阅读 12,553评论 1 6
  • 【四、Canvas开发库封装】 《4.1封装常用的绘制函数》 4.1.1封装一个矩形 //思考:我们用到的矩形需要...
    夜幕小草阅读 10,227评论 2 5
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 9,355评论 3 40
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,520评论 5 13