2010-01-02 4 views
0

<mx:Module>을 포함하는 <mx:Application>이 있습니다. 이 모듈에는 여러 하위 모듈이 있습니다. 또한 내가 만든 클래스의 인스턴스도 있습니다. 이 클래스의 메서드를 모듈에서 "들었"수 있고 처리 할 수있는 이벤트를 전달하려고합니다. 이것은 일어나지 않습니다.생성 된 클래스에서 사용자 지정 이벤트를 디스패치하려면 어떻게해야합니까?

아이디어가 있으십니까?

더 명확히하기 위해 클래스 메소드 내부에서 'dispatchEvent'를 (를) 사용하고 있습니다. 이 클래스의 인스턴스는 mx.core.Application.myapplication.mymodule.myclass에 있습니다.

이벤트를 전달하는 것은 'myclass.somefunction'입니다. 나는 청취자가 'mymodule'에 등록되어있다. 그러나 함수/메소드가 실행될 때 아무런 변화가 없습니다.

+0

질문에 답을하십시오. 당신의 요구 사항이 무엇인지 알아내는 것은 어렵습니다. –

답변

2

클래스가 표시 객체 인 경우 표시 줄을 "거품으로 표시"하도록 이벤트를 설정하고 응용 프로그램 또는 모듈 클래스에서 수신 대기해야합니다. 어떤 종류의 싱글 톤이나 (PureMVC와 같은) 정면을 사용하여 모든 이벤트를 "잡아"그 이벤트를 기반으로 액션을 수행하지 않는 한, 이벤트는 어플리케이션 폭이 아닙니다. 그래서, 당신은 파견에 새 이벤트를 만들 때 : 응용 프로그램 응용 프로그램 클래스는 기본적으로는 SWF의 루트입니다 당신이 그것을 듣고 있습니다에서

//Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false) 
var event:Event = new Event("custom_event_name", true); 
dispatchEvent(event); 

합니다.

addEventListener ("custom_event_name", customEventHandler);

customEventHandler는 모듈의 함수를 호출 할 수 있습니다.

클래스 내부에서 파견 중이며 클래스가 표시 객체가 아닌 경우 클래스의 인스턴스 (mx.core.Application.myapplication.mymodule.myclass)에 이벤트 리스너를 추가 할 수 있습니다. 기준 치수.

관련 문제