动画 - Property

属性

type

  • 类型:string

  • 可取值: lottie prop

  • 描述:

    动画类型

trigger

  • 类型:bool

  • 可取值:

    true:手动触发,需要和state配合使用。

    false:自动触发

  • 默认值:false

  • 描述:

    是否手动触发动画

state

  • 类型:bool

  • 可取值:

    true:需要。

    false:不需要。

  • 默认值:false

  • 描述:

    是否需要触发动画

propAnimatorSet.ordering

  • 类型:string

  • 可取值:

    together:同时执行。

    sequentially:串行执行。

  • 默认值:together

  • 描述:

    动画集合执行模式

propAnimatorSet.delay

  • 类型:number

  • 可取值: [0, Int.MaxValue]

  • 默认值:0

  • 描述:

    动画播放的延迟时间

propAnimatorSet.loopCount

  • 类型:number

  • 可取值: [0, Int.MaxValue]

  • 默认值:0

  • 描述:

    动画播放的循环次数

propAnimatorSet.loopMode

  • 类型:string

  • 可取值: reset:不需要自动翻转,例如:[0,1] -> [0,1] -> [0,1]。 reverse:需要自动翻转:例如:[0,1][1,0] -> [0,1][1,0]]。

  • 默认值:reset

  • 描述:

    动画循环播放模式

propAnimatorSet.duration

  • 类型:number

  • 可取值:[0, Int.MaxValue]

  • 默认值:300

  • 单位:ms

  • 描述:

    动画执行持续时间

propAnimatorSet.valueType

  • 类型:string

  • 可取值:intType floatType colorType

  • 描述:

    动画值类型

propAnimatorSet.valueFrom

  • 类型:string

  • 可取值:number color

  • 描述:

    动画值起始点

propAnimatorSet.valueTo

  • 类型:string

  • 可取值:number color

  • 描述:

    动画值结束点

propAnimatorSet.propName

  • 类型:string

  • 可取值: positionX:视图X轴位置偏移,[-Int.MaxValue, Int.MaxValue]

    positionY:视图Y轴位置偏移,[-Int.MaxValue, Int.MaxValue]

    opacity:视图透明度,[0, 1]

    scale:视图X轴、Y轴缩放,[-Int.MaxValue, Int.MaxValue]

    ration:视图旋转角度,[0,360]

    renderColor:视图渲染颜色,支持视图背景色,#RGBA

  • 描述:

    属性名

propAnimatorSet.interpolator

  • 类型:string

  • 可取值:accelerate standard decelerate anticipate overshoot spring bounce cosine

  • 默认值:standard

  • 描述:

    插值器

示例

代码示例

{
    "animation":{
        "viewId":{
          
            // 动画类型
            // 不支持表达式
            "type":"'prop'",
          
            // 是否为手动触发
            // true是手动触发;false是自动触发;
            // 不支持表达式
            "trigger":true,
          
            // 动画是需要被触发,与trigger配合使用,需要业务方传值
            // 支持表达式
            "state":true / false,
          
            // 属性动画集合
            // 不支持表达式赋值
            "propAnimatorSet":{            
	        // ordering:together 同时执行
                // ordering:sequentially 串行执行
                // 非必传, 默认together
                "ordering":"'together'",
             	// 动画组合
                "animators":[
                    {
                        // 属性动画描述信息
                        // 注意:动画播放完成后会保持在动画终态
                        // 这里需要注意和loopMode的组合关系,
                        // 在reverse状态下,如果from=0,to=1,那么终态是0;
                        // 在reset状态下,如果from=0,to=1,那么终态是1;
                        "propAnimator":{
                          
                            // 启动首次启动动画的延迟时间
                            // 非必传,默认0
                            "delay":0,
                          
                            // 循环次数
            		    // 不支持表达式
                            // 默认值0
            		    "loopCount":0, 
                          	
                            // 动画循环播放模式
                            // reset 不需要自动翻转 例如:[0,1] -> [0,1] -> [0,1]
                            // reverse 需要自动翻转 例如:[0,1][1,0] -> [0,1][1,0]
                            // 默认reset
                            "loopMode":"'reset/reverse'",
                          
                            // 动画执行持续时间
                            // 非必传 默认300
                            "duration":1000,
                          
                            // 动画过渡值类型
                            // 必传
                            "valueType":"'intType/floatType/colorType'",
                          
                            // 动画值起始点
                            // 支持 整形 浮点型 十六进制(后两位为Alpha通道)
                            // 必传
                            // rotation [0,360*n]
                            // 
                            "valueFrom":"'0/0.0/#000000'",
                          
                            // 动画值结束点
                            // 支持 整形 浮点型 十六进制(后两位为Alpha通道)
                            // 必传
                            "valueTo":"'100/100.0/#FFFFFF'",
                          
                            // 属性名
                            // positionX 视图X轴位置偏移
                            // positionY 视图Y轴位置偏移
                            // opacity 视图透明度
                            // scale 视图X轴、Y轴缩放
                            // rotation 视图旋转角度0~360
                            // renderColor 视图渲染颜色,支持视图背景色
                            // 必传
                            "propName":"'positionX/positionY/opacity/scaleX/scaleY/ratationX/rotation/renderColor'",
                          
                            // 插值器
                            // 非必传,默认standard
                            // https://yuque.antfin-inc.com/yk_vip/nkx2wn/oi375o
                            // linear iOS:MCXCurveTypeLinear;Android:MotionCurveXLinearInterpolator
                            // accelerate iOS:MCXCurveTypeAccelerate;Android:MotionCurveXAccelerateInterpolator
                            // decelerate iOS:MCXCurveTypeDecelerate;Android:MotionCurveXDecelerateInterpolator
                            // standard iOS:MCXCurveTypeStandard;Android:MotionCurveXStandardInterpolator
                            // anticipate iOS:MCXCurveTypeAnticipate;Android:MotionCurveXAnticipateInterpolator
                            // overshoot iOS:MCXCurveTypeOvershoot;Android:MotionCurveXOvershootInterpolator
                            // spring iOS:MCXCurveTypeSpring;Android:MotionCurveXSpringInterpolator
                            // bounce iOS:MCXCurveTypeBounce;Android:MotionCurveXBounceInterpolator
                            // cosine iOS:MCXCurveTypeCosine;Android:MotionCurveXCosineInterpolator
                            "interpolator":"'standard'"
                        },
                    }
                    
                ]
            }
        }
    }
}

