2797 votes

Flash CS4 refuse de laisser aller

J'ai un projet Flash, et il a beaucoup de fichiers source. J'ai un assez fortement utilisés en classe, l'appeler à Jenine. J'ai récemment (et, peut-être, durement) ont délocalisé Jenine d'un espace de noms à l'autre. Je pensais que nous étions prêts - j'ai pensé qu'il était temps. La nouvelle Jenine était mieux dans tous les sens - qu'elle avait perdu une augmentation du code, elle était détachée d'elle-même à partir de quelques vestiges de relations de classe, et elle avait finalement revenir à la maison à l'espace de noms qu'elle avait toujours secrètement connu dans son cœur était-elle vraiment appartenu. Elle était au milieu de son propre genre.

Malheureusement, Flash aurait rien de tout cela. Peut-être qu'il avait formé d'une pièce jointe. Peut-être qu'il n'a pas envie Jenine être découplés. De toute façon, il s'accrochait à l'ancienne, la version parfaite de Jenine dans sa mémoire. Il a refusé de se déplacer sur. Il l'ignora (fonction) des appels. Il a essayé d'oublier son nouveau, les interfaces publiques. Au lieu de cela, chaque instance de Jenine qu'il a été construit toujours une copie de l'ancienne version, le bas de son classpath:

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

Nous nous sommes battus. Je ne suis pas fier de ce que je dit ou fait. En fin de compte, dans une grande crise de rage, j'ai supprimé toutes les références de Jenine complètement. Elle était tout à fait, complètement effacées du système. Mon curseur est tombé sur la "Vider la Corbeille" option de menu comme le froid, le couvercle d'un cercueil.

Je ne pense pas que Flash jamais récupéré. À ce jour, il s'accroche toujours à la mémoire de Jenine. Son ancien, imparfait définitions continuent de flotter à travers mon projet abandonné fantômes. Chaque fois que je force Flash pour compiler, il toujours amoureusement insère dans mon film, en les enfouissant sa définition dans parmi les autres, la vie des classes, comme un petit sanctuaire. Je me demande si ils peuvent la voir.

Flash et je ne parle pas vraiment plus. J'écris mon code, il compile. Il y a une nouvelle fille dans la ville nommé d'Été qui semble presque identique à Jenine, comme si quelqu'un avait juste copié son code-source de gros dans une nouvelle classe, mais le Flash n'a pas montré un quelconque intérêt. La plupart des jours, il vient de se morfond autour et écrit de mauvaise poésie dans mes commentaires, quand il pense que je ne suis pas à la recherche.

J'espère que personne d'autre n'a eu ce genre d'expérience, que c'est juste un singulier, douloureux ondulation dans l'effroyable sombre lagune qui est le Flash code de base. Si, par certains fluke chance que vous avez, ou si vous avez une idée de comment effacer tout ce fichu cache le compilateur est à l'aide, s'il vous plaît, s'il vous plaît aider.

710voto

murzeb Points 6226

Flash a encore le fichier ASO, qui est compilé en byte code pour vos classes. Sur Windows, vous pouvez voir les fichiers ASO ici:

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

Sur un Mac, la structure de répertoire est similaire en /Users/username/Library/Application Support/


Vous pouvez supprimer ces fichiers à la main, ou dans le Flash vous pouvez sélectionner Control->Delete ASO files pour les supprimer.

198voto

Magocto Points 1707

Essayez de supprimer vos fichiers ASO.

ASO fichiers sont mis en cache versions compilées de vos fichiers de classe. Bien que l'IDE est beaucoup mieux à lâcher les vieux caches lorsque des modifications sont apportées, parfois, vous devez les supprimer manuellement. Pour supprimer des fichiers ASO: Contrôle>Supprimer les Fichiers ASO.

C'est aussi la cause de la "je-suis-pas-voir-mon-changements-si-laissez-moi-ajouter-une-trace-maintenant-tout-œuvres" bug qui a été introduit dans CS3.

163voto

Rodrigo Strauss Points 1607

Que faire si vous le compiler en utilisant une autre machine? Une nouvelle installé un serait joli. J'espère que votre machine n'est pas jaloux.

126voto

Laurie Cheers Points 1243

Je l'ai trouvé un comportement liés qui peuvent aider (on dirait que votre problème est plus profond tout de même):

Flash vérifie si un fichier source les besoins de la recompilation en regardant les horodatages. Si sa version compilée est plus vieux que le fichier source, il est de recompiler. Mais il ne vérifie pas si la version compilée a été généré à partir du même fichier source ou pas.

Plus précisément, si vous avez votre code actionscript fichiers sous contrôle de version, et vous Revenir un changement, le revenue de fichier ont généralement une ancienne timestamp, et le Flash de l'ignorer.

103voto

Arpit Points 1569

Aussi, pour l'utilisation de votre nouvel espace de noms de la classe, vous pouvez aussi le faire

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X