2014-04-23 6 views
0

나는 cocos2d-x 3.0 RC1을 사용하는데 다음과 같은 것이 필요하다 : 최상위 레이어는 모든 이벤트를 가져와야하고 최상위 레이어 아래에있는 레이어에 이벤트를 전파해서는 안된다. 내가 어떻게 할 수 있는지 모르겠다. setTouchEnabledsetSwallowTouches으로 결과를 얻으려고했지만 null 결과입니다.하위 레벨 레이어로 이벤트 전파를 비활성화하는 방법은 무엇입니까?

도와주세요. 이건 매우 중요합니다.

답변

0

내가 찾은 유일한 방법은이를 구현하는 것입니다 : 나는 레이어의 init 메소드에 쓴

auto m_touchListenerOneByOne = EventListenerTouchOneByOne::create(); 
m_touchListenerOneByOne->setSwallowTouches(true); 
m_touchListenerOneByOne->onTouchBegan = CC_CALLBACK_2(IntroView::onBoardTouchBegan, this); 

_eventDispatcher->addEventListenerWithSceneGraphPriority(m_touchListenerOneByOne, this); 

코드 위. 또한이 : 층 접촉을 소비하지 않는 경우, 그렇지 않으면 그 감동이 우선 순위에 따라 다음 레이어로 전달됩니다

bool IntroView::onBoardTouchBegan(Touch* touch, Event* event) 
{ 
    CCLOG("AAAAAAAAA!"); 
    return true; 
}; 

당신이 터치를 "소비"onBoardTouchBegan에 true를 돌려

.