Graphics Programming

[senocular] 플래시 플랫폼의 각종 버전들 본문

Season 1/플래시

[senocular] 플래시 플랫폼의 각종 버전들

minseoklee 2011. 4. 9. 12:27

senocular.com의 원문
http://www.senocular.com/flash/tutorials/versions/


도입

플래시 플랫폼에서 고려해야 하는 버전은 너무도 많다. 이들 버전은 추적하기가 그다지 쉽지 않으며 점점 복잡해진다. 이 문서에서는 여러 종류의 버전들이 어떤 관계에 있는지 윤곽을 잡아보려 한다.

플래시 플랫폼 버전을 다루기 위해 런타임, 내용물, 소스, 도구라는 네 가지 분류를 사용하겠다. 소스와 도구는 플랫폼의 개발자 측을 대표하고 런타임은 사용자 쪽에 좀 더 가깝다. 내용물은 이 둘 사이에 있다. 내용물은 개발자가 소스와 도구로 제작하면 사용자가 런타임에서 보는 것이다.


 

목차

런타임
    플래시 플레이어
    AIR
내용물
    SWF
소스
    액션스크립트
    액션스크립트 API
    플렉스 프레임워크
도구
    플래시 프로페셔널 (IDE)
    플래시 빌더 (IDE)
    플렉스 SDK
    컴파일러
부록
    마일스톤 (중요한 시점, 사건)


런타임

플래시 플랫폼의 모든 것은 결국 한 가지 기술, 런타임으로 통한다. 때를 거슬러 올라가면 플래시 런타임은 플래시 플레이어 하나 뿐이었다. 2008년에 어도비 통합 런타임(Adobe Integrated Runtime, AIR)이 나오며 상황은 바뀌었다. 두 런타임은 플래시 플랫폼 전체의 핵심 기술을 대표한다.

런타임은 플래시 플랫폼이 사용자를 위해 가동되는 지점이다. 런타임은 사용자가 자신의 컴퓨터에 가지고 있는 애플리케이션이며 개발자가 제작한 플래시 내용물을 실행하는 데 쓰인다. 사용자의 런타임 버전은
그 내용물을 지원하는 지를 결정한다. 플래시 플랫폼에서 런타임 버전은 특히 중요하다.




플래시 플레이어


형식주[.부]                major[.minor]
주.부.빌드.수정    major.minor.build.revision
예시10.1 (10.1.102.64)
종류애플리케이션
최신판http://get.adobe.com/flashplayer

플래시 플레이어는 SWF 파일을 표시하고 실행하기 위한 애플리케이션이자 핵심 기술이다. (SWF는 플래시 플랫폼에서 쓰는 내용물 포맷이다) 플래시 플레이어는 보통 브라우저를 통해 실행되지만 독립 실행형("프로젝터"라고도 부름) 애플리케이션으로서 실행될 수도 있고, 다른 애플리케이션에 포함되어 실행될 수도 있다. 또한 플래시 플레이어는 AIR의 핵심 요소다.

플래시 플레이어 버전에 대해

플래시 플레이어의 버전은 어떤 내용물(SWF)이 지원되는 지를 결정한다. 버전이 오래된 플래시 플레이어에서는, 작동하리라 생각한 새로운 기능이 작동하지 않는다. 플래시 플레이어는 내용물이 자신보다 최신 버전임을 (SWF 버전을 통해) 확인하면 일단 그 내용물을 실행하려 최선을 다하겠지만 결국 실패한다.

새 플래시 플레이어에서는 보안도 향상된다. 사실 대부분의 플래시 플레이어 배포가 보안 때문으로, 악의적인 웹 사이트와 내용으로부터 사용자를 보호하기 위해서다.

모두들 플래시 플레이어가 최신 버전인지 확인해야 한다. 새 기능 때문만이 아니라 안전과 보안을 다지기 위해서다.

플래시 플레이어 버전 붙이기는 주.부.빌드.수정(major.mimor.build.revision) 형식이다. 플래시 플레이어 10 전에는 주, 빌드 버전만 쓰였고 나머지는 0이였다(주.0.빌드.0). 중요한 배포판이 나올 때마다 주 버전은 1씩 올라갔으며 임의의 빌드 버전이 따라붙었다. 소소하게 바뀔 때는 빌드 넘버만 증가했다.

8 배포판8.0.22.0
8.0.24.0
8.0.33.0
...
9 배포판9.0.16.0
9.0.20.0
9.0.28.0
...

이 시기의 소소한 개정은 주로 버그 해결과 보안 패치를 위한 것이었다. 기능이 추가되었는데 주 버전이 오르지 않은 적은 거의 없었다. 플래시 플레이어 8.5는 예외였지만 이건 액션스크립트 3.0을 개발자들 손에 쥐어주기 위한 실험적인 배포였을 뿐이다.

플래시 플레이어 10부터 버전 붙이기 규칙이 바뀌었다. 이제 형식은 주.부.빌드.수정을 더욱 엄격히 지켜서 부 버전과 수정 버전이 0이 아닐 때도 있다(새로운 주 버전을 처음 배포할 때 부 버전은 0이지만). 하위 버전에서의 관습을 지켜 주 버전이 오르면 빌드 버전도 오르며 이는 부 버전의 변화와 무관하다.

10 배포판10.0.12.36
10.0.15.3
10.0.22.87
...
  10.1.53.64
10.1.82.76
...
 
부 버전이 오르면 소소한 기능이 추가된다. 규모가 작은 새로운 API나 다음 주 버전까지 기다려야 했을 기능이 추가된다. 부 버전은 0으로 시작하여 그런 일이 있을 때마다 1씩 증가한다.

부 버전이 변하지 않는 배포는 버그 해결과 보안 패치를 위한 것이다. 이 때는 빌드와 수정 버전만 바뀐다. 수정 버전은 지켜본 결과 지금까지는 완전히 무작위고 빌드는 꾸준히 늘어났다.

플래시 플레이어 10.1은 SWF 버전이 오르지 않고 소소한 기능만을 추가해 부 버전이 오른 독특한 버전이다.

플래시 라이트

플래시 라이트는 플래시 플레이어 구 버전의 변종으로, 모바일 장치를 노린 것이다. 플래시 라이트는 OEM에 의해 구현되었고 표준 플래시 플레이어의 일부 기능을 제공했다. 플래시 라이트가 여전히 있긴 하지만, 많은 모바일 기기에 플래시 플레이어 10.1이 들어감에 따라 플래시 라이트는 거의 사장되었다.

플래시 라이트의 버전은 OEM 마음대로였다. 이 문서에서는 플래시 라이트를 자세히 다루지 않겠다.

