Hola
imagino haces los checkbox manualmente
hasta donde conozco eso es un hermoso bug de as2
cuando chequeas el selected es false y cuando le
quitas la selección pasa a true 
esto siempre y cuando se use el nombre del check literalmente,
si usas esto this["check" + i].selected estará como undefined en algún punto 
puedes hacer una de dos
0. en tus funciones, usar los nombres de los checks literalmente, no con this
y haciendo los values contrarios (cuando necesites true buscar false y viceversa)
1. cambiar el modo de la función de los botones (usando listeners) y los nombres de
los autos en un array, y tal vez mejorar tu función de mostrarAutos, así:    
Código actionscript:
Ver originalfunction escondeAuto() {
    for(var i = 1; i < 8; i++) {
        this["auto" + i]._visible = false;
    }
}   
 
var autos:Array = new Array(auto1,auto2,auto3,auto4,auto5);
escondeAuto();
 
 
var muestraAuto:Object = new Object();
muestraAuto.click = function(e:Object){
    var nombrecheck = String(e.target);
    var id = nombrecheck.substr(nombrecheck.indexOf('k')+1,nombrecheck.length);
       
        if (e.target.selected)
        {  
            autos[id-1]._visible = true;
        }
        else
        {
            autos[id-1]._visible = false;
        }    
}
 
for(var i = 1; i < 8; i++) {
    this['check'+i].addEventListener('click',muestraAuto);
}
  
Si hicieras esto para asignar valores al array autos    
Código actionscript:
Ver originalvar autos:Array = new Array();
for(var i = 1; i < 8; i++) {
    autos[i] = 'auto'+i;
}
  
la función dejaría de funcionar correctamente, 
imagino más bugs de as2, pues por ej si hago esto    
Código actionscript:
Ver originalfor(var i = 1; i < 8; i++) {
    this["check"+i].visible = false;
}
  
al arrancar el swf lo hace bien, pero si lo pusiera dentro de la función de clic
no lo hace 
en fin, espero te sirva
saludos