Egret社区

[Egret Engine] commonjs2皮肤发布模式有bug

2019-5-14 16:28
3294
产品 Egret Engine 版本 5.2.18
复现概率 100% 平台 Windows win7/ios
复现步骤 直接运行即可
问题描述 一个控件有多个状态,在不同的状态中使用不同的布局方式,此时发布时使用commonjs2模式,打开使用这个皮肤的窗口或者控件时会报错。
错误代码 JSONParseClass.prototype.applyState = function () {
if (this.skinClass["$s"] == undefined)
return;
var states = [];
for (var state in this.skinClass["$s"]) {
var setProperty = [];
var tempState = this.skinClass["$s"][state];
if (tempState["$saI"]) {
for (var _i = 0, _a = tempState["$saI"]; _i < _a.length; _i++) {
var property = _a[_i];
setProperty.push(new eui.AddItems(property["target"], property["property"], property["position"], property["relativeTo"]));
}
}
if (tempState["$ssP"]) {
for (var _b = 0, _c = tempState["$ssP"]; _b < _c.length; _b++) {
var property = _c[_b];
if (property["name"]) {
var value = property["value"];
if (property["name"] == "scale9Grid") {
value = this.getScale9Grid(property["value"]);
}
setProperty.push(new eui.SetProperty(property["target"], property["name"], value));
}
else {
setProperty.push(new eui.SetStateProperty(this.target, property["templates"], property["chainIndex"], this.target[property["target"]], property["property"]));
}
}
}
states.push(new eui.State(state, setProperty));
}
this.target["states"] = states;
};
BUG截图
[AppleScript] 纯文本查看 复制代码
JSONParseClass.prototype.applyState = function () {
        if (this.skinClass["$s"] == undefined)
            return;
        var states = [];
        for (var state in this.skinClass["$s"]) {
            var setProperty = [];
            var tempState = this.skinClass["$s"][state];
            if (tempState["$saI"]) {
                for (var _i = 0, _a = tempState["$saI"]; _i < _a.length; _i++) {
                    var property = _a[_i];
                    setProperty.push(new eui.AddItems(property["target"], property["property"], property["position"], property["relativeTo"]));
                }
            }
            if (tempState["$ssP"]) {
                for (var _b = 0, _c = tempState["$ssP"]; _b < _c.length; _b++) {
                    var property = _c[_b];
                    if (property["name"]) {
                        var value = property["value"];
                        if (property["name"] == "scale9Grid") {
                            value = this.getScale9Grid(property["value"]);
                        }
                        setProperty.push(new eui.SetProperty(property["target"], property["name"], value));
                    }
                    else {
                        setProperty.push(new eui.SetStateProperty(this.target, property["templates"], property["chainIndex"], this.target[property["target"]], property["property"]));
                    }
                }
            }
            states.push(new eui.State(state, setProperty));
        }
        this.target["states"] = states;
    };


可以看到这里处理不同状态的时候,只对九宫格和其他可以直接赋值给控件的属性进行了处理,明显没有对layout处理。
一旦一个控件在不同的状态中使用到了不同的布局,就会有问题啦。。

这么明显的bug就不用我上传demo了吗,从理论上分析就知道错在哪里了
分享到 :
0 人收藏

4 个回复

倒序浏览
落幕夜未央  圆转纯熟 | 2019-5-14 16:29:28
冰湖  官方团队 | 2019-5-15 16:27:49
你好,这个问题没遇到过,我会帮您提交给研发组,后边会及时把反馈结果告知于您的。
落幕夜未央  圆转纯熟 | 2019-5-21 15:49:46
冰湖 发表于 2019-5-15 16:27
你好,这个问题没遇到过,我会帮您提交给研发组,后边会及时把反馈结果告知于您的。 ...

您好,什么时候在github上解决了记得通知我一下
落幕夜未央  圆转纯熟 | 2019-7-2 10:01:10
请问时隔一个多月了,这bug修复了吗@冰湖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2019 Comsenz Inc.

返回顶部