여러분의 플래시 플레이어 버전은?

Flash Player About 페이지에는 여러분의 컴퓨터에 설치된 플래시 플레이어의 버전을 탐지하고 최신 버전에 대한 정보를 표시하는 스크립트가 붙어있다.

여러분의 플래시 플레이어 버전 정보는 여기서 자세히 볼 수 있다.

플래시 플레이어 10.2라면 플래시 플레이어 무비 윈도우를 오른쪽 클릭하여 컨텍스트 메뉴에서 현재 버전을 볼 수 있다.

플래시 플레이어 버전을 표시하는 플래시 플레이어 10.2의 컨텍스트 메뉴

액션스크립트도 현재 플레이어 버전을 알 수 있다.
// 액션스크립트 1.0 그리고 2.0
trace($version);
trace(getVersion());
trace(System.capabilities.version);
// 액션스크립트 3.0
import flash.system.Capabilities;
trace(Capabilities.version);


AIR


형식주[.부]                     major[.minor]
주.부.유지보수.빌드   major.minor.maintenance.build
예시2.5 (2.5.1.17730)
종류애플리케이션
최신판http://get.adobe.com/air

AIR은 어도비 통합 런타임(Adobe Integrated Runtime)을 뜻한다. AIR은 플래시 플레이어 강화판과 웹킷(브라우저) 렌더링 엔진과 기타 자잘한 것들의 조합이다. 엔진은 웹 내용물을 로컬 내용물로서 실행하거나 여러분의 컴퓨터에서 독립 실행형 애플리케이션으로 실행하는 데 사용된다. AIR에 들어 있는 플래시 플레이어와 웹킷은 AIR의 데스크탑 한정 기능과 API를 포괄한다.

AIR 내용물은 AIR 파일이라는 AIR 인스톨러로서 배포된다. AIR 파일을 실행하면 그 내용물이 AIR 런타임을 통하여 여러분의 컴퓨터에 네이티브 애플리케이션으로서 설치된다. 이 실행 파일은 AIR 플레이어 안에서 SWF나 HTML 페이지를 실행하기 위한 통로다. 실행할 때는 XML 파일이 하나 필요한데 이 파일을 애플리케이션 서술자 XML(application descriptor XML)이라고 부르며, 애플리케이션의 버전 같은 특징을 정의하기 위한 것이다.
 
AIR 버전에 대하여

플래시 플레이어와 마찬가지로 AIR 버전은 어떤 기능을 지원하고 사용자가 얼마나 안전한 지를 뜻한다. 최신 버전의 AIR을 가지고 있으면 AIR 애플리케이션과의 호환성도, 보안도 더 할 나위 없다.

플래시 플레이어와 달리 AIR은 새 AIR 버전에 맞춰 제작한 내용물을 실행하려 시도하지 않는다. 설치된 AIR 버전이 AIR 애플리케이션 버전보다 낮으면 애플리케이션은 그저 실행되지 않는다.

AIR의 많은 부분이 플래시 플레이어를 기반으로 하지만 AIR 런타임의 버전은 플래시 플레이어의 버전과 별개다. 이 버전은 플래시 플레이어 버전보다 상당히 낮은데, AIR이 플래시 플레이어보다 상당히 늦게 나온 제품이기 때문이다.

AIR 런타임 버전 붙이기는 플래시 플레이어의 경우와 조금 달라서, 애플리케이션의 표준에 더 가까운 형식인 주.부.유지보수.빌드 꼴이다. 이것은 주.부로 축약되곤 한다.

AIR 버전 붙이기의 가장 혼란스러운 면은, AIR이 플래시 플레이어의 위에 세워졌지만 같은 때에 나오는 플래시 플레이어와 주 버전이 다르다는 점이다.

Flash Player ReleaseAIR Release
Flash Player 9 (mid-cycle) AIR 1.0
Flash Player 10.0 AIR 1.5
Flash Player 10.1 AIR 2.0
... ...

플래시 플레이어가 AIR의 핵심 요소기 때문에 플래시 플레이어의 주 버전이 올라가면 AIR에도 반영된다. 플래시 플레이어의 주 버전을 올릴 만한 기능 추가에도 AIR에서는 부 버전이 올라간다. AAIR에 한정된 기능이 새로 추가되었을 때나 주 버전이 오르며 이는 플래시 플레이어와 무관하다.

여러분의 AIR 버전은?

다음 문서가 여러분의 컴퓨터에 설치된 AIR의 버전을 확인하는 데 도움이 될 것이다.

AIR 애플리케이션 안에서는 액션스크립트를 사용하여 현재 AIR 런타임 버전을 알 수 있다.

// 액션스크립트 3.0
import flash.desktop.NativeApplication;
trace(NativeApplication.nativeApplication.runtimeVersion);

AIR 애플리케이션 밖에 있는 플래시 플레이어에서도 액션스크립트 3.0을 사용하여 현재 AIR 버전을 알 수 있다. (문서화되지 않았으며 그래서 공식적으로 지원하지도 않는다)

// 액션스크립트 3.0
import adobe.utils.ProductManager;
var airPM:ProductManager = new ProductManager("airappinstaller");
if(airPM.installed){
	trace(airPM.installedVersion);
}
 
내용물

내용물은 프로젝트를 완료하고 최종 사용자에게 배포하는 최종 제품이다. 플래시에서 이 내용물은 항상 SWF 파일이다. (SWF 파일을 포함하는 형태일 수도 있다) AIR 파일이 데스크탑에서 네이티브 애플리케이션을 돌리기 위한 인스톨러이긴 하지만, 결국은 애플리케이션 실행 후 SWF 파일(또는 HTML 파일)을 내용물로서 실행하게 된다.



SWF


형식주    major
예시10, SWF10
종류문서(Document)
최신판http://adobe.com/devnet/swf/

SWF는 플래시 플레이어가 재생하는 내용물에 쓰이는 이진, 태그 기반 파일 형식이다. SWF는 Shockwave Flash를 뜻하며 Small Web Format이나 Small Web File을 뜻하기도 한다.

이진 포맷이기 때문에 SWF 파일의 내용은 HTML 파일과 달리 사람이 알아볼 수 없다. 하지만 SWF 파일도 태그를 사용하여 내용을 표시한다. SWF 태그는 유일하게 식별 가능한 태그 이름, 그러니까 ID로 시작하며 그 태그의 내용이 따라붙는다. HTML에서 <title> 태그는 페이지의 제목을 포함하고, SWF에서 FrameLabel 태그(43)는 타임라인의 제목이나 프레임 이름을 확인하는 데 쓰인다. 액션스크립트 자체는 액션스크립트 2.0의 경우 DoAction 태그에, 3.0의 경우 DoABC/DoABC2 태그에 포함되지만 액션스크립트 바이트코드(ActionScript Bytecode, ABC)라는 개별 포맷을 가진다.

