namespace가 사용되는 경우에는 다음과 같은 3가지가 있다.

1. XML object에서 namespace 접두사와 namespace를 식별하는 URI를 관련지을 수 있다.
2. 동일한 이름의 methods를 구별하기 위해 사용한다.
3. 서로 다른 패키지 내에 있는 변수나 함수에 접근할 수 있도록 한다. 이 경우 오직 설정된
   namespace로만 접근이 가능하다.
( public, protected, private, internal 로는 다른 패키지의 변수나 함수에 접근이 불가능하다.)

여기서 알아볼 것은 세번째의 경우이다.

namespace는 아래와 같은 순서로 사용이 가능하다.

1. 먼저 namespace를 정의한다. public으로 지정해줘야 다른 패키지에서도 사용 가능하다.
public namespace version1;


2. 정의한 namespace를 사용해 변수나 메서드를 만든다. 여기에서는 앞에 public이나
private같은 접근제한자를 사용하지 못한다. 사용할 경우 에러가 발생한다.
version function myFunction():void{}

3. 다른 패키지에 있는 클래스에서 myFunction() 메서드를 사용하기 위해서는 아래와 같이 한다.
use namespace version1;
myFunction();


아래와 같이도 사용 가능하다.
version::myFunction();

이와같이 use지시문을 사용하여 불러올 수도 있고, use 지시문을 사용하지 않고
namespace 의 식별자 이름을 수식하여 불러올 수도 있다.

아래는 실제 사용 예제이다.

MNS.as

As1.as

As2.as

NameSpaceExam.mxml

<실행결과>

As1 : my NameSpace
As1 : my NameSpace
As2 : my NameSpace

예제를 보면
변수를 불러올때 namespace 수식어인 MNS를 사용하여 MNS:: 를 붙여 사용하였지만
use namespace MNS; 라고 use 지시문을 통해 선언해줬기 때문에
바로 as1.myNameSpace, myNameSpace로 사용해도 된다.

이번에는 함수에 선언해서 사용해 보자.

아래와 같이 함수에 namespace를 선언한다.

불러올 때도 변수와 다름없다.

Posted by 윤연식
,