2011-07-12 17 views
4

クラスのコンストラクタで静的変数を変更しようとしています。私が持っている開始時:AS3 - 未定義のプロパティへのアクセス(静的変数)

public static var mainReference:Main; 
public static var timerReference:Timer; 
public var timer:Timer = new Timer(1000); 

これは私の静的な機能がメインとタイマーにアクセスすることができそうです。私が持っているメインのコンストラクタで:

mainReference = this; 
timerReference = timer; 

問題があり、最初は、私はそれをコンパイルエラーを与えていないが、2番目は私に未定義のプロパティ(timerReference)のアクセスを伝えます。

+2

代わりに、コンストラクタでtimerReference = new Timer(1000)を実行するとどうなりますか? – Marty

+0

なぜですか?クラスのすべてのインスタンスで静的変数を初期化することは、私にとってとても良いアイデアのようには思えません。 – RIAstar

+0

どういう意味ですか? – Marty

答えて

5

フラッシュプレーヤーが静的なvarの代わりにクラスvarとしてtimerReferenceにアクセスしようとしている可能性があります。

はこれを試してみてください:

this.mainReference = this; 
Main.timerReference = this.timer; 

今、あなたは明示的に静的クラスVARとしてクラスvarとtimerReferenceとしてmainReferenceにアクセスするには、Flash Playerを言っています。

関連する問題