OpenFL과 함께 사용할 SWF/SWC 자산의 런타임 또는 컴파일 타임 구문 분석 및 처리를 제공합니다. 그런 다음 SWF 컨텐츠는 웹 및 기본 기술 모두에서 데스크탑, 웹, 모바일 및 콘솔 대상에 배포 된 프로젝트에서 디자인 또는 (베타) 애니메이션에 사용할 수 있습니다.
정적 디자인 컨텐츠 에이 라이브러리를 사용하면 생산에 실적이 있습니다. 애니메이션 에이 라이브러리를 사용하는 것은 베타 베타로 간주되어야하며 성능에 최적화되지 않을 수 있습니다. 성능 향상을위한 기여를 환영합니다!
라이브러리에는 세 가지 기본 코드 경로가 있습니다.
"SWF"유형은 SWF/SWC 형식의 전체 구문 분석을 제공합니다 (Claus Wahlers의 원본 AS3SWF 라이브러리 기반). 이 코드는 주로 성능보다는 완전성과 정확성을 위해 최적화됩니다. SWF가 완전히 구문 분석되면 새로운 런타임 최적화 형식 (SWFLITE, Animate)으로 내보내거나 런타임에 직접 구문 분석 된 SWF 컨텐츠를 사용할 수있는 초보적 인 구현이 있습니다. 이 코드 경로를 개선하는 데 관심이있는 사람들은 https://github.com/openfl/openfl-player를 런타임 SWF로드 및 재생을 테스트하고 개선하는 데 관심이있을 수 있습니다.
유형 "SWFLITE"는 이전에 OpenFL 내에 통합 된 이전 수출 형식입니다. 이 코드는 주로 역사적 이유로이 도서관에 존재합니다. "SWF"코드 경로를 사용하여 SWF 컨텐츠를 구문 분석 한 후, Haxe Serializer의 도움으로 새로운 형식이 생성되었습니다. 형식을 기반으로 런타임 파일 크기 및 성능 향상에도 불구하고 Haxe 직렬화에 대한 의존성은 후진 호환성으로의 단점이있었습니다.
유형 "애니메이션"은 최신 수출 형식이며 모든 대상의 기본값입니다. JSON에 글을 쓰고 모든 자산을 단일 ZIP 파일로 압축하면서 "SWFLITE"형식의 이점을 결합합니다. 후진 호환성을 유지하면서 반복적으로 개선 될 수 있습니다. Macromedia SWF 형식에는 이러한 이점도 있지만 최신 웹 브라우저와 다른 런타임에 맞게 최적화됩니다. 예를 들어, Macromedia SWF 파일의 이미지는 이미 비트 맵에 적용된 알파가 적용되었을 수 있습니다. html5 캔버스를 사용하여 이것을 올바르게 렌더링하는 빠른 방법은 없습니다. 애니메이션 라이브러리 형식은 현대 생산 사용에 최적화 된 유연한 형식으로 SWF 컨텐츠를 사전 프로세스 할 수있는 기회를 제공합니다.
이 라이브러리는 OpenFL /Lime 명령 줄 도구에서 자동으로 호출하여 <library /> 태그를 처리하거나 SWF 파일을 애니메이션 ZIP 파일로 처리하기 위해 명령 줄에서 사용될 수 있습니다.
먼저 <haxelib name="swf" /> 프로젝트에 추가되었는지 확인하십시오.
그런 다음 SWF 라이브러리를 포함하려면 <library path="to/your.swf" preload="true" /> 추가 할 수 있습니다. SWF의 파일 이름 ( ".swf")을 사용하여 런타임에 사용할 수 있거나 사용자 정의 이름을 지정하려면 id="my-unique-id" 를 추가 할 수 있습니다.
SWF 파일에서 각 "ActionScript에 대한 내보내기"유형에 대한 HAXE 클래스를 생성하려면 generate="true" 에 대한 (베타) 옵션이 있습니다. preload 도 선택 사항이지만 사용을 단순화하는 것이 좋습니다.
다음과 같은 SWF에서 "ActionScript for ActionScript"클립을 만들 수 있습니다.
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );전체 타임 라인을 만들려면 빈 클립 이름을 사용하십시오.
var timeline = Assets . getMovieClip ( " my-swf: " );'Generate'옵션을 사용하는 경우 다음과 같은 새 인스턴스를 만듭니다.
var clip = new MyMovieClipName ();명령 줄에서 파일을 처리하고 나중에로드 할 수도 있습니다.
haxelib run swf process
haxelib run swf process path/to/swfs
haxelib run swf process test.swf
haxelib run swf process test.swf path/to/test.zip
haxelib run swf process test.swf output/path예를 들어:
haxelib run swf process test.swf이렇게하면 나중에 런타임에로드 할 수있는 "test.zip"파일이 생성됩니다.
import swf . exporters . animate . AnimateLibrary ;
import openfl . utils . Assets ;
...
AnimateLibrary . loadFromFile ( " path/to/test.zip " ). onComplete ( function ( library )
{
var clip = library . getMovieClip ( " MyMovieClipName " );
// or
Assets . registerLibrary ( " my-swf " , library );
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );
});Haxelib을 사용하여 SWF를 쉽게 설치할 수 있습니다.
haxelib install swf
라임 또는 OpenFL 프로젝트에 추가하려면 프로젝트 파일에 추가하십시오.
<haxelib name="swf" />
SWF 저장소 복제 :
git clone https://github.com/openfl/swf
SWF 개발 사본이 설치된 위치를 Haxelib에 알려주십시오.
haxelib dev swf swf
SWF 라이브러리 도구 재건 :
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
릴리스 빌드로 돌아 가기 위해 :
haxelib dev swf