2011-01-10 2 views
1

swc 파일에 게시 된 후 플래시 프로젝트에 직접 사용되는 일련의 대형 fla 파일이 있습니다. 아마 총 1000 개가 넘는 물체. 번호가 커짐에 따라 최종 컴파일 된 swf가 상당히 커지기 때문에 필요에 따라 각 객체의 개별 swf를 다운로드하려고합니다. 그런 다음 최종 AS 프로젝트에서 classname을 통해 객체에 액세스하고 객체를 복제 할 수 있어야합니다.대용량 라이브러리가있는 fla 클래스에서 개별 SWF 생성하기

문제는 각 파일을 내보내고 새 fla 파일에 붙여 넣는 방법입니다. 2) '편집'을 두 번 클릭하여 포함 시키면됩니다. 3) 링크를 재설정하십시오. 4) 파일을 게시 (예 : file-> publish)하고 이름을 swf로 지정합니다.
이들 중 1000 개 이상에 걸리는 시간은 꽤 오래 걸립니다.

라이브러리의 각 항목을 마우스 오른쪽 버튼으로 클릭하여 swf로 저장할 수 있지만 classname 등을 포함하지 말고 항목 만 표시합니다. 일단 다운로드하면 다시 다운로드하지 않고 한 번 더 사용하도록 복제 할 수 없습니다. 이는 받아 들일 수 없습니다.

이 swf를 생성하는 더 빠르고 좋은 방법이 있습니까?

(나는 XFL 간략하게 살펴 않았다하지만이 이상 그럼 그냥 손으로 그 일이 소요됩니다 미지의 일부를 제공 할 수있는 스크립트를 작성하는 것 같습니다.)

답변

1

당신은 JSFL에보고해야한다 플래시를 확장하거나이 작업을 자동화하는 스크립트를 작성할 수 있습니다.

당신은 예를 들어 만 ActionScript에 내 보낸 동영상 클립의 라이브러리에있는 요소와 수출 SWF를 통해 루프 및 내보내기가 완료되면 클립 보드에 저장됩니다 LoaderMax 코드의 비트를 생성하는 스크립트를 작성할 수 있습니다

var doc = fl.getDocumentDOM(); 
var dir = 'file:///' + doc.path.substr(0,(doc.path.lastIndexOf('/')+1)); 
var lib = doc.library; 
var code = 'var queue:LoaderMax = new LoaderMax({name:"queue"});\n'; 
var items = lib.items; 
var iNum = items.length; 
var path; 
var name; 

fl.outputPanel.clear(); 

for(var i = 0 ; i < iNum ; i++){ 
    if(items[i].linkageExportForAS){ 
     name = items[i].linkageClassName; 
     path = dir+name+'.swf'; 
     items[i].exportSWF(path); 
     code += 'queue.append(new SWFLoader("'+name+'.swf", {name:"'+name+'"));\n'; 
    } 
} 

fl.clipCopyString(code); 
fl.outputPanel.trace('symbols exported as swfs, code is in your clipboard'); 

저장이, 실행 (IDE)의 명령 Flash에서 폴더를 배치하고 인터페이스에서 명령 메뉴에 나타납니다하는 .jsfl 파일로 저장됩니다.

이것은 완벽하지는 않지만 할 수있는 일에 대한 아이디어를 제공합니다. 가장 먼저 워크 플로를 설정 한 다음 스크립트를 작성하는 것입니다. 그래도 난 이해하지 못했다

이 몇 가지, 나는 그것을 파괴하기 위해 노력하고있어 :

나는 SWC의 에 게시 된 후 직접 사용 된 큰 FLA 파일 일련의이 플래시 프로젝트에서. 아마 1000 개 이상의 + 개체 일 것입니다. 숫자가 커짐에 따라 컴파일 된 swf가 상당히 커졌습니다. 각 개체는 필요한 경우에만 개를 개별적으로 다운로드하고 싶습니다.

따라서 나중에 코딩해야 할 자산이있는 일부 fla가 있습니다. swc에 actionscript 에 대해 내 보낸 여러 개의 MovieClip이 포함되어 있고 다른 유형의 애셋이 포함 된 fla 파일이 더 많을 것이라고 생각합니다.

나는 다음 프로젝트로 에서 클래스 이름을 통해 최종를 개체에 액세스 복제 할 수 있어야합니다.

getDefinition을 사용하여 swf 파일에서 클래스를 인스턴스화 하시겠습니까?

문제는 내가 한) 1에 각각 복사 내보낼 을 발견하고 2)를 두 번 '수정'을 클릭에 새 FLA 파일에 붙여 넣을 수있는 유일한 방법입니다 그것이 포함 강제로, 3) 연결 해제 (클래스) 이름이 지워졌 기 때문에 재설정합니다. 4) (예 : file-> publish)을 게시하고 이름을 swf로 지정합니다.

1 단계에서 MovieClip을 마우스 오른쪽 버튼으로 클릭하고 ExportSWF/ExportSWC를 선택할 수 있습니까? '강제로 포함 시켰습니까?'라는 의미를 이해하지 못합니다. Actionscript로 내보내기를 선택 하시겠습니까? 누가/연상케하는 걸까요?

+0

스크립팅 아이디어를 제공해 주셔서 감사합니다. 귀하의 질문에 대한 답변으로. 1) getDefinition을 사용하거나 contructos (예 : Object (mc) .contructor)를 예제로 가져 오는 것. 2) 무엇 때문에, 당신이 마우스 오른쪽 버튼을 클릭했을 때, 액션 스크립트에 대한 내보내기가있는 자산과 클래스 이름이 설정된 경우에도 클래스 정보는 포함되지 않습니다. 파일 -> 게시를 사용하는 경우에만 포함됩니다. 이유는 모르겠다. – Preston

+0

@Preston이 문제와 비슷한 문제 일 수 있습니까? (http://stackoverflow.com/questions/1004867/compile-a-swc-in-flash-for-use-in-flex-with-a-class-written - 플렉스)? –

+0

하나는 그 반대의 문제라고 생각합니다. 저는 현재 모든 것을 포함하고 있습니다. 멀리 떨어져 가야합니다. – Preston

관련 문제