收藏
评论

自定义震动

微信提供的震动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不灵的问题!

实际效果:



最后一次编辑于  03-28  (未经腾讯允许,不得转载)
复制链接收藏赞 1

1 个评论

  • 谢春
    谢春
    03-28

    还能这样玩!我说我的震动怎么跟别人的不一样……

    03-28
    赞同
    回复