2011-04-26 8 views
0

우리는 어떤 이벤트를 전달하는 객체가 있고이 객체는이 이벤트에서 어떤 동작을 수행해야한다고 상상해보십시오. 이 이벤트를 잡는 올바른 방법은 무엇입니까? 이 이벤트를 내 객체에서 직접들을 수 있을까요? 아니면이 이벤트가 EventMap을 통해 이동하도록해야합니까?
예 : 양식이있는 팝업 창이 있습니다. 양식을 제출할 때 원격 서버에 요청을 보내고이 팝업을 닫을 것입니다. EventMap에 커스텀 이벤트를 보내지 않고 팝업 클로즈를 수행하는 것이 이상적입니까? 감사.Flex, Mate : 이벤트 경로 - 선택할 방법은 무엇입니까?

답변

2

개인적으로 내가 객체를 선호 변경 보기 또는 팝업과 같은 것을 만드는 책임이있는 사람들도 그들의 파괴를 책임 져야합니다. 특히 클라이언트 - 서버 통신과 같은 일부 교차 애플리케이션 작업을 해결할 때만 메이트 (Mate)를 사용하는 것을 선호합니다. 따라서 구성 요소 수준에서 일반적인 ActionScript 이벤트 처리를 사용하는 것이 더 좋습니다. 일부 구성 요소가 팝업 창을 만든 경우 일부 제출 이벤트를 수신하고 팝업을 파괴 할 수 있습니다.

메이트 자체에서 팝업이 생성 된 경우 (이벤트 맵을 의미). 이 경우 일부 제출 이벤트를 처리하고 서버에 대한 요청을 수행하고 한 번에 창을 파괴하는 메이트 처리기에서 창을 파괴하는 데 아무런 문제가 없습니다.

하지만 어쨌든 간단한 규칙을 사용하여 메이트 이벤트 (이벤트 맵으로 처리 한 이벤트를 의미 함)를 전달해야합니다. 저수준 이벤트를 전달하지 마십시오. 해당 응용 프로그램 수준에서 비즈니스 논리를 반영하는 이벤트로 변환해야합니다. 귀하의 경우 두 가지 작업, 즉 서버 요청 및 창 닫기로 양식을 제출하는 것을 고려하지 않아야합니다. 윈도우의 관점에서 보았을 때 단지 제출 양식 일 뿐이며 서버는 SharedObject 또는 심지어 어떤 종류의 모델에서 서버 요청이나 데이터를 읽는 지에 대해 신경 쓰지 않아야합니다. 따라서 윈도우는 submit 이벤트를 보내야하며, Mate map은이 이벤트를 처리하고 동일한 핸들러에서 요청과 윈도우를 파기해야합니다. 이렇게하면보기가 팝업되어 있는지 또는 기본 AIR 윈도우에 있는지 모르게 뷰를 사용할 수 있습니다. 메이트의 이벤트 맵을 조정하면됩니다.

메이트지도가 계층적일 수 있음을 잊지 마십시오. 따라서 비즈니스 논리의 이벤트 처리 수준을 나눌 수 있습니다.

1

예는 정확하고 이벤트의 주요 목적은 어떤 일을 수행하는 것이 외부/부모를 알려 때문에 단지 윈도우, 을 닫기 위해 이벤트를 전달하기 위해 필요 없어요/나를 위해로서