ActionScript 컴파일러

ActionScript 및 MXML 코드를 AIR 응용 프로그램에 포함시키려면 먼저 컴파일해야 합니다. Adobe Flash Builder 또는 Adobe Flash Professional 같은 IDE(Integrated Development Environment)를 사용하는 경우에는 IDE가 컴파일을 백그라운드에서 처리합니다. 하지만 IDE를 사용하고 있지 않거나 빌드 스크립트를 사용할 때는 명령줄에서 ActionScript 컴파일러를 호출하여 SWF 파일을 만들 수 있습니다.

Flex SDK의 AIR 명령줄 도구

Adobe AIR 응용 프로그램을 만들기 위해 사용하는 각 명령줄 도구에서는 응용 프로그램을 만들기 위해 사용되는 해당 도구를 호출할 수 있습니다.

  • amxmlc는 mxmlc를 호출하여 응용 프로그램 클래스를 컴파일합니다.

  • acompc는 compc를 호출하여 라이브러리 및 구성 요소 클래스를 컴파일합니다.

  • aasdoc는 asdoc를 호출하여 소스 코드 설명에서 문서 파일을 생성합니다.

이러한 유틸리티의 Flex 및 AIR 버전 간의 유일한 차이점은 AIR 버전의 경우 flex-config.xml 파일이 아닌 air-config.xml 파일에서 구성 옵션을 로드한다는 점입니다.

Flex SDK 도구 및 해당 명령줄 옵션은 Flex 설명서 에서 자세히 설명합니다. 여기에서는 Flex SDK 도구에 대해 도구 사용을 시작하고 Flex 응용 프로그램 만들기와 AIR 응용 프로그램 만들기 사이의 차이점을 이해할 수 있도록 기본적인 내용이 설명됩니다.

컴파일러 설정

일반적으로 명령줄 및 하나 이상의 구성 파일에서 컴파일 옵션을 지정합니다. 전역 Flex SDK 구성 파일에는 컴파일러가 실행될 때마다 사용되는 기본 값이 포함됩니다. 사용자의 고유 개발 환경에 적합하도록 이 파일을 편집할 수 있습니다. 설치된 Flex SDK의 frameworks 디렉토리에는 두 개의 전역 Flex 구성 파일이 있습니다. air-config.xml 파일은 amxmlc 컴파일러를 실행할 때 사용됩니다. 이 파일은 AIR 라이브러리를 포함하여 AIR에 대한 컴파일러를 구성합니다. flex-config.xml 파일은 mxmlc를 실행할 때 사용됩니다.

기본 구성 값은 Flex 및 AIR의 작동 방식을 확인할 때 적합하지만 전체 프로젝트를 시작할 때는 가능한 옵션들을 보다 세밀하게 검사해야 합니다. 특정 프로젝트에 대해 전역 값보다 우선 적용되는 로컬 구성 파일의 컴파일러 옵션에 프로젝트별 값을 제공할 수 있습니다.

참고: 컴파일 옵션은 특히 AIR 응용 프로그램에 대해 사용되지 않지만 AIR 응용 프로그램을 컴파일할 때는 AIR 라이브러리를 참조해야 합니다. 일반적으로 이러한 라이브러리는 프로젝트 레벨 구성, Ant와 같은 빌드 도구에 대한 파일 또는 명령줄에서 직접 참조됩니다.

AIR용 MXML 및 ActionScript 소스 파일 컴파일

다음과 같이 명령줄 MXML 컴파일러(amxmlc)를 사용하여 AIR 응용 프로그램의 Adobe® ActionScript® 3.0 및 MXML 에셋을 컴파일할 수 있습니다. HTML 기반 응용 프로그램은 컴파일할 필요가 없습니다. Flash Professional에서 SWF를 컴파일하려면 동영상을 SWF 파일로 제작하기만 하면 됩니다.

amxmlc를 사용하는 기본 명령줄 패턴은 다음과 같습니다.

amxmlc [compiler options] -- MyAIRApp.mxml

