Skip to main content
salithan73779666
Participating Frequently
November 1, 2017
Beantwortet

Is there any way to get frame count of timeline animation using JSX script?

  • November 1, 2017
  • 1 Antwort
  • 8328 Ansichten

I want to extract frame count using JSX script?
I have used following code. But it seems not sharp as expected (In case of decimal point of seconds it seems not good)

function getTimelineLength() {

    var ref = new ActionReference();

    ref.putProperty(charIDToTypeID('Prpr'), stringIDToTypeID('duration'));

    ref.putClass(stringIDToTypeID('timeline'));

    var desc = new ActionDescriptor();

    desc.putReference(charIDToTypeID('null'), ref);

    var TC = executeAction(charIDToTypeID('getd'), desc, DialogModes.NO);

    TC = TC.getObjectValue(stringIDToTypeID('duration'));

    var M = 0;

    try { M = TC.getInteger(stringIDToTypeID('minutes')); } catch (e) { }

    var S = 0;

    try { S = TC.getInteger(stringIDToTypeID('seconds')); } catch (e) { }

    var F = TC.getInteger(stringIDToTypeID('frame'));

    var FR = TC.getInteger(stringIDToTypeID('frameRate'));

    var A = new Array();

    A.push([[M], [S], [F], [FR]]);

    return A;

}

//option 1

var frameCount = timeLineInfo[0][2]  ( But this returns "0" value with newly opened document)

//option 2

var timeLineInfo =  getTimelineLength()

var frameCount = timeLineInfo[0][1] * timeLineInfo[0][3]  ( This is not returns correct value with decimal value of seconds )

Anyone have a better solution?

Dieses Thema wurde für Antworten geschlossen.
Beste Antwort von r-bin

var r = new ActionReference();

r.putProperty(charIDToTypeID('Prpr'), stringIDToTypeID('frameCount'));

r.putClass(stringIDToTypeID('timeline'));

var ret = executeActionGet(r);

alert( ret.getInteger(stringIDToTypeID('frameCount')) );

//

1 Antwort

r-binAntwort
Legend
November 1, 2017

var r = new ActionReference();

r.putProperty(charIDToTypeID('Prpr'), stringIDToTypeID('frameCount'));

r.putClass(stringIDToTypeID('timeline'));

var ret = executeActionGet(r);

alert( ret.getInteger(stringIDToTypeID('frameCount')) );

//

salithan73779666
Participating Frequently
November 1, 2017

And again. Thanks alot r-bin.

Vladuhin
Known Participant
June 23, 2020

ok.

The second script I got using ScriptListener.
And the first one I got using this script to get a list of available properties.

a.jsx.zip - Google Drive


Hello r-bin, 

Unfortunately, the link doesn't work now. Could you please update it. I am really eager to know how did you get those properties of the timeline, what was the process. Thank you.