2010-04-24 38 views
6

Tôi có flash .fla đã được biên dịch dưới dạng .swc có tham chiếu đến hình ảnh, nhưng bây giờ tôi cần tải tất cả các hình ảnh này ra bên ngoài và tôi không có tài sản gốc.Hình ảnh xuất hàng loạt từ Thư viện?

Tôi biết tôi có thể xuất từng cái một, nhưng tôi có một vài trăm trong tệp và muốn tìm một cách dễ dàng hơn.

Mọi trợ giúp đều tuyệt vời.

+0

Tôi đang bối rối. Bạn không có tài sản gốc? –

Trả lời

6

Bạn có thể sử dụng tập lệnh này. Nó chỉ xuất bitmap từ thư viện của bạn.

//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); 

Chỉ cần lưu tệp dưới dạng tệp .jsfl và mở tệp từ flash. Bạn cũng nên mở tệp .fla mà bạn muốn xuất tất cả hình ảnh.

Tốt nhất, Emil

p.s. Các giải pháp khác là chỉ cần đổi tên tệp .fla thành tệp .zip (.rar) và trích xuất tất cả nội dung. Điều này chỉ áp dụng cho các tệp .fla được tạo bằng phiên bản Flash CS5 hoặc CS5 + mới nhất.

+0

Điều này vẫn hoạt động tốt trong CS6. Chỉ có thay đổi tôi phải thực hiện là dọn sạch đường dẫn đầu ra để không bao gồm dấu gạch chéo - chuyển đổi itemName trước khi xuất PNG, như thế này, đã làm thủ thuật: 'itemName.replace (/ \ // g, '-'). (//g, '-') ' –

Các vấn đề liên quan