0

クラス内で「this」キーワードを使用しているときに、それを見つけました。

ステージに追加される MovieClip クラスが 1 つあります。そのインスタンスの内部から、プロパティ(chapter1)で割り当てた名前を知っているようです。

次に、(chapter1) 別のクラス (Transition) のインスタンスを変数 (transition1) に作成します。

var transition1:Transition = new Transition();

次に、次のように transition1 の内部メソッドを呼び出します。

transition1.moveFromTo(this);

これは、次のようにその名前をたどっています。

trace(this.name);

チャプター1の名前をたどると、その名前として「チャプター1」が得られます。しかし、transition1 の内部では、まったく同じ方法で "instance1" を取得します。「transition1.name = transition1」で名前を割り当てることができることはすでにわかっています。これは、変数名と .name プロパティを介して取得したインスタンス名が異なることを示しています。

しかし、インスタンスを参照するために変数を作成する必要がある理由がわかりません。

4

2 に答える 2

0

インスタンス名は、ムービークリップを参照する方法です。
変数は、そのムービークリップに適用可能な変数である関数にアクセスする方法です。

var currentTile:MovieClip = this.getChildByName("MyClip") as MovieClip;
currentTile.someFunction();

ここからムービークリップを操作できます。chapter1 クラス専用の変数を作成した場合、変数のスコープがクラス内のすべてのコードをカバーするため、ムービークリップに名前を付ける必要はありません。

設計時にムービークリップをステージに追加すると、フラッシュによって「instancex」という変数が割り当てられ、「instancex」という名前が付けられるようです。名前を付けると、名前が変わります。
変数がコードのスコープ内にある場合、または後の段階で参照する必要がない場合も、ムービークリップに名前を付ける必要はありません。
別の見方です。「変数」は、プロパティ、関数を含むオブジェクトです。「インスタンス名」はオブジェクトのプロパティです。
お役に立てば幸いです。

于 2013-07-21T21:47:35.303 に答える