Wow! This is nice!
I never thought I could get only the keyframes.
It will certainly lower the number of iterations. I did a small modification based on what you've done.
Instead of just j++ I've modified to j += timeline.layers.frames.startFrame + timeline.layers.frames.duration.
Please let me know if it can be even better.
function getParent(docArray)
{
for (var i = 0; i < docArray.length; i++)
{
if (docArray.libraryItem.timeline == fl.getDocumentDOM().getTimeline() && docArray.selected)
return docArray;
}
return fl.getDocumentDOM().timelines[0];
}
function getAll(timeline)
{
var array = [];
var count = 0;
getAll2(timeline);
function getAll2(timeline)
{
for (var i = 0; i < timeline.layers.length; i++)
{
for (var j = 0; j < timeline.layers.frames.length; j += timeline.layers.frames.startFrame + timeline.layers.frames.duration)
{
for (var k = 0; k < timeline.layers.frames.elements.length; k++)
{
var element = timeline.layers.frames.elements;
count++;
if (element.instanceType == "symbol")
{
array.push(element);
getAll2(element.libraryItem.timeline);
}
else
continue;
}
}
}
}
return array;
}
fl.trace(getParent(getAll(fl.getDocumentDOM().timelines[0])));
fl.trace(getParent(getAll(fl.getDocumentDOM().timelines[0])).name);
Regards,
JC