ActionScript 3.0で__FILE__を再現する(ネタ)

Errorオブジェクトのスタックトレースを分解してgetterを使ったらそれっぽくできました。
Perlのconstants的な発想ですね。

__FILE__.as

package
{
	/**
	 * Emulate __FILE__
	 * 
	 * requires DebugFlashPlayer
	 */
	public function get __FILE__() :String
	{
		var line:String = new Error().getStackTrace().split("\n")[2];
		return (line.match(/\[([^\]]+):\d+\]/))[1];
	}
}

使い方

trace(__FILE__);


デバッグ版FlashPlayerが必要なので開発中にしか使わないと思いますが、
開発中ならgetStackTrace()の結果をそのまま出した方が便利だと思います。