2009-10-13 2 views
3

Event를 확장하는 두 개의 클래스가 있다고 가정 해 보겠습니다.as3의 맞춤 이벤트 유형 식별자는 고유해야합니까?

public class CustomEventTwo extends Event 
{ 
    public static const EVENT_TYPE_TWO:String = "click"; 

    //... rest of custom event 

둘 다 동일한 문자열 "click"를 사용하여 이벤트 유형을 선언해도 괜찮습니까?

또는 응용 프로그램 전체에서 이벤트 유형 식별자가 고유해야합니까?

답변

5

이 문제로 확실히 충돌 할 수 있습니다. 버블 링을 사용하거나 동일한 객체의 두 이벤트를 수신하는 경우 매우 분명합니다. 핵심에서 이벤트 리스너는 문자열을 수신하고 있습니다. 강한 타이핑이 없다. 단지 if (string == type) 체크 (이것은 단순하지만, 근본적으로 무슨 일이 일어나는지)이다.

는 이러한 이벤트 유형의 이름을 지정하는 것이 적절한 것 :

public static const EVENT_TYPE_ONE:String = "eventTypeOne"; 

는이 구문은 필수적이다 어떤 [Event(name="eventTypeOne", type="com.me.events.CustomEvent")]을 활용합니다.

+0

설명해 주셔서 감사합니다. 나는 항상 독특한 이벤트를 만들었으며, 무엇보다 호기심을 묻습니다 ... – Reuben

0

코드가 CustomEventOne.EVENT_TYPE_ONEaddEventListener를 호출하여 객체의 CustomEventOne 이벤트를 수신하면 개체가 CustomEventOne.EVENT_TYPE_ONE 또는 두 가지 모두 같은 CustomEventTwo.EVENT_TYPE_TWO 중 하나를 전달하면, 해당 이벤트 핸들러가 호출되는 것은 본질적으로 "click" 있습니다. Joel이 말한 것처럼 객체는 일반 문자열 인 이벤트 유형을 수신합니다.