2009-05-22 7 views
1

미니 프레임 용 Flex 프레임 워크를 구축 할 때, 사용하기 위해 swf 파일에서 심볼을 추출하기 전에 한 묶음의 그래픽 애셋 (무비 클립 심볼)을 단일 swf 파일로 묶어 Flex 어플리케이션에로드 할 계획입니다 내 신청서에. 내 질문은 이것입니다 : 어떻게 이것을 액션 스크립트를 통해합니까?swf 파일에서 자산을 추출 하시겠습니까?

감사합니다.

답변

1

EMBED를 사용하고 싶지 않고 런타임에 자산을로드하지 않으려면 swf를 SWC로 내보내는 것이 좋습니다.

이렇게하면 actionscript에서 SWC 파일을 탐색 할 수 있습니다. 다른 무비 클립 안에있는 하위 무비 클립이있는 컴파일 시간에 이벤트를 확인할 수 있습니다.

-library-path C:\path\to\your\file.swc 

당신은 FDT를 사용하는 경우는 인수로 SWC를 추가 자동차에 옵션이 있습니다 : 당신은 컴파일 할 때

당신이 다음 플렉스 컴파일러를 사용하는 경우이 추가 기억.

FDT로 수행하는 방법은 여기 a demo입니다. 어떤 도구를 사용하고 있는지 확실하지 않습니다. 상용 Flex Builder 인 경우 프로세스가 비슷해야합니다.

나는 그것이 당신이 찾고있는 것이라고 생각합니다.

var c:Class = Class(LoaderInfo(e.target).applicationDomain.getDefinition("myClassDefinitionName")); 

이이 저장됩니다 : 부지의 여기 좋은 솔루션

+0

+1 - 실제로는 생각하지 않았습니다. 웹 기반 앱의 경우 SWF가 훨씬 커질 수 있지만 선상에 여분의 SWF가 없으면 어떤 경우에는 장점이 될 수 있습니다. 그럼에도 불구하고 환경에 따라 선택의 여지가 있음을 상기시키는 것이 좋습니다. –

+0

감사합니다. 해결책이 아니라 해결책입니다. 애셋이 자주 변경되지 않고 파일 크기가 필수적이지 않은 경우 '예 : 대화 형 앱'에 유용합니다. 변경해야 할 수도있는 파일에 대해 SWC를 사용하는 동시에 런타임 에셋을 사용하는 것이 좋습니다. 우리는 단지 이미지를 바꾸기 위해 모든 것을 다시 컴파일하고 싶지는 않습니다. 그렇죠? :) – ozke

+0

또한 RSL (런타임 공유 라이브러리, 기본적으로 런타임에로드 된 swc)에 대해 컴파일 할 수 있습니다. 그러면 나중에 swc를 업데이트하고 강력한 형식으로 작성할 수 있습니다. –

0

자산/아이콘 라이브러리 AS 파일을 만들려고합니다.

package 
{ 

public class IconLibrary 
{ 

    /* 
    * Framework Icons 
    */ 

    [Embed (source="../assets/fof_graphics.swf", symbol="clapperboard_icon")] 
    public static const clapperBoardIcon:Class; 
    [Embed (source="../assets/fof_graphics.swf", symbol="clapperboard_over_icon")] 
    public static const clapperBoardOverIcon:Class; 
    [Embed (source="../assets/fof_graphics.swf", symbol="close_button")] 
    public static const closeButton:Class; 
    [Embed (source="../assets/fof_graphics.swf", symbol="close_over")] 
    public static const closeOverButton:Class; 

    public function IconLibrary() 
    { 
    } 

    } 

} 

의 라인을 따라

뭔가 그런 당신이 할 필요가

source="{IconLibrary.clapperBoardIcon}" 

하거나 표시하고자하는 자산의 어떤 이름입니다.

0

, 여기 당신이 런타임에 SWF를로드하고 자산을 추출 할 경우, 당신은 당신의 로더에 다음과 같은 전체 이벤트 리스너를 할 수있는 하나의 애셋을 클래스 객체로 사용하여 다음과 같이 인스턴스를 만들 수 있습니다.

var asset:MovieClip = new c(); 
관련 문제