小程序
小游戏
企业微信
微信支付
扫描小程序码分享
将排行榜画到上屏时,上屏的的背景在安卓机会被清空,苹果机正常
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,如果指的是纹理重复的话,是因为没有在每一帧clear并画满全屏。这个是Android部分机器的GPU原理导致。如果每一帧都画满全屏则不会出现该问题
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
但是这样动画很消耗资源,稍差一些的机型帧率直接掉到20左右,没有更好的办法吗?
对于2d接口而言,需要保证每帧绘制之前都调用了clearRect(0, 0, canvas.width, canvas.height),否则会出现花屏
clearRect之后重新绘制本身不会消耗很多资源,对于OpenCanvas而言,耗费资源较高的地方在纹理拷贝。后续会有优化。
我也遇到这个问题,就是第一帧刷新之前,画到上屏的东西都没问题,第二帧开始就会花屏了。楼主那段代码测试也是同样这样。
你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
只要离屏的canvas的宽高改变,隔一段时间画到上屏,就会清空上屏的东西,
const topCvs = wx.createCanvas();
const topCtx = topCvs.getContext('2d');
const midCvs = wx.createCanvas();
const midCtx = midCvs.getContext('2d');
midCvs.width = 50;
midCvs.height = 50;
const img = wx.createImage();
img.src = 'images/bg.jpg';
img.onload = () => {
midCtx.drawImage(img, 0, 0,50,50);
topCtx.drawImage(img, 0, 0,100,100);
//topCtx.drawImage(midCvs, 0, 150)
setTimeout(() => {
topCtx.drawImage(midCvs, 0, 250)
},18)
};
测试代码,在18ms以下不影响,如果去掉计时器,直接画在上屏不影响
你好,能否按照这个来提供能复现问题的简单代码片段( https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html )
wechatide://minicode/HbVyLamY7dLa
你好,有确认这个问题吗
原生canvas开发的排行榜吗?
是的,
你有遇到把sharedcanvas渲染到上屏后出现花屏的情况吗?
花屏,底部会变黑吗,花屏没遇到
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,如果指的是纹理重复的话,是因为没有在每一帧clear并画满全屏。这个是Android部分机器的GPU原理导致。如果每一帧都画满全屏则不会出现该问题
但是这样动画很消耗资源,稍差一些的机型帧率直接掉到20左右,没有更好的办法吗?
对于2d接口而言,需要保证每帧绘制之前都调用了clearRect(0, 0, canvas.width, canvas.height),否则会出现花屏
clearRect之后重新绘制本身不会消耗很多资源,对于OpenCanvas而言,耗费资源较高的地方在纹理拷贝。后续会有优化。
我也遇到这个问题,就是第一帧刷新之前,画到上屏的东西都没问题,第二帧开始就会花屏了。楼主那段代码测试也是同样这样。
你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
只要离屏的canvas的宽高改变,隔一段时间画到上屏,就会清空上屏的东西,
const topCvs = wx.createCanvas();
const topCtx = topCvs.getContext('2d');
const midCvs = wx.createCanvas();
const midCtx = midCvs.getContext('2d');
midCvs.width = 50;
midCvs.height = 50;
const img = wx.createImage();
img.src = 'images/bg.jpg';
img.onload = () => {
midCtx.drawImage(img, 0, 0,50,50);
topCtx.drawImage(img, 0, 0,100,100);
//topCtx.drawImage(midCvs, 0, 150)
setTimeout(() => {
topCtx.drawImage(midCvs, 0, 250)
},18)
};
测试代码,在18ms以下不影响,如果去掉计时器,直接画在上屏不影响
你好,能否按照这个来提供能复现问题的简单代码片段( https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html )
wechatide://minicode/HbVyLamY7dLa
你好,有确认这个问题吗
原生canvas开发的排行榜吗?
是的,
你有遇到把sharedcanvas渲染到上屏后出现花屏的情况吗?
花屏,底部会变黑吗,花屏没遇到