1

更新: AVM2 に関するいくつかの素晴らしい情報が見つかりました。私はこれに多くの時間を割くことができませんでしたが、$init と $cinit (および $iinit やその他の多くのこと) をカバーしていることは間違いありません。他の誰かが何かを投稿する前に、答えをうまく処理できれば、この質問への回答を投稿します。


今日、これについてリンクホッピングとグーグルの長いスレッドに引き込まれましたが、まだ $cinit と $init が何であるかについてあまり把握していません.

今日、$cinit と $init が (私が正しく理解していれば、FP によって) 解釈され、他のすべてがコンパイルされることを学んだので、私は気にします。

$init は指定されたクラスのコンストラクター関数を指し、$cinit はクラスを作成するオブジェクトのコンストラクターを指すと思います... そんな感じ...

誰かがこれについて私をまっすぐに設定できますか、または少なくとも役立つ方向に私を向けることができますか?

ありがとう。

4

2 に答える 2

1

これは古い質問ですが、答えがわかっているので、ここに投稿します。

$cinitクラスの使用が必要になる前に呼び出されるメソッドです。すべての静的メンバーを初期化し、静的初期化子にあるすべてのコードを実行します。クラス独自のコンストラクターと考えてください。たとえば、AS3 に次のクラスがあるとします。

public class SomeClass extends Object {
   static private const SOME_STATIC_VAR = 4;
   ....
}

次に、$cinitクラスが使用される前、または参照される前にメソッドが実行され、メモリが初期化SOME_STATIC_VARされ、その値が 4 に設定されます。

$initクラスのインスタンス初期化子です。これは基本的にクラスのコンストラクターです。例えば:

public function SomeClass() {
  super();
  return;
}

それがあなたにとって十分な詳細であることを願っています!

于 2013-04-10T07:34:38.030 に答える
0

$cinitクラスが初めて使用されるときに、すべての静的変数を構築することです。

于 2010-12-10T03:18:25.050 に答える