评论

自定义震动

微信提供的震动API只有两个:

vibrateShort

vibrateLong

short只有15ms,但在实测当中,这个方法很不灵,社区里一堆这样的问题,腾讯官方永远只有一句:提供下代码片段.....,我有一句xxxx不知当讲不当讲

long有400ms,这个震动有点强,突然来一下,可能会吓到用户,我想要震动50ms,不好意思,暂不支持!只好另想办法。

有一个折中方案:50ms=15ms+15ms+15ms,也就是三次短震动,用一个定时器去连续震动三次就差不多达到效果了!

引擎:Laya

编辑器:LayaAir IDE

语言:TS

代码:

/**

* 震动时间

* @param time  毫秒数

*/

function vibrate(time: number) {

    let count = time / 15;

    let index = 0;

    let obj = { count: count, index: index };

    Laya.timer.loop(16, obj, function () {

        wx.vibrateShort();

        index++;

        if (index > count) {

                Laya.timer.clearAll(obj);

        }

    });

}


JS代码:

/**

* 震动时间

* @param time  毫秒数

*/

function vibrate(time){

 let count=time/15;

 let index=0;

 let interval=setInterval(function(){

   wx.vibrateShort();

   index++;

   if(index>count){

     clearTimeout(interval);

     interval=null;

   }

 },15);

嗯,效果还不错!顺便解决了vibrateShort不灵的问题!

实际效果:



点赞 0
收藏
评论

2 个评论

  • 洪
    01-08

    unity使用协程FixedUpdate实现

    01-08
    赞同
    回复
  • 洪
    01-08

    666


    01-08
    赞同
    回复
登录 后发表内容