2012-09-14 88 views
1

我有一个背景影片剪辑,其上有对象(它是游戏)。现在,我想在没有击中顶部的物体时,在电影剪辑中拍摄一些洞。我在背景mc和子mcs上摆弄mouseEnabled,但没有取得任何成功。区分这两个事件(背景命中与飞行物击中)的最佳方式是什么?如何在AS3中正确设置Mouseenabled

+1

'event.target'会告诉你该事件 – BadFeelingAboutThis

回答

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 
    } 
} 
+0

的鼻祖我刚才添加的getQualifiedClassName(),但是这导致我在正确的方向。非常感谢! – Jan