Saya memiliki proyek Flash, dan memiliki banyak file sumber. Saya memiliki kelas yang cukup banyak digunakan, sebut saja Jenine. Saya baru-baru ini (dan, mungkin, tanpa perasaan) memindahkan Jenine dari satu namespace ke yang lain. Saya pikir kami sudah siap - saya pikir sudah waktunya. Jenine baru lebih baik dalam segala hal - dia telah kehilangan beberapa kode mengasapi, dia telah memisahkan dirinya dari beberapa hubungan kelas sisa, dan dia akhirnya pulang ke namespace yang dia selalu diam-diam dikenal di dalam hatinya adalah dia benar-benar dia benar-benar milik. Dia termasuk di antara kaumnya sendiri.
Sayangnya, Flash tidak memilikinya. Mungkin itu telah membentuk keterikatan. Mungkin itu tidak ingin Jenine dipisahkan. Bagaimanapun, itu melekat pada versi Jenine yang lama dan sempurna dalam ingatannya. Itu menolak untuk pindah. Itu mengabaikan panggilan (fungsinya). Itu mencoba melupakan antarmuka publiknya yang baru. Sebaliknya, setiap instance Jenine yang dibuatnya selalu merupakan salinan versi lama, hingga kelasnya:
var jenineInstance:Jenine = new Jenine();
trace( getQualifiedClassName(jenineInstance));
// Should print: com.newnamespace.subspace::Jenine
// Prints: com.oldnamespace.subspace::Jenine
// Ah, young love!
Kami berkelahi. Saya tidak bangga dengan beberapa hal yang saya katakan atau lakukan. Pada akhirnya, dalam kemarahan yang menjulang tinggi, aku menghapus semua referensi Jenine sepenuhnya. Dia benar-benar dihapus dari sistem. Kursor saya jatuh pada opsi menu "Empty Trash" seperti tutup peti yang dingin.
Saya tidak berpikir Flash pernah pulih. Sampai hari ini masih melekat pada ingatan Jenine. Definisinya yang lama dan tidak sempurna masih mengambang di proyek saya seperti hantu yang ditinggalkan. Setiap kali saya memaksa Flash untuk mengkompilasi, itu masih dengan penuh kasih memasukkan dia ke dalam film saya, meringkuk definisinya di antara yang lain, kelas hidup, seperti kuil kecil. Aku ingin tahu apakah mereka bisa melihatnya.
Flash dan saya tidak benar-benar berbicara lagi. Saya menulis kode saya, mengkompilasinya. Ada seorang gadis baru di kota bernama Summer yang terlihat hampir identik dengan Jenine, seolah-olah seseorang baru saja menyalin kode sumbernya grosir ke kelas baru, tetapi Flash belum menunjukkan minat. Sebagian besar hari itu hanya melamun dan menulis puisi buruk di komentar saya ketika itu berpikir saya tidak melihat.
Saya harap tidak ada orang lain yang memiliki pengalaman serupa, bahwa ini hanya riak tunggal, menyakitkan di laguna gelap yang mengerikan yang merupakan basis kode Flash. Adakah yang tahu cara menghapus cache apa pun yang digunakan kompiler?
Coba hapus file ASO Anda.
File ASO di-cache versi kompilasi dari file kelas Anda. Meskipun IDE jauh lebih baik dalam melepaskan cache lama ketika perubahan dibuat, kadang-kadang Anda harus menghapusnya secara manual. Untuk menghapus file ASO: Kontrol> Hapus File ASO.
Ini juga merupakan penyebab dari bug "Saya-tidak-melihat-perubahan-saya-jadi-biarkan-saya-tambahkan-jejak-sekarang-semuanya-bekerja" yang diperkenalkan di CS3.
sumber
Bagaimana jika Anda mengompilasinya menggunakan komputer lain? Yang baru diinstal akan menyenangkan. Saya harap mesin Anda tidak cemburu.
sumber
Saya telah menemukan satu perilaku terkait yang mungkin membantu (sepertinya masalah spesifik Anda berjalan lebih dalam):
Flash memeriksa apakah file sumber perlu dikompilasi ulang dengan melihat cap waktu. Jika versi yang dikompilasi lebih lama dari file sumber, itu akan dikompilasi ulang. Tetapi tidak memeriksa apakah versi yang dikompilasi dihasilkan dari file sumber yang sama atau tidak.
Khususnya, jika Anda memiliki file skrip tindakan Anda di bawah kontrol versi, dan Anda Kembalikan perubahan, file yang dikembalikan biasanya memiliki stempel waktu yang lebih lama, dan Flash akan mengabaikannya.
sumber
Juga, untuk menggunakan kelas namespace baru Anda, Anda juga dapat melakukannya
sumber
Apakah Anda memiliki beberapa file swf? Jika kelas Anda diimpor di salah satu swf, swf lain juga akan menggunakan versi kelas yang sama. Satu impor lama dengan * dalam satu swf akan melakukannya. Kompilasi ulang semuanya dan lihat apakah itu berhasil.
sumber
Gunakan
grep
analog untuk menemukan stringoldnamespace
danJenine
di dalam file di seluruh folder proyek Anda. Maka Anda akan tahu langkah apa yang harus dilakukan selanjutnya.sumber