CCObject* CCCallFunc::copyWithZone ( CCZone* pZone ) { CCZone* pNewZone = KD_NULL; CCCallFunc* pRet = KD_NULL; if ( pZone && pZone->m_pCopyObject ) { pRet = (CCCallFunc *) pZone->m_pCopyObject; } else { pRet = new CCCallFunc ( ); pZone = pNewZone = new CCZone ( pRet ); } CCActionInstant::copyWithZone ( pZone ); pRet->initWithTarget ( m_pSelectorTarget ); pRet->m_pCallFunc = m_pCallFunc; if ( m_nScriptHandler > 0 ) { pRet->m_nScriptHandler = CCScriptEngineManager::sharedManager ( )->getScriptEngine ( )->reallocateScriptHandler ( m_nScriptHandler ); } CC_SAFE_DELETE ( pNewZone ); return pRet; }
void ProgressBar::progressBy(float delta) { float maxPercentage = 100.0f; bool isFinished = false; float nextPercentage = delta + this->getPercentage(); if(nextPercentage >= maxPercentage){ nextPercentage = maxPercentage; isFinished = true; } this->stopActionByTag(k_Progress_Action); CCArray *actions = CCArray::createWithCapacity(2); float duration = delta/this->getSpeed(); CCProgressTo* to = CCProgressTo::create(duration, nextPercentage); actions->addObject(to); if(isFinished){ CCCallFunc* callfunc = CCCallFunc::create(this, callfunc_selector(ProgressBar::loadingFinished)); actions->addObject(callfunc); } CCFiniteTimeAction* seq = CCSequence::create(actions); CCCallFunc* updatePercentage = CCCallFunc::create(this, callfunc_selector(ProgressBar::updatePercentage)); updatePercentage->setDuration(duration); CCSpawn* spawn = CCSpawn::createWithTwoActions(seq, updatePercentage); spawn->setTag(k_Progress_Action); this->runAction(spawn); }
CCCallFunc * CCCallFunc::actionWithTarget(SelectorProtocol* pSelectorTarget, SEL_CallFunc selector) { CCCallFunc* pCallFunc = new CCCallFunc(); pCallFunc->autorelease(); pCallFunc->initWithTarget(pSelectorTarget); pCallFunc->m_pCallFunc = selector; return pCallFunc; }
CCCallFunc* CCCallFunc::actionWithScriptFuncName(const char* pszFuncName) { CCCallFunc *pRet = new CCCallFunc(); if (pRet && pRet->initWithScriptFuncName(pszFuncName)) { pRet->autorelease(); return pRet; } CC_SAFE_DELETE(pRet); return NULL; }
void CCRichLabelTTF::onLinkMenuItemClicked(CCObject* sender) { CCMenuItemColor* item = (CCMenuItemColor*)sender; CCCallFunc* func = (CCCallFunc*)item->getUserData(); if(func){ CCCallFuncO *funcO = dynamic_cast<CCCallFuncO*>(func); if(funcO){ funcO->setObject(CCInteger::create(item->getTag() - START_TAG_LINK_ITEM)); } func->execute(); } }
CCCallFunc * CCCallFunc::create(ccScriptFunction nHandler) { CCCallFunc *pRet = new CCCallFunc(); if (pRet && pRet->initWithScriptTarget(nHandler)) { CC_SAFE_AUTORELEASE(pRet); return pRet; } CC_SAFE_DELETE(pRet); return NULL; }
CCCallFunc * CCCallFunc::actionWithTarget(SelectorProtocol* pSelectorTarget, SEL_CallFunc selector) { CCCallFunc *pRet = new CCCallFunc(); if(pRet->initWithTarget(pSelectorTarget)) { pRet->m_pCallFunc = selector; pRet->autorelease(); return pRet; } CC_SAFE_DELETE(pRet); return NULL; }
CCCallFunc * CCCallFunc::create(int nHandler) { CCCallFunc *pRet = new CCCallFunc(); if (pRet) { pRet->m_nScriptHandler = nHandler; pRet->autorelease(); } else{ CC_SAFE_DELETE(pRet); } return pRet; }
CCCallFunc * CCCallFunc::create(CCObject* pSelectorTarget, SEL_CallFunc selector) { CCCallFunc *pRet = new CCCallFunc(); if (pRet && pRet->initWithTarget(pSelectorTarget)) { pRet->m_pCallFunc = selector; pRet->autorelease(); return pRet; } CC_SAFE_DELETE(pRet); return NULL; }
CCObject * CCCallFunc::copyWithZone(cocos2d::CCZone *pZone) { CCZone* pNewZone = NULL; CCCallFunc* pRet = NULL; if(pZone && pZone->m_pCopyObject) //in case of being called at sub class pRet = (CCCallFunc*)(pZone->m_pCopyObject); else { pRet = new CCCallFunc(); pZone = pNewZone = new CCZone(pRet); } CCActionInstant::copyWithZone(pZone); pRet->initWithTarget(m_pSelectorTarget); pRet->m_pCallFunc = m_pCallFunc; CC_SAFE_DELETE(pNewZone); return pRet; }
CCObject * CCCallFunc::copyWithZone(CCZone *pZone) { CCZone* pNewZone = NULL; CCCallFunc* pRet = NULL; if (pZone && pZone->m_pCopyObject) { //in case of being called at sub class pRet = (CCCallFunc*) (pZone->m_pCopyObject); } else { pRet = new CCCallFunc(); pZone = pNewZone = new CCZone(pRet); } CCActionInstant::copyWithZone(pZone); pRet->initWithTarget(m_pSelectorTarget); pRet->m_pCallFunc = m_pCallFunc; if (m_nScriptHandler > 0 ) { CCLuaEngine::defaultEngine()->reallocateScriptHandler(m_nScriptHandler); } CC_SAFE_DELETE(pNewZone); return pRet; }
CCObject * CCCallFunc::copyWithZone(CCZone *pZone) { CCZone* pNewZone = NULL; CCCallFunc* pRet = NULL; if (pZone && pZone->m_pCopyObject) { //in case of being called at sub class pRet = (CCCallFunc*) (pZone->m_pCopyObject); } else { pRet = new CCCallFunc(); pZone = pNewZone = new CCZone(pRet); CC_SAFE_AUTORELEASE(pRet); } CCActionInstant::copyWithZone(pZone); pRet->initWithTarget(m_pSelectorTarget); pRet->m_pCallFunc = m_pCallFunc; if (m_nScriptHandler.handler) { pRet->m_nScriptHandler.target = m_nScriptHandler.target; pRet->m_nScriptHandler.handler = cocos2d::CCScriptEngineManager::sharedManager()->getScriptEngine()->reallocateScriptHandler(m_nScriptHandler.handler); } CC_SAFE_DELETE(pNewZone); return pRet; }