首页 > 代码库 > cocos2dx 3.X 中 Menu, MenuItem 注意事项
cocos2dx 3.X 中 Menu, MenuItem 注意事项
MenuItem显示
MenuItem和Menu的使用创建的例子中已经说的很清楚了。即:
auto userItem = MenuItemImage::create( "UserNormal.png", "UserSelected.png", CC_CALLBACK_1(MeijiaMain::menuLoginCallback, this)); userItem->setPosition(Vec2(origin.x + visibleSize.width - userItem->getContentSize().width/2 - 20, visibleSize.height - userItem->getContentSize().height/2 - 30)); // create menu, it's an autorelease object menu = Menu::create(userItem, NULL); menu->setPosition(Vec2::ZERO);顺序就是:创建MenuItem,设置Item的位置等属性,创建Menu,设置Menu的位置等属性。最后将Menu放到一个层上显示。
注意:如果不使用Menu,单独将MenuItem放在层上,是可以显示的。但是交互以及函数调用是无效的。
MenuItem, Menu添加顺序
如果需要再添加一个MenuItem,操作很简单,与层添加Menu相同就是Menu直接addChild即可。但是需要注意的是(1)MenuItem加入到Menu;(2)Menu加入到层。这两件事情的顺序。
如果将(1)(2)顺序倒置为(2)(1),则新加入的MenuItem无法显示。
解决方法:使用(1)(2)顺序;或者再MenuItem新加之后再调用一次(2),即(2)(1)(2)顺序。
禁用MenuItem
再来看看,如果需要将MenuItem禁用,仅仅调用MenuItem是不起任何作用的,该显示显示,该交互交互。需要 setEnabled(false) 整个Menu:
// userItem->setEnabled(false) // 无效操作 menu->setEnable(false)
cocos2dx 3.X 中 Menu, MenuItem 注意事项
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。