Перейти к содержимому



  • Вы не можете создать новую тему
  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1
OFFLINE   rungun3

rungun3

    Junior Member

  • Пользователи
  • Pip
  • 11 сообщений

Привет всем! Уважаемые знатоки!

Прочёл в документации что можно реплейсит исходники http://aeclub.net/fo...305

 

 

function replace()
{
   var myFile = new File('C:\Users\Public\Pictures\Sample Pictures\2.jpg'); 
   app.project.item(2).replace(myFile);// ошибка
}
replace ();
 
Скажите почему не работает?
 у меня есть проект с фотками около 45 шт они анимированы 
1 слой: фотка
2 слой: аджасмент
3 слой: та же фотка в качестве фона блюреная растянутая
 
уходит много времени реплейсит через alt
зарание сспасибо!
 
 
 


#2
OFFLINE   Rey

Rey

    Regular Member

  • Пользователи
  • PipPipPip
  • 134 сообщений

У тебя слеши обратные "\" в пути, а в JS должны быть прямые - "/".


  • rungun3 это нравится

#3
OFFLINE   vasilyis

vasilyis

    Member

  • Пользователи
  • PipPip
  • 79 сообщений

rungun3, поменяй слеши на прямые, а индекс item на 1, так как индексы для футажей имеют больший приоритет относительно композиций. И все заработает  Однако твой пример применим для одного футажа и не имеет проверок на валидность элемента типа Футаж.


Сообщение отредактировал vasilyis: 22 Май 2013 - 00:55

  • rungun3 это нравится

#4
OFFLINE   rungun3

rungun3

    Junior Member

    Топикстартер
  • Пользователи
  • Pip
  • 11 сообщений

Спасибо! заработало! дальше сделаю цикл а вот как проверить на футаж? ==Footage?



#5
OFFLINE   Rey

Rey

    Regular Member

  • Пользователи
  • PipPipPip
  • 134 сообщений

if (app.project.item(2) instanceof footageItem) {  }


  • rungun3 это нравится

#6
OFFLINE   rungun3

rungun3

    Junior Member

    Топикстартер
  • Пользователи
  • Pip
  • 11 сообщений

if (app.project.item(2) instanceof footageItem) {  }

function replace()
{
  var items = app.project.items;
  for (var i = items.length; i >= 1; i--)    
  {
if (app.project.item(i) instanceof FootageItem) -надо писать с большой буквы
             var myFile = new File("C:/2.jpg")
            app.project.item(i).replace(myFile);-- ошибка
 
  }
  alert ("Всё готово ");
}
replace ();


короче как только скрипт натыкается на comp или папку он не срабатывает значит неправеряется условие, если есть одни фотки то всё работает


Сообщение отредактировал rungun3: 22 Май 2013 - 13:09


#7
OFFLINE   Rey

Rey

    Regular Member

  • Пользователи
  • PipPipPip
  • 134 сообщений

if (app.project.item(i) instanceof FootageItem) { -надо писать с большой буквы
   var myFile = new File("C:/2.jpg");

   app.project.item(i).replace(myFile);-- ошибка


  • rungun3 это нравится

#8
OFFLINE   rungun3

rungun3

    Junior Member

    Топикстартер
  • Пользователи
  • Pip
  • 11 сообщений

if (app.project.item(i) instanceof FootageItem) { -надо писать с большой буквы
   var myFile = new File("C:/2.jpg");

   app.project.item(i).replace(myFile);-- ошибка

 
var myFile = new File("C:/2.jpg");- не нужно ставить точку с запятой ;
 
function replace()
{
  var items = app.project.items;
  for (var i = items.length; i >= 1; i--)    
  {
if (app.project.item(i) instanceof FootageItem)
{
             var myFile = new File("C:/2.jpg")
            app.project.item(i).replace(myFile);
}
 
//          items[i].replace(myFile);
// tems[i].remove();
  }
  alert ("Всё готово ");
}
replace ();
РАБОТАЕТ!!!!!

 

БЛИН а в папке Solids солиды тоже меняет на фото!!!!!!! :help:

теперь нужна проверка на солиды 


Сообщение отредактировал rungun3: 22 Май 2013 - 14:23


#9
OFFLINE   Rey

Rey

    Regular Member

  • Пользователи
  • PipPipPip
  • 134 сообщений

По точке с запятой спорный вопрос. По спецификации она ставится в конце каждого оператора, не ставится только после закрывающей фигурной скобки. Лучше сразу писать правильный код не нарываясь на ошибки парсинга.

 

По твоей задаче. Я бы все JPG для замены положил папку (Image_Replace), а в коде сделал такую проверку:

 

if (app.project.item(i) instanceof FootageItem && app.project.item(i).parentFolder.name == "Image_Replace")

 

 

Вот только я не пойму зачем 45 фоток менять на одну "C:/2.jpg", может надо было и использовать одну?


Сообщение отредактировал Rey: 22 Май 2013 - 15:07

  • rungun3 это нравится

#10
OFFLINE   rungun3

rungun3

    Junior Member

    Топикстартер
  • Пользователи
  • Pip
  • 11 сообщений

45 фоток будут меняться на разные конечно

я думаю фотки переименовать 1,2,3 а потом в цикле подставлять var myFile = new File("C:/"+i+".jpg") как то так

а вообще было бы красиво показать папку с файлами и скрипт начал бы работать, 

это реально сделать?

 

if (app.project.item(i) instanceof FootageItem && app.project.item(i).parentFolder.name == "Image_Replace") получается что замена будет только в этой папке - это выход из ситуации


Сообщение отредактировал rungun3: 22 Май 2013 - 15:49


#11
OFFLINE   Rey

Rey

    Regular Member

  • Пользователи
  • PipPipPip
  • 134 сообщений

а вообще было бы красиво показать папку с файлами и скрипт начал бы работать,  это реально сделать?

Думаю реально, функция folderGetDialog()

http://aeclub.net/fo...&st=0&p=64305


  • rungun3 это нравится

#12
OFFLINE   dragonbook

dragonbook

    Junior Member

  • Пользователи
  • Pip
  • 2 сообщений

Здравствуйте всем! 

 

Дабы не плодить темы, сталкиваюсь с подобной задачей. Выдает ошибку "Файл не имеет конструктора". Я, если честно, новичок в js, но разве File - это не стандартный класс? И где правильно прописывать скрипт, прям в слое с картинкой где "опорная точка"? Спасибо 






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных