모든 객체 마녀가 해당 클래스에 있고 특정 수신기 기능이 해당 이벤트를 잡을 수있는 일부 클래스에 이벤트 (Action Script 3.0)를 전달할 수있는 방법이 있습니까? .모든 객체에 AS3 dispatchEvent
편집 (갱신 클래스) : 예를 들어, 나는 다음과 같은 구조를 가지고
class example extends EventDispatcher {
object1 = {subObject1 = {anotherObject1, anotherObbject2}, subObject2}
object2 = {subObject3}
object3
...
}
그들 중 일부는 이벤트 리스너가에 내가 원하는 :
anotherObject1.addEventListener(MyEvent.PART3D_CHANGED, function (e: MyEvent){/*do something*/);
anotherObbject2.addEventListener(MyEvent.PART3D_CHANGED, function (e: MyEvent){/*do something*/);
object3.addEventListener(MyEvent.PART3D_CHANGED, function (e: MyEvent){/*do something*/);
이 편집 : 그럼 난 파견 이벤트를 원하는을 이 클래스 내에서 모든 객체 마녀에는 다음과 같이 이벤트를 처리하는 리스너가 있습니다.
this.dispatchEvent(new MyEvent(MyEvent.PART3D_CHANGED))
L Ike 당신은 하나의 타입 이벤트를 파견 할 필요가 있고 모든 객체에서 그것을 할 필요는 없다는 것을 알 수 있습니다.
내 연구에서 모든 단일 개체에 이벤트를 디스패치해야하지만 많은 하위 개체가 필요하다는 것을 알아 냈습니다. 필요한 청취자와 어린이를 루핑하기위한 다른 옵션을 모두 파견해야한다면 코드가 어수선 할 것입니다. 리스너를 필요로하는 경우 모든 객체에 대해주의를 기울이지 않고 청취자를 추가하는 것은 비용 효율성이 없습니다. p.s.
내가 원하는 것을 이해하지 못합니다. 이 특별한 이벤트를 듣고 등록 된 다른 이벤트와 함께 이벤트를 실행할 수있는 Object를 갖고 싶습니까? 또는 사용자가 실행할 수있는 사용자 지정 이벤트 개체를 갖고 싶습니까? – philipp
내 질문이 업데이트되었습니다. 내 클래스 예제는 이벤트를 파견해야하고 모든 객체 마녀는 청취자가 그 이벤트를 잡을 수 있어야합니다. – eldi
EventDispatcher를 확장하면 트릭을 수행합니다. var test = new example(); test.addEventListener (, ); 그리고 마지막으로 test.dispatchEvent (새 이벤트 ()); 이벤트를 확장하는 클래스를 만들어 자신 만의 이벤트 유형을 만들 수 있습니다. –
philipp