几个条件后删除实例

时间:2013-05-02 08:33:36

标签: actionscript-3 flash-cs6

如何解决参数child必须是非null 错误?
我正在尝试删除.y <= 56

的实例(box1,box2,box3,box4)

代码如下:

for (i=1; i<=4; i++)
{
    this["Box" + i].addEventListener(Event.ENTER_FRAME, Move);
}

function Move(e:Event):void
{
    e.target.y -=  6;
    if (e.target.y <= 56)
    {
        removeChild(getChildByName(e.target.name));
        Comment.text = "MISS";
        miss +=  1;
        score +=  0;
    }
}

3 个答案:

答案 0 :(得分:1)

AS区分大小写(如99%的语言)。

您的实例名称是否实际上大写(Box)或全小写(box)?

答案 1 :(得分:1)

似乎侦听器在移除框后继续触发,因此在此行之前:

removeChild(getChildByName(e.target.name));

添加以下行:

MovieClip(e.target).removeEventListener(Event.ENTER_FRAME, Move);

答案 2 :(得分:1)

如果框是MovieClip(或扩展MovieClip):

var currentBox:MovieClip = MovieClip(e.target);
currentBox.y -=  6;    
if (currentBox.y <= 56) {
    currentBox.removeEventListener(Event.ENTER_FRAME, Move);
    removeChild(currentBox);
    Comment.text = "MISS";
    miss +=  1;
    score +=  0;
}