주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
꽃배달 한국, 중국 전지역배송

11 . MouseEvent 마우스 입력

SOLIDH | 2009.05.31 16:41:06 댓글: 0 조회: 3037 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759830

ActionScript 3.0 의 Event

ActionScript 가 3.0 으로 올라서면서 크게 변한점이 있다면 Event 들의 사용방법이 한가지의 방식으로 뚜렷하게 합쳐졌다는 겁니다. 2.0 때 까지는 Keyboard 도 그렇고, Mouse 도 그렇고, 좀 어정쩡한면이 많았는데… 3.0 에 들어서는 "이거나 저거나 똑같구먼…" 소리가 나올수 있게 되었죠.

   

9번째 시간에서 EventDispatcher 를 먼저 이야기 한 것도 그런 이유에서 입니다. 원리만 알면 Event 다루는 것은 아주 쉬워지거든요. 그럼 시작해 봅시다. 히위고~

   

간단한 예제

뭐… 100마디 설명보단 예제 하나가 강합니다.

우 선 간단하게 MouseEvent 를 가진 오브젝트를 만들어봅니다. 이벤트에 대한 부분은 EventDispatcher 에 대한 내용을 다뤘던 지난 시간을 보았다면 쉽게 이해하실 수 있을겁니다. 모르겄다… 하면 처음부터 다시 보고 오세요… 1~10편 까지를 이해못하면 지금 시간부터 나올 모든 내용을 쉽게 이해할 수 없을겁니다. (괜히 어렵고 재미도 없는거 꾸역꾸역 쓴게 아니거든요…;;; 기초라서 죽을똥 살똥 써놓은 겁니다.) 

그리고, 지난 시간에 배웠던대로 오브젝트에 연결해 줍니다. 다 되었다면 퍼블리싱을 해줍니다.

무비클립을 누르면 click event 가 발생하게 됩니다.


Sprite 가 제공하는 MouseEvent 알아보기


F1 을 눌러서 도움말에서 Sprite 를 열어보겠습니다.

이것들이 Sprte 가 제공하는 이벤트 들인데요. Event 부분을 기억하신다면 아시겠지만, 어떤 상황에서 이런 말들을 알려주는 것이죠.

   

예제에서 생성한 MouseEvent.CLICK 은 "눌렀다 떼는" 클릭이 발생했을때 dispatchEvent 시켜주는 것이죠.

   

Sprite 가 제공하는 MouseEvent 는 아래와 같습니다.

// 누름 관련

MouseEvent.CLICK = 눌렀다 떼는 클릭

MouseEvent.DOUBLE_CLICK = 더블클릭

MouseEvent.MOUSE_DOWN = 눌렀을때

MouseEvent.MOUSE_UP = 누른 상태에서 뗄때

// 올렸다, 내림 관련

MouseEvent.MOUSE_OVER = 오브젝트 위에 마우스를 올릴때

MouseEvent.MOUSE_OUT = 오브젝트 에서 마우스가 벗어날때

MouseEvent.MOUSE_MOVE = 마우스가 움직일때

// 마우스 휠 관련

MouseEvent.MOUSE_WHEEL = 마우스 휠을 돌릴때

   

보 통 "누르고, 떼는 이벤트" 에서 간단하게 클릭을 할 경우에는 MouseEvent.CLICK 만으로 간단히 해결이 됩니다. 좀 특수하게 눌렀다, 뗄때를 구분해야 할 경우에 MOUSE_DOWN 과 MOUSE_UP 을 사용하고, DOUBLE_CLICK 의 경우 역시 특수하게 사용되죠.

   

올림, 내림에 대한 부분은 시각설계에서 자주 사용되는 편이죠. ㅎㅎㅎ… 올렸을때 색깔 변하고, 내리면 정상으로 돌아오는 뭐 그런것들은 이 이벤트를 통해서 만들어집니다.

   

