Flash CS4は手放すことを拒否

flash caching flash-cs4


私はFlashプロジェクトを持っていて、多くのソースファイルを持っています。私はかなり頻繁に使われるクラスを持っていて、それを Jenine と呼んでいます。私は最近(おそらく無愛想にも)Jenineをある名前空間から別の名前空間に移しました。準備ができたと思っていました。新しいジェニンはあらゆる面でより良くなっていた。コードの肥大化をなくし、いくつかの曖昧なクラス関係から自分自身を切り離し、ついに心の中で密かに知っていた名前空間に帰ってきた。彼女は自分と同じ種族の中にいたのだ。

残念ながら、Flashにはそれがありません。おそらくそれは愛着を形成していたのでしょう。多分それはジェニーンが分離されることを望まなかった。いずれにせよ、それは記憶の中でジェニーンの古くて完璧なバージョンに固執していた。それは先へ進むことを拒否しました。それは彼女(関数)の呼び出しを無視しました。彼女の新しいパブリックインターフェイスを忘れようとしました。代わりに、Jenineが構築したすべてのインスタンスは、常にクラスパスに至るまで、古いバージョンのコピーでした。

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

私たちは戦った。私は自分の言動に誇りを持てません 最後には 怒りのあまり ジェニンの言及を完全に削除しました 彼女はシステムから完全に完全に消去された 私のカーソルは "ゴミを空にする" メニューオプションに落ちた 棺の冷たい蓋のように

フラッシュは回復しなかった 今日に至るまで ジェニンの記憶にしがみついている 彼女の古い不完全な定義は、今でも私のプロジェクトの中で、捨てられた亡霊のように浮かんでいます。フラッシュを強制的にコンパイルさせても、彼女の定義は他の生きているクラスの中に紛れ込んで、小さな祠のように、愛情を込めてムービーに挿入されます。彼らは彼女を見ることができるのだろうか。

フラッシュとはもう話をしていない 私は自分のコードを書き、それをコンパイルする。町にサマーという名前の 新しい女の子が来た ジェニンとほとんど同じに見える 誰かが彼女のソースコードを 新しいクラスにコピーしたかのように でもフラッシュは興味を示さない ほとんどの日はうろうろしていて 私が見ていないと思っていると 私のコメントに悪い詩を書いているだけです

同じような経験をした人がいないことを願っています。これは、Flashのコードベースである恐ろしい暗黒のラグーンの中で、たった一つの痛々しい波紋に過ぎないのです。コンパイラが使用しているキャッシュを消去する方法を知っている人はいますか?




Answer 1 wpjmurray


FlashにはまだASOファイルがあり、それはクラスのコンパイルされたバイトコードです。Windowsでは、ASOファイルはここで見ることができます。

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

Macでは、ディレクトリ構造は /Users/username/Library/Application Support/ 似ています。


これらのファイルは手動で削除することも、Flashで Control->Delete ASO files を選択して削除することもできます。




Answer 2 Magocto


ASOファイルを削除してみてください。

ASOファイルは、クラスファイルのコンパイルされたバージョンをキャッシュしたものです。IDEは、変更が行われたときに古いキャッシュを手放すのがはるかに優れていますが、手動で削除する必要がある場合があります。ASOファイルを削除するには:[制御]> [ASOファイルの削除]。

これはCS3で導入された「I-am-not-seeing-my-changes-so-let-me-add-a-trace-now-everything-works」バグの原因でもあります。




Answer 3 Rodrigo Strauss


別のマシンを使用してコンパイルするとどうなりますか?新しくインストールされたものは素敵でしょう。私はあなたのマシンが嫉妬しないことを望みます




Answer 4 Laurie Cheers


役に立ちそうな関連する行動を一つ見つけました(あなたの特定の問題はもっと深いところにあるように聞こえますが)。

Flashは、タイムスタンプを確認して、ソースファイルの再コンパイルが必要かどうかを確認します。コンパイルされたバージョンがソースファイルより古い場合、再コンパイルされます。ただし、コンパイルされたバージョンが同じソースファイルから生成されたかどうかはチェックしません。

具体的には、バージョン管理下にあるActionScriptファイルで、変更を元に戻すと、元に戻されたファイルのタイムスタンプは古いものになり、Flashはそれを無視してしまいます。




Answer 5 Arpit


また、新しい名前空間クラスを使用するには、次のようにします。

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