PuzzleSDK
ScrollViewDemo类 参考

#include <ClippingNodeTest.h>

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

Public 成员函数

 CREATE_FUNC (ScrollViewDemo)
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
virtual void setup () override
 
void onTouchesBegan (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesMoved (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
- Public 成员函数 继承自 BaseClippingNodeTest
 CREATE_FUNC (BaseClippingNodeTest)
 
 ~BaseClippingNodeTest ()
 
virtual bool init () 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
 

Private 属性

bool _scrolling
 
cocos2d::Vec2 _lastPoint
 

额外继承的成员函数

- 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
 

详细描述

在文件 ClippingNodeTest.h150 行定义.

成员函数说明

◆ CREATE_FUNC()

ScrollViewDemo::CREATE_FUNC ( ScrollViewDemo  )

◆ onTouchesBegan()

void ScrollViewDemo::onTouchesBegan ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  event 
)

在文件 ClippingNodeTest.cpp488 行定义.

489{
490 Touch *touch = touches[0];
491 auto clipper = this->getChildByTag(kTagClipperNode);
492 Vec2 point = clipper->convertToNodeSpace(Director::getInstance()->convertToGL(touch->getLocationInView()));
493 auto rect = Rect(0, 0, clipper->getContentSize().width, clipper->getContentSize().height);
494 _scrolling = rect.containsPoint(point);
495 _lastPoint = point;
496}
@ kTagClipperNode
cocos2d::Vec2 _lastPoint

引用了 _lastPoint, _scrolling , 以及 kTagClipperNode.

被这些函数引用 setup().

+ 这是这个函数的调用关系图:

◆ onTouchesEnded()

void ScrollViewDemo::onTouchesEnded ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  event 
)

在文件 ClippingNodeTest.cpp510 行定义.

511{
512 if (!_scrolling) return;
513 _scrolling = false;
514}

引用了 _scrolling.

被这些函数引用 setup().

+ 这是这个函数的调用关系图:

◆ onTouchesMoved()

void ScrollViewDemo::onTouchesMoved ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  event 
)

在文件 ClippingNodeTest.cpp498 行定义.

499{
500 if (!_scrolling) return;
501 Touch *touch = touches[0];
502 auto clipper = this->getChildByTag(kTagClipperNode);
503 auto point = clipper->convertToNodeSpace(Director::getInstance()->convertToGL(touch->getLocationInView()));
504 Vec2 diff = point - _lastPoint;
505 auto content = clipper->getChildByTag(kTagContentNode);
506 content->setPosition(content->getPosition() + diff);
507 _lastPoint = point;
508}
@ kTagContentNode

引用了 _lastPoint, _scrolling, kTagClipperNode , 以及 kTagContentNode.

被这些函数引用 setup().

+ 这是这个函数的调用关系图:

◆ setup()

void ScrollViewDemo::setup ( )
overridevirtual

重载 BaseClippingNodeTest .

在文件 ClippingNodeTest.cpp452 行定义.

453{
454 auto clipper = ClippingNode::create();
455 clipper->setTag( kTagClipperNode );
456 clipper->setContentSize( Size(200.0f, 200.0f) );
457 clipper->setAnchorPoint( Vec2(0.5f, 0.5f) );
458 clipper->setPosition(this->getContentSize().width / 2, this->getContentSize().height / 2);
459 clipper->runAction(RepeatForever::create(RotateBy::create(1, 45)));
460 this->addChild(clipper);
461
462 auto stencil = DrawNode::create();
463 Vec2 rectangle[4];
464 rectangle[0] = Vec2(0.0f, 0.0f);
465 rectangle[1] = Vec2(clipper->getContentSize().width, 0.0f);
466 rectangle[2] = Vec2(clipper->getContentSize().width, clipper->getContentSize().height);
467 rectangle[3] = Vec2(0.0f, clipper->getContentSize().height);
468
469 Color4F white(1, 1, 1, 1);
470 stencil->drawPolygon(rectangle, 4, white, 1, white);
471 clipper->setStencil(stencil);
472
473 auto content = Sprite::create(s_back2);
474 content->setTag( kTagContentNode );
475 content->setAnchorPoint( Vec2(0.5f, 0.5f) );
476 content->setPosition(clipper->getContentSize().width / 2, clipper->getContentSize().height / 2);
477 clipper->addChild(content);
478
479 _scrolling = false;
480
481 auto listener = EventListenerTouchAllAtOnce::create();
482 listener->onTouchesBegan = CC_CALLBACK_2(ScrollViewDemo::onTouchesBegan, this);
483 listener->onTouchesMoved = CC_CALLBACK_2(ScrollViewDemo::onTouchesMoved, this);
484 listener->onTouchesEnded = CC_CALLBACK_2(ScrollViewDemo::onTouchesEnded, this);
485 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
486}
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void onTouchesBegan(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
static const char s_back2[]
Definition: testResource.h:40

引用了 _scrolling, kTagClipperNode, kTagContentNode, onTouchesBegan(), onTouchesEnded(), onTouchesMoved() , 以及 s_back2.

+ 函数调用图:

◆ subtitle()

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

重载 TestCase .

在文件 ClippingNodeTest.cpp447 行定义.

448{
449 return "Move/drag to scroll the content";
450}

◆ title()

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

重载 BaseClippingNodeTest .

在文件 ClippingNodeTest.cpp442 行定义.

443{
444 return "Scroll View Demo";
445}

类成员变量说明

◆ _lastPoint

cocos2d::Vec2 ScrollViewDemo::_lastPoint
private

在文件 ClippingNodeTest.h163 行定义.

被这些函数引用 onTouchesBegan() , 以及 onTouchesMoved().

◆ _scrolling

bool ScrollViewDemo::_scrolling
private

在文件 ClippingNodeTest.h162 行定义.

被这些函数引用 onTouchesBegan(), onTouchesEnded(), onTouchesMoved() , 以及 setup().


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