여기서 [compiler options] 은 AIR 응용 프로그램을 컴파일하는 데 사용하는 명령줄 옵션을 지정합니다.

amxmlc 명령은 표준 Flex mxmlc 컴파일러와 추가 매개변수 +configname=air 를 호출합니다. 이 매개변수는 컴파일러에게 flex-config.xml 파일 대신 air-config.xml 파일을 사용하도록 지시합니다. amxmlc를 사용하는 것은 mxmlc를 사용하는 것과 동일합니다.

컴파일러는 일반적으로 AIR 응용 프로그램을 컴파일하는 데 필요한 AIR 및 Flex 라이브러리를 지정하는 air-config.xml 구성 파일을 로드합니다. 또한 전역 구성에 대한 추가 옵션을 재정의하거나 추가하는 데 프로젝트 레벨의 로컬 구성 파일을 사용할 수도 있습니다. 일반적으로 로컬 구성 파일을 만드는 가장 쉬운 방법은 전역 버전의 사본을 편집하는 것입니다. -load-config 옵션을 사용하여 로컬 파일을 로드할 수 있습니다.

-load-config=project-config.xml 전역 옵션을 재정의합니다.

-load-config+=project-config.xml -library-path 옵션과 같이 값 이외의 것을 사용하는 전역 옵션에 추가 값을 추가합니다. 단일 값만을 사용하는 전역 옵션이 재정의됩니다.

로컬 구성 파일에 대한 특별한 이름 지정 규칙을 사용할 경우 amxmlc 컴파일러는 로컬 파일을 자동으로 로드합니다. 예를 들어 기본 MXML 파일이 RunningMan.mxml 인 경우 로컬 구성 파일의 이름을 RunningMan-config.xml 로 지정합니다. 이제 응용 프로그램을 컴파일하려면 다음을 입력하기만 하면 됩니다.

amxmlc RunningMan.mxml

파일 이름이 컴파일된 MXML 파일 이름과 일치하므로 RunningMan-config.xml 이 자동으로 로드됩니다.

amxmlc 예제

다음 예제에서는 amxmlc 컴파일러의 사용을 보여 줍니다. 여기서는 응용 프로그램의 ActionScript 및 MXML 에셋만 컴파일됩니다.

AIR MXML 파일 컴파일:

amxmlc myApp.mxml

컴파일 및 출력 이름 설정:

amxmlc –output anApp.swf -- myApp.mxml

AIR ActionScript 파일 컴파일:

amxmlc myApp.as

컴파일러 구성 파일 지정:

amxmlc –load-config config.xml -- myApp.mxml

다른 구성 파일에서 추가 옵션 추가:

amxmlc –load-config+=moreConfig.xml -- myApp.mxml

명령줄에서 이미 구성 파일에 있는 라이브러리에 라이브러리 추가:

amxmlc –library-path+=/libs/libOne.swc,/libs/libTwo.swc  -- myApp.mxml

구성 파일을 사용하지 않고 AIR MXML 파일 컴파일(Win):

mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, ^ 
[AIR SDK]/frameworks/libs/air/airframework.swc, ^ 
-library-path [Flex SDK]/frameworks/libs/framework.swc ^ 
-- myApp.mxml

구성 파일을 사용하지 않고 AIR MXML 파일 컴파일(Mac OS X 또는 Linux):

mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, \ 
[AIR SDK]/frameworks/libs/air/airframework.swc, \ 
-library-path [Flex 3 SDK]/frameworks/libs/framework.swc \ 
-- myApp.mxml

런타임 공유 라이브러리를 사용하기 위한 AIR MXML 파일 컴파일:

amxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -- myApp.mxml

ANE를 사용하기 위한 AIR MXML 파일 컴파일(ANE에 대해 반드시 -external-library-path 사용):

amxmlc -external-library-path+=../lib/myANE.ane -output=myAneApp.swf -- myAneApp.mxml

mxmlc.jar 을 포함하도록 클래스 경로를 설정하여 Java에서 컴파일:

java flex2.tools.Compiler +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml

