3.16版本MenuItemlabel使用注意事项

首先给出结论,setFontSize是静态成员函数,_globalFontSize也是静态数据成员,要设置MenuItemlabel的大小需要提前设置;MenuItemFont::setFontSize(100);

下面是测试;

我使用的是cocos2d-x3.16版本;
1、现象描述
1.1、图片中标红的两处对两个MenuItemlabel都进行了大小设置,结果如下图;


只有menulabel2改变了大小,

1.2、把menulabel1注销掉,menulabel2不注释结果如下


menulabel1和menulabel2大小都没有改变

1.3、我再把menulabel2注销掉,menulabel1取消注释;


但是改变大小的依旧只是menulabel2;

2、现象解释(源码剖析)
以下是我在源码当中得到的结果!
2.1、首先源码中的类MenuItemFont中找到了setFontSize
2.2、可以看到静态成员函数setFontSize中是设置数据成员大小_globalFontSize的大小;
2.3、再跳进去可以看出_globalFontSize的类型是静态的int类型


这就可以解释刚刚出现的现象了,因为_globalFontSize是静态的数据成员;所以必须提前设置才有效!!

测试一下就知道了!