小游戏在微信开发者工具中的问题汇总(FAQ)

手动注视前面的就能正常预览了。:joy:

打包到微信小游戏,res文件夹放到了远程资源服务器上,代码中使用cc.loader.load加载其他远程资源时,会出现错误,url自动和微信小游戏的资源服务器url合在一起了,请问怎么解决?
cocos creator 1.8.1 在代码中使用了
cc.loader.load({url: remoteUrl, type: ‘jpg’}, function (err, texture) {
if (err) {
cc.error(err.message || err);
return;
}
self.iconSprite.spriteFrame = new cc.SpriteFrame(texture);
});
打包微信小程序后,res资源文件夹放在本地时,是没有问题的。如果把res文件夹放到远程资源服务器上,则在使用cc.loader.load时,加载失败,remoteUrl错了,自动在前面加了远程资源服务器的地址。例如,本来我是要加载头像地址http://abc.com/111.jpg 我的存放远程资源的服务器地址是 https://remote-res/ .当我在代码中调用cc.loader.load({url: remoteUrl, type: ‘jpg’}时,remoteUrl自动变为了https://remote-res/http://abc.com/111.jpg 导致加载失败。请问怎么解决?

什么意思,注释掉前面的代码,就可以突破4M的限制了?

https://github.com/cocos-creator/fireball/blob/v1.8-release/editor/static/build-templates/wx/libs/wx-downloader.js#L61
这个链接已经not found了

你好,关闭了详情页面的 “ES6 转 ES5” 选项,还是不能用socketio。
提示找不到io。

WAGame.js:3 gameThirdScriptError
io is not defined;at setTimeout callback function
ReferenceError: io is not defined
    at e.onLoad (http://127.0.0.1:9973/game/src/project.1b534.js:1:13105)
    at d (http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:537031)
    at e._invoke (http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:266217)
    at e.invoke (http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:267402)
    at e.activateNode (http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:538723)
    at e._activate (http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:204861)
    at e.runSceneImmediate (http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:152394)
    at http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:154150
    at r.<anonymous> (http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:583733)
    at http://127.0.0.1:9973/game/cocos2d-js-min.906fc.js:1:509126

@panda 针对这个问题

打包微信小程序后,把res文件夹放到远程资源服务器上,则在使用cc.loader.load时,加载失败,remoteUrl错了,自动在前面加了远程资源服务器的地址。例如,本来我是要加载头像地址http://abc.com/111.jpg 我的存放远程资源的服务器地址是 https://remote-res/ .当我在代码中调用cc.loader.load({url: remoteUrl, type: ‘jpg’}时,remoteUrl自动变为了https://remote-res/http://abc.com/111.jpg 导致加载失败。请问怎么解决?

我在构建的微信小游戏项目中的**wx-downloader.js**中添加了如下判断处理,不知道对于网络图片的加载是否会引起其他问题

在**WXDownloader.prototype.handle**方法中添加如下代码:

var filePath = item.url;
//这个if判断是我自己加的,构建出来的只有else中的代码
if (item.url.indexOf('http') === 0) {
    //网络图片,直接download
    downloadRemoteFile(item, callback);
}else{
   // Read from package
    fs.access({
        path: filePath,
        success: function () {
            if (item.type && non_text_format.indexOf(item.type) !== -1) {
                nextPipe(item, callback);
            }
            else {
                readText(item, callback);
            }
        },
        fail: function (res) {
            readFromLocal(item, callback);
        }
    });
}

downloadRemoteFile 方法中,将remoteUrl的赋值改成如下代码:

function downloadRemoteFile (item, callback) {
    // Download from remote server
    var relatUrl = item.url;
    var remoteUrl = '';
    if (relatUrl.indexOf('http') === 0) {
        remoteUrl = relatUrl;
    }else{
        remoteUrl = wxDownloader.REMOTE_SERVER_ROOT + '/' + relatUrl;
    }
    item.url = remoteUrl;
    .......
}
4赞

请问一下,wx的sdk怎么导入到工程中?

我没有试过在cocos creator中导入微信的sdk,我目前只是在研究cocos creator构建微信小游戏项目,如果是构建微信小游戏的话,不用导入微信sdk,直接在工程里调用微信小游戏提供的api就可以了

你好,请问你在小游戏中是怎样使用socket.io的,我如果引入socket.io的文件的话会报错。不引入在h5可以直接用,但是在小游戏中提示找不到io。

我也遇到这个问题了 同求解决办法

还有一个问题,在“wx-downloader.js”配置下载资源的地址后,在“downloadRemoteFile”方法里面会拿不到配置的地址

(微信模拟器)


(fill动画)

(正常表现)
使用fill填充动画时,在小游戏模拟器中表现有问题

2赞

我觉得是因为模拟器中不能调用此接口,可能得真机测才行,接口的说明是

我在小游戏模拟器也遇到相同问题

我在真机预览,调用分享接口,依然走fail回调,错误信息还是没有权限

我也遇到类似的问题了 同求解决办法……

@lk11052 你好,我和你出现了一样的状况,不知现在有解决方案了吗

小游戏运行报错。什么问题呢?@jare

查明是加载粒子资源的时候出错的,我上传了2个,你们看看是什么问题,为什么解析不了。

particles.rar (4.3 KB)

我也是。不知道是不是权限的问题。

大兄弟 我也是这个错 真机也拉不起来啊