2010-04-24 21 views
6

Ho un flash .fla che stava compilando come .swc con riferimenti alle immagini, ma ora ho bisogno di caricare tutte queste immagini esternamente e non ho le risorse originali.In batch esportare le immagini dalla libreria?

So che posso esportarli uno per uno, ma ne ho alcune centinaia nel file e voglio trovare un modo più semplice.

Qualsiasi aiuto sarebbe fantastico.

+0

Sono confuso. Non hai le risorse originali? –

risposta

6

È possibile utilizzare questo script. Esporta solo bitmap dalla libreria.

//created by Heitara 
var folderURI = fl.browseForFolderURL('Select folder where all images should be exported as *.PNG'); 

var doc = fl.getDocumentDOM(); 
var newDoc = fl.createDocument(); 
//fl.outputPanel.trace("Init"); 

if(doc && newDoc) 
{ 
    fl.outputPanel.trace("Start"); 
    var library = doc.library; 
    var allLibItems = library.items; 
    var item; 
    var c = 0; 
    var selectedItemOnStage; 
    var selectionArray; 
    var itemName; 

    for (var i = 0; i<allLibItems.length; ++i) 
    { 
     item = allLibItems[i];//only images will be processed 
     if(item.itemType == "bitmap") //|| item.itemType == "graphic") 
     { 
      // attach image 
      newDoc.addItem({x:0.0, y:0.0}, item); 

      //postition all items on (0,0) 
      var image = newDoc.getTimeline().layers[0].frames[0].elements[0]; 
      if(image) 
      { 

       var hpx = image.hPixels; 
       var vpx = image.vPixels; 

       newDoc.width = hpx; 
       newDoc.height = vpx; 
       // we need to reposition the image, otherwise it will be centered 
       image.x = 0; 

       image.y = 0; 
      } 

      itemName = item.name.split('.')[0]; 
      //export as png 
      newDoc.exportPNG(folderURI + "/"+itemName +".png",true,true); 
      //select all 
      newDoc.selectAll(); 
      //remove selection 
      newDoc.deleteSelection(); 
      //deselect everything 
      newDoc.selectNone(); 
      //output.trace("[END]"); 

     } 

    } 
} 

//close the new document withut saving it 
fl.closeDocument(newDoc, false); 

Basta salvarlo come file .jsfl e aprirlo dal flash. Dovresti anche aprire il file .fla dal quale vuoi esportare tutte le immagini.

migliore, Emil

P.S. Altre soluzioni è semplicemente rinominare il file .fla in .zip (.rar) e estrarre tutte le risorse. Questo è applicabile solo ai file .fla creati con l'ultima versione di Flash CS5 o CS5 +.

+0

Questo funziona ancora bene in CS6. Solo il cambiamento che dovevo fare era ripulire il percorso di output per non includere le barre - la trasformazione di itemName prima dell'esportazione del PNG, come questa, ha fatto il trucco: 'itemName.replace (/ \ // g, '-'). Replace (//g, '-') ' –

Problemi correlati