ActionScript3.0が話題の世の中でまだまだ僕はActionScript2.0を組んでいる毎日です。で、ActionScript2.0、staticは_globalで呼べるようですよ。staticって、AS1.0での_globalと似てるよなーというところから、やってみたら出来たんで書いておく。
とりあえず、実制作レベルでどこまで実践的に使えるかは未知数なので、今後の制作で検証してみようと思う。
詳細は以下の通り。
まず、こんな風なstaticクラス。
URLの値を保持しています。それと、初期化の処理も。
class main.StaticValue {
static public var urlBlog:String = "http://1ft.cbass.jp/blog/";
static public function initialize():Void {
trace( "main.StaticValue : 初期化" );
}
}
まず、同じ階層でstatic内の値を呼ぶ
まず、_rootの1フレームでstaticのクラスを呼びます。
// staticクラスの初期化を行う
import main.StaticValue;
StaticValue.initialize();
// StaticValue.urlBlogをtrace
trace( StaticValue.urlBlog );
_rootでクラスを呼んだので同じ階層では当然、StaticValue.urlBlogで呼べます。
別の階層でstatic内の値を呼ぶ
_root階層では無事使えることが確認できました。では、続いて、別の階層 tf というインスタンスで、static内の値を呼ぶ。ここでは、一度も import main.StaticValue; が呼ばれていません。
具体的な呼び方は_global . クラス名 で呼べます。
書き方はこんな感じ。
// import main.StaticValueも無いのに呼べる
txtURL.text = _global.main.StaticValue.urlBlog;
無事、txtURL.text にStaticValue.urlBlogが入りました。
繰り返すようですが、ここの階層では一切 import main.StaticValue; で呼ばれていないのにです。
_globalで呼べちゃった!
注意点
ただし、一度は初期化が必要なようです。どこかで、一度でも呼ばれないと値が成立しないのはクラス内でstaticを呼ぶときと一緒ですね。サンプルコードにstatic_global_error.flaという、_rootの1フレーム目をコメントアウトしたサンプルも付けときました。
サンプルコードはこちら。
- Newer: gooHomeProjectがカンヌ広告賞銀!
- Older: 自分の制作は料理という行為に近いかも。