关于重写默认类(没有找到分享栏,只能在这儿发起了,欢迎批评指正)


由于业务需求,在使用fgui的时候,通常需要重写某些组件或者修改默认组件,才能满足自身逻辑需求,达到通用功能效果,比如给按钮统一加上红点逻辑;给面板统一加上show(),hide(),dispose()方法等。
以下是解决办法:
在fgui的源码中,找到UIObjectFactory的newObject2方法。
由于newObject2为静态方法,并且默认的创建对象都是通过此方法完成,所以只需要重写此方法即可。
复制出整个方法体到自己创建的类中,将你需要修改的默认类进行修改,在所有面板加载之前,设置fairygui.UIObjectFactory.newObject2 = this.newObject2即可。
其中,fairygui.UIObjectFactory.loaderType会报错,原因是loaderType是个私有属性,保留return new fairygui.GLoader,其余直接注释掉。
注意:
1.自己的类一定要继承原有的类。
2.一定要将fairygui.UIObjectFactory.newObject2 = this.newObject2放在所有面板加载之前。
3.fairygui.UIObjectFactory.setLoaderExtension()方法无法使用,设置无效。因为你把loaderType给注释掉了。。。
 
已邀请:

谷主

赞同来自:

谢谢分享。但还是不建议重写。你说的那些都是逻辑代码,不应该混合到渲染层中。

要回复问题请先登录注册