如何在cocos2d中取消安排选择的计划方法?

时间:2011-11-14 21:13:01

标签: objective-c cocos2d-iphone

以下是来源的一部分。 它调用了三次调度方法。

我想安排一个时间表。

如何取消安排选择的时间表方法?

-(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 个答案:

答案 0 :(得分:2)

调度调用相同方法的多个选择器确实没有意义。如果您在控制台窗口中查看,您会看到一条消息:

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)];

答案 1 :(得分:0)

我认为你必须将调度程序分成3个不同的函数,而不是使用displayOne函数。

使用3种不同的功能,您将能够使用非计划功能。现在,你可以全部取消计划,也可以让它们全部运行。

   [self unschedule:@selector(test1)];

答案 2 :(得分:0)

对于未预定的当前运行选择器,您可以_cmd关键字

[self unschedule:_cmd];