{
auto layer = Layer::create();
auto event = cocos2d::EventListenerTouchOneByOne::create();
event->onTouchBegan = [=](Touch*, Event*)->bool
{
this->createMSG("res/box/box_0.png", "res/btn/close_1.png", UTF_8("冬虫夏草app"));
#ifndef _WIN32
Device::vibrate(5.0f);
#endif
return true;
};
event->onTouchMoved = [=](Touch*, Event*)
{
};
event->onTouchEnded = [=](Touch*, Event*)
{
};
event->onTouchCancelled = [=](Touch*, Event*)
{
};
auto listener = cocos2d::EventListenerKeyboard::create();
listener->onKeyReleased = [=](EventKeyboard::KeyCode code,Event *e)
{
this->createMSG("res/box/box_0.png", "res/btn/close_1.png", UTF_8("冬虫夏草app ") + framework::tostring((int)code));
};
auto ed = layer->getEventDispatcher();
ed->addEventListenerWithSceneGraphPriority(event, layer);
ed->addEventListenerWithSceneGraphPriority(listener, layer);
this->addChild(layer);
}
最好采用=传递
& 引用传递要好好考虑,有可能会破环某些栈内存
要这样[&a,&b] 这样最好,
{
如果是[&] 改变父级的内存 并不能保证会不会出错
尤其是堆内存这些
}
{
1.[var]表示值传递方式捕捉变量var;
2.[=]表示值传递方式捕捉所有父作用域的变量(包括this);
3.[&var]表示引用传递捕捉变量var;
4.[&]表示引用传递方式捕捉所有父作用域的变量(包括this);
5.[this]表示值传递方式捕捉当前的this指针。
}