淘先锋技术网

首页 1 2 3 4 5 6 7

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,则出现无法再进入外判断体的情况。