flexlib 옵션은 컴파일러에서 flex_config.xml 파일의 위치를 찾을 수 있도록 활성화시킴으로써 Flex SDK 프레임워크 디렉토리의 위치를 식별합니다.

클래스 경로를 설정하지 않고 Java에서 컴파일:

java -jar [Flex SDK 2]/lib/mxmlc.jar +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml

Apache Ant를 사용하는 컴파일러를 호출하려면(예제에서는 Java 작업을 사용하여 mxmlc.jar 실행)

<property name="SDK_HOME" value="C:/Flex46SDK"/> 
<property name="MAIN_SOURCE_FILE" value="src/myApp.mxml"/> 
<property name="DEBUG" value="true"/> 
<target name="compile"> 
    <java jar="${MXMLC.JAR}" fork="true" failonerror="true"> 
        <arg value="-debug=${DEBUG}"/> 
        <arg value="+flexlib=${SDK_HOME}/frameworks"/> 
        <arg value="+configname=air"/> 
        <arg value="-file-specs=${MAIN_SOURCE_FILE}"/> 
    </java> 
</target>

AIR 구성 요소 또는 코드 라이브러리 컴파일 (Flex)

구성 요소 컴파일러인 acompc를 사용하여 AIR 라이브러리 및 독립 구성 요소를 컴파일합니다. acompc 구성 요소 컴파일러는 amxmlc 컴파일러처럼 동작하지만 다음과 같은 예외가 있습니다.

  • 라이브러리 또는 구성 요소에 포함시키려면 코드 베이스 내에 어떤 클래스인지를 지정해야 합니다.

  • acompc는 로컬 구성 파일을 자동으로 검색하지 않습니다. 프로젝트 구성 파일을 사용하려면 –load-config 옵션을 사용해야 합니다.

acompc 명령은 표준 Flex compc 구성 요소 컴파일러를 호출하지만 해당 구성 옵션은 air-config.xml 파일에서 로드하며, flex-config.xml 파일에서 로드하지는 않습니다.

구성 요소 컴파일러 구성 파일

로컬 구성 파일을 사용하면 명령줄에서 소스 경로 및 클래스 이름을 입력하지 않아도 됩니다. 이는 잘못 입력될 가능성을 방지합니다. 로컬 구성 파일을 로드하려면 -load-config 옵션을 acompc 명령줄에 추가합니다.

다음 예제에서는 com.adobe.samples.particles 패키지의 두 개의 클래스인 ParticleManager 및 Particle을 사용하여 라이브러리를 구축하기 위한 구성을 보여 줍니다. 클래스 파일은 source/com/adobe/samples/particles 폴더에 들어 있습니다.

<flex-config> 
    <compiler> 
        <source-path> 
            <path-element>source</path-element> 
        </source-path> 
    </compiler> 
    <include-classes> 
        <class>com.adobe.samples.particles.ParticleManager</class> 
        <class>com.adobe.samples.particles.Particle</class> 
    </include-classes> 
</flex-config>

ParticleLib-config.xml 이라는 구성 파일을 사용하여 라이브러리를 컴파일하려면 다음과 같이 입력합니다.

acompc -load-config ParticleLib-config.xml -output ParticleLib.swc

명령줄에서 동일한 명령을 실행하려면 다음과 같이 입력합니다.

acompc -source-path source -include-classes com.adobe.samples.particles.Particle  
com.adobe.samples.particles.ParticleManager -output ParticleLib.swc

한 줄에 명령 전체를 입력하거나 해당 명령 셸의 줄 연결 문자를 사용합니다.

acompc 예제

이 예제에서는 myLib-config.xml 이라는 구성 파일을 사용한다고 가정합니다.

AIR 구성 요소 또는 라이브러리 컴파일:

acompc -load-config myLib-config.xml -output lib/myLib.swc

런타임 공유 라이브러리 컴파일:

acompc -load-config myLib-config.xml -directory -output lib

이 명령을 실행하려면 lib 폴더가 존재해야 하며 비어 있어야 합니다.