CCMenuItemLabel* start = CCMenuItemLabel::itemWithLabel(pStart, this, menu_selector(HelloWorld::menuCloseCallback));
挺好奇上面的menu_selector究竟是干什么的,看一下声明:typedef void (CCObject::*SEL_MenuHandler)(CCObject*);
#define menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)
其实就是取函数地址,作为函数指针送进函数体内。
CCDirector使用的话需要调用方法:
CCDierctor::sharedDirector(void)这样可以返回一个CCDirector的实例,其实就是当前实例的指针。
本文探讨了Cocos2d-x中menu_selector的作用及其内部实现原理,解释了如何通过该机制传递函数指针,并介绍了CCDirector的使用方法。
1万+

被折叠的 条评论
为什么被折叠?



