1

我有一个背景影片剪辑,上面有飞行的物体(这是一个游戏)。现在,当没有击中位于顶部的物体时,我想在影片剪辑中拍摄孔。我在后台 mc 和子 mc 上都摆弄了 mouseEnabled,但没有任何成功。区分这两个事件(背景撞击与飞行物体撞击)的最佳方法是什么?

4

1 回答 1

1

如果您在背景和飞行对象的共同父对象上侦听鼠标事件,则可以使用该event.target属性来查看哪个项目调度了该事件。

将显示对象的mouseEnabled属性设置为 false 会阻止它调度鼠标事件,但是,它不会阻止它的子级这样做。 mouseChildren = false将实现这一点。

因此,如果在您的飞行物和背景上,您将它们的mouseChildren属性设置为 false,那么当您单击它们时,目标属性将始终是对象本身。(否则目标可能是它的孩子)。

因此您的事件处理程序可能如下所示:

function(e:Event):void {
    if(e.target == myBackgroundInstance){
        //do something with the background
    }

    if(e.target is myCommonFlyingThingClass){
        var flyingThing:myCommonFlyingThingClass = e.target as myCommonFlyingThingClass;
        //do something with the flying thing
    }
}
于 2012-09-14T17:55:34.300 回答