JSFL заменить изображение для изображения библиотеки

StackOverflow https://stackoverflow.com//questions/20050663

  •  26-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь сделать сценарий, используя jsfl, но у меня есть следующая проблема ...

Чтобы понять, что я пытаюсь сделать, сначала я использовал сценарий для экспорта всех изображений в библиотеке, потому что мне нужно сделать процесс для всех файлов PNG.

Теперь я хочу перенести изображения в библиотеке.

Если я создаю новый элемент, я теряю все ссылки, и это не полезно, и у меня дублированные предметы.

Что мне нужно сделать, это повторно импортировать изображение для каждого элемента. Я имею в виду, то же самое, что я делаю, когда щелкнул правой кнопкой мыши на элемент библиотеки-> Properties-> Import ...

Я пытался использовать этот скрипт, но не работает.Кто-нибудь может мне помочь?

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

    }
}
.

Это было полезно?

Решение

Наконец, я расстегнутый файл FLA, это как ZIP, и у меня есть все изображения внутри, поэтому их легко заменить.

Проблема, которую у меня впервые было то, что изображения не изменились, потому что во флэш-памяти у вас есть возможность сжать изображения, когда вы создаете SWF, поэтому я не видел никаких изменений в конечном результате.(щелкните правой кнопкой мыши на изображении внутри библиотеки -> Свойства -> Сжатие)

Я использовал JSFL, чтобы повторить все изображения (например, пример выше) и установить сжатие: «без потерь» вместо «фото (JPG)».

Очевидно, это только хорошее решение для меня, потому что я использую внешний инструмент для сжатия изображений с действительно отличным разрешением и низким размером.

Вы можете использовать JSFL для переноса всех изображений и установить сжатие: «Фото (JPG)» на все изображения, с качеством, которое вы хотите, но, вероятно, результат будет другим.

С уважением

Другие советы

попробуйте это

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

Но если элемент существует, флэш-шоу предупреждение диалоговое окно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top