一 . 动态资源存放位置
动态加载资源要注意两点,一是所有需要通过脚本动态加载的资源,都必须放置在 resources 文件夹或它的子文件夹下。resource存放位置如下,与Texture文件夹同级(官方说法为resources 需要在 assets 文件夹中手工创建,并且必须位于 assets 的根目录)

image.png
PS: 我这里和官方的说法有点出入,十一局我个人的实践经验得出。官方说法请参考:https://docs.cocos.com/creator/manual/zh/scripting/load-assets.html
二 . 直接替换现有图片资源
图片设置为 Sprite 后,将会在 资源管理器 中生成一个对应的 SpriteFrame。只有修改SpriteFrame中的资源才能替换当前图片资源
var self = this;
cc.loader.loadRes("imageName", cc.SpriteFrame, function (err, spriteFrame) {
self.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
});
请注意,如果你要加载的资源直接存放在resource文件夹,则上面代码中的imageName为图片的名字,不加后缀(如存放在resource文件夹下的mine.png,则imageName为mine)。
三 . 不替换原有资源的情况下添加新资源
这就需要创建新节点,并为节点添加
cc.Sprite组件, 再把新建的节点设为当前节点的子节点 。
var self = this;
cc.loader.loadRes("sausage", cc.SpriteFrame, function (err, spriteFrame) { //sausage为resource下的sausage.png
var singleFood = new cc.Node();
singleFood.parent = self.node;
var sp = singleFood.addComponent(cc.Sprite);
sp.spriteFrame = spriteFrame;
});