Pergunta

Estou tentando fazer um script usando JSFL mas estou com o seguinte problema...

Para entender o que estou tentando fazer, primeiro usei um script para exportar todas as imagens da biblioteca, pois preciso fazer um processo para todos os arquivos PNG.

Agora quero reinserir as imagens na biblioteca.

Se eu criar um novo item, perco todas as referências e isso não é útil e duplico itens.

O que preciso fazer é reimportar a imagem de cada item.Quero dizer, o mesmo que faço quando clico com o botão direito do mouse no item da biblioteca-> propriedades-> Importar...

Eu estava tentando usar esse script, mas não funciona.Alguém pode me ajudar?

var folderURI = fl.browseForFolderURL('Select folder where all images should be exported as *.PNG');
var doc = fl.getDocumentDOM();

if(doc)
{
    fl.outputPanel.trace("Start");
    var library = doc.library;
    var allLibItems = library.items;
    var item;
    var itemName;

    for (var i = 0; i<allLibItems.length; ++i) 
    {
        item = allLibItems[i];//only images will be processed
        if(item.itemType == "bitmap")
        {
            itemName = item.name.slice(item.name.lastIndexOf("/")+1,item.name.lastIndexOf("."));
            //Find proccesed image on the directory selected before
            //and replace the sourceFilePath (I think this is what I need to use a new image but is not working)
            item.sourceFilePath = folderURI + "/" + itemName +".png"

            //This returns 'false'
            fl.outputPanel.trace(library.updateItem(item.name));
            //item.sourceFilePath has the old value, I don't understand why it was not changed
            fl.outputPanel.trace(folderURI + "/" + itemName +".png" + " = " + item.sourceFilePath);
        }

    }
}
Foi útil?

Solução

Por fim, descompactei o arquivo FLA, é como um zip e tenho todas as imagens dentro, então é fácil substituí-las.

O problema que tive primeiro foi que as imagens não mudaram porque no Flash você tem a opção de compactar as imagens na hora de criar o swf, por isso não vi nenhuma alteração no resultado final.(clique com o botão direito na imagem dentro da biblioteca -> Propriedades -> Compressão)

Usei JSFL para iterar todas as imagens (como no exemplo acima) e definir a compactação:"Sem perdas" em vez de "Foto (JPG)".

Obviamente, esta é apenas uma boa solução para mim porque estou usando uma ferramenta externa para compactar imagens com uma resolução realmente ótima e tamanho baixo.

Você pode usar JSFL para iterar todas as imagens e definir a compactação:“Foto (JPG)” para todas as imagens, com a qualidade que você deseja, mas provavelmente o resultado será diferente.

Cumprimentos

Outras dicas

tente isso

  doc.importFile(currentFileURI, true, false, false);
  doc.library.selectItem(currentFileName);
  doc.library.moveToFolder(libraryPath, currentFileName, true);

mas se o item existir, o FLASH mostra a caixa de diálogo de aviso

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top