当我尝试点击的元素位于多个不是mouseEnabled的元素之上时,我遇到了没有触发mouseEvents的问题。
在我正在构建的游戏中,我有一个类似于棋盘游戏“风险”的棋盘。所以我的地域形状不规则。
我的视觉场景如下:
世界地图
- 玩家拥有的领土集合 --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 );
}
答案 0 :(得分:-1)
有时mouseEnabled=false;
还不够,请尝试添加mouseChildren=false;
。