Home > ActionScript 3.0 > ActionScript 3.0 :: 名前空間によるスウィッチング

ActionScript 3.0 :: 名前空間によるスウィッチング

ネームスペースとも呼ばれる名前空間は、ActionScript 3.0 * パッケージと名前空間では、以下のように説明されています。

名前空間では、作成したプロパティおよびメソッドの可視性を制御することができます。 public、private、protected、および internal アクセス制御指定子は、ビルトイン名前空間のようなものです。これらのあらかじめ定義されているアクセス制御指定子が要件を満たさない場合は、独自の名前空間を作成することができます。

上述でも説明されているように、public、private、protectedなどのアクセス制御指定子はメソッドやプロパティに対して外部からのアクセスを制御します。名前空間はそれのカスタムとも言うべきもので、メソッドやプロパティに対してアクセス制御を掛けることができるようになります。同名のメソッドやプロパティでも、名前空間を使って制御することによって文脈的な意味づけを付加することができるわけです。名前空間によって制御されたメソッドは、:: name qualifier演算子 を使ってアクセスすることができます。以下のサンプルコードでは、二つのanswer()メソッドが名前空間によって修飾されています。名前空間としてcorrect(正解)とwrong(不正)を用意することで、if文なしで条件分岐ができるわけです。

namespace correct = "http://example.com/correct";
namespace wrong = "http://example.com/wrong";

correct function answer():void{}
wrong function answer():void{}

correct::answer();

ここでのポイントは、名前空間は変数にNamespaceクラスとして代入が出来るということにあります。変数に与える名前空間を切り替えることで、ダイナミックに実行されるメソッドを切り替えることができます。下記のサンプルでは、if文を使わず、変数currentModeを切り替えて、その状態によってchange()メソッドを振り分けています。

package {
	import flash.display.MovieClip;
	public class TestExample extends MovieClip {
		
		namespace on = "http://example.com/on"
		namespace off = "http://example.com/off"
		var currentMode:Namespace = off;
		
		public function TestExample():void {
			currentMode::change()//出力 off
			currentMode = on;		
			currentMode::change();//出力 on
		}
		
		on function change():void {
			trace("on")
		}
		
		off function change():void {
			trace("off")
		}
		
	}	

}

Summer Camp 2010 野中文雄のActionScript 3.0による 三次元表現

無料  ActionScript 3.0による 三次元表現 in アップルストア 銀座

フィジカルコンピューティング ラボラトリー

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://xingxx.com/mt/mt-tb.cgi/65
Listed below are links to weblogs that reference
ActionScript 3.0 :: 名前空間によるスウィッチング from xingxx

Home > ActionScript 3.0 > ActionScript 3.0 :: 名前空間によるスウィッチング

Search
Feeds
Tag Cloud

Return to page top