PuzzleSDK
RemoveListenerWhenDispatching类 参考

#include <NewEventDispatcherTest.h>

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

Public 成员函数

 CREATE_FUNC (RemoveListenerWhenDispatching)
 
virtual void onEnter () override
 
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
 

额外继承的成员函数

- 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.h66 行定义.

成员函数说明

◆ CREATE_FUNC()

RemoveListenerWhenDispatching::CREATE_FUNC ( RemoveListenerWhenDispatching  )

◆ onEnter()

void RemoveListenerWhenDispatching::onEnter ( )
overridevirtual

重载 TestCase .

在文件 NewEventDispatcherTest.cpp300 行定义.

301{
303
304 Vec2 origin = Director::getInstance()->getVisibleOrigin();
305 Size size = Director::getInstance()->getVisibleSize();
306
307 auto sprite1 = Sprite::create("Images/CyanSquare.png");
308 sprite1->setPosition(origin+Vec2(size.width/2, size.height/2));
309 addChild(sprite1, 10);
310
311 // Make sprite1 touchable
312 auto listener1 = EventListenerTouchOneByOne::create();
313 listener1->setSwallowTouches(true);
314 setUserObject(listener1);
315
316 std::shared_ptr<bool> firstClick(new bool(true));
317
318 listener1->onTouchBegan = [=](Touch* touch, Event* event){
319 Vec2 locationInNode = sprite1->convertToNodeSpace(touch->getLocation());
320 Size s = sprite1->getContentSize();
321 Rect rect = Rect(0, 0, s.width, s.height);
322
323 if (rect.containsPoint(locationInNode))
324 {
325 sprite1->setColor(Color3B::RED);
326 return true;
327 }
328 return false;
329 };
330
331 listener1->onTouchEnded = [=](Touch* touch, Event* event){
332 sprite1->setColor(Color3B::WHITE);
333 };
334
335 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
336
337 auto statusLabel = Label::createWithSystemFont("The sprite could be touched!", "", 20);
338 statusLabel->setPosition(origin + Vec2(size.width/2, size.height-90));
339 addChild(statusLabel);
340 std::shared_ptr<bool> enable(new bool(true));
341 // Enable/Disable item
342 auto toggleItem = MenuItemToggle::createWithCallback([=](Ref* sender){
343 if (*enable)
344 {
345 _eventDispatcher->removeEventListener(listener1);
346 statusLabel->setString("The sprite could not be touched!");
347
348 (*enable) = false;
349 }
350 else
351 {
352 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
353 statusLabel->setString("The sprite could be touched!");
354
355 (*enable) = true;
356 }
357 }, MenuItemFont::create("Enabled"), MenuItemFont::create("Disabled"), nullptr);
358
359 toggleItem->setPosition(origin + Vec2(size.width/2, 80.0f));
360 auto menu = Menu::create(toggleItem, nullptr);
361 menu->setPosition(Vec2(0.0f, 0.0f));
362 menu->setAnchorPoint(Vec2(0.0f, 0.0f));
363 addChild(menu, -1);
364}
virtual void onEnter() override
Definition: BaseTest.cpp:430

引用了 TestCase::onEnter().

+ 函数调用图:

◆ subtitle()

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

重载 TestCase .

在文件 NewEventDispatcherTest.cpp371 行定义.

372{
373 return "";
374}

◆ title()

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

重载 EventDispatcherTestDemo .

在文件 NewEventDispatcherTest.cpp366 行定义.

367{
368 return "Add and remove listener\n when dispatching event";
369}

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