# 高性能模式

区别于常规模式,高性能模式具备较高的性能,对于极高体验要求的简易动画,是个不错的选择,它的使用也很方便,比如:

const action = Bling._.MoveTo(3000, Bling.point(120));

细心的你或许已经看破,是的,就是在 Bling 对象后加个 _,看上去是不是很清晰。

然而,Bling._ 对象提供的动画类型较为有限(扩展空间相对也小很多):

  • MoveBy
  • MoveTo
  • ScaleBy
  • ScaleTo
  • RotateBy
  • RotateTo
  • Back
  • Blink
  • FadeTo
  • FadeIn
  • FadeOut
  • Breathe
  • Shake
  • JumpUp
  • FlipX
  • FlipY

支持的特性也较为有限:

  • 不能监听动画运行中、完成、停止的回调,也不能主动控制它的暂停、恢复
  • 不能做循环及其组合的执行
  • 缓冲方法有限,不能设置插值

不过,你可以和常规模式直接搭配使用,追求“极(ke)致(ke)”的你不会太失望:

{
  "usingComponents": {
    "_": "mini-ali-bling/_",
    "bling": "mini-ali-bling/bling"
  }
}
<bling
  className="container"
  ref="BlingRef"
>
  <view />
</bling>
<_
  className="bling"
  ref="_Ref">
  <view />
</_>
<!-- 嵌套也可以 -->
<bling
  className="container"
  ref="BlingRef"
>
  <_
    className="bling"
    ref="_Ref">
    <view />
  </_>
</bling>
const { Bling } = $global;

const refs = {
  BlingRef(ref) {
    this.BlingRef = ref;
  },
  _Ref(ref) {
    this._Ref = ref;
  },
};

Page({
  onReady() {
    const shakeAction = Bling.Shake(150, 5);
    const fadeOutAction = Bling._.FadeOut(500);

    shakeAction.on('complete', () => {
      console.log('complete shake');
    });
    this.BlingRef.runAction(action);
    this._Ref.runAction(fadeOutAction);
  },
  ...refs,
});