scaleform.minarto.com

마우스 우측 버튼 지원 본문

Scaleform

마우스 우측 버튼 지원

미나토 2011. 9. 28. 14:19


이것 때문에 좀 해멨습니다...

기술문서상으로는 3.3에서부터 MovieClip 클래스의 이벤트로

onPressAux

onReleaseAux

onReleaseOutsideAux


세가지의 이벤트를 지원하여 마우스 우측 버튼을 지원한다고 나와있습니다만 사실과 좀 다릅니다...

제 pc에 설치한 스케일폼 클라이언트가 3.3.85 버전입니다만 아무리 해봐도 이벤트가 발생하지를 않더군요...

그런데 기존에 잘 써왔다고 해서, 도대체 어떻게 된건가 확인해보니 저희 스튜디오에서 사용하는건 3.3.89 버전이었고 거기서는 되더군요...

요컨데, 3.3 버전이라고 해서 다 지원하는게 아니고 마이너 버전에 따라서도 기능상의 차이가 있다는 겁니다. (뭐, 단순히 3.3.85 버전의 버그일 수도 있겠습니다)



추가로, 앞서 말했듯 3.3.89 미만인 버전에서 우측버튼을 하려면 MovieClip 의 이벤트로는 지원하지 않기 때문에 다른 방법을 써야 합니다.


Mouse 클래스의 onMouseUp, onMouseDown 을 이용하여 만드는 겁니다.

다만, 그냥 쓰면 안되고 코드적으로 트윅을 거쳐야 합니다. Mouse의 이벤트이다보니 특정 버튼에 걸리는 것이 아니라 stage 상에 이벤트가 걸리기 때문입니다.

스켈폼 코리아(스켈폼 공식 카페)에 가보니 몇몇분들이 올려놓은 샘플로는 hitTest 를 써서 특정 버튼 위에 있다고 판단해서들 사용하던데... 사실 비효율적인 방법입니다.

hitTest 가 cpu도 많이 잡아먹을 뿐더러 사각영역 기준으로 체크를 하기 때문에 그 이외의 모양을 가진 버튼은 정확한 인식이 힘듭니다.

onRollOver 와의 조합으로 버튼 위에 있는 것을 체크하여 이벤트를 거는 것이 맞습니다.