액세스 가능성

목차

플래시 개발자를 위한 플렉스 사용법

플래시의 심볼 라이브러리 사용

플렉스 SDK를 활용하여 개발할 때, 마지막으로 고민해야 하는 부분은 디자이너가 만든 그래픽 심볼을 어떻게 사용할 수 있는가에 대한 것입니다. 왜냐하면 플렉스와 플래시의 가장 큰 차이가 바로 디자이너가 사용할 수 있는 그래픽 에디팅 기능이기 때문입니다. 따라서 디자인과의 협업에 있어서 가능성이 전혀 없다면 플래시 개발 환경으로서의 플렉스는 플래시보다 못한 평가를 받을 수 밖에 없습니다. 그러나 플렉스에서 사용하는 Asset Embed 메타데이터 태그를 활용하면 플래시의 SWF와 SWF에 포함된 그래픽 심볼 라이브러리에 접근할 수 있습니다.

Embed 메타데이터 태그는 플렉스에서만 사용할 수 있는 태그로서 외부에 있는 사운드, 폰트, 이미지, 다른 SWF 파일 등을 컴파일 과정에 새로운 SWF에 포함시키는 기능을 수행합니다. 이와 같이 SWF를 임베드 하는 기능은 플래시 8 버전도 가능하므로 Flash CS3로 제작하지 않아도 됩니다. 플렉스의 임베딩 기능에 대한 자세한 내용은 Flex Quick Start 문서를 참고*하시기 바랍니다.

Embed 메타데이터 태그는 플렉스에만 포함된 기능입니다. 따라서 Embed 코드를 포함하는 액션스크립트 파일은 플래시 오쏘링 툴에서 실행되지 않습니다. 현재의 Flash CS3에서는 Embed 메타데이터 태그를 지원하지 않고, 차기 버전에서 지원할 예정이라고 합니다.

SWF 파일을 자체를 심볼로 사용하는 방법은 다음과 같습니다.

[Embed(source="swf/hourglass.swf")]
private var Hourglass:Class;
addChild(new Hourglass());

swf 파일의 위치(작성 중인 액션스크립트 파일에 대한 상대경로 또는 절대경로)를 Embed의 source 속성에 할당한 다음 Class 유형으로 클래스의 속성으로 등록합니다. 그런 다음 클래스를 사용하듯 new로 새로운 오브젝트를 생성할 수 있습니다(예제 샘플에서 EmbeddingSwf 폴더의 파일을 참고).

다음으로 SWF에 포함된 개별 심볼을 사용하는 방법이 있습니다. 이 방법은 Fla 파일에서 Linkage ID로 등록된 심볼을 attachMovie()로 사용하는 방법과 이론상 비슷하다고 볼 수 있습니다. 예를 들어 BadApple이라는 Identifier를 갖는 심볼이 library.swf 파일에 존재한다면 다음과 같이 Embed의 symbol 속성으로 접근할 수 있습니다(예제 샘플에서 EmbeddingSwfSymbol 폴더의 파일 참고).

[Embed(source="swf/library.swf", symbol="BadApple")]
public var BadApple:Class;
addChild(new BadApple());