"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);
});
非常感谢您的关注和帮助:)
在你的情况下 Ref* pSender
是 mFamilyTV
。它是一个发件人,触发菜单项点击。 Ref
是一个非常基本的 class 来支持自动释放功能。您可以将其转换回 MenuItemImage。
这里可以查看MenuItemImage
的继承关系图:
1) What is it?
这是触发lambda函数的项目。在你的情况下,你的 mFamilyTV
.
2) Where does it come from? I didn't define it outside of the lambda.
单元执行 lambda 稍后将通过它。
3) What are some usages of it?
它使您能够将相同的功能附加到多个实例,并且仍然知道哪个实例触发了它。假设您有一个 lambda 在单击按钮时将背景设置为红色。您可以将它附加到 15 个按钮,如果您正确编程(在本例中,更改 pSender
的颜色而不是命名按钮),它适用于所有 15 个按钮。以及任何数量的其他按钮,即使您不这样做甚至在编译时都不知道它们,并且在您的程序中没有它们的变量名。
所以我注意到 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);
});
非常感谢您的关注和帮助:)
在你的情况下 Ref* pSender
是 mFamilyTV
。它是一个发件人,触发菜单项点击。 Ref
是一个非常基本的 class 来支持自动释放功能。您可以将其转换回 MenuItemImage。
这里可以查看MenuItemImage
的继承关系图:
1) What is it?
这是触发lambda函数的项目。在你的情况下,你的 mFamilyTV
.
2) Where does it come from? I didn't define it outside of the lambda.
单元执行 lambda 稍后将通过它。
3) What are some usages of it?
它使您能够将相同的功能附加到多个实例,并且仍然知道哪个实例触发了它。假设您有一个 lambda 在单击按钮时将背景设置为红色。您可以将它附加到 15 个按钮,如果您正确编程(在本例中,更改 pSender
的颜色而不是命名按钮),它适用于所有 15 个按钮。以及任何数量的其他按钮,即使您不这样做甚至在编译时都不知道它们,并且在您的程序中没有它们的变量名。