2012-10-19 1 views
1

CCMenu 항목을 선택하지 않으면 선택기를 호출하려면 어떻게해야합니까?Cocos2d : CCMenu 항목을 선택하지 않으면 선택기를 호출하려면 어떻게해야합니까?

이도 가능합니까?

CCMenuItem을 추가 할 때 버튼 활성화시 호출 될 함수를 선택기로 지정할 수 있습니다. 내가 원하는 것은 버튼이 더 이상 "선택"되지 않으면 함수를 호출 할 수있게하는 것입니다 (나는 선택하고 활성화하지 않음을 의미합니다).

나는 어떤 방법을 오버라이드해야 겠지만 어느 쪽인지는 확실하지 않다. :)

의견이 있으십니까?

답변

2

서브 클래스 CCMenuItemWhatever 하나 개의 메소드를 오버라이드 (override) :

-(void) unselected{ 
    [super unselected]; 
    [self myUnselectedExtension]; 
} 

-(void) myUnselectedExtension{ 
    // whatever is your need , do it here. 
} 
1

CCMenu를 수정하지 않으면 불가능합니다.

그러나 예약 된 업데이트를 실행하고 메뉴 항목의 각 selected 속성을 확인하고 이전에 선택한 상태 (예 : ivar에 저장 됨)의 변경 사항을 관찰 할 수 있습니다. (CCMenuItem에서 파생 된)

+0

나는 CCMenu의 sublcass을 수정 상관하지 않습니다. 그러나 어디서부터 시작해야할지 확실하지 않았습니다. 나는 모든 선택된 프로퍼티의 "boolean and"을 만들고 true 또는 false를 리턴하는 CCMenu 서브 클래스에 추가 메소드를 가질 수 있다고 생각한다. 이것은 업데이트 제안과 결합해야합니다. 나는 시험해 볼 것입니다. 그래서 지금 저는 업 보트 한 다음 한번 시도한 후에 받아 들일 것입니다. 감사 :) – mm24