2017-01-08 3 views
0

Может кто-нибудь мне помочь? Я пытаюсь написать сценарий для эффектов CC с использованием Extendscript. Я хочу изменить продолжительность слоя в композиции на javascript. Я написал этот код здесьИзменение продолжительности слоя в композиции на javascript in after after

app.project.item (1) .layer (1) .length = 12;

или

app.project.item (1) .layer (1) .duration = 12;

но не работает. Как я могу это сделать? Спасибо.

ответ

1

Не похоже, чтобы вы приложили много усилий в своем тесте. Так или иначе. Вот решение. Дело не так просто. Слои, такие как Solids, не имеют длительности, которую вы можете установить. Но вы можете установить их inPoint и outPoint. Другие слои, такие как comp, должны быть изменены в их источнике. См. Код ниже о том, как это сделать.

function main(){ 
// do some checking if we have a comp and a layer selected 
var curComp = app.project.activeItem; 
    if (!curComp || !(curComp instanceof CompItem)) { 
    // alert and end the script 
    alert("please select a composition and at least a layer"); 
    return; 
    } 
var durationValue = 1; // the desired value in seconds 
var selectedLayer = curComp.selectedLayers[0]; 

// if the layer has source layers it is a comp 
// so we change its source duration 
// else 
// we have layers like solids or lights. They have no source and no layers in them 
// so we change their outPoint 

if (selectedLayer.source.numLayers != null){ 
    $.writeln('we have a comp'); 
    selectedLayer.source.duration = durationValue; 
    } else { 
    $.writeln('we have a layer'); 
    selectedLayer.outPoint = selectedLayer.inPoint + durationValue; 
    } 
} 
main(); 
+0

спасибо. Да, я только начинаю понимать эту тему, и я так плохо изучил материал, но мне нужно было уже написать сценарий. Еще раз спасибо за помощь. –

+0

Пожалуйста, отметьте его как решенный – fabianmoronzirfas