Question

im essayant de faire un script à l'aide de JSFL, mais j'ai le problème suivant ...

Pour comprendre ce que je tente de faire, j'ai d'abord utilisé un script pour exporter toutes les images de la bibliothèque, car je dois créer un processus à tous les fichiers PNG.

Maintenant, je veux réinsérer les images sur la bibliothèque.

Si je crée un nouvel article, je perds toutes les références et que ce n'est pas utile et que j'ai des éléments dupliqués.

Ce que je dois faire est de réimporter l'image pour chaque élément. Je veux dire, la même chose que je fais quand un clic droit sur l'élément de la bibliothèque-> Propriétés-> Importer ...

J'essayais d'utiliser ce script mais cela ne fonctionne pas.Est-ce que quelqu'un peut m'aider?

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

    }
}

Était-ce utile?

La solution

Enfin, j'ai décompressé le fichier FLA, c'est comme un zip et j'ai toutes les images à l'intérieur, il est donc facile de les remplacer.

Le problème que j'avais d'abord était que des images ne changent pas parce que vous avez une option pour compresser des images lorsque vous créez le SWF, c'est pourquoi je n'ai rien vu de changement sur le résultat final.(clic droit sur l'image à l'intérieur de la bibliothèque -> Propriétés -> Compression)

J'ai utilisé JSFL pour itérer toutes les images (comme l'exemple ci-dessus) et définir la compression: "sans perte" au lieu de "photo (JPG)".

Évidemment, il ne s'agit que d'une bonne solution pour moi, car je suis à l'aide d'un outil externe pour comprimer des images avec une très grande résolution et une faible taille.

Vous pouvez utiliser JSFL pour itérer toutes les images et définir la compression: "Photo (JPG)" à toutes les images, avec la qualité souhaitée, mais le résultat sera probablement différent.

Cordialement

Autres conseils

Essayez ceci

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

Mais si l'article existe, Boîte de dialogue Avertissement Flash Afficher

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top