PuzzleSDK
DanglingNodePointersTest类 参考

#include <NewEventDispatcherTest.h>

+ 类 DanglingNodePointersTest 继承关系图:
+ DanglingNodePointersTest 的协作图:

Public 成员函数

 CREATE_FUNC (DanglingNodePointersTest)
 
 DanglingNodePointersTest ()
 
virtual ~DanglingNodePointersTest ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 
virtual void onEnter () override
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

详细描述

在文件 NewEventDispatcherTest.h255 行定义.

构造及析构函数说明

◆ DanglingNodePointersTest()

DanglingNodePointersTest::DanglingNodePointersTest ( )

在文件 NewEventDispatcherTest.cpp1456 行定义.

1457{
1458#if CC_NODE_DEBUG_VERIFY_EVENT_LISTENERS == 1 && COCOS2D_DEBUG > 0
1459 Vec2 origin = Director::getInstance()->getVisibleOrigin();
1460 Size size = Director::getInstance()->getVisibleSize();
1461
1462 auto callback2 = [](DanglingNodePointersTestSprite * sprite2)
1463 {
1464 CCASSERT(false, "This should never be called because the sprite gets removed from it's parent and destroyed!");
1465 exit(1);
1466 };
1467
1468 auto callback1 = [callback2, origin, size](DanglingNodePointersTestSprite * sprite1)
1469 {
1470 DanglingNodePointersTestSprite * sprite2 = dynamic_cast<DanglingNodePointersTestSprite*>(sprite1->getChildren().at(0));
1471 CCASSERT(sprite2, "The first child of sprite 1 should be sprite 2!");
1472 CCASSERT(sprite2->getReferenceCount() == 1, "There should only be 1 reference to sprite 1, from it's parent node. Hence removing it will destroy it!");
1473 sprite1->removeAllChildren(); // This call should cause sprite 2 to be destroyed
1474
1475 // Recreate sprite 1 again
1476 sprite2 = DanglingNodePointersTestSprite::create(callback2);
1477 sprite2->setTexture("Images/MagentaSquare.png");
1478 sprite2->setPosition(origin+Vec2(size.width/2, size.height/2));
1479 sprite1->addChild(sprite2, -20);
1480 };
1481
1482 auto sprite1 = DanglingNodePointersTestSprite::create(callback1); // Sprite 1 will receive touch before sprite 2
1483 sprite1->setTexture("Images/CyanSquare.png");
1484 sprite1->setPosition(origin+Vec2(size.width/2, size.height/2));
1485 addChild(sprite1, -10);
1486
1487 auto sprite2 = DanglingNodePointersTestSprite::create(callback2); // Sprite 2 will be removed when sprite 1 is touched, should never receive an event.
1488 sprite2->setTexture("Images/MagentaSquare.png");
1489 sprite2->setPosition(origin+Vec2(size.width/2, size.height/2));
1490 sprite1->addChild(sprite2, -20);
1491
1492#endif
1493}
static DanglingNodePointersTestSprite * create(const TappedCallback &tappedCallback)

引用了 DanglingNodePointersTestSprite::create().

+ 函数调用图:

◆ ~DanglingNodePointersTest()

DanglingNodePointersTest::~DanglingNodePointersTest ( )
virtual

在文件 NewEventDispatcherTest.cpp1495 行定义.

1496{
1497
1498}

成员函数说明

◆ CREATE_FUNC()

DanglingNodePointersTest::CREATE_FUNC ( DanglingNodePointersTest  )

◆ subtitle()

std::string DanglingNodePointersTest::subtitle ( ) const
overridevirtual

重载 TestCase .

在文件 NewEventDispatcherTest.cpp1505 行定义.

1506{
1507#if CC_NODE_DEBUG_VERIFY_EVENT_LISTENERS == 1 && COCOS2D_DEBUG > 0
1508 return "Tap the square - should not crash!";
1509#else
1510 return "For test to work, must be compiled with:\n"
1511 "CC_NODE_DEBUG_VERIFY_EVENT_LISTENERS == 1\n&& COCOS2D_DEBUG > 0";
1512#endif
1513}

◆ title()

std::string DanglingNodePointersTest::title ( ) const
overridevirtual

重载 EventDispatcherTestDemo .

在文件 NewEventDispatcherTest.cpp1500 行定义.

1501{
1502 return "DanglingNodePointersTest";
1503}

该类的文档由以下文件生成: