如图,一个测试项目,在模拟器可以进行预览,但是在浏览器预览就找不到资源;
so, Web预览需要怎么设置资源。。。。
可以试一下通过浏览器的 DevTools 调试一下,看看有没有报错,问题出在什么地方。
http://www.cocos.com/docs/creator/scripting/load-assets.html
你需要看一下动态加载资源的文档。在 web 环境并不能这样替换 spriteFrame
cc.loader.loadRes的时候地址不要加resources/,会自动在resources里面找。文档里有说。
你把Creator左下角资源管理器里resources展开,截图看看
首先需要用 loadRes 接口加载的资源,必须放在 assets/resources 文件夹里面。然后 loadRes 的参数是相对于 assets/resources 的相对路径。
然后,loadRes 接口是异步的,你要在回调函数里面使用 SpriteFrame 对象。我看到你的代码里面:

而你应该通过 callback 将 loadRes 返回的结果返回给需要的地方,而不是通过接口返回值返回。伪代码是这样的:
getStoneFrame : function (isEnd, cb) {
// 查找需要的资源路径
....
cc.loader.loadRes(资源路径, cc.SpriteFrame, cb);
},
onEndStone : function() {
this.getStoneFrame(true, (err, frame) => {
this.EndStone.spriteFrame = frame;
this.stoneIdx++;
});
}
这是浏览器不支持 WebGL 导致的(实际上不支持但是提供了 WebGL context 导致我们的判断失效),试试用 Canvas 模式。
这里的判断在 1.3 会加强
嗯,切换WebGL Canvas,怎么做呢
在 main.js 中修改 renderMode 为 1,强制使用 Canvas。
不过优化实际上刚刚已经提交了,也可以等等,或者自己 fork 仓库