[AS]staticの扱い方について
staticとすると、クラスインスタンスを作らなくてもアクセスできるようになる。
例えば、
//カスタムクラス:Test
package {
public class Test {
static public var n:int = 100;
static public var m:int = 200;
public var q:int = 500;
function Test() {
plus();
}
function plus() {
trace("test:"+q);
}
}
}
//メインのタイムライン trace(Test.n); var test:Test = new Test();
出力は、
100
test:500
となり、クラスのインスタンスを作る前に直接に変数を値を取得できる。
使い道としては、子クラスから親クラスのプロパティ値を取得したいときとか。
でも、親クラスのプロパティがスタティックだらけになってなんか気持ち悪い気が・・・
(他に取得方法はあるのだろうか?parrentとか?)
あと使ってて気づいた点。
staticは関数にも使えるが、その際、そこで扱う変数もstaticの必要があるっぽい。
例えばさっきのカスタムクラスのfunction plusをstaticにすると。。。
qがstaticではないので、
未定義のプロパティqへのアクセスです、
と怒られる。
なので、qをstaticにすると大丈夫らしい。
//これでOK
package {
public class Test {
static public var n:int = 100;
static public var m:int = 200;
static public var q:int = 500;
function Test() {
plus();
}
static function plus() {
trace("test:"+q);
}
}
}
よくわからんな・・・
Tweet