参照 https://mp.weixin.qq.com/debug/wxagame/dev/tutorial/open-ability/open-data.html?t=2018323 来获取微信关系链,在需要调用sharedCanvas是却报了如下的提示,不知道有谁遇到过这样的问题?如何解决的?
An unsecure canvas can’t take an secure canvas as arugment of drawImage When using subcontext
参照 https://mp.weixin.qq.com/debug/wxagame/dev/tutorial/open-ability/open-data.html?t=2018323 来获取微信关系链,在需要调用sharedCanvas是却报了如下的提示,不知道有谁遇到过这样的问题?如何解决的?
An unsecure canvas can’t take an secure canvas as arugment of drawImage When using subcontext
同求助。也遇到同样的问题了。
现在的cocos和排行榜功能不兼容的问题在于:我们不能把sharedCanvas上的东西画在上屏。 我也在等官方的回复
改成这样就可以了
var openDataContext = wx.getOpenDataContext()
var sharedCanvas = openDataContext.canvas
var canvas = cc.game.canvas
if (canvas) {
cc.log ("画布可用")
}
var context = canvas.getContext('2d')
if (context) {
cc.log ("上下文可用")
context.drawImage(sharedCanvas, 0, 0)
}
不过我这边还是没能调用其分享页,还正在查
Cocos构建的时候默认的渲染模式是webgl,不是canvas,所以canvas.getContext(‘2d’)是不行的,得用canvas.getContext(‘webgl’)才行。不过如果你构建时渲染模式改为canvas就可以用canvas.getContext(‘2d’)了
嗯。这个我也解决了,卡在画不出来,强制改为canvas渲染可以不报错,应该是绘制到sharecanvas上了,但是cocos上调用全局变量canvas绘制share canvas不能显示出来,不知道哪里出错了,程序也不会报错TAT~
我现在是能画出来了,但是是一闪而过,闪一下就消失了~~
怎么画出来的呀
同问,你们是怎么画出share canvas的内容啊,主域和开放数据域是怎么进行同步的?
我也感觉到就是这个问题,发布成Canvas渲染版本,然后按微信官方的做法来,结果是不报错但是也看不到效果
你这边是怎么画出来的?我这里连画都没画出来
@jare 这个有什么解决方案的吗? 而且我使用如下代码也依旧是没有画出来
var canvas = cc.game.canvas
if (canvas) {
cc.log ("画布可用")
console.log(canvas.width, canvas.height)
}
var context = canvas.getContext('2d')
if (context) {
cc.log ("上下文可用")
// context.drawImage(sharedCanvas, 100, 100)
context.fillStyle = 'red'
context.fillRect(0, 0, 100, 100)
}
看我的另一篇帖子
嗯嗯,根据你的做法,可以把数据显示出来了。谢谢哈~~
你是把数据用微信小游戏的API绘制在sharedCanvas上,然后cocos只负责显示sharedCanvas么?
Cocos构建的时候渲染模式改成canvas,再用楼上贴的方法不就能画出来了么,我之前说的一闪而过的问题处理方法就是要不停的画,才不会消失
请问如何将内容绘制到sharedCanvas上?
我这里只画了个红色的框,没其他东西诶
开放区域得到数据:
let sharedCanvas = wx.getSharedCanvas()
function drawRankList(data) {
let sharedCanvas = wx.getSharedCanvas();
let context = sharedCanvas.getContext(‘2d’);
context.font = “30px impact”;
context.fillStyle = “#960”;
context.textAlign = ‘center’;
data.forEach((item, index) => {
console.log(item);
let str = item.key + " : " + item.value;
context.fillText(str, 100, 75 * (index + 1), 400);
});
}
主区域绘制:
let sharedCanvas = this.openDataContext.canvas;
var texture = new cc.Texture2D();
texture.initWithElement(sharedCanvas);
texture.handleLoadedTexture();
let sp = new cc.SpriteFrame(texture);
this.showPic(sp);
drawRankList 这里面的data哪里传进去。