Tengo un proyecto de Flash y tiene muchos archivos fuente. Tengo una clase bastante usada, llámala Jenine. Recientemente (y, quizás, cruelmente) reubiqué a Jenine de un espacio de nombres a otro. Pensé que estábamos listos, pensé que era hora. La nueva Jenine era mejor en todos los sentidos: había perdido algo de código, se había desacoplado de algunas relaciones de clase vestigiales y finalmente había vuelto al espacio de nombres que siempre había sabido en secreto en su corazón que era realmente pertenecía a. Ella estaba entre su propia especie.
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 versión antigua y perfecta 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!
Nos peleamos. No estoy orgulloso de algunas de las cosas que dije o hice. Al final, en un ataque de ira, eliminé todas las referencias de Jenine por completo. Estaba completamente borrada del sistema. Mi cursor cayó sobre la opción de menú "Vaciar papelera" como la tapa fría de un ataúd.
No creo que Flash se haya recuperado nunca. Hasta el día de hoy todavía se aferra a la memoria de Jenine. Sus viejas e imperfectas definiciones todavía flotan en mi proyecto como fantasmas abandonados. Cada vez que fuerzo a Flash a compilar, todavía la inserta con amor en mi película, ubicando su definición entre las otras clases de vida, como un pequeño santuario. Me pregunto si pueden verla.
Flash y ya no hablo más. Escribo mi código, lo compila. Hay una nueva chica en la ciudad llamada Summer que se ve casi idéntica a Jenine, como si alguien hubiera copiado 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 simplemente se deprime y escribe mala poesía en mis comentarios cuando piensa que no estoy mirando.
Espero que nadie más haya tenido una experiencia similar, que esto sea solo una onda singular y dolorosa en la horrible laguna oscura que es la base del código Flash. ¿Alguien tiene alguna idea de cómo borrar cualquier caché que esté utilizando el compilador?
Intenta eliminar 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 "No-estoy-viendo-mis-cambios-así que déjame-agregar-un-rastro-ahora-todo-funciona" que se introdujo en CS3.
fuente
¿Qué pasa si lo compila usando otra máquina? Una nueva instalada sería encantadora. Espero que tu máquina no sea celosa.
fuente
He encontrado un comportamiento relacionado que puede ayudar (aunque parece que su problema específico es 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 tiene sus archivos de ActionScript bajo control de versión y revierte un cambio, el archivo revertido generalmente tendrá una marca de tiempo más antigua y Flash lo ignorará.
fuente
Además, para usar su nueva clase de espacio de nombres también puede hacer
fuente
¿Tienes varios archivos swf? Si su clase se importa en uno de los swf, otros swf también utilizarán la misma versión de la clase. Una importación anterior con * en un swf lo hará. Vuelva a compilar todo y vea si funciona.
fuente
Use un
grep
análogo para encontrar las cadenasoldnamespace
yJenine
dentro de los archivos en toda la carpeta de su proyecto. Entonces sabrías qué paso hacer a continuación.fuente