휠 의 경우에는 뭔지 다 아시겠지만, 개인적으로 가능하면 "휠이 꼭 필요한 인터페이스" 는 만들지 않기를 권장하고 싶습니다. 개인적으로 타블렛을 사용하는데… 타블렛에서는 휠을 사용하는게 무척 까다롭거든요. 최근들어 타블렛PC 의 사용률이 매우 높아지고 있는데, 그런 상황에서 휠 이벤트를 메인으로 사용하는 인터페이스는 해당 유저들에게 매우 큰 불편을 안겨주게 됩니다. 뭐… 구지 이야기 하자면 "이 ㅆㅂ 사이트!!!" 라는 소리를 내뱉게 되죠… ㅡ ㅈ ㅡ;;; 휠 인터페이스의 경우엔 Mac, Linux 에서 잘 적용도 안되는 경우가 있을 뿐더러, 마우스를 사용하지 않는 환경을 갖춘 사람들에게 무척 피곤한 사항이 될 수 있으니 메인 인터페이스로 사용하는 것은 가급적 피하라고 이야기 드리고, 넣어야 한다면 2차 대안 인터페이스를 꼭 만들어야 한다고 말씀드리고 싶네요.

   

무식하게 다 적용해보기

한 번 무식하게… 저 이벤트들을 몽땅 다 넣어서 만들어보겠습니다.

다 넣어버렸습니다…;;; 

뭐 주륵주륵 이벤트들이 발생합니다…;;;

   

이벤트의 연계

예제 삼아서 간단한 드래그 기능을 만들어보겠습니다.

이렇게 코딩을 한 다음에 퍼블리싱 해보면 

마우스를 따라 드래그되는 무비클립이 됩니다.

   

이렇게 down 이벤트 시에 새로운 이벤트를 주어서 이벤트를 연결하는 것은 우리가 흔히 사용하는 "스크롤바" 에서 볼 수 있습니다. 스크롤바는 여러가지 의미에서 마우스 이벤트의 절정을 보여주죠…;;;

   

입력 -> 처리 -> 출력 에서 입력을 바꿔보았습니다.

오 늘 배운 내용은 세번째 시간에서 이야기 했던 입력, 처리, 출력의 삼단계 중에서 입력 부분을 다르게 적용해 본 내용이었습니다. 프로그래밍을 하면서 이렇게 입력, 처리, 출력을 따로 나눠서 작업하는 경우가 많은데요. 맨처음 핵심 기능을 만들때는 입력과 출력을 간단하게 해서 적용한 뒤에 처리를 작업하고, 나중에 입력과 출력을 점진적으로 목적에 맞게 개선해 나가곤 합니다. (뭐 경우에 따라서 틀리긴 하지만…) 


출처: ssen님레시피

http://ssen.name/zb/915

추천 (0) 선물 (0명)
첨부파일 다운로드 ( 9 )
1.png | 18.2KB / 0 Download
2.png | 134.3KB / 0 Download
3.png | 7.5KB / 0 Download
4.png | 10.4KB / 0 Download
5.png | 265.8KB / 0 Download
6.png | 47.2KB / 0 Download
7.png | 9.5KB / 0 Download
8.png | 222.8KB / 0 Download
9.png | 88.7KB / 0 Download
IP: ♡.221.♡.101
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12021
관리자
2003-09-20
11567
관리자
2003-09-20
20724
지구인
2010-08-27
19500
지구인
2009-09-07
13815
SOLIDH
2010-01-29
15784
엔죠라이프
2004-10-07
16865
SOLIDH
2009-06-13
2410
Ora
2009-06-10
4762
SOLIDH
2009-06-10
1298
아밥
2009-06-04
2648
아밥
2009-06-04
4389
아밥
2009-06-04
1754
아밥
2009-06-04
4562
SOLIDH
2009-06-04
3196
SOLIDH
2009-06-04
5088
SOLIDH
2009-06-04
3673
SOLIDH
2009-06-04
4415
SOLIDH
2009-05-31
2733
SOLIDH
2009-05-31
3279
SOLIDH
2009-05-31
3740
SOLIDH
2009-05-31
3802
SOLIDH
2009-05-31
3516
SOLIDH
2009-05-31
3224
SOLIDH
2009-05-31
2945
SOLIDH
2009-05-31
3037
SOLIDH
2009-05-31
2852
SOLIDH
2009-05-30
2591
모이자 모바일