JSFL заменить изображение для изображения библиотеки
-
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);
.
Но если элемент существует, флэш-шоу предупреждение диалоговое окно