Actionscript 3 Flash AS3删除剪辑,重新订购其他项目

Actionscript 3 Flash AS3删除剪辑,重新订购其他项目,actionscript-3,flash,Actionscript 3,Flash,我有一个滚动窗格,可以向其中添加movieclips。我正在使用它作为一个在线用户列表。到目前为止效果很好,但现在我遇到了一个问题。我可以使用removechild轻松地删除我想要的movieclips,但是当我删除它时,删除的剪辑所在的位置只有一个空白。因此,我需要知道如何以某种方式刷新滚动窗格,并将下面的剪辑向上移动。我该怎么做 我尝试过无效、刷新窗格、更新等。也许我没有按照正确的顺序或其他方式进行操作,但如何才能做到这一点 如果答案很复杂,请举例说明?对于as3,我真的不够好,只是还没有编

我有一个滚动窗格,可以向其中添加movieclips。我正在使用它作为一个在线用户列表。到目前为止效果很好,但现在我遇到了一个问题。我可以使用removechild轻松地删除我想要的movieclips,但是当我删除它时,删除的剪辑所在的位置只有一个空白。因此,我需要知道如何以某种方式刷新滚动窗格,并将下面的剪辑向上移动。我该怎么做

我尝试过无效、刷新窗格、更新等。也许我没有按照正确的顺序或其他方式进行操作,但如何才能做到这一点

如果答案很复杂,请举例说明?对于as3,我真的不够好,只是还没有编写一个完整的算法来获取子对象的数量,删除它们,读取它们,等等


有什么帮助吗?

我想我比我想象的要好一点。如果其他人也面临这个问题,我找到的解决方案如下:

var numleft:Number = lstOnline.numChildren;
    lstOnline.removeChild(lstOnline.getChildByName("NAMEHERE"));
    for(var i = 0; i < numleft - 1; i++) {
        lstOnline.getChildAt(i).y = i*60;
    }
var numleft:Number=lstOnline.numChildren;
lstOnline.removeChild(lstOnline.getChildByName(“NAMEHERE”);
对于(var i=0;i

lstOnline是滚动窗格的名称,在我的例子中,60是添加的movieclips的高度。

我想我比我想象的要好一点。如果其他人也面临这个问题,我找到的解决方案如下:

var numleft:Number = lstOnline.numChildren;
    lstOnline.removeChild(lstOnline.getChildByName("NAMEHERE"));
    for(var i = 0; i < numleft - 1; i++) {
        lstOnline.getChildAt(i).y = i*60;
    }
var numleft:Number=lstOnline.numChildren;
lstOnline.removeChild(lstOnline.getChildByName(“NAMEHERE”);
对于(var i=0;i

lstOnline是滚动窗格的名称,在我的例子中,60是添加的movieclips的高度。

只是一个变体,但保存-1,只需重新排列,例如:

lstOnline.removeChild(lstOnline.getChildByName("NAMEHERE"));

var numleft:Number = lstOnline.numChildren;
for(var i = 0; i < numleft - 1; i++) {
    lstOnline.getChildAt(i).y = i*60;
}
lstOnline.removeChild(lstOnline.getChildByName(“NAMEHERE”);
var numleft:Number=lstOnline.numChildren;
对于(var i=0;i
只是一个变体,但保存-1,只需重新排列,例如:

lstOnline.removeChild(lstOnline.getChildByName("NAMEHERE"));

var numleft:Number = lstOnline.numChildren;
for(var i = 0; i < numleft - 1; i++) {
    lstOnline.getChildAt(i).y = i*60;
}
lstOnline.removeChild(lstOnline.getChildByName(“NAMEHERE”);
var numleft:Number=lstOnline.numChildren;
对于(var i=0;i
关于i*60的提示,这是一个“幻数”,您应该创建一个变量来保存该值并使用该变量,这些都是维护噩梦。关于i*60的提示,这是一个“幻数”,您应该创建一个变量来保存该值并使用该变量,这些都是维护噩梦。