SWF 파일에는 태그에 앞서 파일 헤더가 있다. 헤더는 SWF 파일 버전 따위의 파일 기본 정보를 포함한다.

SWF 버전에 대하여

플래시 플레이어가 어떤 SWF를 실행하려면 플래시 플레이어 버전이 그 SWF 버전 이상이여야 한다. SWF를 제작할 때 무슨 버전을 쓸 지는 개발자에게 달렸다. 개발자가 플래시 플레이어 10에 있는 기능을 쓰지 않더라도 SWF 버전을 10으로 하여 플래시 플레이어 10 대상의 SWF를 만들 수도 있는 일이다.

SWF 파일의 버전은 헤더의 네 번째 바이트에 있다. 단일 바이트라 256가지 정수 값(0-255)을 포함할 수 있다. 플래시 플레이어는 기능의 동작을 결정하고 특정 버전에 한정된 액션스크립트 API를 드러내는 등 주로 호환성을 위해 SWF 버전을 사용한다.

새 플래시 플레이어가 나옴에 따라 동작이 바뀐 기능이 있으면 SWF의 버전을 통해 이전 버전에서의 동작과 구분된다. 어떤 기능의 동작이 버그 해결 같은 이유로 새 버전에서 바뀌어도 이전 동작을 하는 이전 기능이 바뀌거나 망가지면 안 된다. 플래시 플레이어 9에 있던 버그를 10에서 고쳤다면, 그 버그 해결을 적용하려면 SWF의 버전이 10 이상이어야 한다.

(액션스크립트 3.0에 한함) 플래시 플레이어는 SWF에 드러낼 API를 알아내기 위해 SWF 버전을 사용한다. 더 많은 정보를 원한다면 API 호환성을 보라.

액션스크립트 API 노출은 플래시 플레이어에 처음으로 탑재된 SWF에 영향을 받는다. 그 SWF가 불러오는 다른 SWF들은 처음의 루트 SWF에서 정의한 API 집합을 사용한다. 버전을 체크하는 동작은 루트 SWF를 이용할 수도 안 할 수도 있다. 이건 각 버전 체크 방법에 따라 다르다. 버전이 다른 SWF들을 불러와서 뒤섞는 일을 가급적 피하라. 피할 수 없으면 내용물을 확실하게 검사하라.

SWF 버전은 한 숫자다. 대상이 되는 플래시 플레이어의 주 버전과 같..았다. 10 버전의 SWF는 플래시 플레이어 10이 대상이며 플래시 플레이어 10 이상에서만 실행된다. 이 규칙은 플래시 플레이어 10.2부터 바뀌었다.

플래시 플레이어 10.2의 주 버전은 10이지만 11 이하의 모든 버전을 지원한다.

 Note: 도구와 SWF 버전

어떤 도구에서는 플래시 플레이어 10.2 이상을 대상으로 하여 SWF 버전을 11로 정하려고 할 때, 플래시 플레이어 버전만을 볼 수 있을 것이다. 그러니 SWF 버전을 11이라고 명시하기보다는 플래시 플레이어 10.2가 대상인 SWF로 명시하라. 플렉스 SDK 같은 도구에서는 플레이어 버전이 아니라 SWF 버전(11)을 적어야 한다. 혼동하지 말자.

앞으로는 SWF 버전이 플래시 플레이어와 무관하게 오를 것이다. 플래시 플레이어 10.2부터는 부 버전이 올라갈 때도 SWF 버전이 올라갈 수도 있다.

당신의 SWF 버전은? 

http://swfversion.com에서 제공하는 서비스를 통해, SWF 파일이 쓰는 액션스크립트 버전을 확인할 수 있다.

SWF 파일의 헤더에서 네 번째 바이트를 봐서 SWF 버전을 확인할 수 있다. 그저 SWF를 16진수 편집기에서 열면 된다. 다음처럼 시작하는 SWF 파일을 보자.

43 57 53 0A 5B 1F 00 00 ...

네 번째 바이트가 0A이며 SWF 버전이 10이라는 뜻이다.

액션스크립트로 현재 SWF 버전을 알 수 있다.
// 액션스크립트 2.0
// MovieClip 객체의 문맥에서
trace(getSWFVersion());
// 액션스크립트 3.0
// DisplayObject 객체의 문맥에서
trace(loaderInfo.swfVersion);

 
소스

소스 파일은 내용물을 만드는 데 쓰인다. 플래시 플랫폼에서 쓰는 소스 파일은 도구에 따라 다양하다. 플래시 프로페셔널은 상표 붙은 포맷인 FLA를 쓴다(처음에는 이진 포맷이였지만 이제는 더 개방적인 XML 기반 포맷으로 정의된다). 이클립스에 기반한 플래시 빌더는 다양한 파일들의 모음인 이클립스 기반 프로젝트를 사용한다. 둘 다 공통으로 액션스크립트 파일을 사용한다. 이 소스 파일은 플래시의 프로그래밍 언어인 액션스크립트를 위해 쓰인다.




액션스크립트

형식주[.부]      major[.minor]
예시3.0
종류언어/문서
최신판http://adobe.com/devnet/actionscript/

액션스크립트는 플래시 플랫폼에서 쓰이는 프로그래밍 언어다. ECMAScript(자바스크립트)를 많이 닮았으며 갈수록 그로부터 멀어지고 있긴 하다.

액션스크립트 버전에 대하여

지금은 세 개가 있다.
    액션스크립트 1.0
    액션스크립트 2.0
    액션스크립트 3.0
 
사실 이 세 개는 액션스크립트 2.0과 액션스크립트 3.0으로 나뉜다. 액션스크립트 2.0은 1.0과 2.0을 아우른다.

플래시 플레이어는 액션스크립트 1.0으로 알려진 것과 함께 시작했다. 플래시 플레이어 5에서 자바스크립트와 비슷한 형태를 받아들여서 플래시용 스크립트 언어로는 꽤 잘 정의되었다. 액션스크립트는 플래시 플레이어 5 전부터 있었지만 더 간단했고 거의 다른 언어로 봐도 무방하다. 그 때는 언어에 버전도 없었고 그저 플래시 액션이라고들 불렀다.

