« flashVarsのJSON化 | Home | Tina Brooks »

Jan 072008

packageの外に定義した関数やらクラスやら

AS3ではpackageの外でも変数やら関数やらクラスやら定義できるのだけど、package内部と外部ではそれぞれimportを行わなくっちゃいけない。これって同じクラスファイルの中で2回importしている訳なのだけど、なんか問題とかあったりするのだろうか?

いや、別にpackage内部の関数にしてもいいんだけど、staticなconstractor(表現は微妙です、つまり1度しか発動させたくない関数があるとかそゆこと)な感じで処理をしたいときにpackage外に書くと楽チンなのかな・・・って。

package内部に記述した場合は何かしらフラグを立ててそれをif判定して切り分けっつー感じになるんだとおもうんだけどね。効率(ほぼ無意味ではあるが)を考えたらpackage外部かしらと・・・。

説明難しいけど、こんな感じ。

package  {
	public class Aho{
		public function Aho() {
			a = a+1;
			trace("aho",a,b);
		}
		public function ahoB() {
			trace("ahoB",a,b)
		}
	}
}
var a:int = 0;
var b:int = 0;
function ahoaho() {
	trace("aho initialized");
	//set some params
	b += 1;
}
ahoaho();
これでFLAのタイムラインに
var aho = new Aho();
aho.ahoB();
var aho2 = new Aho();
aho2.ahoB();
で、出力は
aho initialized
aho 1 1
ahoB 1 1
aho 2 1
ahoB 2 1
if分岐しなくて良い分コンストラクタがすっきりするかしら?みたいな・・。 違う?

1 Comment

Flashの改行コードとFlashDevelopの改行コードが違うのか、MTにコピペしたときの挙動が違ってみてくれが変わるのが非常にうっとおしいです。

Leave a comment

Search and Archives