[LayaAir 1.0]微信小游戏自定义震动效果

微信提供的震动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不灵的问题!
实际效果:
已邀请:

Aar0n

赞同来自:

感谢分享~

要回复问题请先

商务合作
商务合作