Egret社区

[EgretWing] 皮肤自动生成的代码是否可以严谨点呢

2019-3-14 15:35
4333
window.skins={};
window.skins.other={};
window.skins.renderer={};
window.skins.buttons={};
window.skins.scene={};
                function __extends(d, b) {
                    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
                        function __() {
                            this.constructor = d;
                        }
                    __.prototype = b.prototype;
                    d.prototype = new __();
                };
                window.generateEUI = {};
                generateEUI.paths = {};
                generateEUI.styles = undefined;
                generateEUI.skins = {}

这个是截取的发布内容 default.thm_xxxx.js中的顶部代码,顶部代码就不能写成 if(typeof window.skins == 'undefined') window.skins = {} 这样么?像这样直接写完全覆盖了前面加载的数据和组件定义。
很难理解这种问题需要吐槽,这个带来的后果就是整个项目只能同时存在一个皮肤文件,动态加载其他的皮肤会把现有的全覆盖。


分享到 :
0 人收藏

3 个回复

正序浏览
posen  登堂入室 | 2019-5-28 11:24:40
假如有一个图层想通过代码控制是否可见,在编辑好皮肤后设置隐藏然后修改visible属性为变量名,当你想改动一下皮肤,一旦动了组件右边的眼睛,那这个变量值就会覆盖掉,昨天查了一天的BUG 最终发现是这个问题
解决方法2个:
1,就是每动一次皮肤切换到源码编辑模式修改visible属性为变量值
2,放弃动态控制visible属性,改为控制alpha的数值 0为完全不可见 1为完全可见
xigalto  登堂入室 | 2019-3-14 16:33:02
嗯,现在我只能在加载皮肤前把原有的皮肤对应的类信息全部保存,然后加载完后再恢复,规避了这个问题,但是这样写代码太麻烦了,因为恢复过程变量名都得固定死。
山猫  官方团队 | 2019-3-14 16:05:15
你好,你的意见收到了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部