"Ref* pSender"在回拨功能中做什么?
What does "Ref* pSender" do in Call Back function?
所以我注意到Ref* pSender
出现在许多回调功能中,我想知道以下代码:
1)是什么?
2)它来自哪里?我没有在lambda之外定义它。
3)有什么用法?
mFamilyTV = MenuItemImage::create("en_block5.png", "en_block5_hover.png",
[=](Ref* pSender) {
auto jump = JumpBy::create(1.0, Vec2(0, 0), 100, 1);
mFamilyTV->runAction(jump);
});
非常感谢您的注意力和帮助:)
1)是什么?
是触发lambda函数的项目。在您的情况下,您的mFamilyTV
。
2)它来自哪里?我没有在lambda之外定义它。
单位执行 lambda后来将通过它。
3)有什么用法?
它使您可以将相同的功能附加到多个实例,并且仍然知道哪个实例触发了它。可以说,您有一个lambda,可以在按钮点击按钮上设置背景以红色。您可以将其连接到15个按钮,如果您对其进行了正确编程(在这种情况下,更改pSender
而不是命名按钮的颜色),它适用于所有15个。即使您甚至不知道它们在编译时,程序中没有可变名称。
在您的情况下, Ref* pSender
是 mFamilyTV
。它是一个发件人,触发菜单项单击。Ref
是支持自动发行功能的非常基本的类。您可以将其归还给MenuiteMimage。
在这里您可以检查MenuItemImage
的继承图:
http://www.cocos2d-x.org/reference/native-cpp/v3.0alpha0/d1/d30/classcocos2d_1_1_menu_item_image.html
相关文章:
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 文件系统:复制功能的速度秘诀是什么
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- c++20[[no.unique_address]]中的新功能是什么
- creat_list2功能有什么问题?
- 此工厂功能有什么问题?
- 这个Arduino睡眠设置的周边是什么警报功能?
- "(void) cast"与功能有什么区别 "__attributes__"来沉默未使用的参数警告?
- 当再次触发信号时,从Qt插槽执行的功能被第二次调用时会发生什么?
- 这种错误的原因是什么:将"功能"重新定义为不同类型的符号
- 我做错了什么?GetDiskFreeSpaceExA的功能根本不起作用
- 关键字使用的功能是什么?
- 新功能"synchronized"块在C++中提供了什么优势?
- 对于没有功能的结构,"new (ptr) mystruct;"做什么?
- 引用 using 声明引入的功能的句子是什么意思?
- 制作uint128库却不能,找出什么功能搞砸了
- 我应该使用什么功能在mac OS X中打开文件
- 有什么功能可以知道键盘的某个键是否被按下
- 等待使用什么功能
- 我应该使用什么I/O功能来写入.bmp文件