refer to : Essential ActionScript 3.0 by Colin Moock

네임스페이스 이름은 통상 URI를 가리키는 문자열이 된다.
URI 라는 용어는 일반화된 리소르 식별 표준으로서, URL 또한 이 범주의 종류이다.

URI 는  웹사이트 주소를 주로 사용하는데, 실재 존재하는 주소가 아니어도 된다. 단지 구분을 위한 것.
정의 형식 :
namespace identifier = URI;

네임스페이스는 어느 곳에서든 정의할 수 있지만, 실제 패키지 정의나 클래스 정의의 최상단에 정의된다.
패키지 레벨에서 생성 : 파일 이름과 식별자 이름이 같아야 함.
hahaha.as
package  test {
  namespace hahaha = "http://www.hansune.com/as3/hahaha";
}

접근제한자 사용 : public, internal, protected, private
패키지레벨 > public, internal 만 가능

변수에 저장해서 쉽게 모드구성하는 예제
online, offline 이라는 네임스페이스를 만들고, 접속모드에 따라 명령을 다르게 주기
online sendMessage (msg:String):void { }
offline sendMessage (msg:String):void { }
..
var currentMode:Namespace = offline;
....
function connectHandler(e:Event):void {
  currentMode = online;
}
..
currentMode::sendMessage("hoho");



저작자 표시 비영리 동일 조건 변경 허락

for each, for in 
var info:Object =new Object();
info.city="toronto";
info.country="canada";

순환문으로 변수값 접근하기
for each(var detal:* in info) {
trace(detail);
}

변수명 알아내기
for (var detailName:* in info) {
trace(detalName);
}

속성값 접근 
for (var detailName:* in info) {
trace(info[detailName]);
}

순환문 피하기
info.setPropertyIsEnumerable("city",false);
for (var detailName:* in info) {
trace(info[detailName]);
}


try..catch..finally
try {
예외가 발생할 수 있는 문장 
} catch(error type) {
예외처리
} catch(error type) {
예외처리
} finally {
반드시 실행할 명령
return;//이후 문장 미처리
}


prototype 객체 변수
SomeClass.prototype.doFunc = function():String{
return "동적추가";
}
var ins:SomeClass = new SomeClass();
trace(ins.doFunc());