Как отменить расписание выбранного метода расписания в cocos2d? - PullRequest
0 голосов
/ 15 ноября 2011

следовать является частью источника. он вызывает три раза метод расписания.

Я бы хотел отменить 2) расписание.

Как отменить расписание выбранного метода расписаний?

-(id) init
{ 
    if( (self=[super init] ))
    { 
        int_count=0;
        [self schedule:@selector(displayOne) interval:1.0]; 1) schedule
        [self schedule:@selector(displayOne) interval:2.0]; 2) schedule
        [self schedule:@selector(displayOne) interval:1.5]; 3) schedule
    }
    return self;
}

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011

Нет никакого смысла в планировании нескольких селекторов, вызывающих один и тот же метод. Если вы посмотрите в окно консоли, вы увидите сообщение, в котором говорится:

CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 1.00 to 2.00

CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 2.00 to 1.50

Что вы можете сделать, так это запланировать селектор с разными именами методов, например:

[self schedule:@selector(displayOne) interval:1.0]; 1) schedule
[self schedule:@selector(displayTwo) interval:2.0]; 2) schedule
[self schedule:@selector(displayThree) interval:1.5]; 3) schedule

и в методе displayTwo отключите его так:

[self unschedule:@selector(displayTwo)];
0 голосов
/ 16 октября 2013

Для незапланированного текущего текущего селектора вы можете ввести ключевое слово _cmd как

[self unschedule:_cmd];
0 голосов
/ 15 ноября 2011

Я думаю, вам придется разделить планировщики на 3 разные функции вместо использования функции displayOne.

Благодаря 3 различным функциям вы сможете использовать функцию без расписания.Прямо сейчас вы можете отменить их все или оставить все включенными.

   [self unschedule:@selector(test1)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...