액션스크립트 2.0에서 이 언어에 처음으로 버전이 붙었다. 원래 있던 액션스크립트 1.0에서 바뀐 것은 없다. 언어를 보강하기 위해 클래스 구문을 도입했을 뿐이다. 이 구문으로 코드를 더 깔끔하고 잘 조직되게 작성할 수 있었다. 하지만 결국 코드는 액션스크립트 1.0을 사용하는 동일한 기계 코드(액션스크립트 바이트코드)로 컴파일되었다. 2.0에 추가된 것들은 전적으로 컴파일러에 기반했다. 그래서 플래시 MX 2004 (플래시 프로페셔널 7)과 플래시 플레이어 7과 함께 액션스크립트 2.0이 나왔지만 작성한 코드는 플래시 플레이어 6에서도 작동했다.

액션스크립트 3.0은 확 바뀌었다. 베타 테스트용이였던 플래시 플레이어 8.5에서 처음 나왔고 9.0에서 정식 도입했으며, 액션스크립트 2.0과 달리 완전히 새로운 언어다. API는 2.0에서 쓰던 것과 같아 매우 비슷하게 보이지만, 완전히 새로운 가상 기계가 필요하다. (가상 기계는 플래시 플레이어 애플리케이션의 구성요소이며 액션스크립트를 처리하여 작동하도록 한다)

액션스크립트 2.0은 액션스크립트 가상 기계 1, 줄여서 AVM1에서 돌아간다. 액션스크립트 3.0은 액션스크립트 가상 기계 2(AVM2, 별칭 AVM+)에서 돌아간다. 플래시 플레이어 9에는 둘 다 들어있기 때문에 액션스크립트 2.0을 사용하는 SWF와 3.0을 사용하는 SWF 모두를 지원한다.

이제 액션스크립트가 2.0이냐 3.0이냐에 따라 코드 실행에 필요한 가상 기계가 달라지긴 하지만, 액션스크립트 버전 자체는 매우 일반화되었고 주로 마케팅에 쓰인다. 액션스크립트 버전은 완전히 새로운 버전이 나오기 전에는 결코 바뀌지 않을 것 같다.

당신의 액션스크립트 버전은? 

SWF에서 쓰는 액션스크립트 버전은 보통 도구에 의해 결정된다. 플래시 빌더와 플렉스 SDK는 액션스크립트 3.0을 사용한다. 플래시 프로페셔널은 3.0도 2.0도 쓴다. 무슨 버전을 쓸 지는 publish settings 메뉴에서 선택할 수 있다.

액션스크립트 2.0도 3.0도 소스 파일 확장자는 .as로 같으니 확장자만으로 액션스크립트 파일의 버전을 알 수는 없고 파일 내용을 봐야 한다. 버전을 알 방법이 전혀 없을 수도 있다. 그리고 API가 상당히 비슷하기 때문에 코드에 따라서는 한 코드가 두 버전 모두에서 작동할 수도 있다. 하지만 클래스 파일의 형식은 다르다. 특히 액션스크립트 3.0의 package 블록이 2.0에는 없다. package 블록은 액션스크립트 3.0 클래스 파일의 패키지 경로를 정의한다. 액션스크립트 2.0 패키지 경로는 클래스 이름에 포함된다.

