staticイニシャライザinAS3
いやー、梅雨ですねー。じめじめ暑くてどーにもこーにもなれません。。佐藤です。
最近しったのですが、AS3にもJavaと同じ様にstaticイニシャライザができるようです。
次のような書き方です。
package { public class EXAMPLE { public static const BOOLEAN1:String = "boolean1"; public static const BOOLEAN2:String = "boolean2"; public static const BOOLEAN3:String = "boolean3"; public static const BOOLEAN_OBJECTS:Object = new Object(); //このブロックはEXAMPLEクラスに初めてアクセスされたときに実行されます { BOOLEAN_OBJECTS[BOOLEAN1] = true; BOOLEAN_OBJECTS[BOOLEAN2] = true; BOOLEAN_OBJECTS[BOOLEAN3] = true; } public static function isTrue(label:String):Boolean { return BOOLEAN_OBJECTS[label]; } } }
初めてクラスにアクセスされた時に初期化し、条件によって値を振り分けるような処理をすることが目的になってくると思います。 ただ、staticな値は宣言時に演算することが可能ですよね。
public static var isMac:Boolean = (Capabilities.os.substr(0,6) == "Mac OS");
みたいな書き方ができます。
正直、この二つの使い分けがよくわかっていません。どっちもクラスに初めてアクセスしたときに実行されるようですし。。
だれか詳しく教えてー。くれるとうれしいです。
詳しくわかったらまた記事にしたいと思います。ではでは。