2016-02-29 3 views
0

У меня есть массив списка и созданный владелец места с именем объекта массива (пример: 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; 

} 
+0

привет, я не вспышка развиваться так не может проверить это, я знаю что adobe имеет метод Splice, где он удаляет объект из массива в индексе позиции. С этим вы можете использовать myArrayOfMovieclips.splice (2); http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000752.html – Moynul

ответ

0

Поскольку вы назначаете ImageFoldername каждому name собственности MovieClip «s, Вы можете использовать getChildByName, чтобы найти их и удалить их:

(Примечание: соглашение в AS3 заключается в использовании UpperCamelCase для классов и lowerCamelCase для переменных и функций. Я написал код ниже f соблюдая это соглашение.)

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(); 
+0

WOW! Это сработало ... Еще раз спасибо за помощь ... –

Смежные вопросы