mouseEnabled가 아닌 여러 요소가 클릭하려고하는 요소 위에있을 때 mouseEvents가 실행되지 않는 문제가 있습니다.mouseEnabled = false에서 중복 항목이 여러 개있을 때 MouseInput이 무시됩니다.
게임에서 저는 보드 게임 "위험"과 비슷한 보드를 가지고 있습니다. 그래서 나는 불규칙한 모양의 영토를 가지고 있습니다. 다음과 같이
내 시각적 장면은 다음과 같습니다
WorldMap은
플레이어가 소유 한 영토의 - 설정
--Territory
--- 지역 그래픽
--- 지역 모양
각 영토에는 두 개의 자식이 있으므로 그래픽은 PNG 그래픽이있는 MovieClip입니다. 이 MovieClip은 mouseEnabled 및 mouseChildren = false로 설정됩니다. 그것은 비트 맵이기 때문에 불규칙적 인 모양이 아닌 정사각형이되어야합니다.
는 이전에 나는 자리에 비트 맵을하지 않았고 단순히 서로 다른 모양을 클릭하여 각 지역을 선택할 수 있지만, 지금은 추가 자식으로 비트 맵을 추가 한 것으로, 각 영역은 명백한 사각형 경계 상자가 있습니다. 영토 모양을 클릭하면 영토가 예상대로 선택됩니다. 그러나 도형 바깥 쪽을 클릭 할 때 경계 상자 안쪽을 클릭하면 PNG를 클릭하지 않고 다른 영역의 기본 모양으로 이동하는 대신 아무런 일도 발생하지 않고 전체 마우스 입력이 무시됩니다.마우스가 활성화되지 않은 2 개의 겹치는 PNG가 Flash에서 처리하기에는 너무 많은 것처럼 보입니까?
이 문제는 알려진 문제입니까? 내가 뭔가 잘못하고 있는거야? 해결 방법이 있습니까?
코드 샘플
public function Territory(a_TerritoryXML:XML)
{
var t_ClassReference:Class = Main.Instance.LibTerritories.applicationDomain.getDefinition(a_TerritoryXML.tname) as Class;
m_TerritoryShape = new t_ClassReference();
m_TerritoryShape.x = a_TerritoryXML.xPos;
m_TerritoryShape.y = a_TerritoryXML.yPos;
m_TerritoryShape.mouseEnabled = true;
m_TerritoryShape.mouseChildren = true;
mouseEnabled = false;
mouseChildren = true;
t_ClassReference = Main.Instance.LibTerritories.applicationDomain.getDefinition(a_TerritoryXML.tname + "Graphic") as Class;
var t_TerritoryGraphic:MovieClip = new t_ClassReference();
t_TerritoryGraphic.x = a_TerritoryXML.xPos;
t_TerritoryGraphic.y = a_TerritoryXML.yPos;
t_TerritoryGraphic.mouseEnabled = false;
t_TerritoryGraphic.mouseChildren = false;
this.addChild(t_Graphic);
this.addChildAt(m_TerritoryGraphic, 0);
}
실제 소스 코드 공유. 원하는 방식대로 작동 할 수 있으므로이 문제는 항목을 배치하는 방법과 마우스 수신기를 연결하는 위치에 따라 달라질 수 있습니다. – BadFeelingAboutThis
왜 그래픽이 도형 위에 겹쳐져 있는지 궁금 하지만요? - 모양에 의해 실제로는 'Shape'객체 (클릭 이벤트를받을 수 없음)가 아니라 Sprite 또는 MovieClip이라고 가정합니다. – BadFeelingAboutThis
"Territory Shape"는 (Flash IDE에서) 벡터 모양이 수동으로 그려진 MovieClip입니다. – paup