Деактивиране на докосвания touchMoved cocos2d v3?

Опитвам се да направя нещо доста просто в Cocos2d 3.1. Получавам събития за докосване на подклас на CCSprite и се опитвам да спра да получавам събития за докосване, когато докосването се изплъзне от спрайта с помощта на прост помощен метод containsTouchLocation.

Това, което обаче не работи, е, че ако направя self.userInteractionEnabled = NO; в метода touchMoved:, той все още извиква touchMoved!

Това е моят пълен touchMoved: метод:

- (void)touchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
    self.userInteractionEnabled = NO;
    int color = ([self containsTouchLocation:touch] ? 128 : 255);
    self.color = [CCColor colorWithCcColor3b:ccc3(color, color, color)];
} 

Защо, въпреки че очевидно се опитвам да изключа събитията на докосване в метода touchMoved, той все още го извиква?


person SimplyKiwi    schedule 20.07.2014    source източник
comment
засяга ли може би само текущото докосване, т.е. деактивираното взаимодействие влиза в сила само за бъдещи докосвания, докато текущото докосване има право да получава преместени и приключили събития?   -  person LearnCocos2D    schedule 21.07.2014
comment
@LearnCocos2D Да, изглежда, че спира всички бъдещи докосвания. Как да спра текущото докосване?   -  person SimplyKiwi    schedule 21.07.2014
comment
От това, което проучих, няма начин да се направи това. Така че междувременно използвах BOOL и няма да извикам кода, когато е необходимо. Знаете ли дали има начин да спрете събитията за докосване за докосване, което все още е в действие?   -  person SimplyKiwi    schedule 21.07.2014


Отговори (1)


Деактивирането на userInteractionEnabled при активно докосване не отменя докосване в текущата версия на Cocos2D. Създадох заявка за изтегляне, за да променя това, тъй като според мен възлите трябва да получават само събития на докосване, докато userInteractionEnabled е настроено на YES(https://github.com/cocos2d/cocos2d-iphone/pull/882)

Засега ще трябва да се справите с това с някаква променлива на състоянието във вашия възел, която получава докосвания.

person Ben-G    schedule 22.07.2014
comment
Благодаря! Виждам и двете страни, за да бъда честен, но вашият ангажимент работи много добре. - person SimplyKiwi; 23.07.2014
comment
Да, виждам и двете страни ;) - person Ben-G; 23.07.2014