原文转自Cocos2d-x 3.0 新特性体验(2) 回调函数的变化
在cocos2d-x 2.x版本中的回调函数的用法想必大家都很是熟悉,例如在menu item,call back action中都需要大量的使用到回调函数,但是在使用过程中总是感觉到比较冗余麻烦的,在3.0版本,使用到了C++11 的新特性,改进增加了回到函数的使用形式,其中最令人欣慰的是,可以使用闭包,对于有过iOS开发经验的来说,应该很亲切,就是 block。
下面将通过几个例子详细介绍在3.0版本中回调函数的各种用法。温馨提示:由于用到了C++11中的std::function,std::bind和lambda表达式,所以对此不太了解的可以先看看我之前的这篇有关C++11的一些用法介绍 点击打开链接。
一、通过 HelloWorldScene 中的 closeItem 开始
在cocos2d-x 2.x 版本中:
- CCMenuItemImage*pCloseItem=CCMenuItemImage::create(
- "CloseNormal.png",
- "CloseSelected.png",
- this,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> menu_selector(HelloWorld::menuCloseCallback));
在cocos2d-x 3.0 版本中: