cocos2djs如何实现游戏的热更新

通过AssetsManager 我已经实现了从服务器下载png和js了 我也会使用新下载的图片 但是js如何使用起来呢 比如说游戏上线了,我主界面要增加一个新的按钮 点击了以后进入新功能界面 这样怎么实现啊?

其实就是你的应用在启动之前,会去判断project.manifest是否存在更新内容,如果是的话,就下载对应的更新内容,包含图片和js脚本逻辑(你需要提供对应的、新的js逻辑文件)。

允许采用差异替换的方式。

下载结束后,其实你的js游戏逻辑已经是全新的,已经是主界面带有一个新的按钮的程序,游戏加载起来后,呈现的界面就是新的了。

你好 感谢你的回复
我本地有一个src/bag.js 然后服务器上也有一个bag.js(两者的区别是ctor里面cc.log打印的文字不同) 并且project.manifest也定义了 要下载bag.js

"assets" : {
        "Images/background3.jpg" : {
            "md5" : "..."
        },
        "src/bag.js" : {
            "md5" : "..."
        }
    },
```

执行完以后 我也使用了 
cc.log(cc.fileUtils.isFileExist(cc.fileUtils.getWritablePath()+"cache/"+"src/bag.js"));
```
 以及去/xxx/Documents中查看了 确实有新下载的bag.js

然后我执行代码
cc.director.pushScene(new BagScene());
```

打印出来的 还是老的js的cc.log
请问我是还漏掉了什么步骤吗?
p.s 我有在main.js中添加 
cc.log(cc.fileUtils.getWritablePath()+"cache/src");
```

谢谢你的回复 下载的问题已经解决了, 但我有一个问题
新下载的js 我都要用cc.loader.loadJs 才能使用 请问这是必须的吗?每次启动游戏都要显式调用cc.loader.loadJS吗 有没有更好的方法 自动就能使用

我用的是 require(js文件路径)
做法如下:
为每个模块做一个js文件列表(这些js与其它功能模块是没有藕合的)
然后用一个单例来管理这些js列表,在运行这个模块之前根据这些js列表去把对应功能模块的js文件先给require了,然后再给这个功能模块打个已require的标记(下次再次调用就可以不用去require),这样require完之后的js,就可以正常使用了,当然这个每个功能模块的js列表是需要提前require的,这个统一放到一个js文件里面或者每个功能模块用一个单独的js或者是json来放这个js列表都可以

为什么我在win32上运行会报这个错误,是我没有权限访问C:/Users/longtu/AppData/Local/Online/src/路径吗
JS: Resuming from previous unfinished update, 1 files remains to be finished.
JS: Asset update error: update1, Can not create file C:/Users/longtu/AppData/Local/Online/src/app.zip.temp: errno 2

win32目前运行不了,因为libcurl有bug
之后版本会修复

JS: 100%
JS: 100%
Decompress all compressed files
AssetsManager : can not create decompress destination file /data/data/org.cocos2dx.Online/files/src/app.js
我在安卓真机上运行,为什么不能创建文件