Home > Flash | 制作 > ActionScript2.0でstaticは_globalで呼べるようだ

ActionScript2.0でstaticは_globalで呼べるようだ

  • Posted by: ogies
  • 2008年6月20日 17:17
  • Flash | 制作

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フレーム目をコメントアウトしたサンプルも付けときました。

サンプルコードはこちら

Home > Flash | 制作 > ActionScript2.0でstaticは_globalで呼べるようだ

Search
Feed

Return to page top