首先我自己梳理下自己了解的部分,如果有误,望大家指出。
static CallFunc * create(const std::function<void()>& func)
我的理解是callFunc无返回值。
CC_CALLBACK_0表示它调用的是一个无参函数
于是我想试试我给它调用一个有参函数会怎样
void HelloWorld::test(Node *node){
log("%d",node->getTag());
}
bool HelloWorld::init()
{
CallFunc *call1=CallFunc::create(CC_CALLBACK_0(HelloWorld::test,this,this));
this->runAction(call1);
//等价上面
CallFunc *call2=CallFunc::create(bind(&HelloWorld::test, this,this));
this->runAction(call2);
//callFuncN
CallFuncN *call3=CallFuncN::create(CC_CALLBACK_0(HelloWorld::test,this,this));
this->runAction(call3);
return true;
}
打印的结果是:
-1
-1
-1
既然CallFunc和CallFuncN 都能调用参数,那么它们之间有什么区别?
而CC_CALLBACK_1 CC_CALLBACK_2 CC_CALLBACK_3 这有什么作用呢?
我从google得知 arg_list里可以包含占位符,我估计和CC_CALLBACK_1有关。
希望有懂的朋友,能写段小代码 让我验证一下,我有点晕了。。。