现在是2023年11月了,这个问题还没有解决。。。this.animate 设置 right 属性不生效!!!
this.animate 接口 keyframes对象里right不支持String类型this.animate文档里left,top,bottom都支持使用Number/String类型,唯独right只可以用Number类型,但是实际使用中right属性不管怎么设置都不会有动画效果,left如果使用Number类型来设置也没有动画效果(但是String类型例如:'100px',动画正常),是我设置有误还是animate接口中有bug,实际上并不支持Number类型的设置? [图片] https://developers.weixin.qq.com/miniprogram/dev/framework/view/animation.html
2023-11-26亲测可行。除了第一个,把剩下的 step 放在 setTimeout 中。 // 使用多个 step,在 IOS 上只执行第一个 // 所以这里使用 setTimeout 解决该问题 this.animation.scale(2, 2).step() // this.animation.scale(1, 1).step() this.setData({ animationData: this.animation.export() }) setTimeout(() => { this.animation.scale(1, 1).step() this.setData({ animationData: this.animation.export() }) }, 300) // 这里的延时等于第一个 step 的动画时长
动画Animation连续调用多个step(),在最新版ios13.4.1下动画和其他机型表现不一致onLoad: function(options) { var th=this; setTimeout(function(){ var animation = wx.createAnimation({ duration: 500, timingFunction: "linear", delay: 0, transformOrigin: "50% 50%", }) animation.translate(154, 0).step(); animation.translate(200,0).step(); animation.translate(300,0).step(); //导出动画数据传递给组件的animation属性。 th.setData({ animationData: animation.export(), }) },2000) } <view style="width:100px;height:100px;background:pink;position:absolute;top:0;left:0" animation="{{animationData}}"></view> 如上述代码,页面加载2秒后,执行一段位移动画,在ios13.4.1下,每一个step会重新回到起点重新开始执行,造成动画不连贯,其他低版本ios和安卓机型和微信开发者工具未发现此异常
2022-12-16亲测可行。除了第一个,把剩下的 step 放在 setTimeout 中。 // 使用多个 step,在 IOS 上只执行第一个 // 所以这里使用 setTimeout 解决该问题 this.animation.scale(2, 2).step() // this.animation.scale(1, 1).step() this.setData({ animationData: this.animation.export() }) setTimeout(() => { this.animation.scale(1, 1).step() this.setData({ animationData: this.animation.export() }) }, 300) // 这里的延时等于第一个 step 的动画时长
animation调用多个step,在ios没有过渡动画?animation.translateY(-300).scale(3,3).step() animation.translateY(-500).step() 在开发者工具是可以的,但在真机ios没有了过渡动画,官方是不打算处理这个问题吗,这个问题我在其他帖子也看到过,但是没看到有处理结果 https://developers.weixin.qq.com/community/develop/doc/0006e8189fcfe87af75a6877d5bc00
2022-12-16改成 InnerAudioContext.startTime 即可,亲测安卓真机没问题。 // innerAudioContext.seek(someTime) innerAudioContext.startTime = someTime // 换成这个 别忘了在下次初始化 InnerAudioContext 时,让 InnerAudioContext.startTime = 0
安卓手机调用 InnerAudioContext.seek 方法,会从头开始播放,IOS 手机正常复现操作路径:导入代码片段,用安卓手机,扫码调试,你会看到是从头开始播放的,而不是从 60 s开始播放 具体可以看页面的 currentTime 的值,还有控制台打印的"当前音频的播放位置: 60.123424" 预期表现:调用 seek 方法之后,是可以跳转到指定位置进行播放 安卓测试录屏:https://share.plvideo.cn/front/video/preview?vid=cec4219165aa3cf994c8dea9229fa6a5_c
2022-04-13