- canvas的restore会改动之前创建的路径位置
实际开发中需要在不同的位置绘制某个相同的形状,再创建剪切区域;由于形状较为复杂,所以将形状绘制过程写成函数,在save与restore之间,通过translate变换原点,调用绘制形状的方法;最后clip实现需求。 这种方式在HTML5 canvas上没有问题, 但在小程序的canvas上,restore之后在clip,创建的剪切形状的位置是translate之前的位置。(经测试,restore之后fill或stroke也有这个问题) 按正常的逻辑,之前创建的路径被确立,restore只应修改绘图上下文,不应修改已创建的路径,HTML5 Canvas的行为是这样的,而小程序的canvas似乎是在调用fill,stroke,clip等方法时,以当前绘图上下文重新创建了一次路径。 如果我在save与restore之间填充了路径,于restore后再调用clip,就会出现两个矩形剪切区域,说明在调用fill,stroke,clip等方法时,真的以当前上下文重新创建了一次路径。。。 [图片]
2019-01-28 - canvas多次调用clip,iOS端渲染结果有误
小程序canvas多次调用clip,开发者工具和Android端表现均和HTML5 Canvas一致;而在iOS端,只有首次创建的剪切区域有效;如图,连续创建两个矩形剪切区域后,再绘制一个绿色矩形: 开发者工具和Android端表现正常: [图片] iOS端表现,只有首次创建的剪切区域有效: [图片]
2019-01-28 - 望解决input组件focus事件的延迟
目前input组件的focus事件会在键盘弹起动画完毕后才触发,有一秒左右的延迟;我估计这延迟是为了拿到键盘高度。希望添加属性决定focus事件是否返回键盘高度;如果不需要键盘高度就在input获得焦点后马上触发focus事件。当然如果能即获得键盘高度又没延迟就最好了。
2018-12-27 - 开发者工具navigateTo的success回调时机与真机不一致
场景:在wx.navigateTo方法的success回调中getCurrentPages()获取当前页面栈 真机预览(iOS)表现:页面栈的最后一项为跳转目标页 开发者工具表现:页面栈的最后一项为原页面(目标页未入栈) 需要setTimeout一秒左右获取当前页面栈 希望开发者工具的表现能与真机一致,在目标页入栈后再执行success回调
2018-11-05 - 在页面生命周期回调中设置窗口背景色的bug
无论是首次进入小程序,还是从其他页面跳转至目标页触发的onShow中,调用wx.setBackgroundColor设置backgroundColorTop都有大概率无效,也不会触发wx.setBackgroundColor的fail回调。 例外的是,如果先将微信切至后台,再切至前台,导致页面触发onShow,就不存在这种问题。 经过测试: 在onShow中console.log()表明该生命周期是始终触发的,所以是wx.setBackgroundColor方法的问题。 使用setTimeout延迟调用wx.setBackgroundColor不能解决。 同样的时机,调用wx.setNavigationBarTitle或wx.setNavigationBarColor并没有问题。 看图,注意下拉刷新时的backgroundColorTop (这里演示的是微信切至后台,再切至前台触发onShow,wx.setBackgroundColor才生效,此图中的导航栏颜色和标题都是在onShow时调用相应方法设置的,唯独wx.setBackgroundColor无效) [图片] ps: 我知道可以在json里设置,但需求是这些颜色是可以动态设置的,所以需要使用wx.setBackgroundColor
2018-10-24