我有一个movieClip,我希望在其上获得鼠标点击事件, 它工作正常但是当我点击透明区域时它不会触发此事件。 是否有任何解决方案除了将矩形定义为hitArea?
mc.addEventListener(MouseEvent.CLICK, onMouseClickEvent);
function onMouseClickEvent(event:Event) {
trace("on clicked");
}
答案 0 :(得分:1)
确实,您无法点击透明区域,但是,这是另一种解决方案。
如果您可以使用全局侦听器监视鼠标状态,请执行以下操作:
stage.addEventListener( MouseEvent.CLICK, onStageClicked );
然后你可以编写另一个对你的显示对象进行命中测试的函数:
public function mouseTest( someAsset:DisplayObject ):Boolean
{
return someAsset.hitTestPoint( stage.mouseX, stage.mouseY );
}
最后来自onStageClicked()
处理程序:
private function onStageClicked( e:Event ):void
{
if ( mouseTest( mc ) )
{
//do something
}
}
这应该足够透明区域。