// 액션스크립트 2.0
class com.senocular.MyClass { ...
// 액션스크립트 3.0
package com.senocular {
	class MyClass { ...

http://swfversion.com에서 제공하는 서비스를 이용하여 SWF가 쓰는 액션스크립트 버전을 알 수 있다.

SWF가 액션스크립트 3.0을 사용하는 지에 대한 정보가 SWF 문서의 FileAttributes (69) 태그의 ActionScript3 필드에 정의되어 있다.


액션스크립트 API

형식런타임에 따라 다르다
예시10.1 (플래시 플레이어), 2 (AIR)
종류언어/애플리케이션
최신판http://adobe.com/go/as3lr
(AS2: http://help.adobe.com/.../actionscript/2/)

액션스크립트에서 API(Application Programming Interface)는 개발자가 플래시 플랫폼용 SWF 내용물을 제작할 때 사용할 수 있는 클래스와 함수 모음을 나타낸다. API는 플래시 플레이어와 런타임의 다른 부분에 꾸준히 추가됐다. 플래시 플레이어 버전에 따라 사용 가능한 API가 다르다.

액션스크립트 API 버전에 대하여 

플래시 플레이어 API와 AIR API는 계속 바뀌고 있다. 플래시 플레이어가 새로 나올 때마다 새로운 클래스와 함수가 추가된다. 하지만 이런 변화는 액션스크립트 버전과는 무관하다. 그 동안 많은 API가 추가되었지만 액션스크립트 3.0은 그대로 3.0이다. 1.0에서 2.0으로 간 변화도 API에 대한 것이 아니라 구문에 대한 것이다. API는 언어에 대한 것이 아니며 언어가 런타임 환경과 상호작용하는 것에 대한 것이다.

API를 제공하고 구현하는 것은 런타임이기 때문에 API 버전과 런타임 버전은 긴밀한 연관이 있다. 어떤 소스 코드의 API 버전을 확인해야 하면 그것을 지원하는 런타임 버전을 알아보면 된다. 언어 레퍼런스는 주[.부] 형식의 런타임 버전을 통해 API 버전들을 구분한다. 예를 들어 NumberFormatter 클래스는 "런타임 버전: 플래시 플레이어 10.1, AIR 2"에서 지원한다고 표시된다.

API 호환성 

API에서 고려할 것은 호환성, 특히 하위 호환성이다. 오래된 내용물이 새로 내장 클래스나 메서드가 된 것을 정의한다면 충돌이 일어날 수 있다. 해결책은 패키지 네임스페이스와 호환 모드다.

패키지는 액션스크립트의 클래스에서 사용하는 이름 있는 경로이며 클래스의 패키지 네임스페이스를 정의하기 위한 것이다. 네임스페이스는 이름에 붙는 전치사이며, 이름이 같은 다른 개체나 데이터와 충돌하는 것을 막는다. 이름들의 로컬 이름이 같다면 네임스페이스라도 다르면 서로 다르다는 발상이다. 플래시 플레이어의 거의 모든 내장 액션스크립트 3.0 API는 "flash"로 시작하는 패키지 경로를 사용하여 정의되었다. (액션스크립트 2.0에서는 플래시 플레이어 8에 추가된 것들이 그렇다.) 커스텀 클래스나 메서드를 만들면 "flash"로 시작하는 패키지 경로에 놓지 말자. 충돌 가능성이 있다.

패키지가 모든 충돌을 해결하지는 않는다. 내장 클래스를 확장할 때 충돌이 일어날 수도 있다. 예를 들어 어느 내장 클래스의 커스텀 하위클래스에 커스텀 클래스 속성을 추가했는데 내장 상위클래스의 새 버전이 같은 속성을 가지게 된다면 충돌한다. 호환 모드에서 플래시 플레이어는 SWF 버전에 따라 드러낼 API를 제어하여 충돌을 막는다(액션스크립트 3.0 전용).
 
모든 액션스크립트 3.0 API는 연관된 SWF 버전과 함께 플래시 플레이어 내부에 정의된다. SWF를 실행하면 플래시 플레이어는 액션스크립트를 실행하기 전에 SWF의 버전을 읽어 어떤 API를 SWF에 드러낼 지를 결정한다. SWF 버전 이하의 API만 액션스크립트에 노출된다. 버전 9인 SWF는 플래시 플레이어 10에서 실행해도 GraphicsPath 클래스에 접근할 수 없는데, 이 클래스는 버전 10 이상인 SWF에서만 접근할 수 있기 때문이다.

플래시 플레이어 10.1이 나오며 많은 기능과 API가 추가되었다. 하지만 새로운 SWF 버전을 지원하는 건 아니다. 따라서 예전 플래시 플레이어 10 내용물은 플래시 플레이어 10.1에서 실행될 때 예측 못한 새 API를 가지게 된다는 말인데, 이 API의 영향은 작아서 충돌이 거의 일어나지 않겠지만 SWF 측에서 플래시 플레이어 10.1에 한정된 API를 사용하려 시도하기 전에 플래시 플레이어 버전을 확인해야 할 수도 있다.

AIR은 애플리케이션 서술자 XML 파일에 부수적인 네임스페이스를 사용하여 API를 더 세부적으로 구분한다. AIR 네임스페이스는 http://ns.adobe.com/air/application/<major.minor[.maintenance]> 꼴으로, 예를 들자면 이런 식이다.

http://ns.adobe.com/air/application/1.0
http://ns.adobe.com/air/application/1.1
http://ns.adobe.com/air/application/1.5
http://ns.adobe.com/air/application/1.5.1
http://ns.adobe.com/air/application/1.5.2
http://ns.adobe.com/air/application/1.5.3
http://ns.adobe.com/air/application/2.0
...

AIR은 애플리케이션에서 내용물을 실행할 때 생성할 API를 네임스페이스를 써서 결정한다. 네임스페이스는 API를 위한 SWF 버전과 같이 작동하며 추가적인 필터링을 한다. 이것은 SWF 버전은 그대로고 AIR 기능만 추가된 배포판이 나왔을 때 특히 중요하다.

특정 버전의 SWF를 AIR 런타임에서 재생할 지 말 지 판단할 때도 네임스페이스 버전을 이용한다. 애플리케이션의 네임스페이스 버전이 1.0이인데 SWF 버전은 10이라면 재생할 수 없다. AIR 1.0은 플래시 플레이어 9 한정이기 때문이다.

SWF VersionAIR Version
9 1.0
1.1
10

1.5
1.5.1
1.5.2
1.5.3
2.0
...


SWF 기반 AIR 애플리케이션을 실행하면 다음 규칙이 적용된다.

1. 애플리케이션 서술자 XML을 읽는다
2. AIR 네임스페이스 버전을 얻는다
3. 네임스페이스 버전이 AIR 런타임 이하인지 확인한다
4. 내용물 SWF를 확인한다
5. 내용물의 SWF 버전이 AIR 네임스페이스 버전 이하인지 확인한다 (수치적 대소 비교가 아니라 배포판의 버전 비교다)
6. SWF에서 플래시 플레이어 API를 탐지할 수 있게 한다
7. AIR 네임스페이스 버전에 따라 AIR에 한정된 API를 제한한다

AIR 애플리케이션이 더 높은 버전의 SWF와 함께하게 되거나 네임스페이스 버전이 현재 설치된 AIR 런타임 버전보다 크면 애플리케이션은 실행되지 않으며 오류가 발생한다.

AIR은 플래시 플레이어가 플래시 플레이어 10.1 API와 관련해서 겪는 문제를 겪지 않는다. 네임스페이스 버전 붙이기가 10.1 API와 10.0을 올바르게 구분하기 때문이다.

당신의 액션스크립트 API 버전은 

액션스크립트 API 버전은 런타임 버전에 기반하기 때문에 당신의 플래시 플레이어 버전은?당신의 AIR 버전은? 을 보면 된다.

개발할 때는 사용하는 도구(특히 컴파일러)가 API 버전을 결정한다. 도구와 관하여 API는 두 가지를 의존한다.

1. 대상 런타임에서 쓸 수 있는 API 인식하기
2. 대상 런타임에서 재생될 때, 예상된 API를 드러내는 내용물 제작하기
 
액션스크립트 컴파일러는 소스 코드를 컴파일할 때 그 코드가 돌아갈 런타임 환경에서 필요한 API를 알아내야 한다. 그러기 위해 액션스크립트는 2.0에서는 intrinsic 정의, 3.0에서는 native 정의라고 하는 짧은 정의를 이용한다.

액션스크립트 2.0 intrinsic 정의는 액션스크립트 파일 모음 안에 들어있다. 이 파일들은 언어에서 쓸 수 있는 모든 전역 멤버와 클래스 멤버를 위한 규약을 담으며, 이 멤버들 달린 intrinsic 키워드는 이 정의가 SWF로 컴파일되어 들어가지 않고 플래시 플레이어 내장 API가 된다는 것을 컴파일러에게 알린다.

액션스크립트 3.0도 비슷하게 처리된다. 하지만 intrinsic 키워드 대신 native를 사용하고, 모든 정의는 따로따로인 클래스 파일들이 아니라playerglobal.swc라는 미리 컴파일된 단일 패키지에 포함된다.

도구의 새 버전이 나오면 내장 클래스를 위한 이런 정의들이 새 것으로 바뀌어 내용물에서 사용할 수 있게 된다. 오래된 도구라도 새 버전의 정의로 갱신하면 새 API를 쓸 수 있다. 플래시 빌더는 여러분이 플렉스 SDK의 버전들 중 하나를 고르게 하여 이것을 꽤 쉽게 처리한다. 플래시 프로페셔널은 조금 애매하다. 플래시 프로페셔널이 쓰는 playerglobal.swc의 버전을 갱신하면 되는데, 플렉스 SDK의 최신 버전을 받아 여기 들어 있는 것을 가지고 플래시 프로페셔널 설치 경로로 가서 손수 교체하면 된다.

저작 도구가 새 API를 인식하게 되었으면, 그에 맞는 내용물을 제작해야 런타임이 이 API를 쓸 수 있다. SWF 버전이 (AIR의 경우 애플리케이션 네임스페이스가) API 가용성을 결정하기 때문에 도구는 올바른 SWF 버전을 대상으로 해야 API를 제대로 쓸 수 있다. 개발자는 도구를 통해 SWF 버전을 선택한다. 예를 들어 플래시면 publish settings 대화상자를 통해서 선택한다.

플렉스 프레임워크


형식주[.부[.업데이트]]    major[.minor[.update]]
예시2.0.1
종류라이브러리
최신판http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK

플렉스 프레임워크는 어도비가 개발한 액션스크립트 기반 라이브러리로서 개발자가 리치 인터넷 애플리케이션(Rich Internet Application, RIA)을 개발하는 것을 보조한다. 이 프레임워크에는 GUI 구성요소, 데이터 구성요소, 그 외 플래시 기술을 이용한 거대 웹/데스크탑 애플리케이션 제작에 필요한 온갖 것이 들어있다. 이 프레임워크는 라이브러리의 일종으로, 플래시 플레이어에 새 액션스크립트 API를 추가하지만 플래시 플레이어의 일부가 되는 내장 API들과 달리 여러분의 SWF 파일에 추가되는 클래스 묶음이다.

플렉스 프레임워크는 플렉스 SDK에서 사용할 수 있다. 플래시 빌더는 플렉스 SDK에 기반하며 플렉스 프레임워크의 기능과 긴밀하게 통합되어 많은 부분을 의존한다. 플래시 빌더로 작업하는 것은 곧 플렉스 프레임워크로 작업하는 것이다. 하지만 반드시 그런 것은 아니라 플렉스 프레임워크를 쓰지 않고도 액션스크립트 프로젝트를 할 수 있다.

플래시 프로페셔널에서도 플렉스 SDK와 연동하여 플렉스 프레임워크의 클래스를 쓸 수 있다.

플렉스 프레임워크 버전에 대하여 

첫 번째 플렉스 프레임워크(1.0)는 액션스크립트 2.0으로 개발되었고, SWF 내용물을 역동적으로 제작하기 위한 기업 규모의 서버측 솔루션이였다.
 
플렉스 프레임워크 2.0은 기업 영역에서 벗어나 플래시 빌더 개발 도구에 통합되었다. (이 때는 플래시 빌더가 아니라 플렉스 빌더, 짧게는 플렉스라고 불렀다) 이것은 보다 소비자를 지향한 것이었고 플래시 플랫폼에서 RIA를 제작하려는 사람들을 위해 설계되었다.
 
플렉스 프레임워크의 버전 붙이기는 대개 주, 부 버전에 국한된다. 플렉스 프레임워크 2.0은 2.0.1로 올라갔지만 그 후로 업데이트 버전은 바뀌지 않았다.

플래시 플레이어의 내장 API와 달리, 플래시 플레이어가 새로 나와도 플렉스 프레임워크의 API 노출이나 동작에는 영향이 없다. 플렉스 프레임워크의 API는 SWF 속으로 컴파일되며 그 SWF를 프레임워크의 새 버전을 가지고 다시 컴파일하지 않는 이상 API는 그대로 남는다. 플렉스 프레임워크 자체가 프레임워크의 여러 버전 사이의 호환성 검사를 하는 것을 제외하고라도, 이는 호환성 문제를 크게 개선한다.

여러분의 플렉스 프레임워크 버전은? 

플렉스 프레임워크 버전 붙이기는 플렉스 SDK 버전 붙이기와 호환성 버전 붙이기로 나뉜다. 플렉스 SDK 버전은 프레임워크의 모든 클래스에 VERSION 속성으로서 각각 정의되었고 버전을 더 구체적으로 나타낸다.

// 액션스크립트 3.0
import mx.core.Application; // 다른 플렉스 클래스도 된다
trace(Application.VERSION);
 
여러분의 플렉스 SDK 버전은? 도 참고하라.

플렉스 프레임워크에는 버전보다는 호환성과 기능에 더 구체적인, 호환 버전(compatibility version)이 붙는다. FlexVersion 클래스가 플렉스 프레임워크 주 배포판의 버전 정보를 담는다. 현 버전은 FlexVersion.CURRENT_VERSION이 나타낸다.

uint 포맷인 이 버전은 0xMNMNNUUUU 형식이다. M은 주 버전, N은 부 버전, U는 업데이트 버전이다.

// 액션스크립트 3.0
import mx.core.FlexVersion;
trace(FlexVersion.CURRENT_VERSION);
trace(FlexVersion.compatibilityVersion); 

FlexVersion의 호환 버전이 플렉스 SDK 버전과 항상 일치하지는 않는다. 플렉스 4.1에서 이것은 4.0이다. (즉 플렉스 4.1과 4.0에서 FlexVersion.CURRENT_VERSION은 같다) 기능 추가와 버그 해결 등의 기술적인 면에서 프레임워크 버전은 다르지만 호환성에 영향을 미칠 만한 변화는 없었기에 호환 버전은 오르지 않았다.

도구


SWF 내용물을 만들 수 있는 저작 도구는 많다. 어떤 건 특히 SWF 산출물에 특화되었고 어떤 건 SWF를 부차적인 포맷으로 산출한다. 어도비가 특히 플래시 플랫폼에서 액션스크립트 프로그래밍을 하기 위해 SWF 제작용으로 개발한 것으로는 플래시 프로페셔널, 플래시 빌더 같은 IDE(통합 개발 환경, Integrated Development Environments)와 무료인 플렉스 SDK가 있다.




플래시 프로페셔널


형식다양하다
주.부.유지보수.빌드    major.minor.maintenance.build
예시Flash 5, Flash MX, Flash Professional CS5 (11.0.2.489)
종류애플리케이션
최신판http://adobe.com/products/flash/

플래시 프로페셔널은 플래시 플레이어 내용물을 제작하기 위한 표준 IDE다. SmarSketch와 FutureSplash라는 뿌리로 거슬러 올라가보면 이것이 플래시 제작을 위한 최초의 도구다. 지금은 어도비가 제공하는 도구 중 유일하게 액션스크립트 2.0 개발을 완벽히 지원한다.

플래시 프로페셔널 버전에 관해 

플래시 플레이어 주 버전이 오를 때마다 플래시 프로페셔널도 새 배포판이 나왔다. 플렉스 빌더 2.0이 나오기 전에는 플래시 프로페셔널과 플래시 플레이어가 함께 개발, 배포되었다. 플렉스 빌더 2.0이 나온 후 플래시 플레이어는 플래시 프로페셔널과 떨어져나와 별개의 제품으로 개발되었고 각 도구는 런타임을 각자 따로따로 지원한다.

별개로 개발되었지만 플래시 프로페셔널의 버전은 플래시 플레이어와 맥락을 같이 했다. 플래시 프로페셔널 CS5 (11)에서 상황은 변했다. 플래시 플레이어는 부 버전만 올랐지 여전히 10이다. 플래시 프로페셔널 CS5는 플래시 플레이어 10.1의 새 API를 인식하도록 업데이트되었지만 새 SWF 버전을 겨냥한 것이 아니다.

밑에서 보듯이 플래시 프로페셔널의 이름과 버전 붙이기에는 마케팅과 회사 소유권이 영향을 끼쳤다.

    FutureSplash Animator
    Flash 1
    Flash 2
    Flash 3
    Flash 4
    Flash 5
    Flash MX
    Flash MX 2004
    Flash 8
    Flash CS3 Professional
    Flash CS4 Professional
    Flash Professional CS5
    ...

하지만 그 저변에서 플래시는 항상 주.부.유지보수.빌드에 기반해 꾸준히 변했다. Creative Suite (CS)의 일부가 됨에 따라 플래시 프로페셔널의 마케팅상 버전은 9에서 [CS]3로 떨어져 플래시 CS5 프로페셔널이 되었지만 실제 애플리케이션 버전은 그대로 9다.

여러분의 플래시 프로페셔널 버전은? 

플래시 프로페셔널에서 About 대화상자를 열면 현 버전이 보인다. 윈도우즈면 Help > About Adobe Flash Professional을, 맥이면 Flash > About Adobe Flash Professional을 보라. (용어는 버전에 따라 다를 수도 있다)

파일 속성을 확인하거나(윈도우즈), 플래시 실행 파일의 파일 정보를 봐도(맥) 알 수 있다.

SWF가 XMP 메타데이터를 포함하도록 제작되면 플래시 프로페셔널의 버전이 CreatorTool 태그에 포함된다. SWF를 위한 XMP 지원은 플래시 CS4 프로페셔널에서 추가됐다.


플래시 빌더 (플렉스 빌더)



형식주[.부[.유지보수]]              major[.minor[.maintenance]]
주.부[유지보수] build 빌드   major.minor[.maintenance] build build
주.부.유지보수.빌드             major.minor.maintenance.build
예시Flex Builder 2.1, Flash Builder 4 (4.0 build 272416)
종류애플리케이션
최신판http://adobe.com/products/flashbuilder/

원래는 플렉스 빌더였던 플래시 빌더는 플렉스 프레임워크와 플렉스 SDK를 가지고 플래시 내용물을 개발하는 데 특화되었다. 플래시 프로페셔널과 함께 혹은 단독으로 쓴다. 플래시 프로페셔널이 애니메이션과 시각적 개발에 능하다면 플래시 빌더는 액션스크립트 프로그래밍과 애플리케이션 개발 쪽에 집중한다.

플래시 빌더 버전에 대하여

최초는 드림위버에 기반한 플렉스 빌더 1.0였고 플렉스 프레임워크의 기업용 에디션을 겨냥했다. 플렉스 빌더 2.0은 좀 더 소비자 쪽으로 옮겨갔고 이클립스 플랫폼을 사용하도록 바뀌었다.

플렉스 SDK를 배포할 때마다 플렉스 빌더도 업데이트됐다. 지금까지는 둘의 주 버전이 같았으며 앞으로도 그럴 거란 보장은 없다.

플래시 빌더 버전 붙이기는 보기에 따라 다양하다. 마케팅 버전은 주.부 또는 주.부.유지보수 꼴이다. 애플리케이션 자체는 주.부 build 빌드 또는 주.부.유지보수 build 빌드 꼴이다. (About 대화상자에 이렇게 보인다) 결국에는 주.부.유지보수.빌드라는 표준 형식으로 오게 되지만 조금 해맬 수도 있다.

여러분의 플래시 빌더 버전은? 

플래시 빌더에서 About 대화상자를 보라. 윈도우즈라면 Help > About Adobe Flash Builder를, 맥이라면 Flash Builder > About Adobe Flash Builder를 보라. (용어는 버전에 따라 다를 수 있다) 같은 메뉴에서 Product Details...를 선택해 추가 정보를 얻을 수 있다. 이 대화상자의 Installation Details 버튼을 누르면 구체적인 주.부.유지보수.빌드 버전을 볼 수 있다.


플렉스 SDK


플렉스 SDK(플렉스 소스 개발 도구)는 개발자가 액션스크립트 3.0 기반 SWF 내용물을 제작하는 데 필요한 자원들을 모은 것이며 무료로 받을 수 있다. 여기에는 라이브러리, 컴파일러, 플래시 플레이어(선택사항)가 포함된다. 개발자는 다른 도구를 구입하지 않고 플렉스 SDK만을 사용하여 공짜로 SWF 파일을 만들 수 있다.

플렉스 SDK라는 이름에 플렉스가 들어가고 플렉스 프레임워크 자체도 포함하긴 하지만 플렉스 SDK를 사용하여 SWF를 제작할 때 굳이 플렉스 프레임워크를 사용할 필요는 없다. SDK로 SWF를 만들 때 어떤 프레임워크라도 반드시 포함할 이유는 없다.

플렉스 SDK의 일부는 플래시 프로페셔널에서 내부적으로 쓰이는데 대표적으로 액션스크립트 3.0 컴파일러가 그러하며 표준 플래시 프로페셔널 설치에 포함되어있다. 플래시 빌더는 더욱 더 플렉스 SDK에 의존하여, 플래시 빌더를 설치할 때마다 플렉스 SDK의 풀 버전이 포함된다.

플렉스 SDK 버전에 대하여 

플렉스 SDK는 다양한 별개의 부품들의 묶음이고 부품마다 자신만의 버전이 있다. 하지만 결국 새 SDK가 나올 때마다 그 것의 고유 버전이 붙는다.

오픈 소스 프로젝트의 일환으로서 플렉스 SDK의 많은 빌드는 다른 제품에 비해 공개적이다. 대부분은 불안정하지만. 보통 플래시 빌더가 새로 나올 때 안정된 마일스톤 버전이 나온다.

플렉스 SDK의 일부(플래시 플레이어 빌드 같은)는 오픈 소스가 아니기 때문에 SDK는 두 부분으로 나뉜다. "오픈 소스 플렉스 SDK" 버전은 완전히 소스가 공개된 구성요소들로만 구성되었이지만, "어도비 플렉스 SDK"에는 플래시 플레이어 등 어도비의 소스 비공개 확장자도 들어있다.

플렉스 SDK 버전 붙이기는 표준 애플리케이션 형식인 주.부.유지보수.빌드 꼴이지만 보통은 주.부 또는 그냥 주 버전만 지칭한다.

여러분의 플렉스 SDK 버전은? 

플렉스 SDK를 받아 압축을 풀어보면 "flex_sdk_4.1.0.16076_mpl"처럼 폴더 이름에 SDK 버전이 들어간다.

버전은 SDK의 루트 경로에 있는 flex-sdk-description.xml이라는 XML 파일에 이렇게 좀 더 정확히 정의되었다.

<flex-sdk-description>
    <name>Flex 4.1</name>
    <version>4.1.0</version>
    <build>16076</build>
</flex-sdk-description>

 플렉스 프레임워크에서는, 모든 플렉스 클래스에 정의된 VERSION 속성으로 플렉스 SDK 버전을 확인할 수 있다.

// 액션스크립트 3.0
trace(Application.VERSION);


컴파일러


형식주.부 build 빌드    major.minor build build [for ASC]
예시1.0 build 14159
종류애플리케이션
최신판http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK

액션스크립트의 문법이 자바스크립트와 상당히 비슷하긴 하지만 텍스트 원문으로부터 바로 실행되지는 않는다. 액션스크립트는 ABC(ActionScript Bytecode)라는 바이너리 바이트코드로 컴파일되어 액션스크립트 가상 기계(ActionScript Virtual Machine, AVM)가 이를 읽어 실행한다. 이렇게 소스를 바이트코드로 변환하는 애플리케이션을 액션스크립트 컴파일러(ActionScript Compiler, ASC)라고 한다.

사실 ASC의 종류는 두 가지다. 각각 액션스크립트 2.0(1.0도 포함), 3.0을 위한 것이다. 하지만 보통 ASC를 말할 때는 액션스크립트 3.0 소스 코드를 컴파일하기 위한 크로스-플랫폼 솔루션이자 오픈 소스인 자바 기반 컴파일러를 지칭한다. 액션스크립트 2.0은 플래시 프로페셔널만 지원하며 이 도구에만 내장된 컴파일러에 의해 컴파일된다. 이 컴파일러는 액션스크립트 2.0 컴파일러라고들 부른다.

컴파일러 버전에 대하여 

새 도구에는 새 컴파일러가 포함된다. 플래시 프로페셔널에 내장된 액션스크립트 2.0 컴파일러의 경우 특히 그러하다. 비슷한 맥락에서 ASC는 플렉스 SDK의 핵심 요소로, 새 SDK에는 새 ASC가 포함된다. 물론 다른 도구에도 새 ASC가 들어간다. 이 버전의 ASC들은 대개 현 버전의 SDK에 든 ASC만큼 최신판은 아니다.

새 버전의 컴파일러는 주로 버그 해결과 최적화 때문에 나온다. 새 컴파일러는 액션스크립트 언어(API가 아님)의 새로운 면도 지원한다. 액션스크립트 2.0의 클래스 구문 지원이 대표적인 사례로, 이건 플래시 MX 2004의 액션스크립트 2.0 컴파일러에서 추가되었다. 액션스크립트 3.0의 경우는 Vector 리터럴 구문으로, Vector 객체를 지원하게 되고부터 언어에 새로 추가된 것인데 코드에서 Vector 인스턴스를 정의하는 새롭고 짧은 구문이다.

// 액션스크립트 3.0

// 예전 구문
var first:Vector.<int> = new Vector.<int>();
first[0] = 1;
first[1] = 2;
// 다른 방법 (변환)
var second:Vector.<int> = Vector.<int>([1,2]);

// 새 구문
var third:Vector.<int> = new <int>[1,2];

이런 식의 Vector 정의는 플래시 프로페셔널 CS5 이상, 플래시 빌더 4 이상, 플렉스 SDK 4 이상에서만 쓸 수 있는데, 이 구문을 추가적으로 지원하는 ASC를 이 버전의 도구들만이 가졌기 때문이다.

ASC의 버전 붙이기는 주, 부, 빌드에 의존한다. ASC의 버전은 플래시 프로페셔널이나 플렉스 SDK 같은 플래시 플랫폼 제품의 버전과 무관하다.

액션스크립트 2.0 컴파일러의 버전은 없다. 대신 그 컴파일러를 가진 플래시 프로페셔널 도구의 버전과 연결된다.
 
여러분의 컴파일러 버전은?

액션스크립트 3.0 컴파일러, ASC의 버전을 알려면 명령줄에서 asc.jar를 -? 플래그를 붙여 실행한다.

java -jar asc.jar -?

플래시 프로페셔널 CS5에서 쓰는 ASC의 버전은 이런 식이다.

    ActionScript 3.0 for AVM+
    version 1.0 build 14159
    Copyright (c) 2003-2007 Adobe Systems Incorporated
    Copyright (c) 1998-2003 Mountain View Compiler Company
    All rights reserved
    ...
 
액션스크립트 2.0 컴파일러 버전을 알려면 여러분의 플래시 프로페셔널 버전을 보라.


부록

 
다음 내용은 지금까지 다룬 화제의 요약이나 부수적인 정보다.

마일스톤 

플래시 플레이어:

    Flash Player 8.5 (beta) - 액션스크립트 3.0을 지원하는 플래시 플레이어 실험 배포판. 정식판은 플래시 플레이어 9가 되었다.
    Flash Player 9 - AIR 첫 배포.
    Flash Player 10 - 플래시 플레이어 버전 붙이기 규칙이 바뀌었다. 주.부.빌드.개정 모든 값이 쓰인다.
    Flash Player 10.1 - SWF 버전이 오르지 않은 첫 플래시 플레이어 확장 배포.
    Flash Player 10.2 - 지원하는 SWF 버전(11)이 플레이어 주 버전(10)과 일치하지 않는 첫 플래시 플레이어 배포판.

플래시 프로페셔널:

    Flash MX 2004 (7) - 액션스크립트 2.0 첫 배포.
    Flash 8.5 - 액션스크립트 3.0 첫 배포.
    Flash Professional CS5 (11) - 지원하는 플래시 플레이어(10.1)와 주 버전이 다른 플래시 프로페셔널 첫 배포판.

플렉스 빌더

    Flex Builder 2 - 액션스크립트 3.0을 지원하는 첫 배포판.
    Flash Builder 4 - 이름이 플렉스 빌더에서 플래시 빌더로 바뀌었다.
 
Comments