2010-06-20 6 views
4

Flex4 SDK로 기존 Flex3 프로젝트를 컴파일하려고합니다. 이 오류를 받고 있어요 :Flex4 SDK로 컴파일

Warning: This compilation unit did not have a factoryClass specified in Frame metadata to load the configured runtime shared libraries. To compile without runtime shared libraries either set the -static-link-runtime-shared-libraries option to true or remove the -runtime-shared-libraries option.

결과 파일은 대략 swf 파일 컴파일 내 오랜 Flex3와 동일합니다. 플래시 플레이어의 결과 .SWF 파일을 재생하기 또한 다음과 같은 오류를 제공합니다

An Actionscript error ocurred: VerifyError: Error #1014: Class spark.core::SpriteVisualElement could not be found

내가 참으로 컴파일러 속성 static-link-runtime-shared-libraries을 설정하면, 다음 오류가 사라지고 모두가 잘. 그러나 결과로 생성되는 .SWF의 크기는 몇 십만 개입니다. 그리고 그것은 내가 원하는 것이 아닙니다.

런타임 공유 라이브러리의 개념을 완전히 이해하지 못했지만 정적으로 링크를 설정하는 옵션을 true로 설정하면 라이브러리가 .swf에 포함됩니다. 그러나 저는이 프로젝트를 .swf에서 제외하고 런타임시 필요한 라이브러리 만로드하는 것을 좋아합니다. 프로젝트에서 Flex3과 관련이있는 것처럼 보였습니다 (그런데 그 사실을 몰랐습니다).

제대로 이해하면 player.global.swc에 내 .swf가로드해야하는 외부 라이브러리에 필요한 코드가 모두 있어야합니다. Flex4 컴파일 된 파일에는 더 많은 라이브러리가 필요합니까? 프레임 메타 데이터 태그에서 factoryClass를 사용하여 작업해야합니까?

내 생각에이 질문에 대한 답변 : 내 Flex3 컴파일 된 .swf와 동일한 크기의 Flex4 .swf를 어떻게 컴파일합니까?

+0

flex3 프로젝트를 컴파일하기를 원하거나 새로운/업데이트 된 flex4 기능을 실제로 포함하고 싶은지는 분명치 않습니다. 또한 : 당신은 명령 줄에서 컴파일하거나 플렉스 빌더/fdt를 사용하고 있습니까? –

+0

먼저 Flex3 프로젝트를 다시 컴파일해야하고 나중에 Flex4 기능을 추가해야합니다. 그러나 Flex3 프로젝트를 컴파일하는 것이 가장 중요합니다. 명령 줄에서 mxmlc를 사용하여 컴파일 중입니다. 내 프로젝트는 여러 .as 파일로 구성됩니다. – Monokai

+0

나는 "path.to.your.프리 로더 (preloader) "는 어떤 클래스를 나타냅니다. 맞습니까? 공유 라이브러리가 기본 .swf가있는 동일한 위치에서 발견되는 일반적인 경우에 대해 Adobe에서 이미 작성한 클래스가 있습니까? –

답변

1

Flex3는 기본적으로 rsls를 사용하지 않았지만 사용 가능하게 설정할 수 있습니다. http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7add.html

런타임 공유 라이브러리의 개념은 다음과 같습니다. 다른 응용 프로그램에서 (다시) 사용하는 응용 프로그램 부분을 분할하여 사용자에게 한 번만 다운로드하도록 요구합니다. . 이렇게하면 첫 번째 다운로드에는 아무 것도 저장되지 않지만 나중에 다운로드하면 저장됩니다. 당신은 아마도 자신 만의 rsl을 만들 수 있습니다. 그러나 대부분은 adobe가 제공하는 것이고 차이를 만들기위한 것입니다 : '모두가 그들을 사용할 것이기 때문에 필요한 라이브러리가 사용자 시스템에 이미 존재할 가능성이 조금 있습니다. 앱 다운로드 시간이 단축됩니다.

flexglobal.swc에는 flex.swc와 framework.swc가 포함되어 있지 않습니다 (표준 flex 3 프로젝트에는 rpc.swc 및 utilities.swc도 포함되어 있습니다. 일부 플렉스 부품 포함)

+0

감사합니다. 그러나 Flex4에서 RSL을 활성화하면 어떻게 그 VerifyErrors를 얻을 수 있습니까? 올바르게 이해하면 .swf가 시작되기 전에 RLS가로드되어 있어야하며 VerifyErrors가 없을 것입니다. – Monokai

+0

경고 메시지가 나타납니다. 왜 당신은 확인 오류를 얻을 : 올바른 rsls를로드 할 수있는 공장 클래스가 필요하지 않습니다 - 내 추측은 사용하고자하는 rsls를 지정하는 몇 가지 명령 줄 옵션이 있다는 것입니다, 그 옵션은 올바른 공장을 생성하는 돌볼 것입니다 런타임시로드 할 클래스를 사용합니다. –

+0

함께 주셔서 감사합니다 .RSLS는 flex-config.xml에 지정되어 있습니다 .Adobe에서 사용하는 RSLS 만 사용합니다. 앱에서 'static-link-runtime-shared-libraries' config.xm 그럼, 내 애플 리케이션을 잘 컴파일합니다. 아마도 RSLS가 올바르게 참조 된 것입니다. 오류는'static-link-runtime-shared-libraries'를 false로 설정하여 컴파일 할 때만 발생합니다. factoryClass 오류 + VerifyError를 제공합니다. 나는 아직도 이해하지 못한다. 필자는 컴파일러 옵션에 대한 모든 것을 읽었지만 여전히 해결책을 찾지 못했다고 생각합니다. – Monokai

1

프로젝트 마이그레이션 문제가있는 것 같습니다. 당신의 과정에 읽어 할 수 있습니다 :

http://www.adobe.com/devnet/flex/articles/flexbuilder3_to_flashbuilder4.html

그것은 당신이 사용하고자하는 Flex4 물건의 양에 따라 이주를위한 다른 가능성의 개요와 정말 좋은 기사입니다.

+0

링크를 제공해 주셔서 감사합니다. 그러나 Flash Builder를 사용하지 않고 MXMLC를 통해 명령 줄에서 컴파일합니다. – Monokai

5

주 클래스 (컴파일러 옵션에서 설정 한 것)에 [Frame(factoryClass="path.to.your.preloader")]을 추가해야합니다.

+1

나는 왜 당신이 대답으로 투표하지 않았는지 모르겠다, 이것이 정확히 맞습니다 :) – Shane