PuzzleSDK
TouchableSprite类 参考
+ 类 TouchableSprite 继承关系图:
+ TouchableSprite 的协作图:

Public 成员函数

void removeListenerOnTouchEnded (bool toRemove)
 
EventListener * getListener ()
 

静态 Public 成员函数

static TouchableSpritecreate (int priority=0)
 

Protected 成员函数

 TouchableSprite (int priority)
 
virtual bool init () override
 
virtual void onExit () override
 

Private 属性

EventListener * _listener
 
int _fixedPriority
 
bool _removeListenerOnTouchEnded
 

详细描述

在文件 NewEventDispatcherTest.cpp174 行定义.

构造及析构函数说明

◆ TouchableSprite()

TouchableSprite::TouchableSprite ( int  priority)
inlineprotected

在文件 NewEventDispatcherTest.cpp192 行定义.

193 : _listener(nullptr)
194 , _fixedPriority(priority)
196 {
197 }

被这些函数引用 create().

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

成员函数说明

◆ create()

static TouchableSprite * TouchableSprite::create ( int  priority = 0)
inlinestatic

在文件 NewEventDispatcherTest.cpp177 行定义.

178 {
179 auto ret = new (std::nothrow) TouchableSprite(priority);
180 if (ret && ret->init())
181 {
182 ret->autorelease();
183 }
184 else
185 {
186 CC_SAFE_DELETE(ret);
187 }
188 return ret;
189 }

引用了 TouchableSprite().

被这些函数引用 Issue4160::Issue4160(), FixedPriorityTest::onEnter(), PauseResumeTargetTest::PauseResumeTargetTest() , 以及 PauseResumeTargetTest2::PauseResumeTargetTest2().

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

◆ getListener()

EventListener * TouchableSprite::getListener ( )
inline

在文件 NewEventDispatcherTest.cpp257 行定义.

257{ return _listener; };

引用了 _listener.

◆ init()

virtual bool TouchableSprite::init ( )
inlineoverrideprotectedvirtual

在文件 NewEventDispatcherTest.cpp199 行定义.

200 {
201 if (!Sprite::init())
202 return false;
203
204 auto listener = EventListenerTouchOneByOne::create();
205 listener->setSwallowTouches(true);
206
207 listener->onTouchBegan = [this](Touch* touch, Event* event){
208 Vec2 locationInNode = this->convertToNodeSpace(touch->getLocation());
209 Size s = this->getContentSize();
210 Rect rect = Rect(0, 0, s.width, s.height);
211
212 if (rect.containsPoint(locationInNode))
213 {
214 log("TouchableSprite: onTouchBegan ...");
215 this->setColor(Color3B::RED);
216 return true;
217 }
218 return false;
219 };
220
221 listener->onTouchEnded = [this](Touch* touch, Event* event){
222 log("TouchableSprite: onTouchEnded ...");
223 this->setColor(Color3B::WHITE);
224
226 {
227 _eventDispatcher->removeEventListener(_listener);
228 _listener = nullptr;
229 }
230 };
231
232 if (_fixedPriority != 0)
233 {
234 _eventDispatcher->addEventListenerWithFixedPriority(listener, _fixedPriority);
235 }
236 else
237 {
238 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
239 }
240
241 _listener = listener;
242 return true;
243 }

引用了 _fixedPriority, _listener , 以及 _removeListenerOnTouchEnded.

◆ onExit()

virtual void TouchableSprite::onExit ( )
inlineoverrideprotectedvirtual

在文件 NewEventDispatcherTest.cpp245 行定义.

246 {
247 if (_listener != nullptr && _fixedPriority != 0)
248 {
249 _eventDispatcher->removeEventListener(_listener);
250 }
251
252 Sprite::onExit();
253 }

引用了 _fixedPriority , 以及 _listener.

◆ removeListenerOnTouchEnded()

void TouchableSprite::removeListenerOnTouchEnded ( bool  toRemove)
inline

在文件 NewEventDispatcherTest.cpp255 行定义.

255{ _removeListenerOnTouchEnded = toRemove; };

引用了 _removeListenerOnTouchEnded.

类成员变量说明

◆ _fixedPriority

int TouchableSprite::_fixedPriority
private

在文件 NewEventDispatcherTest.cpp261 行定义.

被这些函数引用 init() , 以及 onExit().

◆ _listener

EventListener* TouchableSprite::_listener
private

在文件 NewEventDispatcherTest.cpp260 行定义.

被这些函数引用 getListener(), init() , 以及 onExit().

◆ _removeListenerOnTouchEnded

bool TouchableSprite::_removeListenerOnTouchEnded
private

在文件 NewEventDispatcherTest.cpp262 行定义.

被这些函数引用 init() , 以及 removeListenerOnTouchEnded().


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