使用数组列表删除影片剪辑?

Remove movieClips using array list?

我有一个列表数组,并使用数组对象名称创建图像占位符(示例:myArray[a,b])并从那里加载图像,并将数组列表作为文件夹名称。 最后创建了一个 movieClip 来加载它们并在舞台上显示。

现在我想删除它们调用相同的数组列表。

这里需要帮助...

我的代码如下:

for (var l: int = 0; l < ListArray.length; l++) {

    var BookName: MovieClip = new bookThumb();

    trace("\n[" + l + "]: " + ListArray[l]);
    ImageFoldername = ListArray[l];
    var bookImagePath: String = "file://" + File.userDirectory.nativePath.toString() + "/Books/" + ImageFoldername + "/Images/Icon.png";
    trace(bookImagePath);

    var ImagePlacer: Loader = new Loader;
    var ImageURL: URLRequest = new URLRequest(bookImagePath);

    ImagePlacer.load(ImageURL);


    BookName.addChild(ImagePlacer);
    BookName.name = ImageFoldername

    addChild(BookName)

    BookName.x = FirstBook_x;
    BookName.y = FirstBook_y;
    BookName.buttonMode = true;
    BookName.mouseChildren = false;
    BookName.addEventListener(MouseEvent.CLICK, IconSelected);
    BookName.alpha = .8
    BookName.addEventListener(MouseEvent.MOUSE_OVER, IconMouseOver);
    BookName.addEventListener(MouseEvent.MOUSE_OUT, IconMouseOut);

    FirstBook_x = FirstBook_x + 250;

}

因为您将 ImageFoldername 分配给每个 MovieClipname 属性,您可以使用 getChildByName 找到它们并删除它们:

(注意:AS3 中的约定是对 类 使用 UpperCamelCase,对变量和函数使用 lowerCamelCase。我在下面编写了代码这个约定。)

for (var i:int = 0; i < listArray.length; i++) {
    var imageFolderName:String = listArray[i];
    var bookThumb:BookThumb = getChildByName(imageFolderName) as BookThumb;
    if (bookThumb) {
        removeChild(bookThumb);
    }
}

另一种处理方法是将每本书的缩略图添加到列表中:

var bookThumbs:Array = [];
for (var i:int = 0; i < listArray.length; i++) {
    var bookThumb:Bookthumb = new BookThumb();
    bookThumbs.push(bookThumb);
    // ...
}

然后将它们全部删除:

for each (var bookThumb:BookThumb in bookThumbs) {
    removeChild(bookThumb);
}
bookThumbs.length = 0;

但可能 最简单 将它们全部删除的方法是将它们全部放在一个容器中,然后使用 removeChildren() 将它们全部删除:

var container:Sprite = new Sprite();
addChild(container);
for (var i:int = 0; i < listArray.length; i++) {
    var bookThumb:Bookthumb = new BookThumb();
    container.push(bookThumb);
    // ...
}

// when you want to remove them all:
container.removeChildren();