首先给出结论,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是静态的数据成员;所以必须提前设置才有效!!
测试一下就知道了!




