앙되요

EventDispatcher.addEventListener() 본문

Flex

EventDispatcher.addEventListener()

앙되요 2008. 7. 16. 16:40

지원 버전

Flash Player 6 (6.0.79.0).

버전

Flash MX 2004 및 Flash MX Professional 2004.

구문

componentInstance.addEventListener(event, listener)

매개 변수

event 이벤트 이름을 나타내는 문자열입니다.

listener 리스너 객체 또는 함수에 대한 참조입니다.

반환값

없습니다.

설명

이벤트를 브로드캐스팅하는 구성 요소 인스턴스에 리스너 객체를 등록하는 메서드입니다. 이벤트가 발생하면 리스너 객체나 함수에게 알립니다. 이 메서드를 모든 구성 요소 인스턴스에서 호출할 수 있습니다. 예를 들어, 다음 코드는 구성 요소 인스턴스 myButton에 리스너를 등록합니다.

myButton.addEventListener("click", myListener);

addEventListener()를 호출하여 구성 요소 인스턴스에 리스너를 등록하기 전에 해당 리스너를 객체나 함수로 정의해야 합니다. 리스너가 객체인 경우에는 이벤트가 발생할 때 호출되는 콜백 함수가 정의되어 있어야 합니다. 일반적으로 콜백 함수 이름은 리스너가 등록된 대상 이벤트 이름과 같습니다. 리스너가 함수인 경우에는 이벤트가 발생할 때 해당 함수가 호출됩니다. 자세한 내용은 구성 요소 사용 설명서의 리스너를 사용하여 이벤트 처리을(를) 참조하십시오.

단일 구성 요소 인스턴스에 리스너를 여러 개 등록할 수 있습니다. 그러려면 각 리스너에 대해 addEventListener()를 개별적으로 호출해야 합니다. 여러 구성 요소에 단일 리스너를 등록할 수도 있으며, 이 경우에는 각 인스턴스에 대해 addEventListener()를 개별적으로 호출해야 합니다. 예를 들어, 다음 코드는 하나의 리스너 객체를 정의하여 label 속성이 각각 button1button2인 두 Button 구성 요소 인스턴스에 할당합니다.

lo = new Object();
lo.click = function(evt){
    trace(evt.target.label + " clicked");
}
button1.addEventListener("click", lo);
button2.addEventListener("click", lo);

실행 순서는 확실하지 않습니다. 특정 리스너가 다른 리스너보다 먼저 호출되도록 지정할 수 없습니다.

이벤트 객체는 매개 변수로 리스너에 전달됩니다. 이 이벤트 객체는 발생한 이벤트에 대한 정보가 들어 있는 속성을 갖습니다. 이벤트 객체를 리스너 객체 콜백 함수 안에 사용하면 발생한 이벤트 유형 및 이벤트를 브로드캐스팅한 구성 요소에 대한 정보에 액세스할 수 있습니다. 위의 예제에서는 클릭된 버튼 인스턴스를 확인하기 위해 이벤트 객체 evt(이벤트 객체 이름으로 아무 식별자나 사용할 수 있음)를 if 문 안에 사용했습니다. 자세한 내용은 구성 요소 사용 설명서의 이벤트 객체을(를) 참조하십시오.

예제

다음 예제에서는 리스너 객체 myListener를 정의하고 click 이벤트에 대한 콜백 함수를 정의합니다. 그런 다음 addEventListener()를 호출하여 myButton 구성 요소 인스턴스에 myListener 리스너 객체를 등록합니다.

myListener = new Object();
myListener.click = function(evt){
    trace(evt.type + " triggered");
}
myButton.addEventListener("click", myListener);

이 코드를 테스트하려면 스테이지에 Button 구성 요소를 배치하고 인스턴스 이름을 myButton으로 지정한 다음 프레임 1에 이 코드를 입력합니다.

출처:adove livedocs