根据官网文档上提示说可以关掉WXSubContextView,
subContextView.enabled = false;
subContextView.update();
但是,我执行update的时候会报错!请问这是什么原因呢?
报了什么错误,通常不能自己去执行 update 的
‘this.subContextView.getComponent(cc.WXSubContextView).update’ is null
但是如果
subContextView.enabled = false; 以后就会不更新了呀。
我看到官网那里是这样写的
https://docs.cocos.com/creator/manual/zh/publish/publish-wechatgame-sub-domain.html
那你这样吧,先看看你获取的 组件内容有什么,看看为什么没有 update
如果可以的话,给我 demo 吧,我帮你看看
怎么给呢?
把项目打包成 zip 格式,然后上传上来,上传方式,直接拖到回复框中就可以上传了
我发现在打包了以后在微信环境下是不会报错的。。。!感谢你的回答,update的问题应该没问题了!但是本来的问题还没解决。
就是,我大概理解以下那两行代码是为了关闭主域对子域的更新
subContextView.enabled = false;
subContextView.update();
但是这两行代码写在哪呢? 我现在的情况是有两个scene,一个是主scene,另一个排行榜。由于排行榜有很多label,所以drawcall很高,如果只是单独排行榜这个scene问题不大,但其他scene也会收到影响。但是我怎么在其他scene的时候关闭对子域的更新呢?
我的想法是,当加载排行榜这个场景的时候就 更新子域,离开之前就关闭。
但是问题在于游戏在最开始的时候好像就加载了子域,那我怎么一开始就关闭它呢?我试过先把手动把active的勾选去掉。但是没有效果。。。
你可以在主域需要打开排行榜的时候才去 subContextView.enabled = true 吧,没必要一开始就为 true
例如我在主域有个按钮,点击以后,设置 subContextView.enabled = true 然后在发消息个子域获取用户信息,然后关闭排行榜的时候,在设置 subContextView.enabled = false 进行关闭,这样就可以了
我的意思是还没开始load主域到那个scene(就是排行榜这个scene),我的其他scene也会卡,也会drawcall很高。
就是说我现在有两个场景,A场景:首页场景;B场景:排行榜场景!
当我刚进入A场景的时候,drawcall已经很高了。这表明了子域已经生效。我想在这一步就把它禁止了。但是我不知道怎么跨到B场景里把subContextView设置为false!因为这时候B场景还没load呢
如果去掉子域的话,你会卡吗?
不会的,把wxsubcontextview这个组件删掉就不会卡了。
你就算删掉组件,子域还是会加载的进来的,应该是你 wxsubcontextview 组件一开始没禁用掉吧?
那你如果先关闭组件呢?

代码我上传上去了,麻烦看一下

空的??


