Actionscript 3 mouseEnabled上有多个重叠项时忽略MouseInput=false

Actionscript 3 mouseEnabled上有多个重叠项时忽略MouseInput=false,actionscript-3,flash,actionscript,mouseevent,flash-cs6,Actionscript 3,Flash,Actionscript,Mouseevent,Flash Cs6,当我尝试单击的元素上有多个未启用mouseEnabled的元素时,我遇到了mouseEvents未被激发的问题 在我正在构建的游戏中,我有一个类似于棋盘游戏“风险”的棋盘。所以我有一个不规则形状的区域 我的视觉场景如下: 世界地图 -玩家拥有的领土集 --地域 ---区域图形 ---地域形态 因此,每个地区都有两个孩子,图形是一个带有PNG图形的MovieClip。此MovieClip同时设置为mouseEnabled和mouseChildren=false。这是因为作为位图,它是方形的,而不是

当我尝试单击的元素上有多个未启用mouseEnabled的元素时,我遇到了mouseEvents未被激发的问题

在我正在构建的游戏中,我有一个类似于棋盘游戏“风险”的棋盘。所以我有一个不规则形状的区域

我的视觉场景如下:

世界地图
-玩家拥有的领土集
--地域
---区域图形
---地域形态

因此,每个地区都有两个孩子,图形是一个带有PNG图形的MovieClip。此MovieClip同时设置为mouseEnabled和mouseChildren=false。这是因为作为位图,它是方形的,而不是不规则的形状

以前我没有位图,我可以通过单击不同的形状简单地选择每个区域,但是现在我添加了位图作为附加子对象,每个区域都有一个明显的矩形边界框。在区域形状内单击时,将按预期选择区域。但是,当在形状外部但在边界框内部单击时,什么也不会发生,而不是单击PNG并进入另一个区域的基础形状,整个鼠标输入将被忽略

这就好像两个重叠的PNG,而不是鼠标启用是太多的闪存处理

这是一个已知的问题吗?我做错什么了吗?有解决办法吗

代码示例

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 );
}

有时
mouseEnabled=false
还不够,请尝试添加
mouseChildren=false

共享您的实际源代码。它可以按照你想要的方式工作,所以这个问题很可能是你如何放置项目以及在哪里连接鼠标侦听器。尽管我很好奇为什么图形会层叠在形状的顶部根据形状,我假设它实际上不是一个
shape
对象(它不能接收点击事件),而是一个精灵或MovieClip?“领土形状”是一个MovieClip,里面有手动绘制的(在Flash IDE中)向量形状。根据请求,我添加了一个代码示例。我希望这会有帮助。我在舞台上增加了一个MouseeEvent监听器。(我使用event.target来识别单击了哪个区域)我认为这比使用750个鼠标事件侦听器更可取。形状位于图形下方的原因是图形应该可见,而不是形状。如果我将形状设置为“不可见”,则无法再单击它。看起来解决方案就是这样。我忘记将“区域集”容器设置为mouseEnabled=false。因此,这一个是注册点击!