cocos2d-3.0 Helloworld::onTouchMoved的处理机制的推測

bool sign2 = true;
bool sign2 = true;
void GameLayer::onTouchMoved(Touch *touch, Event *unused){
	if(sign){
		sign = false;	
		**
		if(sign2){
			CCLOG("RUNNING!");
			sign2 = false;
			sign = true;	
		}else{
			sign2 = true;
		}
		**
			
	}
}



假设上述代码顺序执行,则会出现无限循环的RUNNING的LOG:

RUNNING!
RUNNING!
......
但实际上并不会出现无限个running,仅仅可能出现一个或者两个RUNNING!
推測:
触摸时onTouchMoved会多次被调用,进入if(sign)推断里面的不止一个触摸事件。这样即sign被赋值true后又被赋值false,则出现无法再进入外推断体的情况。

posted @ 2014-10-22 16:15  lcchuguo  阅读(265)  评论(0编辑  收藏  举报