최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

<문제의 발단>

 

화승그룹 역사관 사이트 작업의 마지막 수정부분인 "마우스 활성화 제한" 에서 1시간 반 가량을 삽질.

 

메서드 두개만 제대로 잡아주면 끝날문제를 하마터면 엄청 길게 해결 할 뻔했다.

 

문제의화면)  뒷부분의 비활성화된 썸네일은 마우스 반응에서 제외되어야한다.

 

 

 

문제의부분)

 

thumb_mc.mouseEnabled = false; 가 먹히지 않아 갖은 삽질을 함.

 

<문제의 원인>

아래와 같이 A 사각형 안에 B 사각형이 있다. (둘다 무비클립)

A는 버튼 모드 이지만 다시 A.mouseEnabled = false를 실행하여 마우스반응에서 제외시켰다.

 

그러나... B사각형에 마우스를 가져가면 여전히 버튼모드가 활성화 되고,

A의 리스너였던 click이벤트도 B사각형을 클릭하면 실행된다. 

 

mouseEnabled 시행착오.fla

 

 

<해결과 방법>

 

당연히 A,B 둘다 동시에 해제시키면 된다.

A.mouseEnabled = false;

A.B.mouseEnabled = false; 처럼.

 

그러나 A에 addChild된 B가 아래는 이해를 돕기위해 단순한구조로 구성되어있지만

B가 Loader를 통해 불러온 image이고, 더군다나 사이즈가 A와 똑같다면?..

"문제의부분)" 이미지에 첨부한 소스와 같이 헷갈리는 부분이 있을뿐더러 image는 어느샌가 mouseEnabled에서 제외되어 생각된다..

 

이러한 유형의 해결방법은 다음과 같다.

A.mouseEnabled = false;  //먼저 A자체를 비활성화

A.mouseChildren = false; //A가 가지고있는 모든 자식객체도 비활성화

 

mouseEnabled 해결.fla

 

1번 솔루션 보다(이게 근본적인 방법이긴 하다) 범용성및 가독성을 위해 2번 솔루션 처럼 사용하면 해결.

 

댓글