c++11的新特性,可以使用lambda表达式构建匿名函数,于是乎自己想在menuItem的回调方法那里应用匿名函数,这样的话就会省去好多的工作量,但是一直不成功,有前辈成功了吗,求指教。
比如这里:
auto backItem = MenuItemFont::create( “back” ,CC_CALLBACK_0( fun , this ) );callback这里使用匿名函数。
std::function fun = ](Ref *) {
};
auto backItem = cocos2d::MenuItemFont::create( "back" ,fun );
```
2楼正解。
// in v3.0 (short version)
auto item = MenuItemLabel::create(label, CC_CALLBACK_1(MyClass::callback, this));
// in v3.0 (long version)
auto item = MenuItemLabel::create(label, std::bind(&MyClass::callback, this, std::placeholders::_1));
// in v3.0 you can use lambdas or any other "Function" object
auto item = MenuItemLabel::create(label,
&](Object *sender) {
// do something. Item "sender" clicked
});
```
参见:https://github.com/cocos2d/cocos2d-x/blob/cocos2d-x-3.0/docs/RELEASE_NOTES.md#user-content-stdfunction
谢谢您,如此快速的给出解答。
谢谢您,还给出的资料地址。:882: