コード例 #1
0
ファイル: CAScrollView.cpp プロジェクト: jonesgithub/CrossApp
void CAScrollView::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
    if (m_pTouches->containsObject(pTouch))
    {
        if (m_pTouches->count() == 1)
        {
            CCPoint p = CCPointZero;
            
            if (m_tPointOffset.size() > 0)
            {
//                if (m_tPointOffset.size() > 1)
//                {
//                    m_tPointOffset.pop_back();
//                }
                
                for (unsigned int i=0; i<m_tPointOffset.size(); i++)
                {
                    p = ccpAdd(p, m_tPointOffset.at(i));
                }
                p = p/m_tPointOffset.size();
            }
            m_tInertia = p;
			m_tPointOffset.clear();

            if (m_pScrollViewDelegate)
            {
                m_pScrollViewDelegate->scrollViewDidEndDragging(this);
            }
            m_bTracking = false;
            
            CCDirector::sharedDirector()->getScheduler()->scheduleSelector(schedule_selector(CAScrollView::deaccelerateScrolling), this, 1/60.0f, false);
        }
        else if (m_pTouches->count() == 2)
        {
            m_bZooming = false;
            
            for (unsigned int i=0; i<2; i++)
            {
                CCTouch* touch = dynamic_cast<CCTouch*>(m_pTouches->objectAtIndex(i));
                if (!touch->isEqual(pTouch))
                {
                    CCPoint p = m_pContainer->convertTouchToNodeSpace(touch);
                    m_pContainer->setAnchorPointInPoints(p);
                    break;
                }
            }
            
            this->backtorangeZooming();
        }
        m_pTouches->removeObject(pTouch);
    }
}