我有一种奇怪的情况,我尝试在精灵上运行闪烁动作作为序列的一部分虽然 getNumberOfRunningActions 方法返回 1,但精灵不会闪烁。
其中 pMatchedSymbolArray 是 ReelSymbol Sprite 扩展类的数组
class ReelSymbol :public Sprite
{
public:
CREATE_FUNC(ReelSymbol);
ReelSymbol();
virtual bool init();
void setup();
static ReelSymbol* createWithSpriteFrameName(const std::string& spriteFrameName);
private:
int getIntFromName(std::string key);
Settings* pSettings;
};
for(ssize_t a=0; a<pMatchedSymbolArray->count();a++)
{
auto actionBlink = Blink::create(2, 5);
auto repeat = Repeat::create(actionBlink, 2);
ReelSymbol* symbol = ((ReelSymbol*)pMatchedSymbolArray->getObjectAtIndex(a));
auto actionSequence = Sequence::create(
actionBlink,
DelayTime::create(2),
CallFunc::create( std::bind(&LinesManager::AnimationUnitCallback, this, symbol,pMatchedSymbolArray->count()) ),
NULL);
ReelSymbol* thisReelSymbol = ((ReelSymbol*)pMatchedSymbolArray->getObjectAtIndex(a));
thisReelSymbol->runAction(actionSequence);
int no = thisReelSymbol->getNumberOfRunningActions();
CCLOG("getNumberOfRunningActions: %d",no);
}
void LinesManager::AnimationUnitCallback(Node* sender,int iMatchedSymbolArrayCount)
{
}
仅当我运行时,精灵才会闪烁:
auto actionBlink = Blink::create(2, 5);
....
....
thisReelSymbol->runAction(actionBlink );
这里有什么问题?