图片在编辑器状态下如何用代码替换?

cc.Class({
extends: cc.Sprite,

properties: {
    abcd: {
        default: false,
        notify: function () {
            if (this._sgNode) {
                this.refresh();
            }
        }
    }
},

refresh: function() {
    if (this._sgNode) {
        this.spriteFrame = new cc.SpriteFrame(cc.url.raw(this.abcd ? 'resources/Texture/Localized/LogoBase.png' : 'resources/Texture/Localized/LogoGlow.png'));
    }
}

});

经过测试发现,是有效果的,但

这里却不显示,请问如何解决?

spriteFrame动态加载是异步的,需要使用cc.loader.loadRes

//文件需要放在resources目录下
let url = this.abcd ? 'Texture/Localized/LogoBase.png' : 'Texture/Localized/LogoGlow.png';
cc.loader.loadRes(url, (error, spriteFrame) => {
    this.spriteFrame = spriteFrame;
}));

谢谢,不过我的意思是在编辑器里点那个abcd,编辑器里就立即切换,不需要点运行才切

abcd: {
        default: false,
        notify: function () {
            if (this._sgNode) {
                this.refresh();
            }
        }
    }

切换时执行你的this.refresh代码,做是正确的,你打印下日志看被执行到没有。

不知道这个 有没有 解决方案?
希望不要被认为是 挖坟, 这个问题 我也遇到了。

这编辑器你又没有拖进去不就应该不显示的吗???

直接通过 编辑器的 代码创建, 而不是通过 resources 资源 或者远程资源动态创建
直接在编辑器 使用 db 资源 创建。

http://forum.cocos.com/t/cc-editor-resources/47029/3
这个方法 可行
… 真费劲, 为了找一个 应该很常用的方法 花了 这么长时间。