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);
}
Beispiel #3
0
	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;
}
Beispiel #5
0
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;
}
Beispiel #7
0
	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;
}
Beispiel #10
0
	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;
	}
Beispiel #11
0
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;
}