MouseEvent.CLICK在透明区域

时间:2015-08-29 07:11:12

标签: actionscript-3

我有一个movieClip,我希望在其上获得鼠标点击事件, 它工作正常但是当我点击透明区域时它不会触发此事件。 是否有任何解决方案除了将矩形定义为hitArea?

mc.addEventListener(MouseEvent.CLICK, onMouseClickEvent);

function onMouseClickEvent(event:Event) {

    trace("on clicked");
}

1 个答案:

答案 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
    }
}

这应该足够透明区域。