2010-08-06 3 views
1

액션 스크립트 (버전 3)에 임베드해야하는 약 90 개의 이미지가 있습니다. 내가 알아낼 수있는 유일한 방법은 각 이미지에 대해 다음 코드를 90 번 입력하는 것입니다.약 90 장의 이미지를 플래시에 포함합니다.

[Embed(source="images/door0091.bmp")] 
    private var Door1:Class; 
    var door1:Bitmap = new Door1(); 

여러 번 쓰는 것은 정말 고통 스럽습니다. 프로그래밍 방식으로 할 수있는 방법이 있는지 알고 싶습니다.

이미지가 swf 파일과 함께 있어야하므로 로더 방법을 사용할 수 없습니다. 내가 컴파일되면 swf가 독립적이되기를 바란다. 도와주세요!!!

미리 감사드립니다.

답변

2

Windows 사용자는 배치 스크립트를 사용하여 포함 코드가 포함 된 파일을 생성하거나 파일의 일부를 생성하여 수동으로 다른 파일에 붙여 넣을 수 있습니다.

배치는보기 흉하지만 간단한 작업을 위해서는 거의 사용할 수 있습니다. 다음 코드를 새 파일에 복사하고 원하는대로 이름을 지정하십시오 (.bat를 확장자로 사용). 이 스크립트를 이미지 폴더에 넣고 실행하십시오 (두 번 클릭하십시오). .jpg로 끝나는 각 이미지에 대해 생성 된 actionscript 코드와 함께 images.as 파일을 만들어야합니다 (다른 확장명을 사용하도록 스크립트를 변경할 수 있음).

@echo off 
set out_file=images.as 
echo  // script generated file > %out_file% 
for /f %%a IN ('dir /b *.jpg') do (
    echo  [Embed^(source="images/%%a"^)] >> %out_file% 
    echo  private var %%~na_class:Class; >> %out_file% 
    echo  private var %%~na:Bitmap = new %%~na_class^(^); >> %out_file% 
) 

이 아주 기본이며, 파일의 이름과 같은 공간으로 "이상한"문자가 포함 된 경우 잘 작동하지 않습니다. 하지만 그렇지 않으면 무거운 짐을 질 수 있다고 생각합니다.

+0

안녕하세요 Juan .. 답변 해 주셔서 감사합니다. 이것은 정상적으로 작동하고 반복적으로 같은 코드를 반복 작성했습니다. 고마워요! – Sandeep

+0

@ sanmax007. 문제 없습니다, 도움이 되었기 때문에 기쁩니다. –

1

Zip 파일을 사용하려는 경우 방법이 있습니다. 모든 이미지를 포함하는 전체 zip 파일을 응용 프로그램에 포함시킬 수 있습니다. 그런 다음 런타임에 zip 파일을 열어 필요한 이미지를 검색하십시오. 자신 만의 zip 유틸리티를 작성하거나 아래 그림과 같이 무료로 사용할 수 있습니다.

zip.getInput() 함수를 호출하면 그 하나의 zip 항목의 내용이 추출되는 것이므로 특정 파일을 꺼낼 준비가되었을 때에 만 전화하십시오.

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> 
    <mx:Script> 
     <![CDATA[ 
      import nochump.util.zip.ZipEntry; 
      import nochump.util.zip.ZipFile; 

      [Embed(source="images.zip",mimeType="application/octet-stream")] 
      private var imagesZip:Class; 

      protected function init():void 
      { 
       var theImages:Object = new imagesZip(); 

       var zip:ZipFile = new ZipFile(theImages as IDataInput); 
       for each(var entry:ZipEntry in zip.entries) 
       { 
        var fileName:String = entry.name.toLowerCase(); 
        if(fileName == "image2.jpg") 
        { 
         var loader:Loader = new Loader(); 
         this.rawChildren.addChild(loader); 
         loader.loadBytes(zip.getInput(entry)); 
        } 
       } 
      } 
     ]]> 
    </mx:Script> 
</mx:Application> 

나는 그것이 당신을 도움이되기를 바랍니다 :

여기에 전체 데모 응용 프로그램입니다!

+0

다음은 zip 유틸리티에 대한 링크이다 : http://nochump.com/blog/archives/15 – PIM

+1

안녕 안녕 PIM ... 귀하의 회신에 대한 많은 많은 감사드립니다. 위의 데모 신청서를 내 사무실에서 월요일에 사용해 볼 것입니다 ...이 문제와 관련하여 더 이상 문제가있는 경우이 문제를 해결할 수 있도록 도와주세요. 도움을 주셔서 감사합니다 !!! – Sandeep

0

Embed가 에서 수행됩니다. 컴파일 시간 프로그래밍 방식으로는 수행 할 수 없습니다.

유일한 생각은 경로을 사용하고 배열로 생성하는 것입니다. 또는 당신이 embed으로 만족한다면 나는 Juan Pablo Clifano 트릭이나 코드 스미스와 같은 코드 생성기를 사용한다.