FileRefferenceList > remove items from array with splice() bug

Hey,

I’m working on a mp3 uploader (http://www.weboplossingen.com/upload-system/interface.html)

When you select multiple mp3’s, these are stored in an Array, called “list”.
If I want to delete a mp3 from this array, I use the splice method, but some strange bug appears:

Suppose I have selected 3 mp3’s…
When i remove the first, it says: list.length= 2 which is correct
when i remove the 2nd, it says: list.length= 1 which is also correct
but when i remove the 3rd, i would have expected list.length = 0; … but it doesn’t…list/length remains = 1 ???

Can anyone shed some light on this??

Here’s my code:


listener.onSelect = function(fileRefList:FileReferenceList) {

    var list:Array = fileRefList.fileList;
    var item:FileReference;
    _global.nrOfUploads = list.length;
    var xOffest = 15;
    var yOffset = 15;
    
    for(var i:Number = 0; i < list.length; i++) {
        
        item = list*;
        mc.attachMovie("progresBalk","bar"+i,i, {_x:xOffest, _y:yOffset});
        mc["bar"+i].innerbar._xscale = 0;
        mc["bar"+i].track_txt.text = item.name;
        // create delete button
        var newDeleteButton = mc["bar"+i].attachMovie("del", "delbtn"+i,i);
        newDeleteButton.id = i;
        
        // delete items:
        newDeleteButton.onPress = function() {
            list.splice(this.id,1);
            mc["bar"+this.id]._alpha = 30;
            
            textArea.text = "List array length="+list.length;
        }
        
        _root.itemsContainer.onComplete(); // fix for scrollPane scroll bug!
        xOffest+= 110;
        yOffest+= 140;

        if (i == 3) {
            var xOffest = 15;
            var yOffset = 135;
        }
        
        if (i == 7) {
            var xOffest = 15;
            var yOffset = 275;
        }
        
        if (i == 11) {
            var xOffest = 15;
            var yOffset = 415;
        }
        
        if (i == 15) {
            var xOffest = 15;
            var yOffset = 555;
        }
        

       trace(item.addListener(this));
       
    }

Best regards,
Vic