Pregunta

Estoy tratando de hacer un script usando JSFL pero tengo el siguiente problema ...

Para entender lo que estoy tratando de hacer, primero usé un script para exportar todas las imágenes en la biblioteca, porque necesito hacer un proceso a todos los archivos PNG.

Ahora quiero volver a insertar las imágenes en la biblioteca.

Si creo un nuevo artículo, pierdo todas las referencias y eso no es útil y tengo artículos duplicados.

Lo que necesito hacer es volver a importar la imagen para cada elemento. Quiero decir, lo mismo que hago cuando se hace clic con el botón derecho en el elemento de la biblioteca-> Propiedades-> Importar ...

Estaba tratando de usar este script, pero no funciona.¿Alguien puede ayudarme?

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

    }
}

¿Fue útil?

Solución

Finalmente, deshabilí el archivo FLA, es como una cremallera y tengo todas las imágenes dentro, por lo que es fácil reemplazarlas.

El problema que tenía primero fue que las imágenes no cambiaron porque en Flash tienes una opción para comprimir las imágenes cuando creas el SWF, por eso no vi ningún cambio en el resultado final.(Haga clic derecho en la imagen dentro de la biblioteca -> Propiedades -> Compresión)

Utilicé JSFL para iterar todas las imágenes (como el ejemplo anterior) y configurar la compresión: "Sin pérdida" en lugar de "Photo (JPG)".

Obviamente, esta es solo una buena solución para mí porque estoy usando una herramienta externa para comprimir imágenes con una resolución realmente grande y un tamaño bajo.

Puede usar JSFL para iterar todas las imágenes y configurar la compresión: "Photo (JPG)" a todas las imágenes, con la calidad que desee, pero probablemente el resultado será diferente.

Saludos

Otros consejos

Prueba esto

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

Pero si existe el artículo, el diálogo de advertencia de flash muestra

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top