Flash CS4は手放すことを拒否します


2742

私はFlashプロジェクトを持っており、それには多くのソースファイルがあります。私はかなり頻繁に使用されるクラスを持っています。それをジェニーと呼びます。私は最近(そしておそらく、たぶん)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が回復したとは思いません。今日に至るまで、それはまだジェニーヌの記憶にしがみついています。彼女の古い不完全な定義は、放棄された幽霊のようにまだ私のプロジェクトに浮かんでいます。Flashを強制的にコンパイルするときはいつでも、それは愛情を込めて彼女を私の映画に挿入し、小さな神社のような他の生きているクラスの中に彼女の定義を寄り添います。彼女に会えるかな?

Flashと私はもう話をしません。私は自分のコードを書いて、それをコンパイルします。夏の町にジェニーンとほとんど同じように見える新しい女の子がいます。まるで誰かが彼女のソースコードの卸売りを新しいクラスにコピーしたばかりのようですが、Flashは興味を示していません。ほとんどの日、私は見回していると思ったときに、周りをぶつけてコメントに悪い詩を書きます。

これはFlashコードベースである恐ろしいダークラグーンの唯一の痛みを伴う波紋であり、他の誰も同じような経験をしたことがないことを願っています。コンパイラが使用しているキャッシュを消去する方法を知っている人はいますか?

回答:


701

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削除するように選択することもできます。


34
下からコピー:これと他の非常によく似た答えは、まさに私が探していたものですが、残念ながら問題を解決していないようです。私はこれをAdobeバグ楽しいtiemまでチョークで書きます。ただし、解決済みとしてマークします。
Ender

292
PS:メニュー項目を何度もクリックしました。私は、Jenineの最後のエコーを含むファイルを最終的に消去するために、ファイル構造を深く掘り下げました。彼らはそこにいません。私がそれらについて尋ねると、Flashは一貫性のない何かをつぶやいて、宇宙を見つめています。マウスボタンの狂ったハンマー音に何かが聞こえるようになると思います。ジェニーは笑っています。
Ender

23
@Ender、新しいボックスでコードを新たにコンパイルした場合にも同じ問題が発生しますか?コードを新しいコンピューターに新たにチェックアウトしたいですか?これは、コードに問題があるかどうかファイルシステムに残っているものかどうかを教えてくれます*。
Jesse Webb

197

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

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

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


165

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


125

私は役立つかもしれない関連する動作を1つ見つけました(特定の問題がより深く実行されるように聞こえます):

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

具体的には、バージョン管理下にあるアクションスクリプトファイルがあり、変更を元に戻すと、通常、元に戻されたファイルには古いタイムスタンプが付けられ、Flashはそれを無視します。


12
確かに、私は南アフリカとロンドンの開発者といくつかのプロジェクトに取り組んでいます。フラッシュファイルをやり取りするときは、ローカルに保存する必要があります。コンパイルすると、ファイルのタイムスタンプに基づいてクレイジーなエラーが発生するためです。基本的に、将来保存されるフラッシュをコンパイルしようとすることが問題です。私たちはOSで日付を変更することでそれを理解しました。タイムスタンプを確認してください。
ドミニクタンクレディ

103

また、新しい名前空間クラスを使用することもできます

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

96

複数のswfファイルがありますか?クラスがswfのいずれかにインポートされている場合、他のswfも同じバージョンのクラスを使用します。1つのswfに*を含む1つの古いインポートはそれを行います。すべてを再コンパイルして、機能するかどうかを確認します。


10
ええ、私はJenineがあなたのコードの他の一部、あなたが使用しているswfまたはswcのいずれかにコンパイルされているに違いないと思います。
Arpit

11

grepアナログを使用して、プロジェクトフォルダー全体の文字列oldnamespaceJenineファイル内を検索します。次に、次のステップを知っています。


4
あなたが反対票を投じられた理由についての私自身の推測は、あなたがかなり明白な答えを与えて、それが問題を解決するであろうことを強く暗示したということでしょう。あなたの答えは必ずしも悪いわけではありませんが、あなたの言い回しは、不当に過度に自信を持っている、または傲慢であると解釈される可能性があり、時には人々を苛立たせます。
Erhannis 2013年

5
うーん。多分あなたは正しいです。一方、質問が私のような明白な質問に対する答えを提供しない場合、それはイライラします。「すべてのファイルで文字列Jenineを検索しましたが、一致するものが見つかりませんでした」のようなもの。興味をそそられる。この謎を解きたい。しかし、著者は私をぶら下げておきます。
アークくん

3
私が言ったように、あなたの答えは必ずしも悪いものではありませんでした。それはあなたの言い回しが誰かを困らせただけかもしれません。正直なところ、それが私の最初の反応でした。私は通常、「うまくいけばこれが役立つ」という方法で物事を言うようにしていますが、物事の本当の原因は、あなたが考えているものではないことが多いからです。繰り返します、あなたの答え人が試すべきものであり、提出された回答として考慮に値するものであることに同意します。
Erhannis 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.