首先 系统自带的helloworld 的代码
Scene* HelloWorld::createScene()
{
// ‘scene’ is an autorelease object
auto scene = Scene::create();
// 'layer' is an autorelease object
auto layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
sence的创建采用 Scene::create() 里面自带了 autorelease() 可以使得 sence 在以后被替代时候 会自动释放
而学习的例程中
sence的创建 是 new (std::nothrow) ActionManagerTestScene()
他的基类 是 TestScene(bool bPortrait = false, bool physics = false)
TestScene 的基类是 sence
也就是 基于 new sence() 创建的 sence的子类,我没有查到 ActionManagerTestScene() 在那里可以 autorelease 看不明白
void ActionManagerTest::nextCallback(Ref* sender)
{
auto s = new (std::nothrow) ActionManagerTestScene();
s->addChild( nextActionManagerAction() );
Director::getInstance()->replaceScene(s);
s->release();
}