Flash CS4 se niega a dejar ir

flash caching flash-cs4


Tengo un proyecto de Flash,y tiene muchos archivos de origen.Tengo una clase bastante usada,llámala Jenine.Recientemente (y,tal vez,insensiblemente)reubiqué a Jenine de un espacio de nombres a otro.Pensé que estábamos listos,pensé que ya era hora.La nueva Jenine era mejor en todos los sentidos:había perdido algo de hinchazón de código,se había desvinculado de algunos vestigios de relaciones de clase y finalmente había vuelto a casa,al espacio de nombres que siempre había sabido en secreto en su corazón que era el que realmente le pertenecía.Estaba entre los de su propia clase.

Desafortunadamente, Flash no tendría nada de eso. Quizás había formado un apego. Quizás no quería que Jenine se desacople. De cualquier manera, se aferró a la vieja y perfecta versión de Jenine en su memoria. Se negó a seguir adelante. Ignoraba sus llamadas (de función). Intentó olvidar sus nuevas interfaces públicas. En cambio, cada instancia de Jenine que construyó siempre fue una copia de la versión anterior, hasta su classpath:

var jenineInstance:Jenine = new Jenine();
trace( getQualifiedClassName(jenineInstance));
// Should print: com.newnamespace.subspace::Jenine
// Prints: com.oldnamespace.subspace::Jenine
// Ah, young love!

Luchamos.No estoy orgulloso de algunas de las cosas que dije o hice.Al final,en un altísimo ataque de rabia,borré completamente todas las referencias a Jenine.Ella fue completamente,completamente borrada del sistema.Mi cursor cayó sobre la opción de menú "Basura vacía" como la tapa fría de un ataúd.

No creo que Flash se haya recuperado.Hasta el día de hoy todavía se aferra a la memoria de Jenine.Sus viejas e imperfectas definiciones aún flotan en mi proyecto como fantasmas abandonados.Cada vez que obligo a Flash a compilar,todavía la inserta amorosamente en mi película,acurrucando su definición entre las otras,clases vivas,como un pequeño santuario.Me pregunto si pueden verla.

Flash y yo ya no hablamos.Escribo mi código,lo compila.Hay una chica nueva en el pueblo llamada Summer que se ve casi idéntica a Jenine,como si alguien acabara de copiar su código fuente al por mayor en una nueva clase,pero Flash no ha mostrado ningún interés.La mayoría de los días se deprime y escribe mala poesía en mis comentarios cuando cree que no estoy mirando.

Espero que nadie más haya tenido una experiencia similar,que esto es sólo una singular y dolorosa onda en la horripilante laguna oscura que es la base del código de Flash.¿Alguien tiene alguna idea de cómo borrar cualquier caché que el compilador esté usando?




Answer 1 wpjmurray


Flash todavía tiene el archivo ASO,que es el código de bytes compilado para sus clases.En Windows,puedes ver los archivos ASO aquí:

C:\Documents and Settings\username\Local Settings\Application Data\Adobe\Flash CS4\en\Configuration\Classes\aso

En una Mac, la estructura del directorio es similar en /Users/username/Library/Application Support/


Puede eliminar esos archivos a mano, o en Flash puede seleccionar Control->Delete ASO files para eliminarlos.




Answer 2 Magocto


Intenta borrar tus archivos ASO.

Los archivos ASO son versiones compiladas en caché de sus archivos de clase. Aunque el IDE es mucho mejor para deshacerse de las memorias caché antiguas cuando se realizan cambios, a veces hay que eliminarlas manualmente. Para eliminar archivos ASO: Control> Eliminar archivos ASO.

Esta es también la causa del error "Yo-soy-no-veo-mis-cambios-tan-que-me-agrega-un-trazo-todo-trabajo" que se introdujo en el CS3.




Answer 3 Rodrigo Strauss


¿Qué pasa si lo compila usando otra máquina? Una nueva instalada sería encantadora. Espero que tu máquina no sea celosa.




Answer 4 Laurie Cheers


He encontrado un comportamiento relacionado que puede ayudar (aunque suena como si su problema específico fuera más profundo):

Flash comprueba si un archivo fuente necesita recompilarse mirando las marcas de tiempo. Si su versión compilada es anterior al archivo fuente, se recompilará. Pero no comprueba si la versión compilada se generó a partir del mismo archivo fuente o no.

Específicamente,si tienes tus archivos actionscript bajo control de versiones,y reviertes un cambio,el archivo revertido normalmente tendrá una marca de tiempo más antigua,y Flash lo ignorará.




Answer 5 Arpit


Además,para usar tu nueva clase de ritmo de nombres también puedes hacer

var jenine:com.newnamespace.subspace.Jenine = com.newnamespace.subspace.Jenine()