이벤트 리스닝하기


소개

어플리케이션에서 이벤트를 리스닝하기 위해서는 세가지가 필요합니다: 리스너, 이벤트, 그리고 핸들러입니다.
여기서 리스너는 어플리케이션에게 특정 이벤트를 수신하라고 말해주는 역할을 합니다. 이벤트는 잡아내길 원하는 액션을 의미하며, 핸들러는 해당 이벤트가 감지되었을 때 무엇을 할 것인지 어플리케이션에게 말해줍니다. 어플리케이션에 리스너를 추가하려면, App.cpp파일의 setup 메소드에 ofAddListener 메소드를 사용하여 해당 리스너를 정의 해주어야 합니다.

ofAddListener(theEventThatImListening , this, &myHandler);

App.cpp파일에서, myHandler가 무슨 일을 할 것인지 작성해주어야 합니다.

void myHandler(arguments & event){
  //do something
}

기본 이벤트들

어떤 오픈프레임웍스 어플리케이션이건, 다양한 이벤트들을 위한 핸들러들이 기본적으로 제공됩니다:

void keyPressed(int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void mouseEntered(int x, int y);
void mouseExited(int x, int y);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);

이 핸들러들에 대하여 별도로 리스너를 추가할 필요가 없습니다, 이미 여러분을 위해 제공되고 있기 때문이죠, 바로 사용하시면 됩니다.

리소스

  • 만약 (ofApp.cpp안에서가 아닌) 직접 작성한 클래스에 리스너를 생성하고 싶다면, examples/events/SimpleEventsExample 예제를 살펴봐주시기 바랍니다. 일반적으로, examples/events폴더안에 이벤트와 관련한 다양하고 유용한 리소스들이 있습니다. 뿐만 아니라 커스텀 이벤트를 생성하는 방법도 제공하고 있습니다.
  • 오픈프레임웍스 도큐먼트에는 events섹션이 있습니다.