与对象相交时移除当前MC

时间:2014-03-30 03:19:28

标签: actionscript-3 flash

有没有办法在与对象相交时删除当前的MC,即使您不知道对象名称? 我想删除“currentMC”,不知道如何正确设置它。

//see if objects intersect;
stage.addEventListener(Event.ENTER_FRAME, checkHitAreare);

function checkHitAreare(evt:Event) {
    var currentMC:MovieClip = MovieClip(evt.target);

    if (this.recp_mc.hitTestObject(currentMC)) {
        stage.addEventListener(Event.ENTER_FRAME, checkHitAreare);
        removeChild(currentMC);
    } else {
        void {};
    }
}

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:(代码可能会有轻微的错误)

//查看对象是否相交;     stage.addEventListener(Event.ENTER_FRAME,checkHitAreare);

function checkHitAreare(evt:Event) {
    var currentMC:MovieClip;
    var removeMCs:Array = [];
    for(var i=0; i < stage.numChildren; i++){
     currentMC = MovieClip(stage.getChildAt(i));
        if (currentMC != this.recp_mc && this.recp_mc.hitTestObject(currentMC)) {
            removeMCs.push(currentMC);
        }
    }
    for(var j:int = 0 ; j < removeMCs.length;j++)
    {
      stage.removeChild(removeMCs[j]);
    }

}

如果任何对象与this.recp_mc相交,此代码将检查每一帧,如果是,则将删除它们。

请注意,您可能必须保护该功能免受舞台上其他动画片段的影响,并且您不希望将其删除。