2010-06-02 8 views
2

약간의 문제가 있습니다. addEventListener 동일한 객체 (동일한 콜백 함수)에 두 번 이상 사용할 수 있는지 이해할 수 없습니다. 당신이 말하는 것처럼ActionScript-3 addEventListener를 두 번 이상 호출합니다.

var t:CServiceObj = _rModel.userGetBoardJoined(); 
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk); 
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk); 
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk); 
+0

나는 어떤 정보도 얻을 수 없었습니다. 그리고 나는 지금 컴파일러에 접근 할 수 없습니다. 간단한 버튼으로 시도해보고 클릭 핸들러가 두 번 이상 호출되는지 확인해보세요. – Amarghosh

답변

1

, 플렉스는 당신이에 가입하는 경우에도 "스마트"이고 : 오버 플로우 또는 간단한 플렉스의 문제는 예제와 동일한 스택 동일한 기능

다시 추가하지 너무 똑똑하다 이벤트를 동일한 인스턴스에서 두 번 이상 호출하면 처리기가 한 번만 호출됩니다 (아무리 많은 addEventListener를 전달하든 관계없이).

+0

이 기능을 지원하는 문서에 대한 링크를 게시 할 수 있습니까? 그리고 btw, 이것은 'useCapture'에 다른 값을 사용하지 않는 한입니다. http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/EventDispatcher.html#addEventListener%28%29 – Amarghosh

1

버튼에 대한 빠른 테스트를 시도했지만 addEventListener가 동일한 함수에 여러 번 추가되면 문제가되지 않습니다. 즉, 한 번 전달됩니다.

그러나 onDataOk2 이벤트 매개 변수로 onDataOk 호출이

t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk); 
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk2); 

처럼 뭔가를 설정할 수 있습니다.

흥미 참고 다른 테스트는, I는 모두 동일한 기능을 지적 상기 MXML 태그 클릭 처리기 및 AS의 클릭 핸들러를 첨가. 버튼을 클릭하면 두 핸들러가 전달되므로 Flex는이 기능을 처리하기 위해 무언가를 수행했습니다.

관련 문제