2011-09-03 3 views
0

내 질문은 이전에 물어 보았던 질문 중 일부와 비슷합니다. this과 같은 겹쳐진 스프라이트/영화 클립에 대해 질문했습니다. 하지만 내 요구 사항은 그들과 약간 다릅니다.flash/flex에서 폐색 된 (겹쳐진) 표시 객체에서 마우스 이벤트를 처리하는 방법은 무엇입니까?

나는 그 뒤에 숨겨진 (겹쳐 있거나 닫힌) 것들을 포함하여 무대의 모든 스프라이트에 대해 mouseevents를 처리하고 싶고 주요 조건은 폐색 된 스프라이트 (다른 ​​스프라이트 뒤에 숨겨진 것)를 처리하기를 원한다는 것입니다. . 예를 들어, 무대에 sprite1과 sprite2가 있고 스프라이트를 클릭하고 다른 클릭 후 드래그를 멈 추면 드래그를 시작하겠습니다.

이것은 쉽게 할 수 있지만 문제는 내 주요 요구 사항입니다. 만약 sprite1을 드래그하여 정확히 sprite2 위에 놓으면 sprite1 뒤에 sprite1이 숨겨집니다. sprite2를 드래그 할 수 없을 것입니다. 먼저 sprite1을 움직입니다. 페이스 북에서 zynga의 제국과 allais 게임을 플레이했다면 그것은 seperatly로 처리됩니다. 게임에서 어떻게 작동하는지, 두 스프라이트가 마우스보다 하나 겹치는 경우 겹치는 스프라이트 뒤의 스프라이트에서 마우스 이벤트가 트리거됩니다 이벤트는 하나의 스프라이트 만 겹쳐 지거나 두 개 또는 세 개가 있는지에 관계없이 마지막 하나가 아닌 스프라이트에서 시작됩니다. 이것은 불규칙한 모양의 스프라이트 (사각형이 아님)가 발생하는 경우에만 발생합니다.

아무도 나에게 줄 수없는 경우 징가이를 구현하는 방법에 치거나 내가 그것을 실현하려 방법을 찾는 데 도움이 큰 도움이

답변

0

하나의 가능성 일 것입니다

감사 할 것이다 e 게임이 각 스프라이트의 클릭 이벤트를 듣지 않습니다.

게임을 프로그래밍 할 때 종종 그리드 시스템을 구현합니다. 이 경우 프로그래머는 모눈에 모든 스프라이트가있는 위치를 기록합니다. 그런 다음 프로그래머는 전체 그리드 렌더러에 대한 클릭을 듣고 그리드 레코드와 마우스 위치를 참조하여 선택한 객체를 처리 할 수 ​​있습니다.

관련 문제