微信小游戏 加载场景 黑屏

进入微信小游戏, 会黑屏一会 ,才出现设置的 首场景。
原因猜测是 正在下载服务器上对应的资源文件 所以在下载未完成的这段时间会黑屏?
看文档是建议把首场景的资源打包在游戏包里
1 这样是否能避免黑屏?
2 res/import这个文件夹的资源看不太懂,我要怎么找到对应的首场景资源

2赞

upupupupupupupup

有解决办法了吗?

1、首先删除res下资源的时候不要删掉启动场景的资源
2、不要在game.js文件中设置wxDownloader.REMOTE_SERVER_ROOT 资源下载地址
3、在main.xx.js文件中找到启动首个场景的代码,设置资源下载地址:如下
cc.director.loadScene(launchScene, null, function () { if (cc.sys.isBrowser) { // show canvas canvas.style.visibility = ''; var div = document.getElementById('GameDiv'); if (div) { div.style.backgroundImage = ''; } } cc.loader.onProgress = null; console.log('Success to load scene: ' + launchScene); wxDownloader.REMOTE_SERVER_ROOT = "https://xx.com/wechatgame1.0"; } );

4赞

你好,可以详细指导我一下不要删除启动场景的资源该怎么处理吗?谢谢你!

主要是图片资源保留.也就是Texture文件夹下的首个场景使用到的资源不要删除,其他都删除.
Import文件夹尽量不要删除

好的,谢谢你。但是游戏资源实在太大,光是build之后生成的一个cocos.xx.js都已经有3兆多。不知道是哪里出了问题。非常感谢!

你好,我可以请教你一下关于小游戏的问题吗?是这样的:我用cocos构建发布小游戏的时候,真机调试的时候扫开发者工具生成的二维码手机黑屏(手机已经打开调试模式,并且build的时候也勾选了调试模式)。手机端的console报错是这样的:


困扰我好久了,请问你那边有遇到类似的情况吗?谢谢你!

来看看

mark一下, 遇到把res方到远程遇到黑屏的问题了。

mark一下 首次加载会黑一下

尝试了你这个办法,还是不管用啊,还会有短暂的黑屏,而且,你这个判断平台的地方,判断的是浏览器,并不是微信平台,我尝试了对微信平台也进行了判断,但是,实际上是获取不到canvas和div的而且,打印了document的所有的元素,结果是个空数组

res下打包后的图片名字都变成hash了,不好找啊。

这个就是服务器资源少了 你可以搜一下 百分号后面的字符串 代表的哪个资源

首场景 需要加载的资源,可以在 build 后的wx-downloader.js readFromLocal方法中 打印出来,打印出的文件就是 加密后的文件名。然后 删res 文件的时候,保留这些文件。这样第一次进游戏的时候,就不会下载首场景资源,100%进度后,很快就进入首场景。
下面的脚本,用于递归删除包里的非首场景的文件。
#! /usr/bin/python

-- coding: utf-8 --

import os
filterFiles = [‘02ea1037d.e1c13.json’, ‘07dfb78d7.3200c.json’, ‘e851e89b-faa2-4484-bea6-5c01dd9f06e2.90cf4.png’, ‘b43ff3c2-02bb-4874-81f7-f2dea6970f18.83fcc.png’, ‘71561142-4c83-4933-afca-cb7a17f67053.c06a9.png’, ‘d64b4ff2-f5d9-45c6-a7e1-090331ba0f84.e5008.png’, ‘d250bc21-2995-4500-8506-cca9fe298756.a9940.png’, ‘e243bd36-3bb3-441d-90fb-1cabf49a4f9e.7cf12.png’, ‘e1e8a950-23ca-4e52-8f2a-0385f95cb29f.c8cd8.png’, ‘7e919aba-4586-462d-918e-35e05ca8c60c.ee051.png’]
def del_dir_tree(path):
‘’’ 递归删除目录及其子目录, 子文件’’’
if os.path.isfile(path):
try:
# os.remove(path)
array = path.split(’/’)
fileName = array[len(array)-1]
if fileName not in filterFiles:
os.remove(path)
except Exception, e:
#pass
print e
elif os.path.isdir(path):
for item in os.listdir(path):
itempath = os.path.join(path, item)
del_dir_tree(itempath)
try:
os.rmdir(path) # 删除空目录
# print path
except Exception, e:
#pass
print e

if name == ‘main’:

dirname = '/Users/wf/Desktop/work/game3/cat/client/cat/build/wechatgame/res'
del_dir_tree(dirname)
1赞

这个问题 有有效的办法吗

哈哈 试出来了。多谢楼上诸位 提供思路。

你是怎么做的

你这个不可以啊 还是黑屏呀 你看方便的话 加一下qq:6818296 教一下
下面这个htts 是服务器的那个资源地址 是吧, 还有你这里多的就是下面这个资源代码,也少了一句官方的那个代码 var Canvas。 请求您可以教一下,qq发您了

mark一下