在子域 sharedCanvas 中设置 ctx.fillStyle = ‘#0000ff’ 之后,整个 sharedCanvas 被该颜色色铺满,原因未知,求大神解答
主域 canvas 节点绑定的脚本组件
cc.Class({
extends: cc.Component,
properties: {
display: cc.Sprite
},
// LIFE-CYCLE CALLBACKS:
onLoad () {
},
start () {
this.tex = new cc.Texture2D()
let openDataContext = wx.getOpenDataContext()
let sharedCanvas = openDataContext.canvas
sharedCanvas.width = 512
sharedCanvas.height = 2048
wx.setUserCloudStorage({
KVDataList: [
{ key: 'score', value: '50'},
{ key: 'age', value: '20'}
],
success: res => {
console.log('set success res =>', res)
openDataContext.postMessage({
text: 'hello'
})
},
fail: res => {
console.log('set fail res =>', res)
}
})
},
_updateSubDomainCanvas () {
if (!this.tex) {
return;
}
var openDataContext = wx.getOpenDataContext()
var sharedCanvas = openDataContext.canvas
this.tex.initWithElement(sharedCanvas)
this.tex.handleLoadedTexture()
this.display.spriteFrame = new cc.SpriteFrame(this.tex)
},
update () {
this._updateSubDomainCanvas()
}
// update (dt) {},
});
子域canvas 脚本组件代码
cc.Class({
extends: cc.Component,
properties: {
},
// LIFE-CYCLE CALLBACKS:
onLoad () {
},
start () {
console.log('i am subcontext!')
wx.onMessage(data => {
wx.getFriendCloudStorage({
keyList: ['score', 'age'],
success: res => {
let result = res.data
let sharedCanvas = wx.getSharedCanvas()
let ctx = sharedCanvas.getContext('2d')
ctx.fillStyle = '#0000ff'
}
});
})
}
});
出来的效果:
