2011-10-13 3 views
0

우리는 인증을 처리하는 프록시 서버에 연결하는 flex 어플리케이션을 가지고 있습니다. 인증에 시간 초과가 있으면 프록시 서버는 json 형식의 오류 문자열을 반환합니다. 내가하고 싶은 것은 모든 URLRequest 응답을 검사하고 오류 메시지가 있는지 확인하고 flex 클라이언트에 표시 한 다음 다시 로그인 화면으로 리디렉션하는 것입니다.모든 URLRequest에 이벤트 리스너 부착

전 세계적인 방식으로 모든 URLRequests에 이벤트 리스너를 만들 수 있는지 궁금합니다. 프로젝트를 검색하고 각 URLRequest에 메소드를 추가하지 않아도됩니다. 이것이 가능한지 어떤 아이디어?

답변

2

하나의 서비스 만 사용하는 경우가 아니면 전역 URLRequest 핸들러를 설정할 방법이 없습니다. 내가 너라면, 델리게이트를 사용하고 응용 프로그램 전체에서 사용되는 특정 서비스를 통해 항상 결과를 확인함으로써 응용 프로그램을 적절하게 설계하는 것에 대해 더 생각할 것입니다.

+0

불행히도, 어쩌면 놀랍지 않게 커다란 아웃소싱 코드의 계승이있을 수 있습니다. 재구성은 질문에서 거의 벗어납니다 – Okeydoke

+0

그러면 운이 없네요. –

+2

@RueTheWhirled 어쨌든 모든 것을 변경해야 할 수도 있습니다. 코드를 약간 리팩터링하고 대표를 소개해야 할 수도 있습니다. –

2

J_A_X에는 좋은 제안이 있지만 조금 더 멀리 가져 가겠습니다. 제한된 정보를 바탕으로 몇 가지 가정을합니다.

  1. 서비스가 모든 응용 프로그램에 흩어져있어 실제로 여러보기에 포함되어 있습니다.
  2. 서비스가 모두 동일한 처리기로 처리 될 수있는 경우 개념 상 여러 서비스가 하나의 서비스로 간주됩니다.

새로운 서비스 생성 코드를 보여주는 Adobe 예제에서 볼 수 있듯이,보기에서 바로 문제가 발생하여 부분적으로보기에서 직접 서비스를 호출하는 것은 대단히 나쁜 습관입니다. 동일한 서비스 코드 사본을 귀하의 응용 프로그램 전체에 산재하게 두십시오.

응용 프로그램이 얼마나 밀접하게 결합되어 있느냐에 따라 (믿을만한 물건을 물려 받았기 때문에 내가했던 말보다 쉽지 않을 수도 있습니다), 가장 쉬운 방법은 모든 것을 제거하는 것입니다 다양한 서비스를 제공하고 모든 조회가 최상위 레벨에서 발견되는 버블 링 이벤트를 보내도록하여이를 대체하십시오. 최상위 수준에서 서비스 인스턴스를 호출하여 해당 이벤트에 응답합니다.이 서비스는 위치에서 다시 처리됩니다.

위임자에서 해당 단일 서비스를 랩핑하도록 선택할 수도 있고 선택하지 않을 수도 있지만 일단 서비스가 뷰에서 분리되는 방식으로 애플리케이션을 archtected하면 언제든지 선택할 수 있습니다.

0

클래스를 확장하고 개체의 생성자에 이벤트 수신기를 추가 할 수 있습니까? 나는이 접근 방식이 맘에 들지 않지만 작동 할 수 있습니다.

전체 프로젝트를 검색/바꾸기 만하면됩니다.