その上にオブジェクトが飛んでいる背景のムービークリップがあります(これはゲームです)。さて、上に横たわっている物体が当たっていないときに、ムービークリップに穴を開けたいと思います。バックグラウンドmcと子mcsの両方でmouseEnabledをいじっていましたが、成功しませんでした。これらの2つのイベント(バックグラウンドヒットとフライングオブジェクトヒット)を区別するための最良の方法は何ですか?
質問する
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 に答える