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