位移动画(positionX/positionY)

{
"animation": {
    "cover-img":{
      "type":"'prop'",
      "propAnimatorSet":{
        "animators":[
          {
            "propAnimator":{
              "delay":0,
              "loopCount":10,
              "loopMode":"'reverse'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'positionX'",
              "interpolator":"'standard'",
              "valueFrom":0,
              "valueTo":200
            }
          }
        ]
      }
    }
  }
}

透明动画(opacity)

{
  "animation":{
    "cover-img":{
      "type":"'prop'",
      "propAnimatorSet":{
        "animators":[
          {
            "propAnimator":{
              "delay":0,
              "loopCount":10,
              "loopMode":"'reset'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'opacity'",
              "interpolator":"'standard'",
              "valueFrom":0,
              "valueTo":1
            }
          }
        ]
      }
    }
}

缩放动画(scale)

{
  "animation":{
    "cover-img":{
      "type":"'prop'",
      "propAnimatorSet":{
        "animators":[
          {
            "propAnimator":{
              "delay":0,
              "loopCount":3,
              "loopMode":"'reverse'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'scale'",
              "interpolator":"'standard'",
              "valueFrom":0,
              "valueTo":1
            }
          }
        ]
      }
    }
}

旋转动画(rotation)

{
  "animation":{
    "cover-img":{
      "type":"'prop'",
      "propAnimatorSet":{
        "animators":[
          {
            "propAnimator":{
              "delay":0,
              "loopCount":3,
              "loopMode":"'reset'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'rotation'",
              "interpolator":"'standard'",
              "valueFrom":0,
              "valueTo":360
            }
          }
        ]
      }
    }
}

颜色动画(renderColor)

{
  "animation":{
    "text-area":{
      "type":"'prop'",
      "propAnimatorSet":{
        "animators":[
          {
            "propAnimator":{
              "delay":0,
              "loopCount":0,
              "loopMode":"'reset'",
              "duration":3000,
              "valueType":"'colorType'",
              "propName":"'renderColor'",
              "interpolator":"'standard'",
              "valueFrom":"'#00FF00'",
              "valueTo":"'#0000FF'"
            }
          }
        ]
      }
    }
  }
}

组合动画(renderColor)

{
  "animation":{
    "cover-img":{
      "type":"'prop'",
      "propAnimatorSet":{
        "ordering":"'sequentially'",
        "animators":[
          {
            "propAnimator":{
              "delay":0,
              "loopCount":0,
              "loopMode":"'reset'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'positionX'",
              "interpolator":"'standard'",
              "valueFrom":0,
              "valueTo":500
            }
          },
          {
            "propAnimator":{
              "delay":0,
              "loopCount":0,
              "loopMode":"'reverse'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'opacity'",
              "interpolator":"'standard'",
              "valueFrom":1,
              "valueTo":0
            }
          },
          {
            "propAnimator":{
              "delay":0,
              "loopCount":0,
              "loopMode":"'reverse'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'scale'",
              "interpolator":"'standard'",
              "valueFrom":1,
              "valueTo":0
            }
          },
          {
            "propAnimator":{
              "delay":0,
              "loopCount":0,
              "loopMode":"'reset'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'rotation'",
              "interpolator":"'standard'",
              "valueFrom":0,
              "valueTo":360
            }
          },
          {
            "propAnimator":{
              "delay":0,
              "loopCount":0,
              "loopMode":"'reset'",
              "duration":1000,
              "valueType":"'floatType'",
              "propName":"'positionX'",
              "interpolator":"'standard'",
              "valueFrom":500,
              "valueTo":0
            }
          }
        ]
      }
    }
  }
}