scheduleonce 隻執行一次的時間函數,可以看做延遲執行。
今天想用scheduleonce做一個延遲的for循環
大體思路如下:
//全局
int i=1;
scheduleF(0.5f);//調用
//時間函數
void hello::scheduleF(float f)
{
if(i<10)
{
……
scheduleonce(schedule_selector(hello::scheduleF),0.3f);
}
i++;
}
試了一下,不行,最多執行到i=2,應該是手動調用一次,scheduleonce第一次可以。
是以我覺得可能是scheduleonce已經添加過這個函數了,不能多次添加,于是想在添加之前un一下,但是沒找到unscheduleonce這個方法,用了unschedule,測試還是不行。
無奈全部換成了schedule,unschedule
void hello::scheduleF(float f)
{
if(i<10)
{
……
unschedule(schedule_selector(hello::scheduleF));
schedule(schedule_selector(hello::scheduleF),0.3f);
}
else
{
unschedule(schedule_selector(hello::scheduleF));
}
i++;
}
這樣就行了,不過遺漏unscheduleonce這個方法,不知是不是漏洞····