1

我有一种奇怪的情况,我尝试在精灵上运行闪烁动作作为序列的一部分虽然 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 );

这里有什么问题?

4

1 回答 1

0

如果这只是最新版本的问题,那么解决方法可能是同时使用两个操作。

  1. 闪烁动作与持续时间。
  2. 具有闪烁动作延迟的序列,然后是其他动作。
于 2014-04-09T06:02:01.963 回答