子域 index.js
let sharedCanvas = wx.getSharedCanvas(); let context = sharedCanvas.getContext( '2d' ); context.fillStyle = 'red' ; context.fillRect(0, 0, 100, 100); wx.onMessage( function (data) { console.log(data); }); console.log( "HERE" ); |
game.json
{ "deviceOrientation": "portrait", "openDataContext": "src/ranking", "networkTimeout": { "request": 5000, "connectSocket": 5000, "uploadFile": 5000, "downloadFile": 5000 } } |
Cocos update 里面的内容①
let openDataContext = wx.getOpenDataContext(); let sharedCanvas = openDataContext.canvas; let canvas = cc.game.canvas; let context = canvas.getContext( '2d' ); context.drawImage(sharedCanvas, 0, 0); |
Cocos update 里面的内容②
let openDataContext = wx.getOpenDataContext(); let sharedCanvas = openDataContext.canvas; if (! this .tex) { return ; } this .tex.initWithElement(sharedCanvas); this .tex.handleLoadedTexture(); this .subDomain.spriteFrame = new cc.SpriteFrame( this .tex); |
首先因为用 Cocos 创建一个项目作为 SubDomain 占用空间太大了,所以不得不放弃这种做法,试图自己去渲染上屏。
由于我用的是 WebGL 渲染,所以①里面会报错。但是因为我的小游戏用了 Camera,而 Cocos Creator 的 Canvas 模式不支持 Camera,所以我只能用 WebGL 了。
于是我后来尝试着结合 Cocos 的教程去用②的方法渲染上屏,但是很可惜也失败了……
请教各位我应该用什么办法才能把子域渲染上屏?
https://github.com/cocos-creator/creator-docs/blob/master/zh/publish/publish-wechatgame-sub-domain.md
可以看下 cocos creator 的文档,cocos 的使用问题也可尝试在 github 上咨询 cocos 团队
是如何解决的?我也遇到了这个问题
我参考 Cocos Creator 的范例文件(注意那个范例文件打开的时候默认没打开正确的 Scene,要手动去打开),然后项目设置里面把不要的东西都去掉,体积勉强达标。
注意 Console 中的【Failed to load resource: the server responded with a status of 404 (Not Found)】和【subcontext code not found】可以忽略。